Skip to content

Commit 5caead8

Browse files
cqundefineawesomekling
authored andcommitted
LibWeb: Allow WebGL getParameter when WEBGL_draw_buffers is enabled
When that extensions is enabled we should allow getting the parameter value of MAX_COLOR_ATTACHMENTS_WEBGL.
1 parent d4ac9fc commit 5caead8

File tree

6 files changed

+15
-2
lines changed

6 files changed

+15
-2
lines changed

Libraries/LibWeb/WebGL/WebGL2RenderingContext.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -257,6 +257,11 @@ bool WebGL2RenderingContext::oes_standard_derivatives_extension_enabled() const
257257
return false;
258258
}
259259

260+
bool WebGL2RenderingContext::webgl_draw_buffers_extension_enabled() const
261+
{
262+
return false;
263+
}
264+
260265
ReadonlySpan<WebIDL::UnsignedLong> WebGL2RenderingContext::enabled_compressed_texture_formats() const
261266
{
262267
return m_enabled_compressed_texture_formats;

Libraries/LibWeb/WebGL/WebGL2RenderingContext.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ class WebGL2RenderingContext final : public Bindings::PlatformObject
5454
virtual bool ext_texture_filter_anisotropic_extension_enabled() const override;
5555
virtual bool angle_instanced_arrays_extension_enabled() const override;
5656
virtual bool oes_standard_derivatives_extension_enabled() const override;
57+
virtual bool webgl_draw_buffers_extension_enabled() const override;
5758
virtual ReadonlySpan<WebIDL::UnsignedLong> enabled_compressed_texture_formats() const override;
5859

5960
private:

Libraries/LibWeb/WebGL/WebGLRenderingContext.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -295,6 +295,11 @@ bool WebGLRenderingContext::oes_standard_derivatives_extension_enabled() const
295295
return !!m_oes_standard_derivatives_object_extension;
296296
}
297297

298+
bool WebGLRenderingContext::webgl_draw_buffers_extension_enabled() const
299+
{
300+
return !!m_webgl_draw_buffers_extension;
301+
}
302+
298303
ReadonlySpan<WebIDL::UnsignedLong> WebGLRenderingContext::enabled_compressed_texture_formats() const
299304
{
300305
return m_enabled_compressed_texture_formats;

Libraries/LibWeb/WebGL/WebGLRenderingContext.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ class WebGLRenderingContext final : public Bindings::PlatformObject
5353
virtual bool ext_texture_filter_anisotropic_extension_enabled() const override;
5454
virtual bool angle_instanced_arrays_extension_enabled() const override;
5555
virtual bool oes_standard_derivatives_extension_enabled() const override;
56+
virtual bool webgl_draw_buffers_extension_enabled() const override;
5657
virtual ReadonlySpan<WebIDL::UnsignedLong> enabled_compressed_texture_formats() const override;
5758

5859
private:

Libraries/LibWeb/WebGL/WebGLRenderingContextBase.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ class WebGLRenderingContextBase {
4747
virtual bool ext_texture_filter_anisotropic_extension_enabled() const = 0;
4848
virtual bool angle_instanced_arrays_extension_enabled() const = 0;
4949
virtual bool oes_standard_derivatives_extension_enabled() const = 0;
50+
virtual bool webgl_draw_buffers_extension_enabled() const = 0;
5051
virtual ReadonlySpan<WebIDL::UnsignedLong> enabled_compressed_texture_formats() const = 0;
5152

5253
template<typename T>

Libraries/LibWeb/WebGL/WebGLRenderingContextImpl.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1246,8 +1246,8 @@ JS::Value WebGLRenderingContextImpl::get_parameter(WebIDL::UnsignedLong pname)
12461246
set_error(GL_INVALID_ENUM);
12471247
return JS::js_null();
12481248
}
1249-
case GL_MAX_COLOR_ATTACHMENTS: {
1250-
if (m_context->webgl_version() == OpenGLContext::WebGLVersion::WebGL2) { // FIXME: Allow this code path for MAX_COLOR_ATTACHMENTS_WEBGL
1249+
case GL_MAX_COLOR_ATTACHMENTS: { // NOTE: This has the same value as MAX_COLOR_ATTACHMENTS_WEBGL
1250+
if (webgl_draw_buffers_extension_enabled() || m_context->webgl_version() == OpenGLContext::WebGLVersion::WebGL2) {
12511251
GLint result { 0 };
12521252
glGetIntegervRobustANGLE(GL_MAX_COLOR_ATTACHMENTS, 1, nullptr, &result);
12531253
return JS::Value(result);

0 commit comments

Comments
 (0)