Title: [234566] trunk
Revision
234566
Author
[email protected]
Date
2018-08-03 17:11:49 -0700 (Fri, 03 Aug 2018)

Log Message

WebGL 2 conformance: vertex_arrays/vertex_array_object.html
https://bugs.webkit.org/show_bug.cgi?id=188291
<rdar://problem/42792709>

Source/WebCore:

Patch by Justin Fan <[email protected]> on 2018-08-03
Reviewed by Dean Jackson.

Get https://www.khronos.org/registry/webgl/conformance-suites/2.0.0/conformance2/vertex_arrays/vertex-array-object.html
working on Mac OS and iOS, and check in the new test expectations.

Existing test: webgl/2.0.0/conformance2/vertex_arrays/vertex-array-object.html

* html/canvas/WebGL2RenderingContext.cpp:
(WebCore::WebGL2RenderingContext::initializeVertexArrayObjects):
(WebCore::WebGL2RenderingContext::deleteVertexArray):
* html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::deleteObject):
* html/canvas/WebGLVertexArrayObject.cpp:
(WebCore::WebGLVertexArrayObject::WebGLVertexArrayObject):
* platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
(WebCore::GraphicsContext3D::checkVaryingsPacking const):
(WebCore::GraphicsContext3D::createVertexArray):
(WebCore::GraphicsContext3D::deleteVertexArray):
(WebCore::GraphicsContext3D::isVertexArray):
(WebCore::GraphicsContext3D::bindVertexArray):

LayoutTests:

Get https://www.khronos.org/registry/webgl/conformance-suites/2.0.0/conformance2/vertex_arrays/vertex-array-object.html
working on Mac OS and iOS, and check in the new test expectations.

Patch by Justin Fan <[email protected]> on 2018-08-03
Reviewed by Dean Jackson.

* TestExpectations: No longer skipping vertex_arrays tests.
The following FAILed before this patch but are now expecting PASSes.
* webgl/2.0.0/conformance2/glsl3/array-as-return-value-expected.txt:
* webgl/2.0.0/conformance2/glsl3/array-assign-constructor-expected.txt:
* webgl/2.0.0/conformance2/glsl3/array-assign-expected.txt:
* webgl/2.0.0/conformance2/glsl3/array-complex-indexing-expected.txt:
* webgl/2.0.0/conformance2/glsl3/array-element-increment-expected.txt:
* webgl/2.0.0/conformance2/glsl3/array-equality-expected.txt:
* webgl/2.0.0/conformance2/glsl3/array-in-complex-_expression_-expected.txt:
* webgl/2.0.0/conformance2/glsl3/bool-type-cast-bug-uint-ivec-uvec-expected.txt:
* webgl/2.0.0/conformance2/glsl3/compare-structs-containing-arrays-expected.txt:
* webgl/2.0.0/conformance2/glsl3/const-array-init-expected.txt:
* webgl/2.0.0/conformance2/glsl3/frag-depth-expected.txt:
* webgl/2.0.0/conformance2/glsl3/loops-with-side-effects-expected.txt:
* webgl/2.0.0/conformance2/glsl3/no-attribute-vertex-shader-expected.txt:
* webgl/2.0.0/conformance2/glsl3/short-circuiting-in-loop-condition-expected.txt:
* webgl/2.0.0/conformance2/glsl3/tricky-loop-conditions-expected.txt:
* webgl/2.0.0/conformance2/glsl3/vector-dynamic-indexing-expected.txt:
* webgl/2.0.0/conformance2/glsl3/vector-dynamic-indexing-nv-driver-bug-expected.txt:

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (234565 => 234566)


--- trunk/LayoutTests/ChangeLog	2018-08-03 23:59:33 UTC (rev 234565)
+++ trunk/LayoutTests/ChangeLog	2018-08-04 00:11:49 UTC (rev 234566)
@@ -1,3 +1,34 @@
+2018-08-03  Justin Fan  <[email protected]>
+
+        WebGL 2 conformance: vertex_arrays/vertex_array_object.html
+        https://bugs.webkit.org/show_bug.cgi?id=188291
+        <rdar://problem/42792709>
+
+        Get https://www.khronos.org/registry/webgl/conformance-suites/2.0.0/conformance2/vertex_arrays/vertex-array-object.html 
+        working on Mac OS and iOS, and check in the new test expectations.
+
+        Reviewed by Dean Jackson.
+
+        * TestExpectations: No longer skipping vertex_arrays tests.
+        The following FAILed before this patch but are now expecting PASSes.
+        * webgl/2.0.0/conformance2/glsl3/array-as-return-value-expected.txt:
+        * webgl/2.0.0/conformance2/glsl3/array-assign-constructor-expected.txt:
+        * webgl/2.0.0/conformance2/glsl3/array-assign-expected.txt:
+        * webgl/2.0.0/conformance2/glsl3/array-complex-indexing-expected.txt:
+        * webgl/2.0.0/conformance2/glsl3/array-element-increment-expected.txt:
+        * webgl/2.0.0/conformance2/glsl3/array-equality-expected.txt:
+        * webgl/2.0.0/conformance2/glsl3/array-in-complex-_expression_-expected.txt:
+        * webgl/2.0.0/conformance2/glsl3/bool-type-cast-bug-uint-ivec-uvec-expected.txt:
+        * webgl/2.0.0/conformance2/glsl3/compare-structs-containing-arrays-expected.txt:
+        * webgl/2.0.0/conformance2/glsl3/const-array-init-expected.txt:
+        * webgl/2.0.0/conformance2/glsl3/frag-depth-expected.txt:
+        * webgl/2.0.0/conformance2/glsl3/loops-with-side-effects-expected.txt:
+        * webgl/2.0.0/conformance2/glsl3/no-attribute-vertex-shader-expected.txt:
+        * webgl/2.0.0/conformance2/glsl3/short-circuiting-in-loop-condition-expected.txt:
+        * webgl/2.0.0/conformance2/glsl3/tricky-loop-conditions-expected.txt:
+        * webgl/2.0.0/conformance2/glsl3/vector-dynamic-indexing-expected.txt:
+        * webgl/2.0.0/conformance2/glsl3/vector-dynamic-indexing-nv-driver-bug-expected.txt:
+
 2018-08-03  Ryan Haddad  <[email protected]>
 
         Skip imported/w3c/web-platform-tests/FileAPI/reading-data-section/filereader_abort.html.

Modified: trunk/LayoutTests/TestExpectations (234565 => 234566)


--- trunk/LayoutTests/TestExpectations	2018-08-03 23:59:33 UTC (rev 234565)
+++ trunk/LayoutTests/TestExpectations	2018-08-04 00:11:49 UTC (rev 234566)
@@ -2054,6 +2054,7 @@
 # All WebGL 1 and 2 tests for now
 webgl/2.0.0 [ Skip ]
 webgl/2.0.0/conformance2/glsl3 [ Pass ]
+webgl/2.0.0/conformance2/vertex_arrays [ Pass ]
 
 imported/w3c/web-platform-tests/css/css-display/run-in/run-in-contains-table-row-001.xht [ ImageOnlyFailure ]
 imported/w3c/web-platform-tests/css/css-text-decor/text-emphasis-style-008.html [ ImageOnlyFailure ]

Modified: trunk/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-as-return-value-expected.txt (234565 => 234566)


--- trunk/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-as-return-value-expected.txt	2018-08-03 23:59:33 UTC (rev 234565)
+++ trunk/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-as-return-value-expected.txt	2018-08-04 00:11:49 UTC (rev 234566)
@@ -1,5 +1,5 @@
 This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.
 
 Test: ../../resources/webgl_test_files/conformance2/glsl3/array-as-return-value.html
-FAIL
+PASS
 

Modified: trunk/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-assign-constructor-expected.txt (234565 => 234566)


--- trunk/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-assign-constructor-expected.txt	2018-08-03 23:59:33 UTC (rev 234565)
+++ trunk/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-assign-constructor-expected.txt	2018-08-04 00:11:49 UTC (rev 234566)
@@ -1,5 +1,5 @@
 This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.
 
 Test: ../../resources/webgl_test_files/conformance2/glsl3/array-assign-constructor.html
-FAIL
+PASS
 

Modified: trunk/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-assign-expected.txt (234565 => 234566)


--- trunk/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-assign-expected.txt	2018-08-03 23:59:33 UTC (rev 234565)
+++ trunk/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-assign-expected.txt	2018-08-04 00:11:49 UTC (rev 234566)
@@ -1,5 +1,5 @@
 This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.
 
 Test: ../../resources/webgl_test_files/conformance2/glsl3/array-assign.html
-FAIL
+PASS
 

Modified: trunk/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-complex-indexing-expected.txt (234565 => 234566)


--- trunk/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-complex-indexing-expected.txt	2018-08-03 23:59:33 UTC (rev 234565)
+++ trunk/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-complex-indexing-expected.txt	2018-08-04 00:11:49 UTC (rev 234566)
@@ -1,5 +1,5 @@
 This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.
 
 Test: ../../resources/webgl_test_files/conformance2/glsl3/array-complex-indexing.html
-FAIL
+PASS
 

Modified: trunk/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-element-increment-expected.txt (234565 => 234566)


--- trunk/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-element-increment-expected.txt	2018-08-03 23:59:33 UTC (rev 234565)
+++ trunk/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-element-increment-expected.txt	2018-08-04 00:11:49 UTC (rev 234566)
@@ -1,5 +1,5 @@
 This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.
 
 Test: ../../resources/webgl_test_files/conformance2/glsl3/array-element-increment.html
-FAIL
+PASS
 

Modified: trunk/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-equality-expected.txt (234565 => 234566)


--- trunk/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-equality-expected.txt	2018-08-03 23:59:33 UTC (rev 234565)
+++ trunk/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-equality-expected.txt	2018-08-04 00:11:49 UTC (rev 234566)
@@ -1,5 +1,5 @@
 This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.
 
 Test: ../../resources/webgl_test_files/conformance2/glsl3/array-equality.html
-FAIL
+PASS
 

Modified: trunk/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-in-complex-_expression_-expected.txt (234565 => 234566)


--- trunk/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-in-complex-_expression_-expected.txt	2018-08-03 23:59:33 UTC (rev 234565)
+++ trunk/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-in-complex-_expression_-expected.txt	2018-08-04 00:11:49 UTC (rev 234566)
@@ -1,5 +1,5 @@
 This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.
 
 Test: ../../resources/webgl_test_files/conformance2/glsl3/array-in-complex-_expression_.html
-FAIL
+PASS
 

Modified: trunk/LayoutTests/webgl/2.0.0/conformance2/glsl3/bool-type-cast-bug-uint-ivec-uvec-expected.txt (234565 => 234566)


--- trunk/LayoutTests/webgl/2.0.0/conformance2/glsl3/bool-type-cast-bug-uint-ivec-uvec-expected.txt	2018-08-03 23:59:33 UTC (rev 234565)
+++ trunk/LayoutTests/webgl/2.0.0/conformance2/glsl3/bool-type-cast-bug-uint-ivec-uvec-expected.txt	2018-08-04 00:11:49 UTC (rev 234566)
@@ -1,5 +1,5 @@
 This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.
 
 Test: ../../resources/webgl_test_files/conformance2/glsl3/bool-type-cast-bug-uint-ivec-uvec.html
-FAIL
+PASS
 

Modified: trunk/LayoutTests/webgl/2.0.0/conformance2/glsl3/compare-structs-containing-arrays-expected.txt (234565 => 234566)


--- trunk/LayoutTests/webgl/2.0.0/conformance2/glsl3/compare-structs-containing-arrays-expected.txt	2018-08-03 23:59:33 UTC (rev 234565)
+++ trunk/LayoutTests/webgl/2.0.0/conformance2/glsl3/compare-structs-containing-arrays-expected.txt	2018-08-04 00:11:49 UTC (rev 234566)
@@ -1,5 +1,5 @@
 This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.
 
 Test: ../../resources/webgl_test_files/conformance2/glsl3/compare-structs-containing-arrays.html
-FAIL
+PASS
 

Modified: trunk/LayoutTests/webgl/2.0.0/conformance2/glsl3/const-array-init-expected.txt (234565 => 234566)


--- trunk/LayoutTests/webgl/2.0.0/conformance2/glsl3/const-array-init-expected.txt	2018-08-03 23:59:33 UTC (rev 234565)
+++ trunk/LayoutTests/webgl/2.0.0/conformance2/glsl3/const-array-init-expected.txt	2018-08-04 00:11:49 UTC (rev 234566)
@@ -1,5 +1,5 @@
 This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.
 
 Test: ../../resources/webgl_test_files/conformance2/glsl3/const-array-init.html
-FAIL
+PASS
 

Modified: trunk/LayoutTests/webgl/2.0.0/conformance2/glsl3/frag-depth-expected.txt (234565 => 234566)


--- trunk/LayoutTests/webgl/2.0.0/conformance2/glsl3/frag-depth-expected.txt	2018-08-03 23:59:33 UTC (rev 234565)
+++ trunk/LayoutTests/webgl/2.0.0/conformance2/glsl3/frag-depth-expected.txt	2018-08-04 00:11:49 UTC (rev 234566)
@@ -1,5 +1,5 @@
 This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.
 
 Test: ../../resources/webgl_test_files/conformance2/glsl3/frag-depth.html
-FAIL
+PASS
 

Modified: trunk/LayoutTests/webgl/2.0.0/conformance2/glsl3/loops-with-side-effects-expected.txt (234565 => 234566)


--- trunk/LayoutTests/webgl/2.0.0/conformance2/glsl3/loops-with-side-effects-expected.txt	2018-08-03 23:59:33 UTC (rev 234565)
+++ trunk/LayoutTests/webgl/2.0.0/conformance2/glsl3/loops-with-side-effects-expected.txt	2018-08-04 00:11:49 UTC (rev 234566)
@@ -1,5 +1,5 @@
 This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.
 
 Test: ../../resources/webgl_test_files/conformance2/glsl3/loops-with-side-effects.html
-FAIL
+PASS
 

Modified: trunk/LayoutTests/webgl/2.0.0/conformance2/glsl3/no-attribute-vertex-shader-expected.txt (234565 => 234566)


--- trunk/LayoutTests/webgl/2.0.0/conformance2/glsl3/no-attribute-vertex-shader-expected.txt	2018-08-03 23:59:33 UTC (rev 234565)
+++ trunk/LayoutTests/webgl/2.0.0/conformance2/glsl3/no-attribute-vertex-shader-expected.txt	2018-08-04 00:11:49 UTC (rev 234566)
@@ -1,5 +1,5 @@
 This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.
 
 Test: ../../resources/webgl_test_files/conformance2/glsl3/no-attribute-vertex-shader.html
-FAIL
+PASS
 

Modified: trunk/LayoutTests/webgl/2.0.0/conformance2/glsl3/short-circuiting-in-loop-condition-expected.txt (234565 => 234566)


--- trunk/LayoutTests/webgl/2.0.0/conformance2/glsl3/short-circuiting-in-loop-condition-expected.txt	2018-08-03 23:59:33 UTC (rev 234565)
+++ trunk/LayoutTests/webgl/2.0.0/conformance2/glsl3/short-circuiting-in-loop-condition-expected.txt	2018-08-04 00:11:49 UTC (rev 234566)
@@ -1,5 +1,5 @@
 This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.
 
 Test: ../../resources/webgl_test_files/conformance2/glsl3/short-circuiting-in-loop-condition.html
-FAIL
+PASS
 

Modified: trunk/LayoutTests/webgl/2.0.0/conformance2/glsl3/tricky-loop-conditions-expected.txt (234565 => 234566)


--- trunk/LayoutTests/webgl/2.0.0/conformance2/glsl3/tricky-loop-conditions-expected.txt	2018-08-03 23:59:33 UTC (rev 234565)
+++ trunk/LayoutTests/webgl/2.0.0/conformance2/glsl3/tricky-loop-conditions-expected.txt	2018-08-04 00:11:49 UTC (rev 234566)
@@ -1,5 +1,5 @@
 This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.
 
 Test: ../../resources/webgl_test_files/conformance2/glsl3/tricky-loop-conditions.html
-FAIL
+PASS
 

Modified: trunk/LayoutTests/webgl/2.0.0/conformance2/glsl3/vector-dynamic-indexing-expected.txt (234565 => 234566)


--- trunk/LayoutTests/webgl/2.0.0/conformance2/glsl3/vector-dynamic-indexing-expected.txt	2018-08-03 23:59:33 UTC (rev 234565)
+++ trunk/LayoutTests/webgl/2.0.0/conformance2/glsl3/vector-dynamic-indexing-expected.txt	2018-08-04 00:11:49 UTC (rev 234566)
@@ -1,5 +1,5 @@
 This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.
 
 Test: ../../resources/webgl_test_files/conformance2/glsl3/vector-dynamic-indexing.html
-FAIL
+PASS
 

Modified: trunk/LayoutTests/webgl/2.0.0/conformance2/glsl3/vector-dynamic-indexing-nv-driver-bug-expected.txt (234565 => 234566)


--- trunk/LayoutTests/webgl/2.0.0/conformance2/glsl3/vector-dynamic-indexing-nv-driver-bug-expected.txt	2018-08-03 23:59:33 UTC (rev 234565)
+++ trunk/LayoutTests/webgl/2.0.0/conformance2/glsl3/vector-dynamic-indexing-nv-driver-bug-expected.txt	2018-08-04 00:11:49 UTC (rev 234566)
@@ -1,5 +1,5 @@
 This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.
 
 Test: ../../resources/webgl_test_files/conformance2/glsl3/vector-dynamic-indexing-nv-driver-bug.html
-FAIL
+PASS
 

Modified: trunk/Source/WebCore/ChangeLog (234565 => 234566)


--- trunk/Source/WebCore/ChangeLog	2018-08-03 23:59:33 UTC (rev 234565)
+++ trunk/Source/WebCore/ChangeLog	2018-08-04 00:11:49 UTC (rev 234566)
@@ -1,3 +1,30 @@
+2018-08-03  Justin Fan  <[email protected]>
+
+        WebGL 2 conformance: vertex_arrays/vertex_array_object.html
+        https://bugs.webkit.org/show_bug.cgi?id=188291
+        <rdar://problem/42792709>
+
+        Reviewed by Dean Jackson.
+
+        Get https://www.khronos.org/registry/webgl/conformance-suites/2.0.0/conformance2/vertex_arrays/vertex-array-object.html 
+        working on Mac OS and iOS, and check in the new test expectations.
+
+        Existing test: webgl/2.0.0/conformance2/vertex_arrays/vertex-array-object.html
+
+        * html/canvas/WebGL2RenderingContext.cpp:
+        (WebCore::WebGL2RenderingContext::initializeVertexArrayObjects):
+        (WebCore::WebGL2RenderingContext::deleteVertexArray):
+        * html/canvas/WebGLRenderingContextBase.cpp:
+        (WebCore::WebGLRenderingContextBase::deleteObject):
+        * html/canvas/WebGLVertexArrayObject.cpp:
+        (WebCore::WebGLVertexArrayObject::WebGLVertexArrayObject):
+        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
+        (WebCore::GraphicsContext3D::checkVaryingsPacking const):
+        (WebCore::GraphicsContext3D::createVertexArray):
+        (WebCore::GraphicsContext3D::deleteVertexArray):
+        (WebCore::GraphicsContext3D::isVertexArray):
+        (WebCore::GraphicsContext3D::bindVertexArray):
+
 2018-08-03  Sam Weinig  <[email protected]>
 
         Remove WebGPUObject

Modified: trunk/Source/WebCore/html/canvas/WebGL2RenderingContext.cpp (234565 => 234566)


--- trunk/Source/WebCore/html/canvas/WebGL2RenderingContext.cpp	2018-08-03 23:59:33 UTC (rev 234565)
+++ trunk/Source/WebCore/html/canvas/WebGL2RenderingContext.cpp	2018-08-04 00:11:49 UTC (rev 234566)
@@ -95,7 +95,11 @@
 {
     m_defaultVertexArrayObject = WebGLVertexArrayObject::create(*this, WebGLVertexArrayObject::Type::Default);
     addContextObject(*m_defaultVertexArrayObject);
+#if USE(OPENGL_ES)
     m_boundVertexArrayObject = m_defaultVertexArrayObject;
+#else
+    bindVertexArray(nullptr); // The default VAO was removed in OpenGL 3.3 but not from WebGL 2; bind the default for WebGL to use.
+#endif
     if (!isGLES2Compliant())
         initVertexAttrib0();
 }
@@ -1063,7 +1067,11 @@
         return;
     
     if (!arrayObject->isDefaultObject() && arrayObject == m_boundVertexArrayObject)
+#if USE(OPENGL_ES)
         setBoundVertexArrayObject(nullptr);
+#else
+        bindVertexArray(nullptr); // The default VAO was removed in OpenGL 3.3 but not from WebGL 2; bind the default for WebGL to use.
+#endif
     
     arrayObject->deleteObject(graphicsContext3D());
 }

Modified: trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp (234565 => 234566)


--- trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp	2018-08-03 23:59:33 UTC (rev 234565)
+++ trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp	2018-08-04 00:11:49 UTC (rev 234566)
@@ -1768,6 +1768,8 @@
         synthesizeGLError(GraphicsContext3D::INVALID_OPERATION, "delete", "object does not belong to this context");
         return false;
     }
+    if (object->isDeleted())
+        return false;
     if (object->object())
         // We need to pass in context here because we want
         // things in this context unbound.

Modified: trunk/Source/WebCore/html/canvas/WebGLVertexArrayObject.cpp (234565 => 234566)


--- trunk/Source/WebCore/html/canvas/WebGLVertexArrayObject.cpp	2018-08-03 23:59:33 UTC (rev 234565)
+++ trunk/Source/WebCore/html/canvas/WebGLVertexArrayObject.cpp	2018-08-04 00:11:49 UTC (rev 234566)
@@ -46,13 +46,13 @@
 WebGLVertexArrayObject::WebGLVertexArrayObject(WebGLRenderingContextBase& context, Type type)
     : WebGLVertexArrayObjectBase(context, type)
 {
-    switch (m_type) {
-    case Type::Default:
-        break;
-    case Type::User:
-        setObject(this->context()->graphicsContext3D()->createVertexArray());
-        break;
-    }
+#if USE(OPENGL_ES)
+    if (m_type != Type::User)
+        return;
+#else
+    ASSERT(type != Type::Default || !(this->context()->m_defaultVertexArrayObject));
+#endif
+    setObject(this->context()->graphicsContext3D()->createVertexArray());
 }
 
 void WebGLVertexArrayObject::deleteObjectImpl(GraphicsContext3D* context3d, Platform3DObject object)

Modified: trunk/Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp (234565 => 234566)


--- trunk/Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp	2018-08-03 23:59:33 UTC (rev 234565)
+++ trunk/Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp	2018-08-04 00:11:49 UTC (rev 234566)
@@ -399,7 +399,9 @@
         variables.push_back(varyingSymbol);
 
     GC3Dint maxVaryingVectors = 0;
-#if !USE(OPENGL_ES)
+#if USE(OPENGL_ES)
+    ::glGetIntegerv(MAX_VARYING_VECTORS, &maxVaryingVectors);
+#else
     if (m_isForWebGL2)
         ::glGetIntegerv(GL_MAX_VARYING_VECTORS, &maxVaryingVectors);
     else {
@@ -407,8 +409,6 @@
         ::glGetIntegerv(GL_MAX_VARYING_FLOATS, &maxVaryingFloats);
         maxVaryingVectors = maxVaryingFloats / 4;
     }
-#else
-    ::glGetIntegerv(MAX_VARYING_VECTORS, &maxVaryingVectors);
 #endif
     return sh::CheckVariablesWithinPackingLimits(maxVaryingVectors, variables);
 }
@@ -1525,10 +1525,8 @@
 {
     makeContextCurrent();
     GLuint array = 0;
-#if !USE(OPENGL_ES) && (PLATFORM(GTK) || PLATFORM(WIN))
-    glGenVertexArrays(1, &array);
-#elif defined(GL_APPLE_vertex_array_object) && GL_APPLE_vertex_array_object
-    glGenVertexArraysAPPLE(1, &array);
+#if (!USE(OPENGL_ES) && (PLATFORM(GTK) || PLATFORM(WIN))) || PLATFORM(COCOA)
+    ::glGenVertexArrays(1, &array);
 #endif
     return array;
 }
@@ -1539,10 +1537,8 @@
         return;
     
     makeContextCurrent();
-#if !USE(OPENGL_ES) && (PLATFORM(GTK) || PLATFORM(WIN))
-    glDeleteVertexArrays(1, &array);
-#elif defined(GL_APPLE_vertex_array_object) && GL_APPLE_vertex_array_object
-    glDeleteVertexArraysAPPLE(1, &array);
+#if (!USE(OPENGL_ES) && (PLATFORM(GTK) || PLATFORM(WIN))) || PLATFORM(COCOA)
+    ::glDeleteVertexArrays(1, &array);
 #endif
 }
 
@@ -1552,10 +1548,8 @@
         return GL_FALSE;
     
     makeContextCurrent();
-#if !USE(OPENGL_ES) && (PLATFORM(GTK) || PLATFORM(WIN))
-    return glIsVertexArray(array);
-#elif defined(GL_APPLE_vertex_array_object) && GL_APPLE_vertex_array_object
-    return glIsVertexArrayAPPLE(array);
+#if (!USE(OPENGL_ES) && (PLATFORM(GTK) || PLATFORM(WIN))) || PLATFORM(COCOA)
+    return ::glIsVertexArray(array);
 #endif
     return GL_FALSE;
 }
@@ -1563,12 +1557,8 @@
 void GraphicsContext3D::bindVertexArray(Platform3DObject array)
 {
     makeContextCurrent();
-#if !USE(OPENGL_ES) && (PLATFORM(GTK) || PLATFORM(WIN))
-    glBindVertexArray(array);
-#elif defined(GL_APPLE_vertex_array_object) && GL_APPLE_vertex_array_object
-    glBindVertexArrayAPPLE(array);
-#else
-    UNUSED_PARAM(array);
+#if (!USE(OPENGL_ES) && (PLATFORM(GTK) || PLATFORM(WIN))) || PLATFORM(COCOA)
+    ::glBindVertexArray(array);
 #endif
 }
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to