From e784ea7205ba4245e51b99f8a58dadb388c66e65 Mon Sep 17 00:00:00 2001 From: Sergey Lipskiy Date: Tue, 29 Apr 2014 19:47:38 +0700 Subject: [PATCH] GLES2 fixes in frame/depth buffer initialization. --- DepthBuffer.cpp | 9 +++++++-- FrameBuffer.cpp | 2 +- OpenGL.cpp | 12 ++++++------ 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/DepthBuffer.cpp b/DepthBuffer.cpp index e8a35650..88ec29e5 100644 --- a/DepthBuffer.cpp +++ b/DepthBuffer.cpp @@ -181,10 +181,15 @@ void DepthBuffer_SetBuffer( u32 address ) if (config.frameBufferEmulation.enable) { glGenRenderbuffers(1, ¤t->renderbuf); glBindRenderbuffer(GL_RENDERBUFFER, current->renderbuf); +#ifndef GLES2 + const GLenum format = GL_DEPTH_COMPONENT; +#else + const GLenum format = GL_DEPTH_COMPONENT24_OES; +#endif if (pFrameBuffer != NULL) - glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT, pFrameBuffer->texture->realWidth, pFrameBuffer->texture->realHeight); + glRenderbufferStorage(GL_RENDERBUFFER, format, pFrameBuffer->texture->realWidth, pFrameBuffer->texture->realHeight); else - glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT, (u32)pow2(OGL.width), (u32)pow2(OGL.height)); + glRenderbufferStorage(GL_RENDERBUFFER, format, (u32)pow2(OGL.width), (u32)pow2(OGL.height)); } } diff --git a/FrameBuffer.cpp b/FrameBuffer.cpp index 7129db03..6dd37a73 100644 --- a/FrameBuffer.cpp +++ b/FrameBuffer.cpp @@ -410,7 +410,7 @@ void FrameBuffer_AttachDepthBuffer() if (depthBuffer.top->depth_texture == NULL) _initDepthTexture(); frameBuffer.top->pDepthBuffer = depthBuffer.top; - glFramebufferRenderbuffer(GL_DRAW_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, depthBuffer.top->renderbuf); + glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, depthBuffer.top->renderbuf); #ifndef GLES2 GLuint attachments[2] = { GL_COLOR_ATTACHMENT0, GL_DEPTH_ATTACHMENT }; glDrawBuffers(2, attachments); diff --git a/OpenGL.cpp b/OpenGL.cpp index 4e62e349..790506b9 100644 --- a/OpenGL.cpp +++ b/OpenGL.cpp @@ -1302,25 +1302,25 @@ void OGL_SwapBuffers() } bool checkFBO() { - GLenum e = glCheckFramebufferStatus(GL_DRAW_FRAMEBUFFER); + GLenum e = glCheckFramebufferStatus(GL_FRAMEBUFFER); switch (e) { // case GL_FRAMEBUFFER_UNDEFINED: // printf("FBO Undefined\n"); // break; case GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT : - printf("FBO Incomplete Attachment\n"); + LOG(LOG_ERROR, "[gles2GlideN64]: FBO Incomplete Attachment\n"); break; case GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT : - printf("FBO Missing Attachment\n"); + LOG(LOG_ERROR, "[gles2GlideN64]: FBO Missing Attachment\n"); break; // case GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER : // printf("FBO Incomplete Draw Buffer\n"); // break; case GL_FRAMEBUFFER_UNSUPPORTED : - printf("FBO Unsupported\n"); + LOG(LOG_ERROR, "[gles2GlideN64]: FBO Unsupported\n"); break; case GL_FRAMEBUFFER_COMPLETE: - printf("FBO OK\n"); + LOG(LOG_VERBOSE, "[gles2GlideN64]: FBO OK\n"); break; // case GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT: // printf("framebuffer FRAMEBUFFER_DIMENSIONS\n"); @@ -1329,7 +1329,7 @@ bool checkFBO() { // printf("framebuffer INCOMPLETE_FORMATS\n"); // break; default: - printf("FBO Problem?\n"); + LOG(LOG_ERROR, "[gles2GlideN64]: FBO Problem?\n"); } return e == GL_FRAMEBUFFER_COMPLETE; }