| 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 637d008527af4fef675b201885fcd8aec418fc50..b970d0e688c924920be62c46bf06977c016fefa7 100644
|
| --- a/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp
|
| +++ b/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp
|
| @@ -2051,13 +2051,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());
|
| }
|
| @@ -2073,7 +2073,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;
|
| @@ -2087,14 +2087,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))
|
| @@ -2116,6 +2116,8 @@ void WebGL2RenderingContextBase::bindFramebuffer(GLenum target, WebGLFramebuffer
|
| }
|
|
|
| setFramebuffer(target, buffer);
|
| + if (scriptState)
|
| + preserveObjectWrapper(scriptState, this, "framebuffer", 0, buffer);
|
| }
|
|
|
| void WebGL2RenderingContextBase::deleteFramebuffer(WebGLFramebuffer* framebuffer)
|
| @@ -2933,8 +2935,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());
|
| }
|
|
|
| GLenum WebGL2RenderingContextBase::boundFramebufferColorFormat()
|
|
|