1
0
mirror of https://github.com/blawar/GLideN64.git synced 2024-07-07 03:13:49 +00:00

Replace GL_DRAW_FRAMEBUFFER by GL_FRAMEBUFFER in GLES2 compatible code.

This commit is contained in:
Sergey Lipskiy 2014-04-10 21:41:09 +07:00
parent 90f8e4c2f3
commit 889b889847
2 changed files with 8 additions and 13 deletions

View File

@ -291,7 +291,7 @@ void FrameBuffer_SaveBuffer( u32 address, u16 format, u16 size, u16 width, u16 h
current = NULL; current = NULL;
} else { } else {
FrameBuffer_MoveToTop( current ); FrameBuffer_MoveToTop( current );
glBindFramebuffer(GL_DRAW_FRAMEBUFFER, current->fbo); glBindFramebuffer(GL_FRAMEBUFFER, current->fbo);
if (current->size != size) { if (current->size != size) {
f32 fillColor[4]; f32 fillColor[4];
gDPGetFillColor(fillColor); gDPGetFillColor(fillColor);
@ -342,10 +342,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); 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_MAG_FILTER, GL_LINEAR );
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR ); glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR );
glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); glBindFramebuffer(GL_FRAMEBUFFER, 0);
glGenFramebuffers(1, &current->fbo); glGenFramebuffers(1, &current->fbo);
glBindFramebuffer(GL_DRAW_FRAMEBUFFER, current->fbo); glBindFramebuffer(GL_FRAMEBUFFER, current->fbo);
glFramebufferTexture2D(GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, current->texture->glName, 0); glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, current->texture->glName, 0);
} }
FrameBuffer_AttachDepthBuffer(); FrameBuffer_AttachDepthBuffer();
@ -536,7 +536,7 @@ void FrameBuffer_RenderBuffer( u32 address )
u1 = (float)current->texture->width / (float)current->texture->realWidth; u1 = (float)current->texture->width / (float)current->texture->realWidth;
v1 = (float)current->texture->height / (float)current->texture->realHeight; v1 = (float)current->texture->height / (float)current->texture->realHeight;
glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); glBindFramebuffer(GL_FRAMEBUFFER, 0);
glDrawBuffer( GL_FRONT ); glDrawBuffer( GL_FRONT );
glBegin(GL_QUADS); glBegin(GL_QUADS);
glTexCoord2f( 0.0f, 0.0f ); glTexCoord2f( 0.0f, 0.0f );
@ -552,7 +552,7 @@ void FrameBuffer_RenderBuffer( u32 address )
glVertex2f( current->texture->width, (GLfloat)(OGL.height - current->texture->height) ); glVertex2f( current->texture->width, (GLfloat)(OGL.height - current->texture->height) );
glEnd(); glEnd();
glDrawBuffer( GL_BACK ); glDrawBuffer( GL_BACK );
glBindFramebuffer(GL_DRAW_FRAMEBUFFER, frameBuffer.top->fbo); glBindFramebuffer(GL_FRAMEBUFFER, frameBuffer.top->fbo);
#ifdef DEBUG #ifdef DEBUG
DebugMsg( DEBUG_HIGH | DEBUG_HANDLED, "FrameBuffer_RenderBuffer( 0x%08X ); \n", address); DebugMsg( DEBUG_HIGH | DEBUG_HANDLED, "FrameBuffer_RenderBuffer( 0x%08X ); \n", address);
#endif #endif
@ -560,8 +560,6 @@ void FrameBuffer_RenderBuffer( u32 address )
glLoadIdentity(); glLoadIdentity();
glPopAttrib(); glPopAttrib();
current->changed = FALSE;
gSP.changed |= CHANGED_TEXTURE | CHANGED_VIEWPORT; gSP.changed |= CHANGED_TEXTURE | CHANGED_VIEWPORT;
gDP.changed |= CHANGED_COMBINE; gDP.changed |= CHANGED_COMBINE;
@ -569,6 +567,7 @@ void FrameBuffer_RenderBuffer( u32 address )
} }
current = current->lower; current = current->lower;
} }
*/
} }
#endif #endif
@ -671,7 +670,6 @@ void FrameBufferToRDRAM::Init()
assert(checkFBO()); assert(checkFBO());
glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0);
#ifndef GLES2
// Generate and initialize Pixel Buffer Objects // Generate and initialize Pixel Buffer Objects
glGenBuffers(2, m_aPBO); glGenBuffers(2, m_aPBO);
glBindBuffer(GL_PIXEL_PACK_BUFFER, m_aPBO[0]); glBindBuffer(GL_PIXEL_PACK_BUFFER, m_aPBO[0]);
@ -679,7 +677,6 @@ void FrameBufferToRDRAM::Init()
glBindBuffer(GL_PIXEL_PACK_BUFFER, m_aPBO[1]); glBindBuffer(GL_PIXEL_PACK_BUFFER, m_aPBO[1]);
glBufferData(GL_PIXEL_PACK_BUFFER, 640*480*4, NULL, GL_DYNAMIC_DRAW); glBufferData(GL_PIXEL_PACK_BUFFER, 640*480*4, NULL, GL_DYNAMIC_DRAW);
glBindBuffer(GL_PIXEL_PACK_BUFFER, 0); glBindBuffer(GL_PIXEL_PACK_BUFFER, 0);
#endif // GLES2
} }
void FrameBufferToRDRAM::Destroy() { void FrameBufferToRDRAM::Destroy() {
@ -688,10 +685,8 @@ void FrameBufferToRDRAM::Destroy() {
m_FBO = 0; m_FBO = 0;
TextureCache_Remove( m_pTexture ); TextureCache_Remove( m_pTexture );
m_pTexture = NULL; m_pTexture = NULL;
#ifndef GLES2
glDeleteBuffers(2, m_aPBO); glDeleteBuffers(2, m_aPBO);
m_aPBO[0] = m_aPBO[1] = 0; m_aPBO[0] = m_aPBO[1] = 0;
#endif // GLES2
} }
void FrameBufferToRDRAM::CopyToRDRAM( u32 address, bool bSync ) { void FrameBufferToRDRAM::CopyToRDRAM( u32 address, bool bSync ) {

View File

@ -212,7 +212,7 @@ void InitGLSLCombiner()
} }
void DestroyGLSLCombiner() { void DestroyGLSLCombiner() {
glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); glBindFramebuffer(GL_FRAMEBUFFER, 0);
#ifndef GLES2 #ifndef GLES2
DestroyZlutTexture(); DestroyZlutTexture();