diff options
author | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2014-01-01 22:38:26 +0100 |
---|---|---|
committer | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2014-01-29 08:09:27 +0100 |
commit | 266438ce62748f5af53dfcdcae3c38da22a15578 (patch) | |
tree | 81d07a3303079abe8bbef606c6744e7377a1fb53 /chart2 | |
parent | 1d7ffd16592580419be2e63d812fce081a7191d1 (diff) |
one more change to the rendering
Change-Id: I36ba16e8ccb8782c9fd85d7cf772d74ffab5a7f7
Diffstat (limited to 'chart2')
-rwxr-xr-x | chart2/source/view/main/OpenGLRender.cxx | 49 |
1 files changed, 24 insertions, 25 deletions
diff --git a/chart2/source/view/main/OpenGLRender.cxx b/chart2/source/view/main/OpenGLRender.cxx index 3688df9d3f8d..380fa7d6bfa8 100755 --- a/chart2/source/view/main/OpenGLRender.cxx +++ b/chart2/source/view/main/OpenGLRender.cxx @@ -25,6 +25,8 @@ using namespace com::sun::star; using namespace std; +#define RENDER_TO_FILE 0 + #define OPENGL_SHADER( ... )# __VA_ARGS__ #define GL_PI 3.14159f @@ -34,8 +36,6 @@ using namespace std; #define WGL_SAMPLES_ARB 0x2042 #endif -#define RENDER_TO_FILE 0 - const char *ColorFragmemtShader = OPENGL_SHADER ( varying vec3 fragmentColor; @@ -532,6 +532,28 @@ void OpenGLRender::prepareToRender() void OpenGLRender::renderToBitmap() { + if (m_iArbMultisampleSupported) + { + GLenum status; + glBindFramebuffer(GL_FRAMEBUFFER, 0); + glBindFramebuffer(GL_READ_FRAMEBUFFER, m_frameBufferMS); + status = glCheckFramebufferStatus(GL_READ_FRAMEBUFFER); + if (status != GL_FRAMEBUFFER_COMPLETE) + { + cout << "The frame buffer status is not complete!" << endl; + } + glBindFramebuffer(GL_DRAW_FRAMEBUFFER, m_FboID[m_iFboIdx % 2]); + status = glCheckFramebufferStatus(GL_DRAW_FRAMEBUFFER); + if (status != GL_FRAMEBUFFER_COMPLETE) + { + cout << "The frame buffer status is not complete!" << endl; + } + glBlitFramebuffer(0, 0 ,m_iWidth, m_iHeight, 0, 0,m_iWidth ,m_iHeight, GL_COLOR_BUFFER_BIT, GL_LINEAR); + glBindFramebuffer(GL_READ_FRAMEBUFFER,0); + glBindFramebuffer(GL_DRAW_FRAMEBUFFER,0); + glBindFramebuffer(GL_FRAMEBUFFER, m_FboID[m_iFboIdx % 2]); + } + #if RENDER_TO_FILE char fileName[256] = {0}; sprintf(fileName, "D:\\shaderout_%d_%d_%d.bmp", m_iWidth, m_iHeight, m_iFboIdx); @@ -1146,7 +1168,6 @@ int OpenGLRender::Bubble2DShapePoint(float x, float y, float directionX, float d int OpenGLRender::RenderBubble2FBO(int) { - GLenum status; int listNum = m_Bubble2DShapePointList.size(); for (int i = 0; i < listNum; i++) { @@ -1193,28 +1214,6 @@ int OpenGLRender::RenderBubble2FBO(int) { return -1; } - if (m_iArbMultisampleSupported) - { - glBindFramebuffer(GL_FRAMEBUFFER, 0); - glBindFramebuffer(GL_READ_FRAMEBUFFER, m_frameBufferMS); - status = glCheckFramebufferStatus(GL_READ_FRAMEBUFFER); - if (status != GL_FRAMEBUFFER_COMPLETE) - { - cout << "The frame buffer status is not complete!" << endl; - return -1; - } - glBindFramebuffer(GL_DRAW_FRAMEBUFFER, m_FboID[m_iFboIdx % 2]); - status = glCheckFramebufferStatus(GL_DRAW_FRAMEBUFFER); - if (status != GL_FRAMEBUFFER_COMPLETE) - { - cout << "The frame buffer status is not complete!" << endl; - return -1; - } - glBlitFramebuffer(0, 0 ,m_iWidth, m_iHeight, 0, 0,m_iWidth ,m_iHeight, GL_COLOR_BUFFER_BIT, GL_LINEAR); - glBindFramebuffer(GL_READ_FRAMEBUFFER,0); - glBindFramebuffer(GL_DRAW_FRAMEBUFFER,0); - glBindFramebuffer(GL_FRAMEBUFFER, m_FboID[m_iFboIdx % 2]); - } return 0; } |