From 599437b03783209fe4cd96cbc4d8934dcdd00ebc Mon Sep 17 00:00:00 2001 From: Pale Moon Date: Tue, 20 Sep 2016 02:45:35 +0200 Subject: [PATCH] Fix regression in WebGL depth/stencil attachments (e.g. shadow maps). --- dom/canvas/WebGLFramebuffer.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/dom/canvas/WebGLFramebuffer.cpp b/dom/canvas/WebGLFramebuffer.cpp index eef55251f2..6379e8863d 100644 --- a/dom/canvas/WebGLFramebuffer.cpp +++ b/dom/canvas/WebGLFramebuffer.cpp @@ -970,10 +970,15 @@ WebGLFramebuffer::FinalizeAttachments() const ColorAttachment(i).FinalizeAttachment(gl, LOCAL_GL_COLOR_ATTACHMENT0+i); } - DepthAttachment().FinalizeAttachment(gl, LOCAL_GL_DEPTH_ATTACHMENT); - StencilAttachment().FinalizeAttachment(gl, LOCAL_GL_STENCIL_ATTACHMENT); - DepthStencilAttachment().FinalizeAttachment(gl, - LOCAL_GL_DEPTH_STENCIL_ATTACHMENT); + if (DepthAttachment().IsDefined()) + DepthAttachment().FinalizeAttachment(gl, LOCAL_GL_DEPTH_ATTACHMENT); + + if (StencilAttachment().IsDefined()) + StencilAttachment().FinalizeAttachment(gl, LOCAL_GL_STENCIL_ATTACHMENT); + + if (DepthStencilAttachment().IsDefined()) + DepthStencilAttachment().FinalizeAttachment(gl, + LOCAL_GL_DEPTH_STENCIL_ATTACHMENT); FinalizeDrawAndReadBuffers(gl, ColorAttachment(0).IsDefined()); }