// these a preprocess that generate some compile time constants.
// sanity check to make sure we can at least create an FBO from a POT texture
-
+
bool simpleFBOSuccess = fbo_test(fExts, 128, 128);
if (gPrintStartupSpew) {
if (!simpleFBOSuccess) {
if (fNPOTTextureSupport) {
fNPOTRenderTargetSupport = fbo_test(fExts, 200, 200);
}
-
+
if (gPrintStartupSpew) {
if (fNPOTTextureSupport) {
GrPrintf("NPOT textures supported\n");
return false;
}
- GrAssert(NULL != fCurrDrawState.fRenderTarget);
+ if (NULL == fCurrDrawState.fRenderTarget) {
+ return false;
+ }
+ flushRenderTarget();
+
const GrIRect& vp = ((GrGLRenderTarget*)fCurrDrawState.fRenderTarget)->viewport();
// Brian says that viewport rects are already upside down (grrrrr)
glBindRenderbuffer(GL_RENDERBUFFER, dsID);
glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_STENCIL, width, height);
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_STENCIL_ATTACHMENT, GL_RENDERBUFFER, dsID);
-
+ glViewport(0, 0, width, height);
+ glClearStencil(0);
+ glClear(GL_STENCIL_BUFFER_BIT);
+
GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER);
return GL_FRAMEBUFFER_COMPLETE == status;
}