Chromium Code Reviews| Index: third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp |
| diff --git a/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp b/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp |
| index fbbb0602ea1fd632d5fb171a23f92ddd22a58240..db98cd6a64d608ba2855f96678dc6d0a0082a24a 100644 |
| --- a/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp |
| +++ b/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp |
| @@ -106,8 +106,8 @@ const GLenum kSupportedInternalFormatsStorage[] = { |
| GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC, |
| }; |
| -WebGL2RenderingContextBase::WebGL2RenderingContextBase(HTMLCanvasElement* passedCanvas, PassOwnPtr<WebGraphicsContext3D> context, const WebGLContextAttributes& requestedAttributes) |
| - : WebGLRenderingContextBase(passedCanvas, context, requestedAttributes) |
| +WebGL2RenderingContextBase::WebGL2RenderingContextBase(HTMLCanvasElement* passedCanvas, ScriptState* scriptState, PassOwnPtr<WebGraphicsContext3D> context, const WebGLContextAttributes& requestedAttributes) |
| + : WebGLRenderingContextBase(passedCanvas, scriptState, context, requestedAttributes) |
| { |
| m_supportedInternalFormatsStorage.insert(kSupportedInternalFormatsStorage, kSupportedInternalFormatsStorage + arraysize(kSupportedInternalFormatsStorage)); |
| } |
| @@ -2065,13 +2065,13 @@ WebGLVertexArrayObject* WebGL2RenderingContextBase::createVertexArray() |
| return o; |
| } |
| -void WebGL2RenderingContextBase::deleteVertexArray(WebGLVertexArrayObject* vertexArray) |
| +void WebGL2RenderingContextBase::deleteVertexArray(ScriptState* scriptState, WebGLVertexArrayObject* vertexArray) |
| { |
| if (isContextLost() || !vertexArray) |
| return; |
| if (!vertexArray->isDefaultObject() && vertexArray == m_boundVertexArrayObject) |
| - setBoundVertexArrayObject(nullptr); |
| + setBoundVertexArrayObject(scriptState, nullptr); |
| vertexArray->deleteObject(webContext()); |
| } |
| @@ -2087,7 +2087,7 @@ GLboolean WebGL2RenderingContextBase::isVertexArray(WebGLVertexArrayObject* vert |
| return webContext()->isVertexArrayOES(vertexArray->object()); |
| } |
| -void WebGL2RenderingContextBase::bindVertexArray(WebGLVertexArrayObject* vertexArray) |
| +void WebGL2RenderingContextBase::bindVertexArray(ScriptState* scriptState, WebGLVertexArrayObject* vertexArray) |
| { |
| if (isContextLost()) |
| return; |
| @@ -2101,14 +2101,14 @@ void WebGL2RenderingContextBase::bindVertexArray(WebGLVertexArrayObject* vertexA |
| webContext()->bindVertexArrayOES(objectOrZero(vertexArray)); |
| vertexArray->setHasEverBeenBound(); |
| - setBoundVertexArrayObject(vertexArray); |
| + setBoundVertexArrayObject(scriptState, vertexArray); |
| } else { |
| webContext()->bindVertexArrayOES(0); |
| - setBoundVertexArrayObject(nullptr); |
| + setBoundVertexArrayObject(scriptState, nullptr); |
| } |
| } |
| -void WebGL2RenderingContextBase::bindFramebuffer(GLenum target, WebGLFramebuffer* buffer) |
| +void WebGL2RenderingContextBase::bindFramebuffer(ScriptState* scriptState, GLenum target, WebGLFramebuffer* buffer) |
| { |
| bool deleted; |
| if (!checkObjectToBeBound("bindFramebuffer", buffer, deleted)) |
| @@ -2130,6 +2130,8 @@ void WebGL2RenderingContextBase::bindFramebuffer(GLenum target, WebGLFramebuffer |
| } |
| setFramebuffer(target, buffer); |
| + if (scriptState) |
| + preserveObjectWrapper(scriptState, this, "framebuffer", 0, buffer); |
| } |
| void WebGL2RenderingContextBase::deleteFramebuffer(WebGLFramebuffer* framebuffer) |
| @@ -2947,8 +2949,8 @@ void WebGL2RenderingContextBase::removeBoundBuffer(WebGLBuffer* buffer) |
| void WebGL2RenderingContextBase::restoreCurrentFramebuffer() |
| { |
| - bindFramebuffer(GL_DRAW_FRAMEBUFFER, m_framebufferBinding.get()); |
| - bindFramebuffer(GL_READ_FRAMEBUFFER, m_readFramebufferBinding.get()); |
| + bindFramebuffer(nullptr, GL_DRAW_FRAMEBUFFER, m_framebufferBinding.get()); |
| + bindFramebuffer(nullptr, GL_READ_FRAMEBUFFER, m_readFramebufferBinding.get()); |
|
haraken
2015/10/13 02:02:04
I'm wondering why we can't use m_scriptState.
|
| } |
| GLenum WebGL2RenderingContextBase::boundFramebufferColorFormat() |