Index: Source/core/html/canvas/WebGLDrawBuffers.cpp |
diff --git a/Source/core/html/canvas/WebGLDrawBuffers.cpp b/Source/core/html/canvas/WebGLDrawBuffers.cpp |
index e3d14f8a5621640238b37ea572f7e3caf8acfc64..655b188aa997e3b37cc215babd5e3d3a6c3f0323 100644 |
--- a/Source/core/html/canvas/WebGLDrawBuffers.cpp |
+++ b/Source/core/html/canvas/WebGLDrawBuffers.cpp |
@@ -63,35 +63,36 @@ const char* WebGLDrawBuffers::extensionName() |
void WebGLDrawBuffers::drawBuffersWEBGL(const Vector<GLenum>& buffers) |
{ |
- if (isLost()) |
+ WebGLExtensionScopedContext scoped(this); |
+ if (scoped.isLost()) |
return; |
GLsizei n = buffers.size(); |
const GLenum* bufs = buffers.data(); |
- if (!m_context->m_framebufferBinding) { |
+ if (!scoped.context()->m_framebufferBinding) { |
if (n != 1) { |
- m_context->synthesizeGLError(GL_INVALID_VALUE, "drawBuffersWEBGL", "more than one buffer"); |
+ scoped.context()->synthesizeGLError(GL_INVALID_VALUE, "drawBuffersWEBGL", "more than one buffer"); |
return; |
} |
if (bufs[0] != GL_BACK && bufs[0] != GL_NONE) { |
- m_context->synthesizeGLError(GL_INVALID_OPERATION, "drawBuffersWEBGL", "BACK or NONE"); |
+ scoped.context()->synthesizeGLError(GL_INVALID_OPERATION, "drawBuffersWEBGL", "BACK or NONE"); |
return; |
} |
// Because the backbuffer is simulated on all current WebKit ports, we need to change BACK to COLOR_ATTACHMENT0. |
GLenum value = (bufs[0] == GL_BACK) ? GL_COLOR_ATTACHMENT0 : GL_NONE; |
- m_context->webContext()->drawBuffersEXT(1, &value); |
- m_context->setBackDrawBuffer(bufs[0]); |
+ scoped.context()->webContext()->drawBuffersEXT(1, &value); |
+ scoped.context()->setBackDrawBuffer(bufs[0]); |
} else { |
- if (n > m_context->maxDrawBuffers()) { |
- m_context->synthesizeGLError(GL_INVALID_VALUE, "drawBuffersWEBGL", "more than max draw buffers"); |
+ if (n > scoped.context()->maxDrawBuffers()) { |
+ scoped.context()->synthesizeGLError(GL_INVALID_VALUE, "drawBuffersWEBGL", "more than max draw buffers"); |
return; |
} |
for (GLsizei i = 0; i < n; ++i) { |
if (bufs[i] != GL_NONE && bufs[i] != static_cast<GLenum>(GL_COLOR_ATTACHMENT0_EXT + i)) { |
- m_context->synthesizeGLError(GL_INVALID_OPERATION, "drawBuffersWEBGL", "COLOR_ATTACHMENTi_EXT or NONE"); |
+ scoped.context()->synthesizeGLError(GL_INVALID_OPERATION, "drawBuffersWEBGL", "COLOR_ATTACHMENTi_EXT or NONE"); |
return; |
} |
} |
- m_context->m_framebufferBinding->drawBuffers(buffers); |
+ scoped.context()->m_framebufferBinding->drawBuffers(buffers); |
} |
} |