diff options
Diffstat (limited to 'chromium/third_party/blink/renderer/modules/webgl/webgl2_rendering_context_base.cc')
-rw-r--r-- | chromium/third_party/blink/renderer/modules/webgl/webgl2_rendering_context_base.cc | 111 |
1 files changed, 64 insertions, 47 deletions
diff --git a/chromium/third_party/blink/renderer/modules/webgl/webgl2_rendering_context_base.cc b/chromium/third_party/blink/renderer/modules/webgl/webgl2_rendering_context_base.cc index 133cfbeeb9e..04915cb1372 100644 --- a/chromium/third_party/blink/renderer/modules/webgl/webgl2_rendering_context_base.cc +++ b/chromium/third_party/blink/renderer/modules/webgl/webgl2_rendering_context_base.cc @@ -487,12 +487,12 @@ ScriptValue WebGL2RenderingContextBase::getInternalformatParameter( GLenum internalformat, GLenum pname) { if (isContextLost()) - return ScriptValue::CreateNull(script_state); + return ScriptValue::CreateNull(script_state->GetIsolate()); if (target != GL_RENDERBUFFER) { SynthesizeGLError(GL_INVALID_ENUM, "getInternalformatParameter", "invalid target"); - return ScriptValue::CreateNull(script_state); + return ScriptValue::CreateNull(script_state->GetIsolate()); } switch (internalformat) { @@ -549,13 +549,13 @@ ScriptValue WebGL2RenderingContextBase::getInternalformatParameter( SynthesizeGLError(GL_INVALID_ENUM, "getInternalformatParameter", "invalid internalformat when EXT_color_buffer_float " "is not enabled"); - return ScriptValue::CreateNull(script_state); + return ScriptValue::CreateNull(script_state->GetIsolate()); } break; default: SynthesizeGLError(GL_INVALID_ENUM, "getInternalformatParameter", "invalid internalformat"); - return ScriptValue::CreateNull(script_state); + return ScriptValue::CreateNull(script_state->GetIsolate()); } switch (pname) { @@ -577,7 +577,7 @@ ScriptValue WebGL2RenderingContextBase::getInternalformatParameter( default: SynthesizeGLError(GL_INVALID_ENUM, "getInternalformatParameter", "invalid parameter name"); - return ScriptValue::CreateNull(script_state); + return ScriptValue::CreateNull(script_state->GetIsolate()); } } @@ -3935,7 +3935,7 @@ ScriptValue WebGL2RenderingContextBase::getQuery(ScriptState* script_state, GLenum target, GLenum pname) { if (isContextLost()) - return ScriptValue::CreateNull(script_state); + return ScriptValue::CreateNull(script_state->GetIsolate()); if (ExtensionEnabled(kEXTDisjointTimerQueryWebGL2Name)) { if (pname == GL_QUERY_COUNTER_BITS_EXT) { @@ -3946,23 +3946,23 @@ ScriptValue WebGL2RenderingContextBase::getQuery(ScriptState* script_state, } SynthesizeGLError(GL_INVALID_ENUM, "getQuery", "invalid target/pname combination"); - return ScriptValue::CreateNull(script_state); + return ScriptValue::CreateNull(script_state->GetIsolate()); } if (target == GL_TIME_ELAPSED_EXT && pname == GL_CURRENT_QUERY) { return current_elapsed_query_ ? WebGLAny(script_state, current_elapsed_query_) - : ScriptValue::CreateNull(script_state); + : ScriptValue::CreateNull(script_state->GetIsolate()); } if (target == GL_TIMESTAMP_EXT && pname == GL_CURRENT_QUERY) { - return ScriptValue::CreateNull(script_state); + return ScriptValue::CreateNull(script_state->GetIsolate()); } } if (pname != GL_CURRENT_QUERY) { SynthesizeGLError(GL_INVALID_ENUM, "getQuery", "invalid parameter name"); - return ScriptValue::CreateNull(script_state); + return ScriptValue::CreateNull(script_state->GetIsolate()); } switch (target) { @@ -3977,9 +3977,9 @@ ScriptValue WebGL2RenderingContextBase::getQuery(ScriptState* script_state, current_transform_feedback_primitives_written_query_); default: SynthesizeGLError(GL_INVALID_ENUM, "getQuery", "invalid target"); - return ScriptValue::CreateNull(script_state); + return ScriptValue::CreateNull(script_state->GetIsolate()); } - return ScriptValue::CreateNull(script_state); + return ScriptValue::CreateNull(script_state->GetIsolate()); } ScriptValue WebGL2RenderingContextBase::getQueryParameter( @@ -3987,21 +3987,21 @@ ScriptValue WebGL2RenderingContextBase::getQueryParameter( WebGLQuery* query, GLenum pname) { if (!ValidateWebGLObject("getQueryParameter", query)) - return ScriptValue::CreateNull(script_state); + return ScriptValue::CreateNull(script_state->GetIsolate()); // Query is non-null at this point. if (!query->GetTarget()) { SynthesizeGLError(GL_INVALID_OPERATION, "getQueryParameter", "'query' is not a query object yet, since it has't been " "used by beginQuery"); - return ScriptValue::CreateNull(script_state); + return ScriptValue::CreateNull(script_state->GetIsolate()); } if (query == current_boolean_occlusion_query_ || query == current_transform_feedback_primitives_written_query_ || query == current_elapsed_query_) { SynthesizeGLError(GL_INVALID_OPERATION, "getQueryParameter", "query is currently active"); - return ScriptValue::CreateNull(script_state); + return ScriptValue::CreateNull(script_state->GetIsolate()); } switch (pname) { @@ -4016,7 +4016,7 @@ ScriptValue WebGL2RenderingContextBase::getQueryParameter( default: SynthesizeGLError(GL_INVALID_ENUM, "getQueryParameter", "invalid parameter name"); - return ScriptValue::CreateNull(script_state); + return ScriptValue::CreateNull(script_state->GetIsolate()); } } @@ -4152,6 +4152,13 @@ void WebGL2RenderingContextBase::SamplerParameter(WebGLSampler* sampler, return; } break; + case GL_TEXTURE_MAX_ANISOTROPY_EXT: + if (!ExtensionEnabled(kEXTTextureFilterAnisotropicName)) { + SynthesizeGLError(GL_INVALID_ENUM, "samplerParameter", + "EXT_texture_filter_anisotropic not enabled"); + return; + } + break; default: SynthesizeGLError(GL_INVALID_ENUM, "samplerParameter", "invalid parameter name"); @@ -4182,7 +4189,7 @@ ScriptValue WebGL2RenderingContextBase::getSamplerParameter( WebGLSampler* sampler, GLenum pname) { if (!ValidateWebGLObject("getSamplerParameter", sampler)) - return ScriptValue::CreateNull(script_state); + return ScriptValue::CreateNull(script_state->GetIsolate()); switch (pname) { case GL_TEXTURE_COMPARE_FUNC: @@ -4202,10 +4209,20 @@ ScriptValue WebGL2RenderingContextBase::getSamplerParameter( ContextGL()->GetSamplerParameterfv(ObjectOrZero(sampler), pname, &value); return WebGLAny(script_state, value); } + case GL_TEXTURE_MAX_ANISOTROPY_EXT: { + if (!ExtensionEnabled(kEXTTextureFilterAnisotropicName)) { + SynthesizeGLError(GL_INVALID_ENUM, "samplerParameter", + "EXT_texture_filter_anisotropic not enabled"); + return ScriptValue::CreateNull(script_state->GetIsolate()); + } + GLfloat value = 0.f; + ContextGL()->GetSamplerParameterfv(ObjectOrZero(sampler), pname, &value); + return WebGLAny(script_state, value); + } default: SynthesizeGLError(GL_INVALID_ENUM, "getSamplerParameter", "invalid parameter name"); - return ScriptValue::CreateNull(script_state); + return ScriptValue::CreateNull(script_state->GetIsolate()); } } @@ -4297,7 +4314,7 @@ ScriptValue WebGL2RenderingContextBase::getSyncParameter( WebGLSync* sync, GLenum pname) { if (!ValidateWebGLObject("getSyncParameter", sync)) - return ScriptValue::CreateNull(script_state); + return ScriptValue::CreateNull(script_state->GetIsolate()); switch (pname) { case GL_OBJECT_TYPE: @@ -4310,7 +4327,7 @@ ScriptValue WebGL2RenderingContextBase::getSyncParameter( default: SynthesizeGLError(GL_INVALID_ENUM, "getSyncParameter", "invalid parameter name"); - return ScriptValue::CreateNull(script_state); + return ScriptValue::CreateNull(script_state->GetIsolate()); } } @@ -4644,7 +4661,7 @@ ScriptValue WebGL2RenderingContextBase::getIndexedParameter( GLenum target, GLuint index) { if (isContextLost()) - return ScriptValue::CreateNull(script_state); + return ScriptValue::CreateNull(script_state->GetIsolate()); switch (target) { case GL_TRANSFORM_FEEDBACK_BUFFER_BINDING: { @@ -4653,7 +4670,7 @@ ScriptValue WebGL2RenderingContextBase::getIndexedParameter( index, &buffer)) { SynthesizeGLError(GL_INVALID_VALUE, "getIndexedParameter", "index out of range"); - return ScriptValue::CreateNull(script_state); + return ScriptValue::CreateNull(script_state->GetIsolate()); } return WebGLAny(script_state, buffer); } @@ -4661,7 +4678,7 @@ ScriptValue WebGL2RenderingContextBase::getIndexedParameter( if (index >= bound_indexed_uniform_buffers_.size()) { SynthesizeGLError(GL_INVALID_VALUE, "getIndexedParameter", "index out of range"); - return ScriptValue::CreateNull(script_state); + return ScriptValue::CreateNull(script_state->GetIsolate()); } return WebGLAny(script_state, bound_indexed_uniform_buffers_[index].Get()); @@ -4676,7 +4693,7 @@ ScriptValue WebGL2RenderingContextBase::getIndexedParameter( default: SynthesizeGLError(GL_INVALID_ENUM, "getIndexedParameter", "invalid parameter name"); - return ScriptValue::CreateNull(script_state); + return ScriptValue::CreateNull(script_state->GetIsolate()); } } @@ -4701,7 +4718,7 @@ ScriptValue WebGL2RenderingContextBase::getActiveUniforms( const Vector<GLuint>& uniform_indices, GLenum pname) { if (!ValidateWebGLProgramOrShader("getActiveUniforms", program)) - return ScriptValue::CreateNull(script_state); + return ScriptValue::CreateNull(script_state->GetIsolate()); enum ReturnType { kEnumType, kUnsignedIntType, kIntType, kBoolType }; @@ -4725,7 +4742,7 @@ ScriptValue WebGL2RenderingContextBase::getActiveUniforms( default: SynthesizeGLError(GL_INVALID_ENUM, "getActiveUniforms", "invalid parameter name"); - return ScriptValue::CreateNull(script_state); + return ScriptValue::CreateNull(script_state->GetIsolate()); } GLint active_uniforms = -1; @@ -4738,7 +4755,7 @@ ScriptValue WebGL2RenderingContextBase::getActiveUniforms( if (index >= active_uniforms_unsigned) { SynthesizeGLError(GL_INVALID_VALUE, "getActiveUniforms", "uniform index greater than ACTIVE_UNIFORMS"); - return ScriptValue::CreateNull(script_state); + return ScriptValue::CreateNull(script_state->GetIsolate()); } } @@ -4770,7 +4787,7 @@ ScriptValue WebGL2RenderingContextBase::getActiveUniforms( } default: NOTREACHED(); - return ScriptValue::CreateNull(script_state); + return ScriptValue::CreateNull(script_state->GetIsolate()); } } @@ -4813,11 +4830,11 @@ ScriptValue WebGL2RenderingContextBase::getActiveUniformBlockParameter( GLuint uniform_block_index, GLenum pname) { if (!ValidateWebGLProgramOrShader("getActiveUniformBlockParameter", program)) - return ScriptValue::CreateNull(script_state); + return ScriptValue::CreateNull(script_state->GetIsolate()); if (!ValidateUniformBlockIndex("getActiveUniformBlockParameter", program, uniform_block_index)) - return ScriptValue::CreateNull(script_state); + return ScriptValue::CreateNull(script_state->GetIsolate()); switch (pname) { case GL_UNIFORM_BLOCK_BINDING: @@ -4852,7 +4869,7 @@ ScriptValue WebGL2RenderingContextBase::getActiveUniformBlockParameter( default: SynthesizeGLError(GL_INVALID_ENUM, "getActiveUniformBlockParameter", "invalid parameter name"); - return ScriptValue::CreateNull(script_state); + return ScriptValue::CreateNull(script_state->GetIsolate()); } } @@ -5016,7 +5033,7 @@ void WebGL2RenderingContextBase::deleteFramebuffer( ScriptValue WebGL2RenderingContextBase::getParameter(ScriptState* script_state, GLenum pname) { if (isContextLost()) - return ScriptValue::CreateNull(script_state); + return ScriptValue::CreateNull(script_state->GetIsolate()); switch (pname) { case GL_SHADING_LANGUAGE_VERSION: { return WebGLAny( @@ -5138,7 +5155,7 @@ ScriptValue WebGL2RenderingContextBase::getParameter(ScriptState* script_state, if (!transform_feedback_binding_->IsDefaultObject()) { return WebGLAny(script_state, transform_feedback_binding_.Get()); } - return ScriptValue::CreateNull(script_state); + return ScriptValue::CreateNull(script_state->GetIsolate()); case GL_TRANSFORM_FEEDBACK_PAUSED: return GetBooleanParameter(script_state, pname); case GL_UNIFORM_BUFFER_BINDING: @@ -5162,7 +5179,7 @@ ScriptValue WebGL2RenderingContextBase::getParameter(ScriptState* script_state, SynthesizeGLError(GL_INVALID_ENUM, "getParameter", "invalid parameter name, " "EXT_disjoint_timer_query_webgl2 not enabled"); - return ScriptValue::CreateNull(script_state); + return ScriptValue::CreateNull(script_state->GetIsolate()); case GL_GPU_DISJOINT_EXT: if (ExtensionEnabled(kEXTDisjointTimerQueryWebGL2Name)) { return GetBooleanParameter(script_state, GL_GPU_DISJOINT_EXT); @@ -5170,7 +5187,7 @@ ScriptValue WebGL2RenderingContextBase::getParameter(ScriptState* script_state, SynthesizeGLError(GL_INVALID_ENUM, "getParameter", "invalid parameter name, " "EXT_disjoint_timer_query_webgl2 not enabled"); - return ScriptValue::CreateNull(script_state); + return ScriptValue::CreateNull(script_state->GetIsolate()); default: return WebGLRenderingContextBase::getParameter(script_state, pname); @@ -5557,7 +5574,7 @@ ScriptValue WebGL2RenderingContextBase::getFramebufferAttachmentParameter( const char kFunctionName[] = "getFramebufferAttachmentParameter"; if (isContextLost() || !ValidateGetFramebufferAttachmentParameterFunc( kFunctionName, target, attachment)) - return ScriptValue::CreateNull(script_state); + return ScriptValue::CreateNull(script_state->GetIsolate()); WebGLFramebuffer* framebuffer_binding = GetFramebufferBinding(target); DCHECK(!framebuffer_binding || framebuffer_binding->Object()); @@ -5578,7 +5595,7 @@ ScriptValue WebGL2RenderingContextBase::getFramebufferAttachmentParameter( default: SynthesizeGLError(GL_INVALID_OPERATION, kFunctionName, "invalid parameter name"); - return ScriptValue::CreateNull(script_state); + return ScriptValue::CreateNull(script_state->GetIsolate()); } } switch (pname) { @@ -5612,17 +5629,17 @@ ScriptValue WebGL2RenderingContextBase::getFramebufferAttachmentParameter( return WebGLAny(script_state, 0); SynthesizeGLError(GL_INVALID_ENUM, kFunctionName, "invalid parameter name, OVR_multiview2 not enabled"); - return ScriptValue::CreateNull(script_state); + return ScriptValue::CreateNull(script_state->GetIsolate()); case GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR: if (ExtensionEnabled(kOVRMultiview2Name)) return WebGLAny(script_state, 0); SynthesizeGLError(GL_INVALID_ENUM, kFunctionName, "invalid parameter name, OVR_multiview2 not enabled"); - return ScriptValue::CreateNull(script_state); + return ScriptValue::CreateNull(script_state->GetIsolate()); default: SynthesizeGLError(GL_INVALID_ENUM, kFunctionName, "invalid parameter name"); - return ScriptValue::CreateNull(script_state); + return ScriptValue::CreateNull(script_state->GetIsolate()); } } @@ -5636,7 +5653,7 @@ ScriptValue WebGL2RenderingContextBase::getFramebufferAttachmentParameter( SynthesizeGLError( GL_INVALID_OPERATION, kFunctionName, "different objects bound to DEPTH_ATTACHMENT and STENCIL_ATTACHMENT"); - return ScriptValue::CreateNull(script_state); + return ScriptValue::CreateNull(script_state->GetIsolate()); } attachment_object = depth_attachment; } else { @@ -5648,11 +5665,11 @@ ScriptValue WebGL2RenderingContextBase::getFramebufferAttachmentParameter( case GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: return WebGLAny(script_state, GL_NONE); case GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: - return ScriptValue::CreateNull(script_state); + return ScriptValue::CreateNull(script_state->GetIsolate()); default: SynthesizeGLError(GL_INVALID_OPERATION, kFunctionName, "invalid parameter name"); - return ScriptValue::CreateNull(script_state); + return ScriptValue::CreateNull(script_state->GetIsolate()); } } DCHECK(attachment_object->IsTexture() || attachment_object->IsRenderbuffer()); @@ -5686,7 +5703,7 @@ ScriptValue WebGL2RenderingContextBase::getFramebufferAttachmentParameter( SynthesizeGLError( GL_INVALID_OPERATION, kFunctionName, "COMPONENT_TYPE can't be queried for DEPTH_STENCIL_ATTACHMENT"); - return ScriptValue::CreateNull(script_state); + return ScriptValue::CreateNull(script_state->GetIsolate()); } FALLTHROUGH; case GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING: { @@ -5700,7 +5717,7 @@ ScriptValue WebGL2RenderingContextBase::getFramebufferAttachmentParameter( if (!ExtensionEnabled(kOVRMultiview2Name)) { SynthesizeGLError(GL_INVALID_ENUM, kFunctionName, "invalid parameter name, OVR_multiview2 not enabled"); - return ScriptValue::CreateNull(script_state); + return ScriptValue::CreateNull(script_state->GetIsolate()); } GLint value = 0; ContextGL()->GetFramebufferAttachmentParameteriv(target, attachment, @@ -5711,7 +5728,7 @@ ScriptValue WebGL2RenderingContextBase::getFramebufferAttachmentParameter( break; } SynthesizeGLError(GL_INVALID_ENUM, kFunctionName, "invalid parameter name"); - return ScriptValue::CreateNull(script_state); + return ScriptValue::CreateNull(script_state->GetIsolate()); } void WebGL2RenderingContextBase::Trace(blink::Visitor* visitor) { @@ -5769,7 +5786,7 @@ ScriptValue WebGL2RenderingContextBase::getTexParameter( GLenum target, GLenum pname) { if (isContextLost() || !ValidateTextureBinding("getTexParameter", target)) - return ScriptValue::CreateNull(script_state); + return ScriptValue::CreateNull(script_state->GetIsolate()); switch (pname) { case GL_TEXTURE_WRAP_R: |