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
}