[Libreoffice-commits] core.git: Branch 'private/moggi/chart-opengl-work' - 3 commits - chart2/source

Markus Mohrhard markus.mohrhard at collabora.co.uk
Sun Jan 12 07:02:15 PST 2014


 chart2/source/view/main/OpenGLRender.cxx |   87 +++++++------------------------
 chart2/source/view/main/OpenGLRender.hxx |   16 ++---
 2 files changed, 27 insertions(+), 76 deletions(-)

New commits:
commit e92af2401fa245506094fcdcab7bb51d23486b18
Author: Markus Mohrhard <markus.mohrhard at collabora.co.uk>
Date:   Sun Jan 12 15:58:48 2014 +0100

    formatting
    
    Change-Id: I3806d3b74e850812ccb24dea0580759529c154cc

diff --git a/chart2/source/view/main/OpenGLRender.hxx b/chart2/source/view/main/OpenGLRender.hxx
index 8b15dbf..41fa81e 100644
--- a/chart2/source/view/main/OpenGLRender.hxx
+++ b/chart2/source/view/main/OpenGLRender.hxx
@@ -272,9 +272,9 @@ private:
     GLint m_iSamples;
 
     glm::vec4 m_2DColor;
-	GLuint m_frameBufferMS;
-	GLuint m_renderBufferColorMS;
-	GLuint m_renderBufferDepthMS;
+    GLuint m_frameBufferMS;
+    GLuint m_renderBufferColorMS;
+    GLuint m_renderBufferDepthMS;
 
     float m_fPicRight;
 
commit cbfd328632995eb67813151bfb28e47002e1fe8e
Author: Markus Mohrhard <markus.mohrhard at collabora.co.uk>
Date:   Sun Jan 12 15:57:38 2014 +0100

    remove unused variable
    
    Change-Id: Ia563d4628e322bfde82ccca02b107c5e954a0205

diff --git a/chart2/source/view/main/OpenGLRender.cxx b/chart2/source/view/main/OpenGLRender.cxx
index 3640451..99cb450 100644
--- a/chart2/source/view/main/OpenGLRender.cxx
+++ b/chart2/source/view/main/OpenGLRender.cxx
@@ -874,7 +874,6 @@ OpenGLRender::OpenGLRender(uno::Reference< drawing::XShape > xTarget):
     m_TranslationMatrix(glm::translate(m_Model, glm::vec3(0.0f, 0.0f, 0.0f))),
     m_RotationMatrix(glm::eulerAngleYXZ(0.0f, 0.0f, 0.0f)),
     m_ScaleMatrix(glm::scale(m_Model, glm::vec3(1.0f, 1.0f, 1.0f))),
-    m_Line2DProID(0), // TODO: moggi: why is it unused?
     m_Line2DColor(glm::vec4(1.0, 0.0, 0.0, 1.0)),
     m_TextureObj(0),
     m_FboID(0),
diff --git a/chart2/source/view/main/OpenGLRender.hxx b/chart2/source/view/main/OpenGLRender.hxx
index b7aae83..8b15dbf 100644
--- a/chart2/source/view/main/OpenGLRender.hxx
+++ b/chart2/source/view/main/OpenGLRender.hxx
@@ -213,8 +213,6 @@ private:
 
     GLint m_RenderProID;
 
-    GLint m_Line2DProID;
-
     glm::vec4 m_Line2DColor;
 
     GLuint m_VertexBuffer;
commit 72dd2a8a39298944b89eaf77da50c2e11fe54b90
Author: Markus Mohrhard <markus.mohrhard at collabora.co.uk>
Date:   Sun Jan 12 15:53:56 2014 +0100

    we are rendering to FBO so no need for two objects
    
    Change-Id: I6a900244160c974feefb45ecb41d581050e955e2

diff --git a/chart2/source/view/main/OpenGLRender.cxx b/chart2/source/view/main/OpenGLRender.cxx
index ff6b6b6..3640451 100644
--- a/chart2/source/view/main/OpenGLRender.cxx
+++ b/chart2/source/view/main/OpenGLRender.cxx
@@ -619,7 +619,7 @@ void OpenGLRender::prepareToRender()
     glClearDepth(1.0f);
     // Clear the screen
     glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
-    if ((!m_FboID[0]) || (!m_FboID[1]))
+    if (!m_FboID)
     {
         // create a texture object
         CreateTextureObj(m_iWidth, m_iHeight);
@@ -639,7 +639,7 @@ void OpenGLRender::prepareToRender()
     }
     else
     {
-        glBindFramebuffer(GL_FRAMEBUFFER, m_FboID[m_iFboIdx % 2]);
+        glBindFramebuffer(GL_FRAMEBUFFER, m_FboID);
     }
 
     // Clear the screen
@@ -658,7 +658,7 @@ void OpenGLRender::renderToBitmap()
         {
             SAL_INFO("chart2.opengl", "The frame buffer status is not complete!");
         }
-        glBindFramebuffer(GL_DRAW_FRAMEBUFFER, m_FboID[m_iFboIdx % 2]);
+        glBindFramebuffer(GL_DRAW_FRAMEBUFFER, m_FboID);
         status = glCheckFramebufferStatus(GL_DRAW_FRAMEBUFFER);
         if (status != GL_FRAMEBUFFER_COMPLETE)
         {
@@ -667,12 +667,12 @@ void OpenGLRender::renderToBitmap()
         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]);
+        glBindFramebuffer(GL_FRAMEBUFFER, m_FboID);
     }
 
 #if RENDER_TO_FILE
     char fileName[256] = {0};
-    sprintf(fileName, "D:\\shaderout_%d_%d_%d.bmp", m_iWidth, m_iHeight, m_iFboIdx);
+    sprintf(fileName, "D:\\shaderout_%d_%d.bmp", m_iWidth, m_iHeight);
     sal_uInt8 *buf = (sal_uInt8 *)malloc(m_iWidth * m_iHeight * 3 + BMP_HEADER_LEN);
     CreateBMPHeader(buf, m_iWidth, m_iHeight);
     glReadPixels(0, 0, m_iWidth, m_iHeight, GL_BGR, GL_UNSIGNED_BYTE, buf + BMP_HEADER_LEN);
@@ -695,8 +695,6 @@ void OpenGLRender::renderToBitmap()
     unx::glXSwapBuffers(glWin.dpy, glWin.win);
 #endif
     glFlush();
-    m_iFboIdx++;
-
 }
 
 int OpenGLRender::RenderTexture2FBO(GLuint TexID)
@@ -785,18 +783,8 @@ int OpenGLRender::RenderTexture(GLuint TexID)
 
 int OpenGLRender::CreateTextureObj(int width, int height)
 {
-    glGenTextures(1, &m_TextureObj[0]);
-    glBindTexture(GL_TEXTURE_2D, m_TextureObj[0]);
-    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
-    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
-    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
-    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
-    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, NULL);
-    CHECK_GL_ERROR();
-    glBindTexture(GL_TEXTURE_2D, 0);
-
-    glGenTextures(1, &m_TextureObj[1]);
-    glBindTexture(GL_TEXTURE_2D, m_TextureObj[1]);
+    glGenTextures(1, &m_TextureObj);
+    glBindTexture(GL_TEXTURE_2D, m_TextureObj);
     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
@@ -809,18 +797,9 @@ int OpenGLRender::CreateTextureObj(int width, int height)
 
 int OpenGLRender::CreateRenderObj(int width, int height)
 {
-    glGenRenderbuffers(1, &m_RboID[0]);
+    glGenRenderbuffers(1, &m_RboID);
     CHECK_GL_ERROR();
-    glBindRenderbuffer(GL_RENDERBUFFER, m_RboID[0]);
-    CHECK_GL_ERROR();
-    glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT, width, height);
-    CHECK_GL_ERROR();
-    glBindRenderbuffer(GL_RENDERBUFFER, 0);
-    CHECK_GL_ERROR();
-
-    glGenRenderbuffers(1, &m_RboID[1]);
-    CHECK_GL_ERROR();
-    glBindRenderbuffer(GL_RENDERBUFFER, m_RboID[1]);
+    glBindRenderbuffer(GL_RENDERBUFFER, m_RboID);
     CHECK_GL_ERROR();
     glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT, width, height);
     CHECK_GL_ERROR();
@@ -842,32 +821,17 @@ int OpenGLRender::CreateFrameBufferObj()
 {
     GLenum status;
     // create a framebuffer object, you need to delete them when program exits.
-    glGenFramebuffers(1, &m_FboID[0]);
-    CHECK_GL_FRAME_BUFFER_STATUS();
-    glBindFramebuffer(GL_FRAMEBUFFER, m_FboID[0]);
-    glBindTexture(GL_TEXTURE_2D, m_TextureObj[0]);
-    // attach a texture to FBO color attachement point
-    glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, m_TextureObj[0], 0);
-    CHECK_GL_FRAME_BUFFER_STATUS();
-    glBindTexture(GL_TEXTURE_2D, 0);
-    // attach a renderbuffer to depth attachment point
-    glBindRenderbuffer(GL_RENDERBUFFER, m_RboID[0]);
-    glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, m_RboID[0]);
-    CHECK_GL_FRAME_BUFFER_STATUS();
-    glBindRenderbuffer(GL_RENDERBUFFER, 0);
-    glBindFramebuffer(GL_FRAMEBUFFER, 0);
-
-    glGenFramebuffers(1, &m_FboID[1]);
+    glGenFramebuffers(1, &m_FboID);
     CHECK_GL_FRAME_BUFFER_STATUS();
-    glBindFramebuffer(GL_FRAMEBUFFER, m_FboID[1]);
-    glBindTexture(GL_TEXTURE_2D, m_TextureObj[1]);
+    glBindFramebuffer(GL_FRAMEBUFFER, m_FboID);
+    glBindTexture(GL_TEXTURE_2D, m_TextureObj);
     // attach a texture to FBO color attachement point
-    glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, m_TextureObj[1], 0);
+    glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, m_TextureObj, 0);
     CHECK_GL_FRAME_BUFFER_STATUS();
     glBindTexture(GL_TEXTURE_2D, 0);
     // attach a renderbuffer to depth attachment point
-    glBindRenderbuffer(GL_RENDERBUFFER, m_RboID[1]);
-    glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, m_RboID[1]);
+    glBindRenderbuffer(GL_RENDERBUFFER, m_RboID);
+    glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, m_RboID);
     CHECK_GL_FRAME_BUFFER_STATUS();
     glBindRenderbuffer(GL_RENDERBUFFER, 0);
     glBindFramebuffer(GL_FRAMEBUFFER, 0);
@@ -883,12 +847,9 @@ void OpenGLRender::Release()
     glDeleteBuffers(1, &m_RenderVertexBuf);
     glDeleteBuffers(1, &m_RenderTexCoordBuf);
     glDeleteProgram(m_RenderProID);
-    glDeleteFramebuffers(1, &m_FboID[0]);
-    glDeleteFramebuffers(1, &m_FboID[1]);
-    glDeleteTextures(1, &m_TextureObj[0]);
-    glDeleteTextures(1, &m_TextureObj[1]);
-    glDeleteRenderbuffers(1, &m_RboID[0]);
-    glDeleteRenderbuffers(1, &m_RboID[1]);
+    glDeleteFramebuffers(1, &m_FboID);
+    glDeleteTextures(1, &m_TextureObj);
+    glDeleteRenderbuffers(1, &m_RboID);
 #if defined( WNT )
     wglMakeCurrent(NULL, NULL);
     if (!m_iExternRC)
@@ -915,9 +876,11 @@ OpenGLRender::OpenGLRender(uno::Reference< drawing::XShape > xTarget):
     m_ScaleMatrix(glm::scale(m_Model, glm::vec3(1.0f, 1.0f, 1.0f))),
     m_Line2DProID(0), // TODO: moggi: why is it unused?
     m_Line2DColor(glm::vec4(1.0, 0.0, 0.0, 1.0)),
+    m_TextureObj(0),
+    m_FboID(0),
+    m_RboID(0),
     m_iWidth(0),
     m_iHeight(0),
-    m_iFboIdx(0),
     m_fLineAlpha(1.0),
     mxRenderTarget(xTarget),
     mbArbMultisampleSupported(false),
@@ -931,13 +894,6 @@ OpenGLRender::OpenGLRender(uno::Reference< drawing::XShape > xTarget):
     memset(&m_TextInfo, 0, sizeof(TextInfo));
     memset(&m_RectangleList, 0, sizeof(RectanglePointList));
 
-    m_iFboIdx = 0;
-    m_FboID[0] = 0;
-    m_FboID[1] = 0;
-    m_TextureObj[0] = 0;
-    m_TextureObj[1] = 0;
-    m_RboID[0] = 0;
-    m_RboID[1] = 0;
     m_iArbMultisampleFormat = 0;
 
     //TODO: moggi: use STL
diff --git a/chart2/source/view/main/OpenGLRender.hxx b/chart2/source/view/main/OpenGLRender.hxx
index 8368fbc..b7aae83 100644
--- a/chart2/source/view/main/OpenGLRender.hxx
+++ b/chart2/source/view/main/OpenGLRender.hxx
@@ -243,11 +243,11 @@ private:
 
     GLuint m_RenderTexCoordBuf;
 
-    GLuint m_TextureObj[2];
+    GLuint m_TextureObj;
 
-    GLuint m_FboID[2];
+    GLuint m_FboID;
 
-    GLuint m_RboID[2];
+    GLuint m_RboID;
 
     int m_iWidth;
 
@@ -261,8 +261,6 @@ private:
 
     Line2DPointList m_Line2DPointList;
 
-    int m_iFboIdx;
-
     float m_fLineWidth;
 
     float m_fLineAlpha;


More information about the Libreoffice-commits mailing list