From 2708b2abeb3c80b15d839d347c14a4474399f8b4 Mon Sep 17 00:00:00 2001 From: Sergey Lipskiy Date: Fri, 21 Mar 2014 16:38:39 +0700 Subject: [PATCH] Remove FrameBufferExt functions usage. --- DepthBuffer.cpp | 18 ++-- FrameBuffer.cpp | 126 ++++++++++++------------ GLSLCombiner.cpp | 16 +-- OpenGL.cpp | 250 +---------------------------------------------- OpenGL.h | 26 +---- 5 files changed, 83 insertions(+), 353 deletions(-) diff --git a/DepthBuffer.cpp b/DepthBuffer.cpp index 1fc206bb..3777c729 100644 --- a/DepthBuffer.cpp +++ b/DepthBuffer.cpp @@ -30,7 +30,7 @@ void DepthBuffer_RemoveBottom() depthBuffer.top = NULL; if (depthBuffer.bottom->renderbuf != 0) - ogl_glDeleteRenderbuffers(1, &depthBuffer.bottom->renderbuf); + glDeleteRenderbuffers(1, &depthBuffer.bottom->renderbuf); if (depthBuffer.bottom->depth_texture != NULL) TextureCache_Remove( depthBuffer.bottom->depth_texture ); free( depthBuffer.bottom ); @@ -72,9 +72,9 @@ void DepthBuffer_Remove( DepthBuffer *buffer ) } if (buffer->renderbuf != 0) - ogl_glDeleteRenderbuffers(1, &buffer->renderbuf); + glDeleteRenderbuffers(1, &buffer->renderbuf); if (buffer->fbo != 0) - ogl_glDeleteFramebuffers(1, &buffer->fbo); + glDeleteFramebuffers(1, &buffer->fbo); if (buffer->depth_texture != NULL) TextureCache_Remove( buffer->depth_texture ); free( buffer ); @@ -180,12 +180,12 @@ void DepthBuffer_SetBuffer( u32 address ) current->width = pFrameBuffer != NULL ? pFrameBuffer->width : VI.width; current->depth_texture = NULL; if (OGL.frameBufferTextures) { - ogl_glGenRenderbuffers(1, ¤t->renderbuf); - ogl_glBindRenderbuffer(GL_RENDERBUFFER, current->renderbuf); + glGenRenderbuffers(1, ¤t->renderbuf); + glBindRenderbuffer(GL_RENDERBUFFER, current->renderbuf); if (pFrameBuffer != NULL) - ogl_glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT, pFrameBuffer->texture->realWidth, pFrameBuffer->texture->realHeight); + glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT, pFrameBuffer->texture->realWidth, pFrameBuffer->texture->realHeight); else - ogl_glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT, (u32)pow2(OGL.width), (u32)pow2(OGL.height)); + glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT, (u32)pow2(OGL.width), (u32)pow2(OGL.height)); } } @@ -224,8 +224,8 @@ void DepthBuffer_ClearBuffer() { return; float color[4] = {1.0f, 1.0f, 0.0f, 0.0f}; glBindImageTexture(depthImageUnit, 0, 0, GL_FALSE, 0, GL_READ_WRITE, GL_RGBA32F); - ogl_glBindFramebuffer(GL_DRAW_FRAMEBUFFER, current->fbo); + glBindFramebuffer(GL_DRAW_FRAMEBUFFER, current->fbo); OGL_DrawRect(0,0,VI.width, VI.height, color); glBindImageTexture(depthImageUnit, current->depth_texture->glName, 0, GL_FALSE, 0, GL_READ_WRITE, GL_RGBA32F); - ogl_glBindFramebuffer(GL_DRAW_FRAMEBUFFER, frameBuffer.top->fbo); + glBindFramebuffer(GL_DRAW_FRAMEBUFFER, frameBuffer.top->fbo); } diff --git a/FrameBuffer.cpp b/FrameBuffer.cpp index 8bf4f888..a1d728a4 100644 --- a/FrameBuffer.cpp +++ b/FrameBuffer.cpp @@ -143,7 +143,7 @@ void FrameBuffer_RemoveBottom() TextureCache_Remove( frameBuffer.bottom->texture ); if (frameBuffer.bottom->fbo != 0) - ogl_glDeleteFramebuffers(1, &frameBuffer.bottom->fbo); + glDeleteFramebuffers(1, &frameBuffer.bottom->fbo); if (frameBuffer.bottom == frameBuffer.top) frameBuffer.top = NULL; @@ -189,7 +189,7 @@ void FrameBuffer_Remove( FrameBuffer *buffer ) if (buffer->texture != NULL) TextureCache_Remove( buffer->texture ); if (buffer->fbo != 0) - ogl_glDeleteFramebuffers(1, &buffer->fbo); + glDeleteFramebuffers(1, &buffer->fbo); free( buffer ); @@ -295,7 +295,7 @@ void FrameBuffer_SaveBuffer( u32 address, u16 format, u16 size, u16 width, u16 h current = NULL; } else { FrameBuffer_MoveToTop( current ); - ogl_glBindFramebuffer(GL_DRAW_FRAMEBUFFER, current->fbo); + glBindFramebuffer(GL_DRAW_FRAMEBUFFER, current->fbo); if (current->size != size) { f32 fillColor[4]; gDPGetFillColor(fillColor); @@ -346,10 +346,10 @@ void FrameBuffer_SaveBuffer( u32 address, u16 format, u16 size, u16 width, u16 h glTexImage2D(GL_TEXTURE_2D, 0, monohromeInternalformat, current->texture->realWidth, current->texture->realHeight, 0, monohromeformat, GL_UNSIGNED_BYTE, NULL); glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR ); glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR ); - ogl_glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); - ogl_glGenFramebuffers(1, ¤t->fbo); - ogl_glBindFramebuffer(GL_DRAW_FRAMEBUFFER, current->fbo); - ogl_glFramebufferTexture(GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, current->texture->glName, 0); + glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); + glGenFramebuffers(1, ¤t->fbo); + glBindFramebuffer(GL_DRAW_FRAMEBUFFER, current->fbo); + glFramebufferTexture(GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, current->texture->glName, 0); } FrameBuffer_AttachDepthBuffer(); @@ -399,12 +399,12 @@ void _initDepthTexture() glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR ); glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR ); glBindTexture( GL_TEXTURE_2D, 0); - ogl_glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); - ogl_glGenFramebuffers(1, &depthBuffer.top->fbo); - ogl_glBindFramebuffer(GL_DRAW_FRAMEBUFFER, depthBuffer.top->fbo); - ogl_glFramebufferTexture(GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, depthBuffer.top->depth_texture->glName, 0); - ogl_glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); - ogl_glBindFramebuffer(GL_DRAW_FRAMEBUFFER, frameBuffer.top->fbo); + glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); + glGenFramebuffers(1, &depthBuffer.top->fbo); + glBindFramebuffer(GL_DRAW_FRAMEBUFFER, depthBuffer.top->fbo); + glFramebufferTexture(GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, depthBuffer.top->depth_texture->glName, 0); + glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); + glBindFramebuffer(GL_DRAW_FRAMEBUFFER, frameBuffer.top->fbo); frameBuffer.top->pDepthBuffer = depthBuffer.top; DepthBuffer_ClearBuffer(); #endif // GLES2 @@ -416,15 +416,15 @@ void FrameBuffer_AttachDepthBuffer() if (depthBuffer.top->depth_texture == NULL) _initDepthTexture(); frameBuffer.top->pDepthBuffer = depthBuffer.top; - ogl_glFramebufferRenderbuffer(GL_DRAW_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, depthBuffer.top->renderbuf); + glFramebufferRenderbuffer(GL_DRAW_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, depthBuffer.top->renderbuf); GLuint attachments[2] = { GL_COLOR_ATTACHMENT0, GL_DEPTH_ATTACHMENT }; - ogl_glDrawBuffers(2, attachments, frameBuffer.top->texture->glName); + glDrawBuffers(2, attachments); glBindImageTexture(depthImageUnit, depthBuffer.top->depth_texture->glName, 0, GL_FALSE, 0, GL_READ_WRITE, GL_RGBA32F); assert(checkFBO()); } else if (frameBuffer.top != NULL) { frameBuffer.top->pDepthBuffer = 0; GLuint attachments[1] = { GL_COLOR_ATTACHMENT0 }; - ogl_glDrawBuffers(1, attachments, frameBuffer.top->texture->glName); + glDrawBuffers(1, attachments); assert(checkFBO()); } Combiner_UpdateCombineDepthInfo(); @@ -456,12 +456,12 @@ void FrameBuffer_RenderBuffer( u32 address ) dstY1 -= partHeight; } - ogl_glBindFramebuffer(GL_READ_FRAMEBUFFER, current->fbo); - ogl_glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); + glBindFramebuffer(GL_READ_FRAMEBUFFER, current->fbo); + glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); //glDrawBuffer( GL_BACK ); float clearColor[4] = {0.0f, 0.0f, 0.0f, 0.0f}; OGL_ClearColorBuffer(clearColor); - ogl_glBlitFramebuffer( + glBlitFramebuffer( 0, (GLint)(srcY0*OGL.scaleY), OGL.width, (GLint)(srcY1*OGL.scaleY), 0, OGL.heightOffset + (GLint)(dstY0*viScaleY), OGL.width, OGL.heightOffset + (GLint)(dstY1*viScaleY), GL_COLOR_BUFFER_BIT, GL_LINEAR @@ -474,16 +474,16 @@ void FrameBuffer_RenderBuffer( u32 address ) srcY1 = partHeight; dstY0 = dstY1; dstY1 = dstY0 + partHeight; - ogl_glBindFramebuffer(GL_READ_FRAMEBUFFER, current->fbo); - ogl_glBlitFramebuffer( + glBindFramebuffer(GL_READ_FRAMEBUFFER, current->fbo); + glBlitFramebuffer( 0, (GLint)(srcY0*OGL.scaleY), OGL.width, (GLint)(srcY1*OGL.scaleY), 0, OGL.heightOffset + (GLint)(dstY0*viScaleY), OGL.width, OGL.heightOffset + (GLint)(dstY1*viScaleY), GL_COLOR_BUFFER_BIT, GL_LINEAR ); } } - ogl_glBindFramebuffer(GL_READ_FRAMEBUFFER, 0); - ogl_glBindFramebuffer(GL_DRAW_FRAMEBUFFER, frameBuffer.top->fbo); + glBindFramebuffer(GL_READ_FRAMEBUFFER, 0); + glBindFramebuffer(GL_DRAW_FRAMEBUFFER, frameBuffer.top->fbo); OGL_SwapBuffers(); } #else @@ -499,15 +499,15 @@ void FrameBuffer_RenderBuffer( u32 address ) { /* float fill_color[4] = {1.0f, 0.0f, 0.0f, 1.0f}; - ogl_glBindFramebuffer(GL_DRAW_FRAMEBUFFER, current->fbo); - ogl_glBindRenderbuffer(GL_RENDERBUFFER, depthBuffer.top->renderbuf); - ogl_glFramebufferRenderbuffer(GL_DRAW_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, depthBuffer.top->renderbuf); + glBindFramebuffer(GL_DRAW_FRAMEBUFFER, current->fbo); + glBindRenderbuffer(GL_RENDERBUFFER, depthBuffer.top->renderbuf); + glFramebufferRenderbuffer(GL_DRAW_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, depthBuffer.top->renderbuf); GLuint attachments[2] = { GL_COLOR_ATTACHMENT0, GL_DEPTH_ATTACHMENT }; - ogl_glDrawBuffers(2, attachments, current->texture->glName); + glDrawBuffers(2, attachments, current->texture->glName); assert(checkFBO()); OGL_ClearDepthBuffer(); OGL_ClearColorBuffer(fill_color); - ogl_glBindFramebuffer(GL_DRAW_FRAMEBUFFER, frameBuffer.top->fbo); + glBindFramebuffer(GL_DRAW_FRAMEBUFFER, frameBuffer.top->fbo); */ glPushAttrib( GL_ENABLE_BIT | GL_VIEWPORT_BIT ); @@ -535,7 +535,7 @@ void FrameBuffer_RenderBuffer( u32 address ) u1 = (float)current->texture->width / (float)current->texture->realWidth; v1 = (float)current->texture->height / (float)current->texture->realHeight; - ogl_glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); + glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); glDrawBuffer( GL_FRONT ); glBegin(GL_QUADS); glTexCoord2f( 0.0f, 0.0f ); @@ -551,7 +551,7 @@ void FrameBuffer_RenderBuffer( u32 address ) glVertex2f( current->texture->width, (GLfloat)(OGL.height - current->texture->height) ); glEnd(); glDrawBuffer( GL_BACK ); - ogl_glBindFramebuffer(GL_DRAW_FRAMEBUFFER, frameBuffer.top->fbo); + glBindFramebuffer(GL_DRAW_FRAMEBUFFER, frameBuffer.top->fbo); #ifdef DEBUG DebugMsg( DEBUG_HIGH | DEBUG_HANDLED, "FrameBuffer_RenderBuffer( 0x%08X ); \n", address); #endif @@ -642,9 +642,9 @@ void FrameBuffer_ActivateBufferTextureBG( s16 t, FrameBuffer *buffer ) void FrameBufferToRDRAM::Init() { // generate a framebuffer - ogl_glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); - ogl_glGenFramebuffers(1, &m_FBO); - ogl_glBindFramebuffer(GL_DRAW_FRAMEBUFFER, m_FBO); + glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); + glGenFramebuffers(1, &m_FBO); + glBindFramebuffer(GL_DRAW_FRAMEBUFFER, m_FBO); m_pTexture = TextureCache_AddTop(); m_pTexture->format = G_IM_FMT_RGBA; @@ -665,10 +665,10 @@ void FrameBufferToRDRAM::Init() glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR ); glBindTexture(GL_TEXTURE_2D, 0); - ogl_glFramebufferTexture(GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, m_pTexture->glName, 0); + glFramebufferTexture(GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, m_pTexture->glName, 0); // check if everything is OK assert(checkFBO()); - ogl_glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); + glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); #ifndef GLES2 // Generate and initialize Pixel Buffer Objects @@ -682,8 +682,8 @@ void FrameBufferToRDRAM::Init() } void FrameBufferToRDRAM::Destroy() { - ogl_glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); - ogl_glDeleteFramebuffers(1, &m_FBO); + glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); + glDeleteFramebuffers(1, &m_FBO); m_FBO = 0; TextureCache_Remove( m_pTexture ); m_pTexture = NULL; @@ -699,19 +699,19 @@ void FrameBufferToRDRAM::CopyToRDRAM( u32 address, bool bSync ) { return; address = current->startAddress; - ogl_glBindFramebuffer(GL_READ_FRAMEBUFFER, current->fbo); + glBindFramebuffer(GL_READ_FRAMEBUFFER, current->fbo); glReadBuffer(GL_COLOR_ATTACHMENT0); - ogl_glBindFramebuffer(GL_DRAW_FRAMEBUFFER, m_FBO); + glBindFramebuffer(GL_DRAW_FRAMEBUFFER, m_FBO); GLuint attachment = GL_COLOR_ATTACHMENT0; glDrawBuffers(1, &attachment); - ogl_glBlitFramebuffer( + glBlitFramebuffer( 0, 0, OGL.width, OGL.height, 0, 0, current->width, current->height, GL_COLOR_BUFFER_BIT, GL_LINEAR ); - ogl_glBindFramebuffer(GL_DRAW_FRAMEBUFFER, frameBuffer.top->fbo); + glBindFramebuffer(GL_DRAW_FRAMEBUFFER, frameBuffer.top->fbo); - ogl_glBindFramebuffer(GL_READ_FRAMEBUFFER, m_FBO); + glBindFramebuffer(GL_READ_FRAMEBUFFER, m_FBO); glReadBuffer(GL_COLOR_ATTACHMENT0); #ifndef GLES2 // If Sync, read pixels from the buffer, copy them to RDRAM. @@ -765,7 +765,7 @@ void FrameBufferToRDRAM::CopyToRDRAM( u32 address, bool bSync ) { #else free(pixelData); #endif - ogl_glBindFramebuffer(GL_READ_FRAMEBUFFER, 0); + glBindFramebuffer(GL_READ_FRAMEBUFFER, 0); } void FrameBuffer_CopyToRDRAM( u32 address, bool bSync ) @@ -777,9 +777,9 @@ void FrameBuffer_CopyToRDRAM( u32 address, bool bSync ) void DepthBufferToRDRAM::Init() { // generate a framebuffer - ogl_glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); - ogl_glGenFramebuffers(1, &m_FBO); - ogl_glBindFramebuffer(GL_DRAW_FRAMEBUFFER, m_FBO); + glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); + glGenFramebuffers(1, &m_FBO); + glBindFramebuffer(GL_DRAW_FRAMEBUFFER, m_FBO); m_pTexture = TextureCache_AddTop(); m_pTexture->format = G_IM_FMT_IA; @@ -800,10 +800,10 @@ void DepthBufferToRDRAM::Init() glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR ); glBindTexture(GL_TEXTURE_2D, 0); - ogl_glFramebufferTexture(GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, m_pTexture->glName, 0); + glFramebufferTexture(GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, m_pTexture->glName, 0); // check if everything is OK assert(checkFBO()); - ogl_glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); + glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); // Generate and initialize Pixel Buffer Objects glGenBuffers(2, m_aPBO); @@ -815,8 +815,8 @@ void DepthBufferToRDRAM::Init() } void DepthBufferToRDRAM::Destroy() { - ogl_glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); - ogl_glDeleteFramebuffers(1, &m_FBO); + glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); + glDeleteFramebuffers(1, &m_FBO); m_FBO = 0; TextureCache_Remove( m_pTexture ); m_pTexture = NULL; @@ -831,23 +831,23 @@ void DepthBufferToRDRAM::CopyToRDRAM( u32 address) { DepthBuffer * pDepthBuffer = current->pDepthBuffer; address = pDepthBuffer->address; - ogl_glBindFramebuffer(GL_READ_FRAMEBUFFER, pDepthBuffer->fbo); + glBindFramebuffer(GL_READ_FRAMEBUFFER, pDepthBuffer->fbo); glReadBuffer(GL_COLOR_ATTACHMENT0); - ogl_glBindFramebuffer(GL_DRAW_FRAMEBUFFER, m_FBO); + glBindFramebuffer(GL_DRAW_FRAMEBUFFER, m_FBO); GLuint attachment = GL_COLOR_ATTACHMENT0; glDrawBuffers(1, &attachment); - ogl_glBlitFramebuffer( + glBlitFramebuffer( 0, 0, OGL.width, OGL.height, 0, 0, current->width, current->height, GL_COLOR_BUFFER_BIT, GL_LINEAR ); - ogl_glBindFramebuffer(GL_DRAW_FRAMEBUFFER, frameBuffer.top->fbo); + glBindFramebuffer(GL_DRAW_FRAMEBUFFER, frameBuffer.top->fbo); m_curIndex = (m_curIndex + 1) % 2; const u32 nextIndex = m_aAddress[m_curIndex] == 0 ? m_curIndex : (m_curIndex + 1) % 2; m_aAddress[m_curIndex] = address; glBindBuffer(GL_PIXEL_PACK_BUFFER, m_aPBO[m_curIndex]); - ogl_glBindFramebuffer(GL_READ_FRAMEBUFFER, m_FBO); + glBindFramebuffer(GL_READ_FRAMEBUFFER, m_FBO); glReadBuffer(GL_COLOR_ATTACHMENT0); glReadPixels( 0, 0, VI.width, VI.height, GL_RED, GL_UNSIGNED_SHORT, 0 ); @@ -871,7 +871,7 @@ void DepthBufferToRDRAM::CopyToRDRAM( u32 address) { glUnmapBuffer(GL_PIXEL_PACK_BUFFER); glBindBuffer(GL_PIXEL_PACK_BUFFER, 0); - ogl_glBindFramebuffer(GL_READ_FRAMEBUFFER, 0); + glBindFramebuffer(GL_READ_FRAMEBUFFER, 0); } #endif // GLES2 @@ -1004,18 +1004,18 @@ void RDRAMtoFrameBuffer::CopyFromRDRAM( u32 _address, bool _bUseAlpha) #if 0 glBindTexture(GL_TEXTURE_2D, 0); - ogl_glBindFramebuffer(GL_READ_FRAMEBUFFER, m_FBO); + glBindFramebuffer(GL_READ_FRAMEBUFFER, m_FBO); const GLuint attachment = GL_COLOR_ATTACHMENT0; glReadBuffer(attachment); - ogl_glBindFramebuffer(GL_DRAW_FRAMEBUFFER, current->fbo); + glBindFramebuffer(GL_DRAW_FRAMEBUFFER, current->fbo); glDrawBuffers(1, &attachment); - ogl_glBlitFramebuffer( + glBlitFramebuffer( 0, 0, width, height, 0, 0, OGL.width, OGL.height, GL_COLOR_BUFFER_BIT, GL_LINEAR ); - ogl_glBindFramebuffer(GL_READ_FRAMEBUFFER, 0); - ogl_glBindFramebuffer(GL_DRAW_FRAMEBUFFER, frameBuffer.top->fbo); + glBindFramebuffer(GL_READ_FRAMEBUFFER, 0); + glBindFramebuffer(GL_DRAW_FRAMEBUFFER, frameBuffer.top->fbo); #else GLfloat u1, v1, x1, y1; u1 = (GLfloat)width / (GLfloat)m_pTexture->realWidth; @@ -1050,7 +1050,7 @@ void RDRAMtoFrameBuffer::CopyFromRDRAM( u32 _address, bool _bUseAlpha) glViewport( 0, 0, x1, y1 ); glDisable( GL_SCISSOR_TEST ); - ogl_glBindFramebuffer(GL_DRAW_FRAMEBUFFER, current->fbo); + glBindFramebuffer(GL_DRAW_FRAMEBUFFER, current->fbo); const GLuint attachment = GL_COLOR_ATTACHMENT0; glDrawBuffers(1, &attachment); glBegin(GL_QUADS); @@ -1066,7 +1066,7 @@ void RDRAMtoFrameBuffer::CopyFromRDRAM( u32 _address, bool _bUseAlpha) glTexCoord2f( u1, 0.0f ); glVertex2f( x1, 0.0f ); glEnd(); - ogl_glBindFramebuffer(GL_DRAW_FRAMEBUFFER, frameBuffer.top->fbo); + glBindFramebuffer(GL_DRAW_FRAMEBUFFER, frameBuffer.top->fbo); glBindTexture(GL_TEXTURE_2D, 0); glLoadIdentity(); diff --git a/GLSLCombiner.cpp b/GLSLCombiner.cpp index 1f7b994d..84b36735 100644 --- a/GLSLCombiner.cpp +++ b/GLSLCombiner.cpp @@ -207,7 +207,7 @@ void InitGLSLCombiner() } void DestroyGLSLCombiner() { - ogl_glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); + glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); DestroyZlutTexture(); DestroyShadowMapShader(); } @@ -692,17 +692,17 @@ void GLSL_RenderDepth() { if (!OGL.bImageTexture) return; #if 0 - ogl_glBindFramebuffer(GL_READ_FRAMEBUFFER, g_zbuf_fbo); - ogl_glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); + glBindFramebuffer(GL_READ_FRAMEBUFFER, g_zbuf_fbo); + glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); glDrawBuffer( GL_FRONT ); - ogl_glBlitFramebuffer( + glBlitFramebuffer( 0, 0, OGL.width, OGL.height, 0, OGL.heightOffset, OGL.width, OGL.heightOffset + OGL.height, GL_COLOR_BUFFER_BIT, GL_LINEAR ); glDrawBuffer( GL_BACK ); - ogl_glBindFramebuffer(GL_READ_FRAMEBUFFER, 0); - ogl_glBindFramebuffer(GL_DRAW_FRAMEBUFFER, frameBuffer.top != NULL ? frameBuffer.top->fbo : 0); + glBindFramebuffer(GL_READ_FRAMEBUFFER, 0); + glBindFramebuffer(GL_DRAW_FRAMEBUFFER, frameBuffer.top != NULL ? frameBuffer.top->fbo : 0); #else if (frameBuffer.top == NULL || frameBuffer.top->pDepthBuffer == NULL) return; @@ -733,7 +733,7 @@ void GLSL_RenderDepth() { u1 = 1.0; v1 = 1.0; - ogl_glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); + glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); #ifdef _WINDOWS glDrawBuffer( GL_FRONT ); #else @@ -757,7 +757,7 @@ void GLSL_RenderDepth() { #else OGL_SwapBuffers(); #endif - ogl_glBindFramebuffer(GL_DRAW_FRAMEBUFFER, frameBuffer.top->fbo); + glBindFramebuffer(GL_DRAW_FRAMEBUFFER, frameBuffer.top->fbo); glBindImageTexture(depthImageUnit, frameBuffer.top->pDepthBuffer->depth_texture->glName, 0, GL_FALSE, 0, GL_READ_WRITE, GL_RGBA32F); diff --git a/OpenGL.cpp b/OpenGL.cpp index a5149dd3..5dbed8c5 100644 --- a/OpenGL.cpp +++ b/OpenGL.cpp @@ -76,18 +76,6 @@ PFNGLDELETEBUFFERSPROC glDeleteBuffers; PFNGLBINDIMAGETEXTUREPROC glBindImageTexture; PFNGLMEMORYBARRIERPROC glMemoryBarrier; - -PFNGLBINDFRAMEBUFFEREXTPROC glBindFramebufferEXT; -PFNGLFRAMEBUFFERTEXTURE2DEXTPROC glFramebufferTexture2DEXT; -PFNGLGENFRAMEBUFFERSEXTPROC glGenFramebuffersEXT; -PFNGLBINDRENDERBUFFEREXTPROC glBindRenderbufferEXT; -PFNGLDELETERENDERBUFFERSEXTPROC glDeleteRenderbuffersEXT; -PFNGLGENRENDERBUFFERSEXTPROC glGenRenderbuffersEXT; -PFNGLRENDERBUFFERSTORAGEEXTPROC glRenderbufferStorageEXT; -PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC glFramebufferRenderbufferEXT; -PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC glCheckFramebufferStatusEXT; -PFNGLDELETEFRAMEBUFFERSEXTPROC glDeleteFramebuffersEXT; -PFNGLBLITFRAMEBUFFEREXTPROC glBlitFramebufferEXT; #endif // _WINDOWS BOOL isExtensionSupported( const char *extension ) @@ -182,24 +170,10 @@ void OGL_InitExtensions() glBindImageTexture = (PFNGLBINDIMAGETEXTUREPROC)wglGetProcAddress( "glBindImageTexture" ); glMemoryBarrier = (PFNGLMEMORYBARRIERPROC)wglGetProcAddress( "glMemoryBarrier" ); - glBindFramebufferEXT = (PFNGLBINDFRAMEBUFFEREXTPROC)wglGetProcAddress("glBindFramebufferEXT"); - glFramebufferTexture2DEXT = (PFNGLFRAMEBUFFERTEXTURE2DEXTPROC)wglGetProcAddress("glFramebufferTexture2DEXT"); - glGenFramebuffersEXT = (PFNGLGENFRAMEBUFFERSEXTPROC)wglGetProcAddress("glGenFramebuffersEXT"); - glCheckFramebufferStatusEXT = (PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC)wglGetProcAddress("glCheckFramebufferStatusEXT"); - glDeleteFramebuffersEXT = (PFNGLDELETEFRAMEBUFFERSEXTPROC)wglGetProcAddress("glDeleteFramebuffersEXT"); - - glBindRenderbufferEXT = (PFNGLBINDRENDERBUFFEREXTPROC)wglGetProcAddress("glBindRenderbufferEXT"); - glDeleteRenderbuffersEXT = (PFNGLDELETERENDERBUFFERSEXTPROC)wglGetProcAddress("glDeleteRenderbuffersEXT"); - glGenRenderbuffersEXT = (PFNGLGENRENDERBUFFERSEXTPROC)wglGetProcAddress("glGenRenderbuffersEXT"); - glRenderbufferStorageEXT = (PFNGLRENDERBUFFERSTORAGEEXTPROC)wglGetProcAddress("glRenderbufferStorageEXT"); - glFramebufferRenderbufferEXT = (PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC)wglGetProcAddress("glFramebufferRenderbufferEXT"); - glBlitFramebufferEXT = (PFNGLBLITFRAMEBUFFEREXTPROC)wglGetProcAddress("glBlitFramebufferEXT"); #endif // _WINDOWS if (glGenFramebuffers != NULL) OGL.framebufferMode = GLInfo::fbFBO; - else if (glBindFramebufferEXT != NULL) - OGL.framebufferMode = GLInfo::fbFBOEXT; else OGL.framebufferMode = GLInfo::fbNone; @@ -1119,7 +1093,7 @@ void OGL_SaveScreenshot() GLint oldMode; glGetIntegerv( GL_READ_BUFFER, &oldMode ); - ogl_glBindFramebuffer(GL_READ_FRAMEBUFFER, 0); + glBindFramebuffer(GL_READ_FRAMEBUFFER, 0); glReadBuffer( GL_FRONT ); glReadPixels( 0, OGL.heightOffset, OGL.width, OGL.height, GL_BGR_EXT, GL_UNSIGNED_BYTE, pixelData ); glReadBuffer( oldMode ); @@ -1214,217 +1188,8 @@ void OGL_SwapBuffers() #endif // _WINDOWS } -void ogl_glGenFramebuffers (GLsizei n, GLuint *framebuffers) { - switch (OGL.framebufferMode) { - case GLInfo::fbFBO: - glGenFramebuffers(n, framebuffers); - break; - case GLInfo::fbFBOEXT: - glGenFramebuffersEXT(n, framebuffers); - break; - } -} - -void ogl_glBindFramebuffer (GLenum target, GLuint framebuffer) { - switch (OGL.framebufferMode) { - case GLInfo::fbFBO: - glBindFramebuffer(target, framebuffer); - break; - case GLInfo::fbFBOEXT: - switch (target) { - case GL_DRAW_FRAMEBUFFER: - target = GL_FRAMEBUFFER_EXT; - break; - case GL_READ_FRAMEBUFFER: - target = GL_READ_FRAMEBUFFER_EXT; - break; - } - glBindFramebufferEXT(target, framebuffer); - break; - } -} - -void ogl_glDeleteFramebuffers (GLsizei n, const GLuint *framebuffers) { - switch (OGL.framebufferMode) { - case GLInfo::fbFBO: - glDeleteFramebuffers(n, framebuffers); - break; - case GLInfo::fbFBOEXT: - glDeleteFramebuffersEXT(n, framebuffers); - break; - } -} - -void ogl_glFramebufferTexture (GLenum target, GLenum attachment, GLuint texture, GLint level) { - switch (OGL.framebufferMode) { - case GLInfo::fbFBO: - glFramebufferTexture(target, attachment, texture, level); - break; - case GLInfo::fbFBOEXT: - switch (target) { - case GL_DRAW_FRAMEBUFFER: - target = GL_FRAMEBUFFER_EXT; - break; - } - switch (attachment) { - case GL_COLOR_ATTACHMENT0: - attachment = GL_COLOR_ATTACHMENT0_EXT; - break; - case GL_COLOR_ATTACHMENT1: - attachment = GL_COLOR_ATTACHMENT1_EXT; - break; - case GL_COLOR_ATTACHMENT2: - attachment = GL_COLOR_ATTACHMENT2_EXT; - break; - case GL_COLOR_ATTACHMENT3: - attachment = GL_COLOR_ATTACHMENT3_EXT; - break; - } - glFramebufferTexture2DEXT(target, attachment, GL_TEXTURE_2D, texture, level); - break; - } -} - -void ogl_glGenRenderbuffers (GLsizei n, GLuint *renderbuffers) { - switch (OGL.framebufferMode) { - case GLInfo::fbFBO: - glGenRenderbuffers(n, renderbuffers); - break; - case GLInfo::fbFBOEXT: - glGenRenderbuffersEXT(n, renderbuffers); - break; - } -} - -void ogl_glBindRenderbuffer (GLenum target, GLuint renderbuffer) { - switch (OGL.framebufferMode) { - case GLInfo::fbFBO: - glBindRenderbuffer(target, renderbuffer); - break; - case GLInfo::fbFBOEXT: - switch (target) { - case GL_RENDERBUFFER: - target = GL_RENDERBUFFER_EXT; - break; - } - glBindRenderbufferEXT(target, renderbuffer); - break; - } -} - -void ogl_glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height) { - switch (OGL.framebufferMode) { - case GLInfo::fbFBO: - glRenderbufferStorage(target, internalformat, width, height); - break; - case GLInfo::fbFBOEXT: - switch (target) { - case GL_RENDERBUFFER: - target = GL_RENDERBUFFER_EXT; - break; - } - glRenderbufferStorageEXT(target, internalformat, width, height); - break; - } -} - -void ogl_glDeleteRenderbuffers (GLsizei n, const GLuint *renderbuffers) { - switch (OGL.framebufferMode) { - case GLInfo::fbFBO: - glDeleteRenderbuffers(n, renderbuffers); - break; - case GLInfo::fbFBOEXT: - glDeleteRenderbuffersEXT(n, renderbuffers); - break; - } -} - -void ogl_glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer) { - switch (OGL.framebufferMode) { - case GLInfo::fbFBO: - glFramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer); - break; - case GLInfo::fbFBOEXT: - switch (target) { - case GL_DRAW_FRAMEBUFFER: - target = GL_FRAMEBUFFER_EXT; - break; - } - switch (attachment) { - case GL_COLOR_ATTACHMENT0: - attachment = GL_COLOR_ATTACHMENT0_EXT; - break; - case GL_COLOR_ATTACHMENT1: - attachment = GL_COLOR_ATTACHMENT1_EXT; - break; - case GL_COLOR_ATTACHMENT2: - attachment = GL_COLOR_ATTACHMENT2_EXT; - break; - case GL_COLOR_ATTACHMENT3: - attachment = GL_COLOR_ATTACHMENT3_EXT; - break; - case GL_DEPTH_ATTACHMENT: - attachment = GL_DEPTH_ATTACHMENT_EXT; - break; - } - switch (renderbuffertarget) { - case GL_RENDERBUFFER: - target = GL_RENDERBUFFER_EXT; - break; - } - glFramebufferRenderbufferEXT(target, attachment, renderbuffertarget, renderbuffer); - break; - } -} - -void ogl_glDrawBuffers (GLsizei n, const GLenum *bufs, GLuint texture) { - switch (OGL.framebufferMode) { - case GLInfo::fbFBO: - glDrawBuffers(n, bufs); - break; - case GLInfo::fbFBOEXT: - glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, texture, 0); - break; - } - assert(checkFBO()); -} - -GLenum ogl_glCheckFramebufferStatus (GLenum target) { - switch (OGL.framebufferMode) { - case GLInfo::fbFBO: - return glCheckFramebufferStatus(target); - case GLInfo::fbFBOEXT: - switch (target) { - case GL_DRAW_FRAMEBUFFER: - target = GL_FRAMEBUFFER_EXT; - break; - } - switch (glCheckFramebufferStatusEXT(target)) { - case GL_FRAMEBUFFER_COMPLETE_EXT: - return GL_FRAMEBUFFER_COMPLETE; - case GL_FRAMEBUFFER_UNSUPPORTED_EXT: - return GL_FRAMEBUFFER_UNSUPPORTED; - case GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT: - return GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT; - case GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT: - return GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT; - case GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT: - return GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT; - case GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT: - return GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT; - case GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT: - return GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER; - case GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT: - return GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER; - case GL_FRAMEBUFFER_BINDING_EXT: - return GL_FRAMEBUFFER_BINDING; - } - } - return GL_FRAMEBUFFER_UNSUPPORTED; -} - bool checkFBO() { - GLenum e = ogl_glCheckFramebufferStatus(GL_DRAW_FRAMEBUFFER); + GLenum e = glCheckFramebufferStatus(GL_DRAW_FRAMEBUFFER); switch (e) { case GL_FRAMEBUFFER_UNDEFINED: printf("FBO Undefined\n"); @@ -1455,14 +1220,3 @@ bool checkFBO() { } return e == GL_FRAMEBUFFER_COMPLETE; } - -void ogl_glBlitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter) { - switch (OGL.framebufferMode) { - case GLInfo::fbFBO: - glBlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter); - break; - case GLInfo::fbFBOEXT: - glBlitFramebufferEXT(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter); - break; - } -} diff --git a/OpenGL.h b/OpenGL.h index 4580b270..16ecf903 100644 --- a/OpenGL.h +++ b/OpenGL.h @@ -76,8 +76,7 @@ struct GLInfo BYTE combiner; enum { fbNone, - fbFBO, - fbFBOEXT + fbFBO } framebufferMode; enum { rsNone = 0, @@ -116,18 +115,6 @@ void OGL_SaveScreenshot(); void OGL_SwapBuffers(); void OGL_ReadScreen( void **dest, long *width, long *height ); -void ogl_glGenFramebuffers (GLsizei n, GLuint *framebuffers); -void ogl_glBindFramebuffer (GLenum target, GLuint framebuffer); -void ogl_glDeleteFramebuffers (GLsizei n, const GLuint *framebuffers); -void ogl_glFramebufferTexture (GLenum target, GLenum attachment, GLuint texture, GLint level); -void ogl_glGenRenderbuffers (GLsizei n, GLuint *renderbuffers); -void ogl_glBindRenderbuffer (GLenum target, GLuint renderbuffer); -void ogl_glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -void ogl_glDeleteRenderbuffers (GLsizei n, const GLuint *renderbuffers); -void ogl_glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -void ogl_glDrawBuffers (GLsizei n, const GLenum *bufs, GLuint texture); -GLenum ogl_glCheckFramebufferStatus (GLenum target); -void ogl_glBlitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); bool checkFBO(); #ifdef _WINDOWS @@ -182,16 +169,5 @@ extern PFNGLDELETEBUFFERSPROC glDeleteBuffers; extern PFNGLBINDIMAGETEXTUREPROC glBindImageTexture; extern PFNGLMEMORYBARRIERPROC glMemoryBarrier; -extern PFNGLBINDFRAMEBUFFEREXTPROC glBindFramebufferEXT; -extern PFNGLFRAMEBUFFERTEXTURE2DEXTPROC glFramebufferTexture2DEXT; -extern PFNGLGENFRAMEBUFFERSEXTPROC glGenFramebuffersEXT; -extern PFNGLBINDRENDERBUFFEREXTPROC glBindRenderbufferEXT; -extern PFNGLDELETERENDERBUFFERSEXTPROC glDeleteRenderbuffersEXT; -extern PFNGLGENRENDERBUFFERSEXTPROC glGenRenderbuffersEXT; -extern PFNGLRENDERBUFFERSTORAGEEXTPROC glRenderbufferStorageEXT; -extern PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC glFramebufferRenderbufferEXT; -extern PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC glCheckFramebufferStatusEXT; -extern PFNGLDELETEFRAMEBUFFERSEXTPROC glDeleteFramebuffersEXT; -extern PFNGLBLITFRAMEBUFFEREXTPROC glBlitFramebufferEXT; #endif // !_WINDOWS #endif