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 a7cfc3896670a4f65b47e5fde6b9d8f8536a7328..5e3176c6a0c86731c4090776db4c6e7743e885e7 100644 |
| --- a/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp |
| +++ b/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp |
| @@ -1715,7 +1715,7 @@ GLboolean WebGL2RenderingContextBase::isQuery(WebGLQuery* query) |
| return contextGL()->IsQueryEXT(query->object()); |
| } |
| -void WebGL2RenderingContextBase::beginQuery(GLenum target, WebGLQuery* query) |
| +void WebGL2RenderingContextBase::beginQuery(ScriptState* scriptState, GLenum target, WebGLQuery* query) |
| { |
| bool deleted; |
| if (!query) { |
| @@ -1764,6 +1764,7 @@ void WebGL2RenderingContextBase::beginQuery(GLenum target, WebGLQuery* query) |
| query->setTarget(target); |
| contextGL()->BeginQueryEXT(target, query->object()); |
| + preserveObjectWrapper(scriptState, this, V8HiddenValue::webglMisc(scriptState->isolate()), &m_miscWrappers, static_cast<uint32_t>(PreservedQuery), query); |
|
Ken Russell (switch to Gerrit)
2016/05/23 21:30:41
This isn't correct. It's legal to have two active
qiankun
2016/05/24 03:04:49
Done.
|
| } |
| void WebGL2RenderingContextBase::endQuery(GLenum target) |
| @@ -1901,7 +1902,7 @@ GLboolean WebGL2RenderingContextBase::isSampler(WebGLSampler* sampler) |
| return contextGL()->IsSampler(sampler->object()); |
| } |
| -void WebGL2RenderingContextBase::bindSampler(GLuint unit, WebGLSampler* sampler) |
| +void WebGL2RenderingContextBase::bindSampler(ScriptState* scriptState, GLuint unit, WebGLSampler* sampler) |
| { |
| if (isContextLost()) |
| return; |
| @@ -1922,6 +1923,8 @@ void WebGL2RenderingContextBase::bindSampler(GLuint unit, WebGLSampler* sampler) |
| m_samplerUnits[unit] = sampler; |
| contextGL()->BindSampler(unit, objectOrZero(sampler)); |
| + |
| + preserveObjectWrapper(scriptState, this, V8HiddenValue::webglMisc(scriptState->isolate()), &m_miscWrappers, unit, sampler); |
|
Ken Russell (switch to Gerrit)
2016/05/23 21:30:41
The m_miscWrappers cache must only be indexed by t
qiankun
2016/05/24 03:04:49
Done.
|
| } |
| void WebGL2RenderingContextBase::samplerParameter(WebGLSampler* sampler, GLenum pname, GLfloat paramf, GLint parami, bool isFloat) |
| @@ -2155,7 +2158,7 @@ GLboolean WebGL2RenderingContextBase::isTransformFeedback(WebGLTransformFeedback |
| return contextGL()->IsTransformFeedback(feedback->object()); |
| } |
| -void WebGL2RenderingContextBase::bindTransformFeedback(GLenum target, WebGLTransformFeedback* feedback) |
| +void WebGL2RenderingContextBase::bindTransformFeedback(ScriptState* scriptState, GLenum target, WebGLTransformFeedback* feedback) |
| { |
| bool deleted; |
| if (!checkObjectToBeBound("bindTransformFeedback", feedback, deleted)) |
| @@ -2178,8 +2181,11 @@ void WebGL2RenderingContextBase::bindTransformFeedback(GLenum target, WebGLTrans |
| m_transformFeedbackBinding = feedback; |
| contextGL()->BindTransformFeedback(target, objectOrZero(feedback)); |
| - if (feedback) |
| + if (feedback) { |
| feedback->setTarget(target); |
| + preserveObjectWrapper(scriptState, this, V8HiddenValue::webglMisc(scriptState->isolate()), &m_miscWrappers, static_cast<uint32_t>(PreservedTransformFeedback), feedback); |
| + } |
| + |
| } |
| void WebGL2RenderingContextBase::beginTransformFeedback(GLenum primitiveMode) |