@@ -221,9 +221,6 @@ void FrameBuffer::setRenderTarget(RenderTarget* target, unsigned int index, GLen
221221
222222 // Restore the FBO binding
223223 GL_ASSERT ( glBindFramebuffer (GL_FRAMEBUFFER, _currentFrameBuffer->_handle ) );
224-
225- // FIXME: Without this, setDepthStencilTarget will fail
226- glGetError ();
227224 }
228225}
229226
@@ -261,14 +258,21 @@ void FrameBuffer::setDepthStencilTarget(DepthStencilTarget* target)
261258 GL_ASSERT ( glBindFramebuffer (GL_FRAMEBUFFER, _handle) );
262259
263260 // Attach the render buffer to the framebuffer
264- GL_ASSERT ( glFramebufferRenderbuffer (GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, _depthStencilTarget->_depthBuffer ) );
265261 if (target->isPacked ())
266262 {
267- GL_ASSERT ( glFramebufferRenderbuffer (GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT , GL_RENDERBUFFER, _depthStencilTarget->_depthBuffer ) );
263+ GL_ASSERT ( glFramebufferRenderbuffer (GL_FRAMEBUFFER, GL_DEPTH_STENCIL_ATTACHMENT , GL_RENDERBUFFER, _depthStencilTarget->_depthBuffer ) );
268264 }
269265 else if (target->getFormat () == DepthStencilTarget::DEPTH_STENCIL)
270266 {
267+ #ifdef __EMSCRIPTEN__
268+ GP_WARN (" Unexpected status %d %zu %zu" , target->isPacked (), _depthStencilTarget->_depthBuffer , _depthStencilTarget->_stencilBuffer );
269+ GL_ASSERT ( glFramebufferRenderbuffer (GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, _depthStencilTarget->_depthBuffer ) );
271270 GL_ASSERT ( glFramebufferRenderbuffer (GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, GL_RENDERBUFFER, _depthStencilTarget->_stencilBuffer ) );
271+ #endif
272+ }
273+ else
274+ {
275+ GL_ASSERT ( glFramebufferRenderbuffer (GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, _depthStencilTarget->_depthBuffer ) );
272276 }
273277
274278 // Check the framebuffer is good to go.
0 commit comments