diff options
author | YangZhang <yangzhang@multicorewareinc.com> | 2013-12-20 17:41:24 +0800 |
---|---|---|
committer | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2014-01-29 08:09:20 +0100 |
commit | c5fe08d9470f969ca8bc6691fe5f8d0d1d2657c5 (patch) | |
tree | 0cdb3d56f8f9e6caaefdfa325651eb76efa7add5 /chart2 | |
parent | 704f749af5f57b71ff728dda1b4bf49975471c18 (diff) |
Fix warning of OpenGL
Change-Id: Iceb26e5245470fe9a23c41f0b448481aa7a1a1eb
Diffstat (limited to 'chart2')
-rw-r--r-- | chart2/source/view/main/OpenGLRender.cxx | 57 |
1 files changed, 29 insertions, 28 deletions
diff --git a/chart2/source/view/main/OpenGLRender.cxx b/chart2/source/view/main/OpenGLRender.cxx index ffe729349748..92489c3a37c0 100644 --- a/chart2/source/view/main/OpenGLRender.cxx +++ b/chart2/source/view/main/OpenGLRender.cxx @@ -197,7 +197,7 @@ static const GLfloat g_color_buffer_data[] = { 0.982f, 0.099f, 0.879f }; #endif -int static checkGLError(char *file, int line) +int static checkGLError(const char *file, int line) { GLenum glErr; int retCode = 0; @@ -220,6 +220,13 @@ int static checkGLError(char *file, int line) #define CHECK_GL_ERROR() checkGLError(__FILE__, __LINE__) +#define CHECK_GL_FRAME_BUFFER_STATUS() \ + status = glCheckFramebufferStatus(GL_FRAMEBUFFER);\ + if( status != GL_FRAMEBUFFER_COMPLETE ) {\ + printf(" error at line(%d) '%d'\n", __LINE__, status );\ + return -1;\ + } + GLint OpenGLRender::LoadShaders(const char *vertexShader,const char *fragmentShader) { // Create the shaders @@ -439,7 +446,8 @@ int OpenGLRender::RenderModelf2FBO(float *vertexArray, unsigned int vertexArrayS //create render buffer object CreateRenderObj(m_iWidth, m_iHeight); //create fbo - CreateFrameBufferObj(); + if ( CreateFrameBufferObj() !=0 ) + return -1; //fill vertex buffer glBindBuffer(GL_ARRAY_BUFFER, m_VertexBuffer); glBufferData(GL_ARRAY_BUFFER, vertexArraySize, vertexArray, GL_STATIC_DRAW); @@ -487,12 +495,8 @@ int OpenGLRender::RenderModelf2FBO(float *vertexArray, unsigned int vertexArrayS glDisableVertexAttribArray(m_VertexID); glDisableVertexAttribArray(m_ColorID); glUseProgram(0); - int result = 0; - GLenum fbResult = glCheckFramebufferStatus(GL_FRAMEBUFFER); - if( fbResult != GL_FRAMEBUFFER_COMPLETE ) - { - result = -1; - } + GLenum status; + CHECK_GL_FRAME_BUFFER_STATUS(); #if 0 sal_uInt8 *buf = (sal_uInt8 *)malloc(m_iWidth * m_iHeight * 3 + BMP_HEADER_LEN); CreateBMPHeader(buf, m_iWidth, -m_iHeight); @@ -515,12 +519,12 @@ int OpenGLRender::RenderModelf2FBO(float *vertexArray, unsigned int vertexArrayS Bitmap::ScopedWriteAccess pAlphaWriteAccess( aAlpha ); size_t nCurPos = 0; - for( size_t y = 0; y < m_iHeight; ++y) + for( int y = 0; y < m_iHeight; ++y) { Scanline pScan = pWriteAccess->GetScanline(y); Scanline pAlphaScan = pAlphaWriteAccess->GetScanline(y); - for( size_t x = 0; x < m_iWidth; ++x ) + for( int x = 0; x < m_iWidth; ++x ) { *pScan++ = buf[nCurPos]; *pScan++ = buf[nCurPos+1]; @@ -588,7 +592,8 @@ int OpenGLRender::RenderLine2FBO(int wholeFlag) //create render buffer object CreateRenderObj(m_iWidth, m_iHeight); //create fbo - CreateFrameBufferObj(); + if ( CreateFrameBufferObj() !=0 ) + return -1; } //bind fbo glBindFramebuffer(GL_FRAMEBUFFER, m_FboID[m_iFboIdx % 2]); @@ -633,12 +638,8 @@ int OpenGLRender::RenderLine2FBO(int wholeFlag) free(pointList.pointBuf); } m_iPointNum = 0; - int result = 0; - GLenum fbResult = glCheckFramebufferStatus(GL_FRAMEBUFFER); - if( fbResult != GL_FRAMEBUFFER_COMPLETE ) - { - result = -1; - } + GLenum status; + CHECK_GL_FRAME_BUFFER_STATUS(); #if 0 sal_uInt8 *buf = (sal_uInt8 *)malloc(m_iWidth * m_iHeight * 3 + BMP_HEADER_LEN); CreateBMPHeader(buf, m_iWidth, m_iHeight); @@ -651,21 +652,21 @@ int OpenGLRender::RenderLine2FBO(int wholeFlag) boost::scoped_array<sal_uInt8> buf(new sal_uInt8[m_iWidth * m_iHeight * 4]); glReadPixels(0, 0, m_iWidth, m_iHeight, GL_BGR, GL_UNSIGNED_BYTE, buf.get()); BitmapEx aBmp; - aBmp.Expand(m_iWidth, m_iHeight); + aBmp.SetSizePixel(Size(m_iWidth, m_iHeight)); - Bitmap aBitmap( Size( m_iWidth, m_iHeight ), 24 ); - Bitmap aAlpha( Size( m_iWidth, m_iHeight ), 24 ); + Bitmap aBitmap( aBmp.GetBitmap() ); + Bitmap aAlpha( aBmp.GetAlpha().GetBitmap() ); Bitmap::ScopedWriteAccess pWriteAccess( aBitmap ); Bitmap::ScopedWriteAccess pAlphaWriteAccess( aAlpha ); size_t nCurPos = 0; - for( size_t y = 0; y < m_iHeight; ++y) + for( int y = 0; y < m_iHeight; ++y) { Scanline pScan = pWriteAccess->GetScanline(y); Scanline pAlphaScan = pAlphaWriteAccess->GetScanline(y); - for( size_t x = 0; x < m_iWidth; ++x ) + for( int x = 0; x < m_iWidth; ++x ) { *pScan++ = buf[nCurPos]; *pScan++ = buf[nCurPos+1]; @@ -847,32 +848,32 @@ int OpenGLRender::CreateFrameBufferObj() GLenum status; // create a framebuffer object, you need to delete them when program exits. glGenFramebuffers(1, &m_FboID[0]); - status = glCheckFramebufferStatus(GL_FRAMEBUFFER); + 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); - status = glCheckFramebufferStatus(GL_FRAMEBUFFER); + 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]); - status = glCheckFramebufferStatus(GL_FRAMEBUFFER); + CHECK_GL_FRAME_BUFFER_STATUS(); glBindRenderbuffer(GL_RENDERBUFFER, 0); glBindFramebuffer(GL_FRAMEBUFFER, 0); glGenFramebuffers(1, &m_FboID[1]); - status = glCheckFramebufferStatus(GL_FRAMEBUFFER); + CHECK_GL_FRAME_BUFFER_STATUS(); glBindFramebuffer(GL_FRAMEBUFFER, m_FboID[1]); glBindTexture(GL_TEXTURE_2D, m_TextureObj[1]); // attach a texture to FBO color attachement point glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, m_TextureObj[1], 0); - status = glCheckFramebufferStatus(GL_FRAMEBUFFER); + 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]); - status = glCheckFramebufferStatus(GL_FRAMEBUFFER); + CHECK_GL_FRAME_BUFFER_STATUS(); glBindRenderbuffer(GL_RENDERBUFFER, 0); glBindFramebuffer(GL_FRAMEBUFFER, 0); |