aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordavilla <davilla@4pi.com>2011-07-16 19:15:43 -0400
committerdavilla <davilla@4pi.com>2011-07-16 19:15:43 -0400
commitc9ca9715046b24cfbe0486125a1a401800bc5af6 (patch)
treec986d4678e2108477d3736a11d13bb8f8183cc8d
parent5070607efb19942c385463c5efcc2fefc92e1515 (diff)
[ios] added depthbuffer to gles for exciting things later on
-rw-r--r--xbmc/osx/atv2/XBMCEAGLView.h2
-rw-r--r--xbmc/osx/atv2/XBMCEAGLView.mm14
-rw-r--r--xbmc/osx/ios/XBMCEAGLView.h2
-rw-r--r--xbmc/osx/ios/XBMCEAGLView.mm12
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;
+ }
}
}
//--------------------------------------------------------------