FBStatus WebGLFramebuffer::CheckFramebufferStatus(nsCString* const out_info) const { if (mIsKnownFBComplete) return LOCAL_GL_FRAMEBUFFER_COMPLETE; FBStatus ret = PrecheckFramebufferStatus(out_info); if (ret != LOCAL_GL_FRAMEBUFFER_COMPLETE) return ret; // Looks good on our end. Let's ask the driver. mContext->MakeContextCurrent(); // Ok, attach our chosen flavor of {DEPTH, STENCIL, DEPTH_STENCIL}. FinalizeAttachments(); // TODO: This should not be unconditionally GL_FRAMEBUFFER. ret = mContext->gl->fCheckFramebufferStatus(LOCAL_GL_FRAMEBUFFER); if (ret == LOCAL_GL_FRAMEBUFFER_COMPLETE) { mIsKnownFBComplete = true; } else { out_info->AssignLiteral("Bad status according to the driver"); } return ret; }
FBStatus WebGLFramebuffer::CheckFramebufferStatus() const { if (mStatus != 0) return mStatus; mStatus = PrecheckFramebufferStatus().get(); if (mStatus != LOCAL_GL_FRAMEBUFFER_COMPLETE) return mStatus; // Looks good on our end. Let's ask the driver. mContext->MakeContextCurrent(); // Ok, attach our chosen flavor of {DEPTH, STENCIL, DEPTH_STENCIL}. FinalizeAttachments(); // TODO: This should not be unconditionally GL_FRAMEBUFFER. mStatus = mContext->gl->fCheckFramebufferStatus(LOCAL_GL_FRAMEBUFFER); return mStatus; }
FBStatus WebGLFramebuffer::CheckFramebufferStatus() const { if (mIsKnownFBComplete) return LOCAL_GL_FRAMEBUFFER_COMPLETE; FBStatus ret = PrecheckFramebufferStatus(); if (ret != LOCAL_GL_FRAMEBUFFER_COMPLETE) return ret; // Looks good on our end. Let's ask the driver. mContext->MakeContextCurrent(); // Ok, attach our chosen flavor of {DEPTH, STENCIL, DEPTH_STENCIL}. FinalizeAttachments(); // TODO: This should not be unconditionally GL_FRAMEBUFFER. ret = mContext->gl->fCheckFramebufferStatus(LOCAL_GL_FRAMEBUFFER); if (ret == LOCAL_GL_FRAMEBUFFER_COMPLETE) mIsKnownFBComplete = true; return ret; }