Title: [276241] trunk/Source/WebCore
- Revision
- 276241
- Author
- [email protected]
- Date
- 2021-04-19 02:03:52 -0700 (Mon, 19 Apr 2021)
Log Message
Enable GL_ANGLE_instanced_arrays WebGL extension in WPE
https://bugs.webkit.org/show_bug.cgi?id=224438
Reviewed by Darin Adler.
Tested by WebGL WPT.
* html/canvas/ANGLEInstancedArrays.cpp:
(WebCore::ANGLEInstancedArrays::supported):
* platform/graphics/opengl/ExtensionsGLOpenGLES.cpp:
(WebCore::ExtensionsGLOpenGLES::supportsExtension):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (276240 => 276241)
--- trunk/Source/WebCore/ChangeLog 2021-04-19 08:39:04 UTC (rev 276240)
+++ trunk/Source/WebCore/ChangeLog 2021-04-19 09:03:52 UTC (rev 276241)
@@ -1,3 +1,17 @@
+2021-04-19 Imanol Fernandez <[email protected]>
+
+ Enable GL_ANGLE_instanced_arrays WebGL extension in WPE
+ https://bugs.webkit.org/show_bug.cgi?id=224438
+
+ Reviewed by Darin Adler.
+
+ Tested by WebGL WPT.
+
+ * html/canvas/ANGLEInstancedArrays.cpp:
+ (WebCore::ANGLEInstancedArrays::supported):
+ * platform/graphics/opengl/ExtensionsGLOpenGLES.cpp:
+ (WebCore::ExtensionsGLOpenGLES::supportsExtension):
+
2021-04-19 Felipe Erias <[email protected]>
[css-flexbox] Table layout disregards overriding height
Modified: trunk/Source/WebCore/html/canvas/ANGLEInstancedArrays.cpp (276240 => 276241)
--- trunk/Source/WebCore/html/canvas/ANGLEInstancedArrays.cpp 2021-04-19 08:39:04 UTC (rev 276240)
+++ trunk/Source/WebCore/html/canvas/ANGLEInstancedArrays.cpp 2021-04-19 09:03:52 UTC (rev 276241)
@@ -28,7 +28,7 @@
#if ENABLE(WEBGL)
#include "ANGLEInstancedArrays.h"
-#if PLATFORM(GTK) || USE(ANGLE)
+#if PLATFORM(GTK) || USE(ANGLE) || PLATFORM(WPE)
#include "ExtensionsGL.h"
#endif
@@ -55,7 +55,7 @@
bool ANGLEInstancedArrays::supported(WebGLRenderingContextBase& context)
{
-#if USE(ANGLE) || PLATFORM(GTK)
+#if USE(ANGLE) || PLATFORM(GTK) || PLATFORM(WPE)
return context.graphicsContextGL()->getExtensions().supports("GL_ANGLE_instanced_arrays");
#else
UNUSED_PARAM(context);
Modified: trunk/Source/WebCore/platform/graphics/opengl/ExtensionsGLOpenGLES.cpp (276240 => 276241)
--- trunk/Source/WebCore/platform/graphics/opengl/ExtensionsGLOpenGLES.cpp 2021-04-19 08:39:04 UTC (rev 276240)
+++ trunk/Source/WebCore/platform/graphics/opengl/ExtensionsGLOpenGLES.cpp 2021-04-19 09:03:52 UTC (rev 276241)
@@ -272,6 +272,27 @@
bool ExtensionsGLOpenGLES::supportsExtension(const String& name)
{
+ if (name == "GL_ANGLE_instanced_arrays") {
+ auto majorVersion = []() {
+ GLint version = 0;
+ ::glGetIntegerv(GL_MAJOR_VERSION, &version);
+ return version;
+ };
+
+ if (m_availableExtensions.contains(name)) {
+ m_glVertexAttribDivisorANGLE = reinterpret_cast<PFNGLVERTEXATTRIBDIVISORANGLEPROC>(eglGetProcAddress("glVertexAttribDivisorANGLE"));
+ m_glDrawArraysInstancedANGLE = reinterpret_cast<PFNGLDRAWARRAYSINSTANCEDANGLEPROC >(eglGetProcAddress("glDrawArraysInstancedANGLE"));
+ m_glDrawElementsInstancedANGLE = reinterpret_cast<PFNGLDRAWELEMENTSINSTANCEDANGLEPROC >(eglGetProcAddress("glDrawElementsInstancedANGLE"));
+ m_supportsANGLEinstancedArrays = true;
+ } else if (majorVersion() >= 3 || (m_availableExtensions.contains("GL_EXT_instanced_arrays") && m_availableExtensions.contains("GL_EXT_draw_instanced"))) {
+ m_glVertexAttribDivisorANGLE = ::glVertexAttribDivisor;
+ m_glDrawArraysInstancedANGLE = ::glDrawArraysInstanced;
+ m_glDrawElementsInstancedANGLE = ::glDrawElementsInstanced;
+ m_supportsANGLEinstancedArrays = true;
+ }
+ return m_supportsANGLEinstancedArrays;
+ }
+
if (m_availableExtensions.contains(name)) {
if (!m_supportsOESvertexArrayObject && name == "GL_OES_vertex_array_object") {
m_glBindVertexArrayOES = reinterpret_cast<PFNGLBINDVERTEXARRAYOESPROC>(eglGetProcAddress("glBindVertexArrayOES"));
@@ -288,11 +309,6 @@
m_glReadnPixelsEXT = reinterpret_cast<PFNGLREADNPIXELSEXTPROC>(eglGetProcAddress("glReadnPixelsEXT"));
m_glGetnUniformfvEXT = reinterpret_cast<PFNGLGETNUNIFORMFVEXTPROC>(eglGetProcAddress("glGetnUniformfvEXT"));
m_glGetnUniformivEXT = reinterpret_cast<PFNGLGETNUNIFORMIVEXTPROC>(eglGetProcAddress("glGetnUniformivEXT"));
- } else if (!m_supportsANGLEinstancedArrays && name == "GL_ANGLE_instanced_arrays") {
- m_glVertexAttribDivisorANGLE = reinterpret_cast<PFNGLVERTEXATTRIBDIVISORANGLEPROC>(eglGetProcAddress("glVertexAttribDivisorANGLE"));
- m_glDrawArraysInstancedANGLE = reinterpret_cast<PFNGLDRAWARRAYSINSTANCEDANGLEPROC >(eglGetProcAddress("glDrawArraysInstancedANGLE"));
- m_glDrawElementsInstancedANGLE = reinterpret_cast<PFNGLDRAWELEMENTSINSTANCEDANGLEPROC >(eglGetProcAddress("glDrawElementsInstancedANGLE"));
- m_supportsANGLEinstancedArrays = true;
} else if (name == "GL_EXT_draw_buffers") {
// FIXME: implement the support.
return false;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes