diff options
author | davilla <davilla@4pi.com> | 2011-07-16 19:15:43 -0400 |
---|---|---|
committer | davilla <davilla@4pi.com> | 2011-07-16 19:15:43 -0400 |
commit | c9ca9715046b24cfbe0486125a1a401800bc5af6 (patch) | |
tree | c986d4678e2108477d3736a11d13bb8f8183cc8d | |
parent | 5070607efb19942c385463c5efcc2fefc92e1515 (diff) |
[ios] added depthbuffer to gles for exciting things later on
-rw-r--r-- | xbmc/osx/atv2/XBMCEAGLView.h | 2 | ||||
-rw-r--r-- | xbmc/osx/atv2/XBMCEAGLView.mm | 14 | ||||
-rw-r--r-- | xbmc/osx/ios/XBMCEAGLView.h | 2 | ||||
-rw-r--r-- | xbmc/osx/ios/XBMCEAGLView.mm | 12 |
4 files changed, 25 insertions, 5 deletions
diff --git a/xbmc/osx/atv2/XBMCEAGLView.h b/xbmc/osx/atv2/XBMCEAGLView.h index cde6f2dfb8..873ac48a93 100644 --- a/xbmc/osx/atv2/XBMCEAGLView.h +++ b/xbmc/osx/atv2/XBMCEAGLView.h @@ -34,7 +34,7 @@ GLint framebufferWidth; GLint framebufferHeight; // The OpenGL ES names for the framebuffer and renderbuffer used to render to this view. - GLuint defaultFramebuffer, colorRenderbuffer; + GLuint defaultFramebuffer, colorRenderbuffer, depthRenderbuffer; // the shader program object GLuint program; // diff --git a/xbmc/osx/atv2/XBMCEAGLView.mm b/xbmc/osx/atv2/XBMCEAGLView.mm index 02d27270d4..aa4019b40e 100644 --- a/xbmc/osx/atv2/XBMCEAGLView.mm +++ b/xbmc/osx/atv2/XBMCEAGLView.mm @@ -146,9 +146,13 @@ [context renderbufferStorage:GL_RENDERBUFFER fromDrawable:(CAEAGLLayer *)self.layer]; glGetRenderbufferParameteriv(GL_RENDERBUFFER, GL_RENDERBUFFER_WIDTH, &framebufferWidth); glGetRenderbufferParameteriv(GL_RENDERBUFFER, GL_RENDERBUFFER_HEIGHT, &framebufferHeight); - glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, colorRenderbuffer); - + + glGenRenderbuffers(1, &depthRenderbuffer); + glBindRenderbuffer(GL_RENDERBUFFER, depthRenderbuffer); + glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT16, framebufferWidth, framebufferHeight); + glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, depthRenderbuffer); + if (glCheckFramebufferStatus(GL_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE) NSLog(@"Failed to make complete framebuffer object %x", glCheckFramebufferStatus(GL_FRAMEBUFFER)); } @@ -172,6 +176,12 @@ glDeleteRenderbuffers(1, &colorRenderbuffer); colorRenderbuffer = 0; } + + if (depthRenderbuffer) + { + glDeleteRenderbuffers(1, &depthRenderbuffer); + depthRenderbuffer = 0; + } } } //-------------------------------------------------------------- diff --git a/xbmc/osx/ios/XBMCEAGLView.h b/xbmc/osx/ios/XBMCEAGLView.h index 51368bbbd9..3cbcfea15e 100644 --- a/xbmc/osx/ios/XBMCEAGLView.h +++ b/xbmc/osx/ios/XBMCEAGLView.h @@ -34,7 +34,7 @@ GLint framebufferWidth; GLint framebufferHeight; // The OpenGL ES names for the framebuffer and renderbuffer used to render to this view. - GLuint defaultFramebuffer, colorRenderbuffer; + GLuint defaultFramebuffer, colorRenderbuffer, depthRenderbuffer; // the shader program object GLuint program; // diff --git a/xbmc/osx/ios/XBMCEAGLView.mm b/xbmc/osx/ios/XBMCEAGLView.mm index aed5173894..6b3c0c1930 100644 --- a/xbmc/osx/ios/XBMCEAGLView.mm +++ b/xbmc/osx/ios/XBMCEAGLView.mm @@ -151,8 +151,12 @@ [context renderbufferStorage:GL_RENDERBUFFER fromDrawable:(CAEAGLLayer *)self.layer]; glGetRenderbufferParameteriv(GL_RENDERBUFFER, GL_RENDERBUFFER_WIDTH, &framebufferWidth); glGetRenderbufferParameteriv(GL_RENDERBUFFER, GL_RENDERBUFFER_HEIGHT, &framebufferHeight); - glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, colorRenderbuffer); + + glGenRenderbuffers(1, &depthRenderbuffer); + glBindRenderbuffer(GL_RENDERBUFFER, depthRenderbuffer); + glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT16, framebufferWidth, framebufferHeight); + glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, depthRenderbuffer); if (glCheckFramebufferStatus(GL_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE) NSLog(@"Failed to make complete framebuffer object %x", glCheckFramebufferStatus(GL_FRAMEBUFFER)); @@ -177,6 +181,12 @@ glDeleteRenderbuffers(1, &colorRenderbuffer); colorRenderbuffer = 0; } + + if (depthRenderbuffer) + { + glDeleteRenderbuffers(1, &depthRenderbuffer); + depthRenderbuffer = 0; + } } } //-------------------------------------------------------------- |