Browse Source

Fix a GL error on OpenGL ES 3 when using multiple render targets.

Alex Szpakowski 9 years ago
parent
commit
d572c70883
1 changed files with 8 additions and 6 deletions
  1. 8 6
      src/modules/graphics/opengl/Canvas.cpp

+ 8 - 6
src/modules/graphics/opengl/Canvas.cpp

@@ -501,13 +501,15 @@ void Canvas::startGrab()
 			gl.setFramebufferSRGB(false);
 			gl.setFramebufferSRGB(false);
 	}
 	}
 
 
-	if (attachedCanvases.size() == 0)
-		return;
-
-	// Make sure the FBO is only using a single draw buffer.
-	glDrawBuffer(GL_COLOR_ATTACHMENT0);
+	if (attachedCanvases.size() > 0)
+	{
+		// Make sure the FBO is only using a single draw buffer.
+		// GLES3 only has glDrawBuffers, so we avoid using glDrawBuffer.
+		const GLenum buffers[] = {GL_COLOR_ATTACHMENT0};
+		glDrawBuffers(1, buffers);
 
 
-	attachedCanvases.clear();
+		attachedCanvases.clear();
+	}
 }
 }
 
 
 void Canvas::stopGrab(bool switchingToOtherCanvas)
 void Canvas::stopGrab(bool switchingToOtherCanvas)