Title: [254350] trunk/Source/WebCore
Revision
254350
Author
[email protected]
Date
2020-01-10 10:50:35 -0800 (Fri, 10 Jan 2020)

Log Message

[WebGL] Add all remaining WebGL2 implementation functions to GraphicsContextGL
https://bugs.webkit.org/show_bug.cgi?id=206038
<rdar://problem/58459051>

Reviewed by Simon Fraser.

Add stubs for all the GraphicsContextGL methods that will be
necessary to implement WebGL2.

While here, rearrange the header file to mirror the way
WebGL2RenderingContext orders the methods, and mark all the
GraphicsContextGLOpenGL methods as final (rather than override).

* platform/graphics/GraphicsContextGL.h:
* platform/graphics/opengl/GraphicsContextGLOpenGL.h:
* platform/graphics/opengl/GraphicsContextGLOpenGLCommon.cpp:
(WebCore::GraphicsContextGLOpenGL::bufferData):
(WebCore::GraphicsContextGLOpenGL::bufferSubData):
(WebCore::GraphicsContextGLOpenGL::copyBufferSubData):
(WebCore::GraphicsContextGLOpenGL::getBufferSubData):
(WebCore::GraphicsContextGLOpenGL::mapBufferRange):
(WebCore::GraphicsContextGLOpenGL::unmapBuffer):
(WebCore::GraphicsContextGLOpenGL::blitFramebuffer):
(WebCore::GraphicsContextGLOpenGL::framebufferTextureLayer):
(WebCore::GraphicsContextGLOpenGL::invalidateFramebuffer):
(WebCore::GraphicsContextGLOpenGL::invalidateSubFramebuffer):
(WebCore::GraphicsContextGLOpenGL::readBuffer):
(WebCore::GraphicsContextGLOpenGL::getInternalformativ):
(WebCore::GraphicsContextGLOpenGL::renderbufferStorageMultisample):
(WebCore::GraphicsContextGLOpenGL::texStorage2D):
(WebCore::GraphicsContextGLOpenGL::texStorage3D):
(WebCore::GraphicsContextGLOpenGL::texImage3D):
(WebCore::GraphicsContextGLOpenGL::texSubImage3D):
(WebCore::GraphicsContextGLOpenGL::copyTexSubImage3D):
(WebCore::GraphicsContextGLOpenGL::compressedTexImage3D):
(WebCore::GraphicsContextGLOpenGL::compressedTexSubImage3D):
(WebCore::GraphicsContextGLOpenGL::getFragDataLocation):
(WebCore::GraphicsContextGLOpenGL::uniform1ui):
(WebCore::GraphicsContextGLOpenGL::uniform2ui):
(WebCore::GraphicsContextGLOpenGL::uniform3ui):
(WebCore::GraphicsContextGLOpenGL::uniform4ui):
(WebCore::GraphicsContextGLOpenGL::uniform1uiv):
(WebCore::GraphicsContextGLOpenGL::uniform2uiv):
(WebCore::GraphicsContextGLOpenGL::uniform3uiv):
(WebCore::GraphicsContextGLOpenGL::uniform4uiv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix2x3fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix3x2fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix2x4fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix4x2fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix3x4fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix4x3fv):
(WebCore::GraphicsContextGLOpenGL::vertexAttribI4i):
(WebCore::GraphicsContextGLOpenGL::vertexAttribI4iv):
(WebCore::GraphicsContextGLOpenGL::vertexAttribI4ui):
(WebCore::GraphicsContextGLOpenGL::vertexAttribI4uiv):
(WebCore::GraphicsContextGLOpenGL::vertexAttribIPointer):
(WebCore::GraphicsContextGLOpenGL::drawRangeElements):
(WebCore::GraphicsContextGLOpenGL::drawBuffers):
(WebCore::GraphicsContextGLOpenGL::clearBufferiv):
(WebCore::GraphicsContextGLOpenGL::clearBufferuiv):
(WebCore::GraphicsContextGLOpenGL::clearBufferfv):
(WebCore::GraphicsContextGLOpenGL::clearBufferfi):
(WebCore::GraphicsContextGLOpenGL::createQuery):
(WebCore::GraphicsContextGLOpenGL::deleteQuery):
(WebCore::GraphicsContextGLOpenGL::isQuery):
(WebCore::GraphicsContextGLOpenGL::beginQuery):
(WebCore::GraphicsContextGLOpenGL::endQuery):
(WebCore::GraphicsContextGLOpenGL::getQuery):
(WebCore::GraphicsContextGLOpenGL::glGetQueryObjectuiv):
(WebCore::GraphicsContextGLOpenGL::createSampler):
(WebCore::GraphicsContextGLOpenGL::deleteSampler):
(WebCore::GraphicsContextGLOpenGL::isSampler):
(WebCore::GraphicsContextGLOpenGL::bindSampler):
(WebCore::GraphicsContextGLOpenGL::samplerParameteri):
(WebCore::GraphicsContextGLOpenGL::samplerParameterf):
(WebCore::GraphicsContextGLOpenGL::getSamplerParameterfv):
(WebCore::GraphicsContextGLOpenGL::getSamplerParameteriv):
(WebCore::GraphicsContextGLOpenGL::fenceSync):
(WebCore::GraphicsContextGLOpenGL::isSync):
(WebCore::GraphicsContextGLOpenGL::deleteSync):
(WebCore::GraphicsContextGLOpenGL::clientWaitSync):
(WebCore::GraphicsContextGLOpenGL::waitSync):
(WebCore::GraphicsContextGLOpenGL::getSynciv):
(WebCore::GraphicsContextGLOpenGL::createTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::deleteTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::isTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::bindTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::beginTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::endTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::transformFeedbackVaryings):
(WebCore::GraphicsContextGLOpenGL::getTransformFeedbackVarying):
(WebCore::GraphicsContextGLOpenGL::pauseTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::resumeTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::bindBufferBase):
(WebCore::GraphicsContextGLOpenGL::bindBufferRange):
(WebCore::GraphicsContextGLOpenGL::getUniformIndices):
(WebCore::GraphicsContextGLOpenGL::getActiveUniforms):
(WebCore::GraphicsContextGLOpenGL::getUniformBlockIndex):
(WebCore::GraphicsContextGLOpenGL::getActiveUniformBlockiv):
(WebCore::GraphicsContextGLOpenGL::getActiveUniformBlockName):
(WebCore::GraphicsContextGLOpenGL::uniformBlockBinding):
(WebCore::GraphicsContextGLOpenGL::texImage2D):
(WebCore::GraphicsContextGLOpenGL::texSubImage2D):
(WebCore::GraphicsContextGLOpenGL::compressedTexImage2D):
(WebCore::GraphicsContextGLOpenGL::compressedTexSubImage2D):
(WebCore::GraphicsContextGLOpenGL::uniform1fv):
(WebCore::GraphicsContextGLOpenGL::uniform2fv):
(WebCore::GraphicsContextGLOpenGL::uniform3fv):
(WebCore::GraphicsContextGLOpenGL::uniform4fv):
(WebCore::GraphicsContextGLOpenGL::uniform1iv):
(WebCore::GraphicsContextGLOpenGL::uniform2iv):
(WebCore::GraphicsContextGLOpenGL::uniform3iv):
(WebCore::GraphicsContextGLOpenGL::uniform4iv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix2fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix3fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix4fv):
(WebCore::GraphicsContextGLOpenGL::readPixels):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (254349 => 254350)


--- trunk/Source/WebCore/ChangeLog	2020-01-10 18:49:51 UTC (rev 254349)
+++ trunk/Source/WebCore/ChangeLog	2020-01-10 18:50:35 UTC (rev 254350)
@@ -1,3 +1,123 @@
+2020-01-10  Dean Jackson  <[email protected]>
+
+        [WebGL] Add all remaining WebGL2 implementation functions to GraphicsContextGL
+        https://bugs.webkit.org/show_bug.cgi?id=206038
+        <rdar://problem/58459051>
+
+        Reviewed by Simon Fraser.
+
+        Add stubs for all the GraphicsContextGL methods that will be
+        necessary to implement WebGL2.
+
+        While here, rearrange the header file to mirror the way
+        WebGL2RenderingContext orders the methods, and mark all the
+        GraphicsContextGLOpenGL methods as final (rather than override).
+
+        * platform/graphics/GraphicsContextGL.h:
+        * platform/graphics/opengl/GraphicsContextGLOpenGL.h:
+        * platform/graphics/opengl/GraphicsContextGLOpenGLCommon.cpp:
+        (WebCore::GraphicsContextGLOpenGL::bufferData):
+        (WebCore::GraphicsContextGLOpenGL::bufferSubData):
+        (WebCore::GraphicsContextGLOpenGL::copyBufferSubData):
+        (WebCore::GraphicsContextGLOpenGL::getBufferSubData):
+        (WebCore::GraphicsContextGLOpenGL::mapBufferRange):
+        (WebCore::GraphicsContextGLOpenGL::unmapBuffer):
+        (WebCore::GraphicsContextGLOpenGL::blitFramebuffer):
+        (WebCore::GraphicsContextGLOpenGL::framebufferTextureLayer):
+        (WebCore::GraphicsContextGLOpenGL::invalidateFramebuffer):
+        (WebCore::GraphicsContextGLOpenGL::invalidateSubFramebuffer):
+        (WebCore::GraphicsContextGLOpenGL::readBuffer):
+        (WebCore::GraphicsContextGLOpenGL::getInternalformativ):
+        (WebCore::GraphicsContextGLOpenGL::renderbufferStorageMultisample):
+        (WebCore::GraphicsContextGLOpenGL::texStorage2D):
+        (WebCore::GraphicsContextGLOpenGL::texStorage3D):
+        (WebCore::GraphicsContextGLOpenGL::texImage3D):
+        (WebCore::GraphicsContextGLOpenGL::texSubImage3D):
+        (WebCore::GraphicsContextGLOpenGL::copyTexSubImage3D):
+        (WebCore::GraphicsContextGLOpenGL::compressedTexImage3D):
+        (WebCore::GraphicsContextGLOpenGL::compressedTexSubImage3D):
+        (WebCore::GraphicsContextGLOpenGL::getFragDataLocation):
+        (WebCore::GraphicsContextGLOpenGL::uniform1ui):
+        (WebCore::GraphicsContextGLOpenGL::uniform2ui):
+        (WebCore::GraphicsContextGLOpenGL::uniform3ui):
+        (WebCore::GraphicsContextGLOpenGL::uniform4ui):
+        (WebCore::GraphicsContextGLOpenGL::uniform1uiv):
+        (WebCore::GraphicsContextGLOpenGL::uniform2uiv):
+        (WebCore::GraphicsContextGLOpenGL::uniform3uiv):
+        (WebCore::GraphicsContextGLOpenGL::uniform4uiv):
+        (WebCore::GraphicsContextGLOpenGL::uniformMatrix2x3fv):
+        (WebCore::GraphicsContextGLOpenGL::uniformMatrix3x2fv):
+        (WebCore::GraphicsContextGLOpenGL::uniformMatrix2x4fv):
+        (WebCore::GraphicsContextGLOpenGL::uniformMatrix4x2fv):
+        (WebCore::GraphicsContextGLOpenGL::uniformMatrix3x4fv):
+        (WebCore::GraphicsContextGLOpenGL::uniformMatrix4x3fv):
+        (WebCore::GraphicsContextGLOpenGL::vertexAttribI4i):
+        (WebCore::GraphicsContextGLOpenGL::vertexAttribI4iv):
+        (WebCore::GraphicsContextGLOpenGL::vertexAttribI4ui):
+        (WebCore::GraphicsContextGLOpenGL::vertexAttribI4uiv):
+        (WebCore::GraphicsContextGLOpenGL::vertexAttribIPointer):
+        (WebCore::GraphicsContextGLOpenGL::drawRangeElements):
+        (WebCore::GraphicsContextGLOpenGL::drawBuffers):
+        (WebCore::GraphicsContextGLOpenGL::clearBufferiv):
+        (WebCore::GraphicsContextGLOpenGL::clearBufferuiv):
+        (WebCore::GraphicsContextGLOpenGL::clearBufferfv):
+        (WebCore::GraphicsContextGLOpenGL::clearBufferfi):
+        (WebCore::GraphicsContextGLOpenGL::createQuery):
+        (WebCore::GraphicsContextGLOpenGL::deleteQuery):
+        (WebCore::GraphicsContextGLOpenGL::isQuery):
+        (WebCore::GraphicsContextGLOpenGL::beginQuery):
+        (WebCore::GraphicsContextGLOpenGL::endQuery):
+        (WebCore::GraphicsContextGLOpenGL::getQuery):
+        (WebCore::GraphicsContextGLOpenGL::glGetQueryObjectuiv):
+        (WebCore::GraphicsContextGLOpenGL::createSampler):
+        (WebCore::GraphicsContextGLOpenGL::deleteSampler):
+        (WebCore::GraphicsContextGLOpenGL::isSampler):
+        (WebCore::GraphicsContextGLOpenGL::bindSampler):
+        (WebCore::GraphicsContextGLOpenGL::samplerParameteri):
+        (WebCore::GraphicsContextGLOpenGL::samplerParameterf):
+        (WebCore::GraphicsContextGLOpenGL::getSamplerParameterfv):
+        (WebCore::GraphicsContextGLOpenGL::getSamplerParameteriv):
+        (WebCore::GraphicsContextGLOpenGL::fenceSync):
+        (WebCore::GraphicsContextGLOpenGL::isSync):
+        (WebCore::GraphicsContextGLOpenGL::deleteSync):
+        (WebCore::GraphicsContextGLOpenGL::clientWaitSync):
+        (WebCore::GraphicsContextGLOpenGL::waitSync):
+        (WebCore::GraphicsContextGLOpenGL::getSynciv):
+        (WebCore::GraphicsContextGLOpenGL::createTransformFeedback):
+        (WebCore::GraphicsContextGLOpenGL::deleteTransformFeedback):
+        (WebCore::GraphicsContextGLOpenGL::isTransformFeedback):
+        (WebCore::GraphicsContextGLOpenGL::bindTransformFeedback):
+        (WebCore::GraphicsContextGLOpenGL::beginTransformFeedback):
+        (WebCore::GraphicsContextGLOpenGL::endTransformFeedback):
+        (WebCore::GraphicsContextGLOpenGL::transformFeedbackVaryings):
+        (WebCore::GraphicsContextGLOpenGL::getTransformFeedbackVarying):
+        (WebCore::GraphicsContextGLOpenGL::pauseTransformFeedback):
+        (WebCore::GraphicsContextGLOpenGL::resumeTransformFeedback):
+        (WebCore::GraphicsContextGLOpenGL::bindBufferBase):
+        (WebCore::GraphicsContextGLOpenGL::bindBufferRange):
+        (WebCore::GraphicsContextGLOpenGL::getUniformIndices):
+        (WebCore::GraphicsContextGLOpenGL::getActiveUniforms):
+        (WebCore::GraphicsContextGLOpenGL::getUniformBlockIndex):
+        (WebCore::GraphicsContextGLOpenGL::getActiveUniformBlockiv):
+        (WebCore::GraphicsContextGLOpenGL::getActiveUniformBlockName):
+        (WebCore::GraphicsContextGLOpenGL::uniformBlockBinding):
+        (WebCore::GraphicsContextGLOpenGL::texImage2D):
+        (WebCore::GraphicsContextGLOpenGL::texSubImage2D):
+        (WebCore::GraphicsContextGLOpenGL::compressedTexImage2D):
+        (WebCore::GraphicsContextGLOpenGL::compressedTexSubImage2D):
+        (WebCore::GraphicsContextGLOpenGL::uniform1fv):
+        (WebCore::GraphicsContextGLOpenGL::uniform2fv):
+        (WebCore::GraphicsContextGLOpenGL::uniform3fv):
+        (WebCore::GraphicsContextGLOpenGL::uniform4fv):
+        (WebCore::GraphicsContextGLOpenGL::uniform1iv):
+        (WebCore::GraphicsContextGLOpenGL::uniform2iv):
+        (WebCore::GraphicsContextGLOpenGL::uniform3iv):
+        (WebCore::GraphicsContextGLOpenGL::uniform4iv):
+        (WebCore::GraphicsContextGLOpenGL::uniformMatrix2fv):
+        (WebCore::GraphicsContextGLOpenGL::uniformMatrix3fv):
+        (WebCore::GraphicsContextGLOpenGL::uniformMatrix4fv):
+        (WebCore::GraphicsContextGLOpenGL::readPixels):
+
 2020-01-10  Antti Koivisto  <[email protected]>
 
         [LFC][Integration] Fix accessibility/scroll-to-make-visible-iframe-offscreen.html

Modified: trunk/Source/WebCore/platform/graphics/GraphicsContextGL.h (254349 => 254350)


--- trunk/Source/WebCore/platform/graphics/GraphicsContextGL.h	2020-01-10 18:49:51 UTC (rev 254349)
+++ trunk/Source/WebCore/platform/graphics/GraphicsContextGL.h	2020-01-10 18:50:35 UTC (rev 254350)
@@ -661,6 +661,9 @@
         // OpenGL ES 3 constants.
         MAP_READ_BIT = 0x0001,
 
+        // WebGL-specific.
+        MAX_CLIENT_WAIT_TIMEOUT_WEBGL = 0x9247,
+
         // Necessary desktop OpenGL constants.
         TEXTURE_RECTANGLE_ARB = 0x84F5
     };
@@ -1058,20 +1061,150 @@
 
     // ========== WebGL 2 entry points.
 
+    virtual void bufferData(GCGLenum target, const void* data, GCGLenum usage, GCGLuint srcOffset, GCGLuint length) = 0;
+    virtual void bufferSubData(GCGLenum target, GCGLintptr dstByteOffset, const void* srcData, GCGLuint srcOffset, GCGLuint length) = 0;
+
+    virtual void copyBufferSubData(GCGLenum readTarget, GCGLenum writeTarget, GCGLintptr readOffset, GCGLintptr writeOffset, GCGLsizeiptr size) = 0;
+    virtual void getBufferSubData(GCGLenum target, GCGLintptr srcByteOffset, const void* dstData, GCGLuint dstOffset, GCGLuint length) = 0;
     virtual void* mapBufferRange(GCGLenum target, GCGLintptr offset, GCGLsizeiptr length, GCGLbitfield access) = 0;
     virtual GCGLboolean unmapBuffer(GCGLenum target) = 0;
-    virtual void copyBufferSubData(GCGLenum readTarget, GCGLenum writeTarget, GCGLintptr readOffset, GCGLintptr writeOffset, GCGLsizeiptr) = 0;
 
+    virtual void blitFramebuffer(GCGLint srcX0, GCGLint srcY0, GCGLint srcX1, GCGLint srcY1, GCGLint dstX0, GCGLint dstY0, GCGLint dstX1, GCGLint dstY1, GCGLbitfield mask, GCGLenum filter) = 0;
+    virtual void framebufferTextureLayer(GCGLenum target, GCGLenum attachment, PlatformGLObject texture, GCGLint level, GCGLint layer) = 0;
+    virtual void invalidateFramebuffer(GCGLenum target, const Vector<GCGLenum>& attachments) = 0;
+    virtual void invalidateSubFramebuffer(GCGLenum target, const Vector<GCGLenum>& attachments, GCGLint x, GCGLint y, GCGLsizei width, GCGLsizei height) = 0;
+    virtual void readBuffer(GCGLenum src) = 0;
+
     // getInternalFormatParameter
     virtual void getInternalformativ(GCGLenum target, GCGLenum internalformat, GCGLenum pname, GCGLsizei bufSize, GCGLint* params) = 0;
-
     virtual void renderbufferStorageMultisample(GCGLenum target, GCGLsizei samples, GCGLenum internalformat, GCGLsizei width, GCGLsizei height) = 0;
 
     virtual void texStorage2D(GCGLenum target, GCGLsizei levels, GCGLenum internalformat, GCGLsizei width, GCGLsizei height) = 0;
     virtual void texStorage3D(GCGLenum target, GCGLsizei levels, GCGLenum internalformat, GCGLsizei width, GCGLsizei height, GCGLsizei depth) = 0;
 
+    virtual void texImage3D(GCGLenum target, GCGLint level, GCGLint internalformat, GCGLsizei width, GCGLsizei height, GCGLsizei depth, GCGLint border, GCGLenum format, GCGLenum type, GCGLintptr pboOffset) = 0;
+    virtual void texImage3D(GCGLenum target, GCGLint level, GCGLint internalformat, GCGLsizei width, GCGLsizei height, GCGLsizei depth, GCGLint border, GCGLenum format, GCGLenum type, const void* pixels) = 0;
+    virtual void texImage3D(GCGLenum target, GCGLint level, GCGLint internalformat, GCGLsizei width, GCGLsizei height, GCGLsizei depth, GCGLint border, GCGLenum format, GCGLenum type, const void* srcData, GCGLuint srcOffset) = 0;
+
+    virtual void texSubImage3D(GCGLenum target, GCGLint level, GCGLint xoffset, GCGLint yoffset, GCGLint zoffset, GCGLsizei width, GCGLsizei height, GCGLsizei depth, GCGLenum format, GCGLenum type, GCGLintptr pboOffset) = 0;
+    virtual void texSubImage3D(GCGLenum target, GCGLint level, GCGLint xoffset, GCGLint yoffset, GCGLint zoffset, GCGLsizei width, GCGLsizei height, GCGLsizei depth, GCGLenum format, GCGLenum type, const void* srcData, GCGLuint srcOffset) = 0;
+
+    virtual void copyTexSubImage3D(GCGLenum target, GCGLint level, GCGLint xoffset, GCGLint yoffset, GCGLint zoffset, GCGLint x, GCGLint y, GCGLsizei width, GCGLsizei height) = 0;
+
+    virtual void compressedTexImage3D(GCGLenum target, GCGLint level, GCGLenum internalformat, GCGLsizei width, GCGLsizei height, GCGLsizei depth, GCGLint border, GCGLsizei imageSize, GCGLintptr offset) = 0;
+    virtual void compressedTexImage3D(GCGLenum target, GCGLint level, GCGLenum internalformat, GCGLsizei width, GCGLsizei height, GCGLsizei depth, GCGLint border, const void* srcData, GCGLuint srcOffset, GCGLuint srcLengthOverride) = 0;
+    virtual void compressedTexSubImage3D(GCGLenum target, GCGLint level, GCGLint xoffset, GCGLint yoffset, GCGLint zoffset, GCGLsizei width, GCGLsizei height, GCGLsizei depth, GCGLenum format, GCGLsizei imageSize, GCGLintptr offset) = 0;
+    virtual void compressedTexSubImage3D(GCGLenum target, GCGLint level, GCGLint xoffset, GCGLint yoffset, GCGLint zoffset, GCGLsizei width, GCGLsizei height, GCGLsizei depth, GCGLenum format, const void* srcData, GCGLuint srcOffset, GCGLuint srcLengthOverride) = 0;
+
+    virtual GCGLint getFragDataLocation(PlatformGLObject program, const String& name) = 0;
+
+    virtual void uniform1ui(GCGLint location, GCGLuint v0) = 0;
+    virtual void uniform2ui(GCGLint location, GCGLuint v0, GCGLuint v1) = 0;
+    virtual void uniform3ui(GCGLint location, GCGLuint v0, GCGLuint v1, GCGLuint v2) = 0;
+    virtual void uniform4ui(GCGLint location, GCGLuint v0, GCGLuint v1, GCGLuint v2, GCGLuint v3) = 0;
+    virtual void uniform1uiv(GCGLint location, const GCGLuint* data, GCGLuint srcOffset, GCGLuint srcLength) = 0;
+    virtual void uniform2uiv(GCGLint location, const GCGLuint* data, GCGLuint srcOffset, GCGLuint srcLength) = 0;
+    virtual void uniform3uiv(GCGLint location, const GCGLuint* data, GCGLuint srcOffset, GCGLuint srcLength) = 0;
+    virtual void uniform4uiv(GCGLint location, const GCGLuint* data, GCGLuint srcOffset, GCGLuint srcLength) = 0;
+    virtual void uniformMatrix2x3fv(GCGLint location, GCGLboolean transpose, const GCGLfloat* data, GCGLuint srcOffset, GCGLuint srcLength) = 0;
+    virtual void uniformMatrix3x2fv(GCGLint location, GCGLboolean transpose, const GCGLfloat* data, GCGLuint srcOffset, GCGLuint srcLength) = 0;
+    virtual void uniformMatrix2x4fv(GCGLint location, GCGLboolean transpose, const GCGLfloat* data, GCGLuint srcOffset, GCGLuint srcLength) = 0;
+    virtual void uniformMatrix4x2fv(GCGLint location, GCGLboolean transpose, const GCGLfloat* data, GCGLuint srcOffset, GCGLuint srcLength) = 0;
+    virtual void uniformMatrix3x4fv(GCGLint location, GCGLboolean transpose, const GCGLfloat* data, GCGLuint srcOffset, GCGLuint srcLength) = 0;
+    virtual void uniformMatrix4x3fv(GCGLint location, GCGLboolean transpose, const GCGLfloat* data, GCGLuint srcOffset, GCGLuint srcLength) = 0;
+    virtual void vertexAttribI4i(GCGLuint index, GCGLint x, GCGLint y, GCGLint z, GCGLint w) = 0;
+    virtual void vertexAttribI4iv(GCGLuint index, const GCGLint* values) = 0;
+    virtual void vertexAttribI4ui(GCGLuint index, GCGLuint x, GCGLuint y, GCGLuint z, GCGLuint w) = 0;
+    virtual void vertexAttribI4uiv(GCGLuint index, const GCGLuint* values) = 0;
+    virtual void vertexAttribIPointer(GCGLuint index, GCGLint size, GCGLenum type, GCGLsizei stride, GCGLintptr offset) = 0;
+
+    virtual void drawRangeElements(GCGLenum mode, GCGLuint start, GCGLuint end, GCGLsizei count, GCGLenum type, GCGLintptr offset) = 0;
+
+    virtual void drawBuffers(const Vector<GCGLenum>& buffers) = 0;
+    virtual void clearBufferiv(GCGLenum buffer, GCGLint drawbuffer, const GCGLint* values, GCGLuint srcOffset) = 0;
+    virtual void clearBufferuiv(GCGLenum buffer, GCGLint drawbuffer, const GCGLuint* values, GCGLuint srcOffset) = 0;
+    virtual void clearBufferfv(GCGLenum buffer, GCGLint drawbuffer, const GCGLfloat* values, GCGLuint srcOffset) = 0;
+    virtual void clearBufferfi(GCGLenum buffer, GCGLint drawbuffer, GCGLfloat depth, GCGLint stencil) = 0;
+
+    virtual PlatformGLObject createQuery() = 0;
+    virtual void deleteQuery(PlatformGLObject query) = 0;
+    virtual GCGLboolean isQuery(PlatformGLObject query) = 0;
+    virtual void beginQuery(GCGLenum target, PlatformGLObject query) = 0;
+    virtual void endQuery(GCGLenum target) = 0;
+    virtual PlatformGLObject getQuery(GCGLenum target, GCGLenum pname) = 0;
+    // getQueryParameter
+    virtual void glGetQueryObjectuiv(PlatformGLObject query, GCGLenum pname, GCGLuint* value) = 0;
+
+    virtual PlatformGLObject createSampler() = 0;
+    virtual void deleteSampler(PlatformGLObject sampler) = 0;
+    virtual GCGLboolean isSampler(PlatformGLObject sampler) = 0;
+    virtual void bindSampler(GCGLuint unit, PlatformGLObject sampler) = 0;
+    virtual void samplerParameteri(PlatformGLObject sampler, GCGLenum pname, GCGLint param) = 0;
+    virtual void samplerParameterf(PlatformGLObject sampler, GCGLenum pname, GCGLfloat param) = 0;
+    // getSamplerParameter
+    virtual void getSamplerParameterfv(PlatformGLObject sampler, GCGLenum pname, GCGLfloat* value) = 0;
+    virtual void getSamplerParameteriv(PlatformGLObject sampler, GCGLenum pname, GCGLint* value) = 0;
+
+    virtual PlatformGLObject fenceSync(GCGLenum condition, GCGLbitfield flags) = 0;
+    virtual GCGLboolean isSync(PlatformGLObject sync) = 0;
+    virtual void deleteSync(PlatformGLObject sync) = 0;
+    virtual GCGLenum clientWaitSync(PlatformGLObject sync, GCGLbitfield flags, GCGLuint64 timeout) = 0;
+    virtual void waitSync(PlatformGLObject sync, GCGLbitfield flags, GCGLint64 timeout) = 0;
+    // getSyncParameter
+    virtual void getSynciv(PlatformGLObject sync, GCGLenum pname, GCGLsizei bufSize, GCGLint* value) = 0;
+
+    virtual PlatformGLObject createTransformFeedback() = 0;
+    virtual void deleteTransformFeedback(PlatformGLObject id) = 0;
+    virtual GCGLboolean isTransformFeedback(PlatformGLObject id) = 0;
+    virtual void bindTransformFeedback(GCGLenum target, PlatformGLObject id) = 0;
+    virtual void beginTransformFeedback(GCGLenum primitiveMode) = 0;
+    virtual void endTransformFeedback() = 0;
+    virtual void transformFeedbackVaryings(PlatformGLObject program, const Vector<String>& varyings, GCGLenum bufferMode) = 0;
+    virtual PlatformGLObject getTransformFeedbackVarying(PlatformGLObject program, GCGLuint index) = 0;
+    virtual void pauseTransformFeedback() = 0;
+    virtual void resumeTransformFeedback() = 0;
+
+    virtual void bindBufferBase(GCGLenum target, GCGLuint index, PlatformGLObject buffer) = 0;
+    virtual void bindBufferRange(GCGLenum target, GCGLuint index, PlatformGLObject buffer, GCGLintptr offset, GCGLsizeiptr size) = 0;
+    // getIndexedParameter -> use getParameter calls above.
+    virtual Vector<GCGLuint> getUniformIndices(PlatformGLObject program, const Vector<String>& uniformNames) = 0;
     virtual void getActiveUniforms(PlatformGLObject program, const Vector<GCGLuint>& uniformIndices, GCGLenum pname, Vector<GCGLint>& params) = 0;
 
+    virtual GCGLuint getUniformBlockIndex(PlatformGLObject program, const String& uniformBlockName) = 0;
+    // getActiveUniformBlockParameter
+    virtual void getActiveUniformBlockiv(PlatformGLObject program, GCGLuint uniformBlockIndex, GCGLenum pname, GCGLint* params) = 0;
+    virtual String getActiveUniformBlockName(PlatformGLObject program, GCGLuint uniformBlockIndex) = 0;
+    virtual void uniformBlockBinding(PlatformGLObject program, GCGLuint uniformBlockIndex, GCGLuint uniformBlockBinding) = 0;
+
+    virtual void texImage2D(GCGLenum target, GCGLint level, GCGLint internalformat, GCGLsizei width, GCGLsizei height, GCGLint border, GCGLenum format, GCGLenum type, GCGLintptr pboOffset) = 0;
+    virtual void texImage2D(GCGLenum target, GCGLint level, GCGLint internalformat, GCGLsizei width, GCGLsizei height, GCGLint border, GCGLenum format, GCGLenum type, const void* srcData, GCGLuint srcOffset) = 0;
+
+    virtual void texSubImage2D(GCGLenum target, GCGLint level, GCGLint xoffset, GCGLint yoffset, GCGLsizei width, GCGLsizei height, GCGLenum format, GCGLenum type, GCGLintptr pboOffset) = 0;
+    virtual void texSubImage2D(GCGLenum target, GCGLint level, GCGLint xoffset, GCGLint yoffset, GCGLsizei width, GCGLsizei height, GCGLenum format, GCGLenum type, const void* srcData, GCGLuint srcOffset) = 0;
+
+    virtual void compressedTexImage2D(GCGLenum target, GCGLint level, GCGLenum internalformat, GCGLsizei width, GCGLsizei height, GCGLint border, GCGLsizei imageSize, GCGLintptr offset) = 0;
+    virtual void compressedTexImage2D(GCGLenum target, GCGLint level, GCGLenum internalformat, GCGLsizei width, GCGLsizei height, GCGLint border, const void* srcData, GCGLuint srcOffset, GCGLuint srcLengthOverride) = 0;
+
+    virtual void compressedTexSubImage2D(GCGLenum target, GCGLint level, GCGLint xoffset, GCGLint yoffset, GCGLsizei width, GCGLsizei height, GCGLenum format, GCGLsizei imageSize, GCGLintptr offset) = 0;
+    virtual void compressedTexSubImage2D(GCGLenum target, GCGLint level, GCGLint xoffset, GCGLint yoffset, GCGLsizei width, GCGLsizei height, GCGLenum format, const void* srcData, GCGLuint srcOffset, GCGLuint srcLengthOverride) = 0;
+
+    virtual void uniform1fv(GCGLint location, const GCGLfloat* data, GCGLuint srcOffset, GCGLuint srcLength) = 0;
+    virtual void uniform2fv(GCGLint location, const GCGLfloat* data, GCGLuint srcOffset, GCGLuint srcLength) = 0;
+    virtual void uniform3fv(GCGLint location, const GCGLfloat* data, GCGLuint srcOffset, GCGLuint srcLength) = 0;
+    virtual void uniform4fv(GCGLint location, const GCGLfloat* data, GCGLuint srcOffset, GCGLuint srcLength) = 0;
+
+    virtual void uniform1iv(GCGLint location, const GCGLint* data, GCGLuint srcOffset, GCGLuint srcLength) = 0;
+    virtual void uniform2iv(GCGLint location, const GCGLint* data, GCGLuint srcOffset, GCGLuint srcLength) = 0;
+    virtual void uniform3iv(GCGLint location, const GCGLint* data, GCGLuint srcOffset, GCGLuint srcLength) = 0;
+    virtual void uniform4iv(GCGLint location, const GCGLint* data, GCGLuint srcOffset, GCGLuint srcLength) = 0;
+
+    virtual void uniformMatrix2fv(GCGLint location, GCGLboolean transpose, const GCGLfloat* data, GCGLuint srcOffset, GCGLuint srcLength) = 0;
+    virtual void uniformMatrix3fv(GCGLint location, GCGLboolean transpose, const GCGLfloat* data, GCGLuint srcOffset, GCGLuint srcLength) = 0;
+    virtual void uniformMatrix4fv(GCGLint location, GCGLboolean transpose, const GCGLfloat* data, GCGLuint srcOffset, GCGLuint srcLength) = 0;
+
+    virtual void readPixels(GCGLint x, GCGLint y, GCGLsizei width, GCGLsizei height, GCGLenum format, GCGLenum type, GCGLintptr offset) = 0;
+    virtual void readPixels(GCGLint x, GCGLint y, GCGLsizei width, GCGLsizei height, GCGLenum format, GCGLenum type, const void* dstData, GCGLuint dstOffset) = 0;
+
     // ========== Non-WebGL based entry points.
 
     static unsigned getClearBitsByAttachmentType(GCGLenum);

Modified: trunk/Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGL.h (254349 => 254350)


--- trunk/Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGL.h	2020-01-10 18:49:51 UTC (rev 254349)
+++ trunk/Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGL.h	2020-01-10 18:50:35 UTC (rev 254350)
@@ -113,9 +113,9 @@
     PlatformGraphicsContextGLConfig platformConfig() const { return m_configObj; }
 #endif // USE(ANGLE)
 #else
-    PlatformGraphicsContextGL platformGraphicsContextGL() const override;
-    PlatformGLObject platformTexture() const override;
-    PlatformLayer* platformLayer() const override;
+    PlatformGraphicsContextGL platformGraphicsContextGL() const final;
+    PlatformGLObject platformTexture() const final;
+    PlatformLayer* platformLayer() const final;
 #endif
 
     bool makeContextCurrent();
@@ -196,184 +196,321 @@
     // Entry points for WebGL.
     //
 
-    void activeTexture(GCGLenum texture) override;
-    void attachShader(PlatformGLObject program, PlatformGLObject shader) override;
-    void bindAttribLocation(PlatformGLObject, GCGLuint index, const String& name) override;
-    void bindBuffer(GCGLenum target, PlatformGLObject) override;
-    void bindFramebuffer(GCGLenum target, PlatformGLObject) override;
-    void bindRenderbuffer(GCGLenum target, PlatformGLObject) override;
-    void bindTexture(GCGLenum target, PlatformGLObject) override;
-    void blendColor(GCGLclampf red, GCGLclampf green, GCGLclampf blue, GCGLclampf alpha) override;
-    void blendEquation(GCGLenum mode) override;
-    void blendEquationSeparate(GCGLenum modeRGB, GCGLenum modeAlpha) override;
-    void blendFunc(GCGLenum sfactor, GCGLenum dfactor) override;
-    void blendFuncSeparate(GCGLenum srcRGB, GCGLenum dstRGB, GCGLenum srcAlpha, GCGLenum dstAlpha) override;
+    void activeTexture(GCGLenum texture) final;
+    void attachShader(PlatformGLObject program, PlatformGLObject shader) final;
+    void bindAttribLocation(PlatformGLObject, GCGLuint index, const String& name) final;
+    void bindBuffer(GCGLenum target, PlatformGLObject) final;
+    void bindFramebuffer(GCGLenum target, PlatformGLObject) final;
+    void bindRenderbuffer(GCGLenum target, PlatformGLObject) final;
+    void bindTexture(GCGLenum target, PlatformGLObject) final;
+    void blendColor(GCGLclampf red, GCGLclampf green, GCGLclampf blue, GCGLclampf alpha) final;
+    void blendEquation(GCGLenum mode) final;
+    void blendEquationSeparate(GCGLenum modeRGB, GCGLenum modeAlpha) final;
+    void blendFunc(GCGLenum sfactor, GCGLenum dfactor) final;
+    void blendFuncSeparate(GCGLenum srcRGB, GCGLenum dstRGB, GCGLenum srcAlpha, GCGLenum dstAlpha) final;
 
-    void bufferData(GCGLenum target, GCGLsizeiptr size, GCGLenum usage) override;
-    void bufferData(GCGLenum target, GCGLsizeiptr size, const void* data, GCGLenum usage) override;
-    void bufferSubData(GCGLenum target, GCGLintptr offset, GCGLsizeiptr size, const void* data) override;
+    void bufferData(GCGLenum target, GCGLsizeiptr size, GCGLenum usage) final;
+    void bufferData(GCGLenum target, GCGLsizeiptr size, const void* data, GCGLenum usage) final;
+    void bufferSubData(GCGLenum target, GCGLintptr offset, GCGLsizeiptr size, const void* data) final;
 
-    void* mapBufferRange(GCGLenum target, GCGLintptr offset, GCGLsizeiptr length, GCGLbitfield access) override;
-    GCGLboolean unmapBuffer(GCGLenum target) override;
-    void copyBufferSubData(GCGLenum readTarget, GCGLenum writeTarget, GCGLintptr readOffset, GCGLintptr writeOffset, GCGLsizeiptr) override;
+    GCGLenum checkFramebufferStatus(GCGLenum target) final;
+    void clear(GCGLbitfield mask) final;
+    void clearColor(GCGLclampf red, GCGLclampf green, GCGLclampf blue, GCGLclampf alpha) final;
+    void clearDepth(GCGLclampf depth) final;
+    void clearStencil(GCGLint s) final;
+    void colorMask(GCGLboolean red, GCGLboolean green, GCGLboolean blue, GCGLboolean alpha) final;
+    void compileShader(PlatformGLObject) final;
 
-    void getInternalformativ(GCGLenum target, GCGLenum internalformat, GCGLenum pname, GCGLsizei bufSize, GCGLint* params) override;
-    void renderbufferStorageMultisample(GCGLenum target, GCGLsizei samples, GCGLenum internalformat, GCGLsizei width, GCGLsizei height) override;
+    void compressedTexImage2D(GCGLenum target, GCGLint level, GCGLenum internalformat, GCGLsizei width, GCGLsizei height, GCGLint border, GCGLsizei imageSize, const void* data) final;
+    void compressedTexSubImage2D(GCGLenum target, GCGLint level, GCGLint xoffset, GCGLint yoffset, GCGLsizei width, GCGLsizei height, GCGLenum format, GCGLsizei imageSize, const void* data) final;
+    void copyTexImage2D(GCGLenum target, GCGLint level, GCGLenum internalformat, GCGLint x, GCGLint y, GCGLsizei width, GCGLsizei height, GCGLint border) final;
+    void copyTexSubImage2D(GCGLenum target, GCGLint level, GCGLint xoffset, GCGLint yoffset, GCGLint x, GCGLint y, GCGLsizei width, GCGLsizei height) final;
+    void cullFace(GCGLenum mode) final;
+    void depthFunc(GCGLenum func) final;
+    void depthMask(GCGLboolean flag) final;
+    void depthRange(GCGLclampf zNear, GCGLclampf zFar) final;
+    void detachShader(PlatformGLObject, PlatformGLObject) final;
+    void disable(GCGLenum cap) final;
+    void disableVertexAttribArray(GCGLuint index) final;
+    void drawArrays(GCGLenum mode, GCGLint first, GCGLsizei count) final;
+    void drawElements(GCGLenum mode, GCGLsizei count, GCGLenum type, GCGLintptr offset) final;
 
-    void texStorage2D(GCGLenum target, GCGLsizei levels, GCGLenum internalformat, GCGLsizei width, GCGLsizei height) override;
-    void texStorage3D(GCGLenum target, GCGLsizei levels, GCGLenum internalformat, GCGLsizei width, GCGLsizei height, GCGLsizei depth) override;
+    void enable(GCGLenum cap) final;
+    void enableVertexAttribArray(GCGLuint index) final;
+    void finish() final;
+    void flush() final;
+    void framebufferRenderbuffer(GCGLenum target, GCGLenum attachment, GCGLenum renderbuffertarget, PlatformGLObject) final;
+    void framebufferTexture2D(GCGLenum target, GCGLenum attachment, GCGLenum textarget, PlatformGLObject, GCGLint level) final;
+    void frontFace(GCGLenum mode) final;
+    void generateMipmap(GCGLenum target) final;
 
-    void getActiveUniforms(PlatformGLObject program, const Vector<GCGLuint>& uniformIndices, GCGLenum pname, Vector<GCGLint>& params) override;
-
-    GCGLenum checkFramebufferStatus(GCGLenum target) override;
-    void clear(GCGLbitfield mask) override;
-    void clearColor(GCGLclampf red, GCGLclampf green, GCGLclampf blue, GCGLclampf alpha) override;
-    void clearDepth(GCGLclampf depth) override;
-    void clearStencil(GCGLint s) override;
-    void colorMask(GCGLboolean red, GCGLboolean green, GCGLboolean blue, GCGLboolean alpha) override;
-    void compileShader(PlatformGLObject) override;
-
-    void compressedTexImage2D(GCGLenum target, GCGLint level, GCGLenum internalformat, GCGLsizei width, GCGLsizei height, GCGLint border, GCGLsizei imageSize, const void* data) override;
-    void compressedTexSubImage2D(GCGLenum target, GCGLint level, GCGLint xoffset, GCGLint yoffset, GCGLsizei width, GCGLsizei height, GCGLenum format, GCGLsizei imageSize, const void* data) override;
-    void copyTexImage2D(GCGLenum target, GCGLint level, GCGLenum internalformat, GCGLint x, GCGLint y, GCGLsizei width, GCGLsizei height, GCGLint border) override;
-    void copyTexSubImage2D(GCGLenum target, GCGLint level, GCGLint xoffset, GCGLint yoffset, GCGLint x, GCGLint y, GCGLsizei width, GCGLsizei height) override;
-    void cullFace(GCGLenum mode) override;
-    void depthFunc(GCGLenum func) override;
-    void depthMask(GCGLboolean flag) override;
-    void depthRange(GCGLclampf zNear, GCGLclampf zFar) override;
-    void detachShader(PlatformGLObject, PlatformGLObject) override;
-    void disable(GCGLenum cap) override;
-    void disableVertexAttribArray(GCGLuint index) override;
-    void drawArrays(GCGLenum mode, GCGLint first, GCGLsizei count) override;
-    void drawElements(GCGLenum mode, GCGLsizei count, GCGLenum type, GCGLintptr offset) override;
-
-    void enable(GCGLenum cap) override;
-    void enableVertexAttribArray(GCGLuint index) override;
-    void finish() override;
-    void flush() override;
-    void framebufferRenderbuffer(GCGLenum target, GCGLenum attachment, GCGLenum renderbuffertarget, PlatformGLObject) override;
-    void framebufferTexture2D(GCGLenum target, GCGLenum attachment, GCGLenum textarget, PlatformGLObject, GCGLint level) override;
-    void frontFace(GCGLenum mode) override;
-    void generateMipmap(GCGLenum target) override;
-
-    bool getActiveAttrib(PlatformGLObject program, GCGLuint index, ActiveInfo&) override;
+    bool getActiveAttrib(PlatformGLObject program, GCGLuint index, ActiveInfo&) final;
     bool getActiveAttribImpl(PlatformGLObject program, GCGLuint index, ActiveInfo&);
-    bool getActiveUniform(PlatformGLObject program, GCGLuint index, ActiveInfo&) override;
+    bool getActiveUniform(PlatformGLObject program, GCGLuint index, ActiveInfo&) final;
     bool getActiveUniformImpl(PlatformGLObject program, GCGLuint index, ActiveInfo&);
-    void getAttachedShaders(PlatformGLObject program, GCGLsizei maxCount, GCGLsizei* count, PlatformGLObject* shaders) override;
-    GCGLint getAttribLocation(PlatformGLObject, const String& name) override;
-    void getBooleanv(GCGLenum pname, GCGLboolean* value) override;
-    void getBufferParameteriv(GCGLenum target, GCGLenum pname, GCGLint* value) override;
-    GCGLenum getError() override;
-    void getFloatv(GCGLenum pname, GCGLfloat* value) override;
-    void getFramebufferAttachmentParameteriv(GCGLenum target, GCGLenum attachment, GCGLenum pname, GCGLint* value) override;
-    void getIntegerv(GCGLenum pname, GCGLint* value) override;
-    void getInteger64v(GCGLenum pname, GCGLint64* value) override;
-    void getProgramiv(PlatformGLObject program, GCGLenum pname, GCGLint* value) override;
+    void getAttachedShaders(PlatformGLObject program, GCGLsizei maxCount, GCGLsizei* count, PlatformGLObject* shaders) final;
+    GCGLint getAttribLocation(PlatformGLObject, const String& name) final;
+    void getBooleanv(GCGLenum pname, GCGLboolean* value) final;
+    void getBufferParameteriv(GCGLenum target, GCGLenum pname, GCGLint* value) final;
+    GCGLenum getError() final;
+    void getFloatv(GCGLenum pname, GCGLfloat* value) final;
+    void getFramebufferAttachmentParameteriv(GCGLenum target, GCGLenum attachment, GCGLenum pname, GCGLint* value) final;
+    void getIntegerv(GCGLenum pname, GCGLint* value) final;
+    void getInteger64v(GCGLenum pname, GCGLint64* value) final;
+    void getProgramiv(PlatformGLObject program, GCGLenum pname, GCGLint* value) final;
 #if !USE(ANGLE)
     void getNonBuiltInActiveSymbolCount(PlatformGLObject program, GCGLenum pname, GCGLint* value);
 #endif // !USE(ANGLE)
-    String getProgramInfoLog(PlatformGLObject) override;
+    String getProgramInfoLog(PlatformGLObject) final;
     String getUnmangledInfoLog(PlatformGLObject[2], GCGLsizei, const String&);
-    void getRenderbufferParameteriv(GCGLenum target, GCGLenum pname, GCGLint* value) override;
-    void getShaderiv(PlatformGLObject, GCGLenum pname, GCGLint* value) override;
-    String getShaderInfoLog(PlatformGLObject) override;
-    void getShaderPrecisionFormat(GCGLenum shaderType, GCGLenum precisionType, GCGLint* range, GCGLint* precision) override;
-    String getShaderSource(PlatformGLObject) override;
-    String getString(GCGLenum name) override;
-    void getTexParameterfv(GCGLenum target, GCGLenum pname, GCGLfloat* value) override;
-    void getTexParameteriv(GCGLenum target, GCGLenum pname, GCGLint* value) override;
-    void getUniformfv(PlatformGLObject program, GCGLint location, GCGLfloat* value) override;
-    void getUniformiv(PlatformGLObject program, GCGLint location, GCGLint* value) override;
-    GCGLint getUniformLocation(PlatformGLObject, const String& name) override;
-    void getVertexAttribfv(GCGLuint index, GCGLenum pname, GCGLfloat* value) override;
-    void getVertexAttribiv(GCGLuint index, GCGLenum pname, GCGLint* value) override;
-    GCGLsizeiptr getVertexAttribOffset(GCGLuint index, GCGLenum pname) override;
+    void getRenderbufferParameteriv(GCGLenum target, GCGLenum pname, GCGLint* value) final;
+    void getShaderiv(PlatformGLObject, GCGLenum pname, GCGLint* value) final;
+    String getShaderInfoLog(PlatformGLObject) final;
+    void getShaderPrecisionFormat(GCGLenum shaderType, GCGLenum precisionType, GCGLint* range, GCGLint* precision) final;
+    String getShaderSource(PlatformGLObject) final;
+    String getString(GCGLenum name) final;
+    void getTexParameterfv(GCGLenum target, GCGLenum pname, GCGLfloat* value) final;
+    void getTexParameteriv(GCGLenum target, GCGLenum pname, GCGLint* value) final;
+    void getUniformfv(PlatformGLObject program, GCGLint location, GCGLfloat* value) final;
+    void getUniformiv(PlatformGLObject program, GCGLint location, GCGLint* value) final;
+    GCGLint getUniformLocation(PlatformGLObject, const String& name) final;
+    void getVertexAttribfv(GCGLuint index, GCGLenum pname, GCGLfloat* value) final;
+    void getVertexAttribiv(GCGLuint index, GCGLenum pname, GCGLint* value) final;
+    GCGLsizeiptr getVertexAttribOffset(GCGLuint index, GCGLenum pname) final;
 
-    void hint(GCGLenum target, GCGLenum mode) override;
-    GCGLboolean isBuffer(PlatformGLObject) override;
-    GCGLboolean isEnabled(GCGLenum cap) override;
-    GCGLboolean isFramebuffer(PlatformGLObject) override;
-    GCGLboolean isProgram(PlatformGLObject) override;
-    GCGLboolean isRenderbuffer(PlatformGLObject) override;
-    GCGLboolean isShader(PlatformGLObject) override;
-    GCGLboolean isTexture(PlatformGLObject) override;
-    void lineWidth(GCGLfloat) override;
-    void linkProgram(PlatformGLObject) override;
-    void pixelStorei(GCGLenum pname, GCGLint param) override;
-    void polygonOffset(GCGLfloat factor, GCGLfloat units) override;
+    void hint(GCGLenum target, GCGLenum mode) final;
+    GCGLboolean isBuffer(PlatformGLObject) final;
+    GCGLboolean isEnabled(GCGLenum cap) final;
+    GCGLboolean isFramebuffer(PlatformGLObject) final;
+    GCGLboolean isProgram(PlatformGLObject) final;
+    GCGLboolean isRenderbuffer(PlatformGLObject) final;
+    GCGLboolean isShader(PlatformGLObject) final;
+    GCGLboolean isTexture(PlatformGLObject) final;
+    void lineWidth(GCGLfloat) final;
+    void linkProgram(PlatformGLObject) final;
+    void pixelStorei(GCGLenum pname, GCGLint param) final;
+    void polygonOffset(GCGLfloat factor, GCGLfloat units) final;
 
-    void readPixels(GCGLint x, GCGLint y, GCGLsizei width, GCGLsizei height, GCGLenum format, GCGLenum type, void* data) override;
+    void readPixels(GCGLint x, GCGLint y, GCGLsizei width, GCGLsizei height, GCGLenum format, GCGLenum type, void* data) final;
 
     void releaseShaderCompiler();
 
-    void renderbufferStorage(GCGLenum target, GCGLenum internalformat, GCGLsizei width, GCGLsizei height) override;
-    void sampleCoverage(GCGLclampf value, GCGLboolean invert) override;
-    void scissor(GCGLint x, GCGLint y, GCGLsizei width, GCGLsizei height) override;
-    void shaderSource(PlatformGLObject, const String& string) override;
-    void stencilFunc(GCGLenum func, GCGLint ref, GCGLuint mask) override;
-    void stencilFuncSeparate(GCGLenum face, GCGLenum func, GCGLint ref, GCGLuint mask) override;
-    void stencilMask(GCGLuint mask) override;
-    void stencilMaskSeparate(GCGLenum face, GCGLuint mask) override;
-    void stencilOp(GCGLenum fail, GCGLenum zfail, GCGLenum zpass) override;
-    void stencilOpSeparate(GCGLenum face, GCGLenum fail, GCGLenum zfail, GCGLenum zpass) override;
+    void renderbufferStorage(GCGLenum target, GCGLenum internalformat, GCGLsizei width, GCGLsizei height) final;
+    void sampleCoverage(GCGLclampf value, GCGLboolean invert) final;
+    void scissor(GCGLint x, GCGLint y, GCGLsizei width, GCGLsizei height) final;
+    void shaderSource(PlatformGLObject, const String& string) final;
+    void stencilFunc(GCGLenum func, GCGLint ref, GCGLuint mask) final;
+    void stencilFuncSeparate(GCGLenum face, GCGLenum func, GCGLint ref, GCGLuint mask) final;
+    void stencilMask(GCGLuint mask) final;
+    void stencilMaskSeparate(GCGLenum face, GCGLuint mask) final;
+    void stencilOp(GCGLenum fail, GCGLenum zfail, GCGLenum zpass) final;
+    void stencilOpSeparate(GCGLenum face, GCGLenum fail, GCGLenum zfail, GCGLenum zpass) final;
 
-    bool texImage2D(GCGLenum target, GCGLint level, GCGLenum internalformat, GCGLsizei width, GCGLsizei height, GCGLint border, GCGLenum format, GCGLenum type, const void* pixels) override;
-    void texParameterf(GCGLenum target, GCGLenum pname, GCGLfloat param) override;
-    void texParameteri(GCGLenum target, GCGLenum pname, GCGLint param) override;
-    void texSubImage2D(GCGLenum target, GCGLint level, GCGLint xoffset, GCGLint yoffset, GCGLsizei width, GCGLsizei height, GCGLenum format, GCGLenum type, const void* pixels) override;
+    bool texImage2D(GCGLenum target, GCGLint level, GCGLenum internalformat, GCGLsizei width, GCGLsizei height, GCGLint border, GCGLenum format, GCGLenum type, const void* pixels) final;
+    void texParameterf(GCGLenum target, GCGLenum pname, GCGLfloat param) final;
+    void texParameteri(GCGLenum target, GCGLenum pname, GCGLint param) final;
+    void texSubImage2D(GCGLenum target, GCGLint level, GCGLint xoffset, GCGLint yoffset, GCGLsizei width, GCGLsizei height, GCGLenum format, GCGLenum type, const void* pixels) final;
 
-    void uniform1f(GCGLint location, GCGLfloat x) override;
-    void uniform1fv(GCGLint location, GCGLsizei, const GCGLfloat* v) override;
-    void uniform1i(GCGLint location, GCGLint x) override;
-    void uniform1iv(GCGLint location, GCGLsizei, const GCGLint* v) override;
-    void uniform2f(GCGLint location, GCGLfloat x, GCGLfloat y) override;
-    void uniform2fv(GCGLint location, GCGLsizei, const GCGLfloat* v) override;
-    void uniform2i(GCGLint location, GCGLint x, GCGLint y) override;
-    void uniform2iv(GCGLint location, GCGLsizei, const GCGLint* v) override;
-    void uniform3f(GCGLint location, GCGLfloat x, GCGLfloat y, GCGLfloat z) override;
-    void uniform3fv(GCGLint location, GCGLsizei, const GCGLfloat* v) override;
-    void uniform3i(GCGLint location, GCGLint x, GCGLint y, GCGLint z) override;
-    void uniform3iv(GCGLint location, GCGLsizei, const GCGLint* v) override;
-    void uniform4f(GCGLint location, GCGLfloat x, GCGLfloat y, GCGLfloat z, GCGLfloat w) override;
-    void uniform4fv(GCGLint location, GCGLsizei, const GCGLfloat* v) override;
-    void uniform4i(GCGLint location, GCGLint x, GCGLint y, GCGLint z, GCGLint w) override;
-    void uniform4iv(GCGLint location, GCGLsizei, const GCGLint* v) override;
-    void uniformMatrix2fv(GCGLint location, GCGLsizei, GCGLboolean transpose, const GCGLfloat* value) override;
-    void uniformMatrix3fv(GCGLint location, GCGLsizei, GCGLboolean transpose, const GCGLfloat* value) override;
-    void uniformMatrix4fv(GCGLint location, GCGLsizei, GCGLboolean transpose, const GCGLfloat* value) override;
+    void uniform1f(GCGLint location, GCGLfloat x) final;
+    void uniform1fv(GCGLint location, GCGLsizei, const GCGLfloat* v) final;
+    void uniform1i(GCGLint location, GCGLint x) final;
+    void uniform1iv(GCGLint location, GCGLsizei, const GCGLint* v) final;
+    void uniform2f(GCGLint location, GCGLfloat x, GCGLfloat y) final;
+    void uniform2fv(GCGLint location, GCGLsizei, const GCGLfloat* v) final;
+    void uniform2i(GCGLint location, GCGLint x, GCGLint y) final;
+    void uniform2iv(GCGLint location, GCGLsizei, const GCGLint* v) final;
+    void uniform3f(GCGLint location, GCGLfloat x, GCGLfloat y, GCGLfloat z) final;
+    void uniform3fv(GCGLint location, GCGLsizei, const GCGLfloat* v) final;
+    void uniform3i(GCGLint location, GCGLint x, GCGLint y, GCGLint z) final;
+    void uniform3iv(GCGLint location, GCGLsizei, const GCGLint* v) final;
+    void uniform4f(GCGLint location, GCGLfloat x, GCGLfloat y, GCGLfloat z, GCGLfloat w) final;
+    void uniform4fv(GCGLint location, GCGLsizei, const GCGLfloat* v) final;
+    void uniform4i(GCGLint location, GCGLint x, GCGLint y, GCGLint z, GCGLint w) final;
+    void uniform4iv(GCGLint location, GCGLsizei, const GCGLint* v) final;
+    void uniformMatrix2fv(GCGLint location, GCGLsizei, GCGLboolean transpose, const GCGLfloat* value) final;
+    void uniformMatrix3fv(GCGLint location, GCGLsizei, GCGLboolean transpose, const GCGLfloat* value) final;
+    void uniformMatrix4fv(GCGLint location, GCGLsizei, GCGLboolean transpose, const GCGLfloat* value) final;
 
-    void useProgram(PlatformGLObject) override;
-    void validateProgram(PlatformGLObject) override;
+    void useProgram(PlatformGLObject) final;
+    void validateProgram(PlatformGLObject) final;
 #if !USE(ANGLE)
     bool checkVaryingsPacking(PlatformGLObject vertexShader, PlatformGLObject fragmentShader) const;
     bool precisionsMatch(PlatformGLObject vertexShader, PlatformGLObject fragmentShader) const;
 #endif
 
-    void vertexAttrib1f(GCGLuint index, GCGLfloat x) override;
-    void vertexAttrib1fv(GCGLuint index, const GCGLfloat* values) override;
-    void vertexAttrib2f(GCGLuint index, GCGLfloat x, GCGLfloat y) override;
-    void vertexAttrib2fv(GCGLuint index, const GCGLfloat* values) override;
-    void vertexAttrib3f(GCGLuint index, GCGLfloat x, GCGLfloat y, GCGLfloat z) override;
-    void vertexAttrib3fv(GCGLuint index, const GCGLfloat* values) override;
-    void vertexAttrib4f(GCGLuint index, GCGLfloat x, GCGLfloat y, GCGLfloat z, GCGLfloat w) override;
-    void vertexAttrib4fv(GCGLuint index, const GCGLfloat* values) override;
-    void vertexAttribPointer(GCGLuint index, GCGLint size, GCGLenum type, GCGLboolean normalized, GCGLsizei stride, GCGLintptr offset) override;
+    void vertexAttrib1f(GCGLuint index, GCGLfloat x) final;
+    void vertexAttrib1fv(GCGLuint index, const GCGLfloat* values) final;
+    void vertexAttrib2f(GCGLuint index, GCGLfloat x, GCGLfloat y) final;
+    void vertexAttrib2fv(GCGLuint index, const GCGLfloat* values) final;
+    void vertexAttrib3f(GCGLuint index, GCGLfloat x, GCGLfloat y, GCGLfloat z) final;
+    void vertexAttrib3fv(GCGLuint index, const GCGLfloat* values) final;
+    void vertexAttrib4f(GCGLuint index, GCGLfloat x, GCGLfloat y, GCGLfloat z, GCGLfloat w) final;
+    void vertexAttrib4fv(GCGLuint index, const GCGLfloat* values) final;
+    void vertexAttribPointer(GCGLuint index, GCGLint size, GCGLenum type, GCGLboolean normalized, GCGLsizei stride, GCGLintptr offset) final;
 
-    void viewport(GCGLint x, GCGLint y, GCGLsizei width, GCGLsizei height) override;
+    void viewport(GCGLint x, GCGLint y, GCGLsizei width, GCGLsizei height) final;
 
     void reshape(int width, int height);
 
-    void drawArraysInstanced(GCGLenum mode, GCGLint first, GCGLsizei count, GCGLsizei primcount) override;
-    void drawElementsInstanced(GCGLenum mode, GCGLsizei count, GCGLenum type, GCGLintptr offset, GCGLsizei primcount) override;
-    void vertexAttribDivisor(GCGLuint index, GCGLuint divisor) override;
+    void drawArraysInstanced(GCGLenum mode, GCGLint first, GCGLsizei count, GCGLsizei primcount) final;
+    void drawElementsInstanced(GCGLenum mode, GCGLsizei count, GCGLenum type, GCGLintptr offset, GCGLsizei primcount) final;
+    void vertexAttribDivisor(GCGLuint index, GCGLuint divisor) final;
 
     // VertexArrayOject calls
-    PlatformGLObject createVertexArray() override;
-    void deleteVertexArray(PlatformGLObject) override;
-    GCGLboolean isVertexArray(PlatformGLObject) override;
-    void bindVertexArray(PlatformGLObject) override;
+    PlatformGLObject createVertexArray() final;
+    void deleteVertexArray(PlatformGLObject) final;
+    GCGLboolean isVertexArray(PlatformGLObject) final;
+    void bindVertexArray(PlatformGLObject) final;
 
+    // ========== WebGL2 entry points.
+
+    void bufferData(GCGLenum target, const void* data, GCGLenum usage, GCGLuint srcOffset, GCGLuint length) final;
+    void bufferSubData(GCGLenum target, GCGLintptr dstByteOffset, const void* srcData, GCGLuint srcOffset, GCGLuint length) final;
+
+    void copyBufferSubData(GCGLenum readTarget, GCGLenum writeTarget, GCGLintptr readOffset, GCGLintptr writeOffset, GCGLsizeiptr size) final;
+    void getBufferSubData(GCGLenum target, GCGLintptr srcByteOffset, const void* dstData, GCGLuint dstOffset, GCGLuint length) final;
+    void* mapBufferRange(GCGLenum target, GCGLintptr offset, GCGLsizeiptr length, GCGLbitfield access) final;
+    GCGLboolean unmapBuffer(GCGLenum target) final;
+
+    void blitFramebuffer(GCGLint srcX0, GCGLint srcY0, GCGLint srcX1, GCGLint srcY1, GCGLint dstX0, GCGLint dstY0, GCGLint dstX1, GCGLint dstY1, GCGLbitfield mask, GCGLenum filter) final;
+    void framebufferTextureLayer(GCGLenum target, GCGLenum attachment, PlatformGLObject texture, GCGLint level, GCGLint layer) final;
+    void invalidateFramebuffer(GCGLenum target, const Vector<GCGLenum>& attachments) final;
+    void invalidateSubFramebuffer(GCGLenum target, const Vector<GCGLenum>& attachments, GCGLint x, GCGLint y, GCGLsizei width, GCGLsizei height) final;
+    void readBuffer(GCGLenum src) final;
+
+    // getInternalFormatParameter
+    void getInternalformativ(GCGLenum target, GCGLenum internalformat, GCGLenum pname, GCGLsizei bufSize, GCGLint* params) final;
+    void renderbufferStorageMultisample(GCGLenum target, GCGLsizei samples, GCGLenum internalformat, GCGLsizei width, GCGLsizei height) final;
+
+    void texStorage2D(GCGLenum target, GCGLsizei levels, GCGLenum internalformat, GCGLsizei width, GCGLsizei height) final;
+    void texStorage3D(GCGLenum target, GCGLsizei levels, GCGLenum internalformat, GCGLsizei width, GCGLsizei height, GCGLsizei depth) final;
+
+    void texImage3D(GCGLenum target, GCGLint level, GCGLint internalformat, GCGLsizei width, GCGLsizei height, GCGLsizei depth, GCGLint border, GCGLenum format, GCGLenum type, GCGLintptr pboOffset) final;
+    void texImage3D(GCGLenum target, GCGLint level, GCGLint internalformat, GCGLsizei width, GCGLsizei height, GCGLsizei depth, GCGLint border, GCGLenum format, GCGLenum type, const void* pixels) final;
+    void texImage3D(GCGLenum target, GCGLint level, GCGLint internalformat, GCGLsizei width, GCGLsizei height, GCGLsizei depth, GCGLint border, GCGLenum format, GCGLenum type, const void* srcData, GCGLuint srcOffset) final;
+
+    void texSubImage3D(GCGLenum target, GCGLint level, GCGLint xoffset, GCGLint yoffset, GCGLint zoffset, GCGLsizei width, GCGLsizei height, GCGLsizei depth, GCGLenum format, GCGLenum type, GCGLintptr pboOffset) final;
+    void texSubImage3D(GCGLenum target, GCGLint level, GCGLint xoffset, GCGLint yoffset, GCGLint zoffset, GCGLsizei width, GCGLsizei height, GCGLsizei depth, GCGLenum format, GCGLenum type, const void* srcData, GCGLuint srcOffset) final;
+
+    void copyTexSubImage3D(GCGLenum target, GCGLint level, GCGLint xoffset, GCGLint yoffset, GCGLint zoffset, GCGLint x, GCGLint y, GCGLsizei width, GCGLsizei height) final;
+
+    void compressedTexImage3D(GCGLenum target, GCGLint level, GCGLenum internalformat, GCGLsizei width, GCGLsizei height, GCGLsizei depth, GCGLint border, GCGLsizei imageSize, GCGLintptr offset) final;
+    void compressedTexImage3D(GCGLenum target, GCGLint level, GCGLenum internalformat, GCGLsizei width, GCGLsizei height, GCGLsizei depth, GCGLint border, const void* srcData, GCGLuint srcOffset, GCGLuint srcLengthOverride) final;
+    void compressedTexSubImage3D(GCGLenum target, GCGLint level, GCGLint xoffset, GCGLint yoffset, GCGLint zoffset, GCGLsizei width, GCGLsizei height, GCGLsizei depth, GCGLenum format, GCGLsizei imageSize, GCGLintptr offset) final;
+    void compressedTexSubImage3D(GCGLenum target, GCGLint level, GCGLint xoffset, GCGLint yoffset, GCGLint zoffset, GCGLsizei width, GCGLsizei height, GCGLsizei depth, GCGLenum format, const void* srcData, GCGLuint srcOffset, GCGLuint srcLengthOverride) final;
+
+    GCGLint getFragDataLocation(PlatformGLObject program, const String& name) final;
+
+    void uniform1ui(GCGLint location, GCGLuint v0) final;
+    void uniform2ui(GCGLint location, GCGLuint v0, GCGLuint v1) final;
+    void uniform3ui(GCGLint location, GCGLuint v0, GCGLuint v1, GCGLuint v2) final;
+    void uniform4ui(GCGLint location, GCGLuint v0, GCGLuint v1, GCGLuint v2, GCGLuint v3) final;
+    void uniform1uiv(GCGLint location, const GCGLuint* data, GCGLuint srcOffset, GCGLuint srcLength) final;
+    void uniform2uiv(GCGLint location, const GCGLuint* data, GCGLuint srcOffset, GCGLuint srcLength) final;
+    void uniform3uiv(GCGLint location, const GCGLuint* data, GCGLuint srcOffset, GCGLuint srcLength) final;
+    void uniform4uiv(GCGLint location, const GCGLuint* data, GCGLuint srcOffset, GCGLuint srcLength) final;
+    void uniformMatrix2x3fv(GCGLint location, GCGLboolean transpose, const GCGLfloat* data, GCGLuint srcOffset, GCGLuint srcLength) final;
+    void uniformMatrix3x2fv(GCGLint location, GCGLboolean transpose, const GCGLfloat* data, GCGLuint srcOffset, GCGLuint srcLength) final;
+    void uniformMatrix2x4fv(GCGLint location, GCGLboolean transpose, const GCGLfloat* data, GCGLuint srcOffset, GCGLuint srcLength) final;
+    void uniformMatrix4x2fv(GCGLint location, GCGLboolean transpose, const GCGLfloat* data, GCGLuint srcOffset, GCGLuint srcLength) final;
+    void uniformMatrix3x4fv(GCGLint location, GCGLboolean transpose, const GCGLfloat* data, GCGLuint srcOffset, GCGLuint srcLength) final;
+    void uniformMatrix4x3fv(GCGLint location, GCGLboolean transpose, const GCGLfloat* data, GCGLuint srcOffset, GCGLuint srcLength) final;
+    void vertexAttribI4i(GCGLuint index, GCGLint x, GCGLint y, GCGLint z, GCGLint w) final;
+    void vertexAttribI4iv(GCGLuint index, const GCGLint* values) final;
+    void vertexAttribI4ui(GCGLuint index, GCGLuint x, GCGLuint y, GCGLuint z, GCGLuint w) final;
+    void vertexAttribI4uiv(GCGLuint index, const GCGLuint* values) final;
+    void vertexAttribIPointer(GCGLuint index, GCGLint size, GCGLenum type, GCGLsizei stride, GCGLintptr offset) final;
+
+    void drawRangeElements(GCGLenum mode, GCGLuint start, GCGLuint end, GCGLsizei count, GCGLenum type, GCGLintptr offset) final;
+
+    void drawBuffers(const Vector<GCGLenum>& buffers) final;
+    void clearBufferiv(GCGLenum buffer, GCGLint drawbuffer, const GCGLint* values, GCGLuint srcOffset) final;
+    void clearBufferuiv(GCGLenum buffer, GCGLint drawbuffer, const GCGLuint* values, GCGLuint srcOffset) final;
+    void clearBufferfv(GCGLenum buffer, GCGLint drawbuffer, const GCGLfloat* values, GCGLuint srcOffset) final;
+    void clearBufferfi(GCGLenum buffer, GCGLint drawbuffer, GCGLfloat depth, GCGLint stencil) final;
+
+    PlatformGLObject createQuery() final;
+    void deleteQuery(PlatformGLObject query) final;
+    GCGLboolean isQuery(PlatformGLObject query) final;
+    void beginQuery(GCGLenum target, PlatformGLObject query) final;
+    void endQuery(GCGLenum target) final;
+    PlatformGLObject getQuery(GCGLenum target, GCGLenum pname) final;
+    // getQueryParameter
+    void glGetQueryObjectuiv(PlatformGLObject query, GCGLenum pname, GCGLuint* value) final;
+
+    PlatformGLObject createSampler() final;
+    void deleteSampler(PlatformGLObject sampler) final;
+    GCGLboolean isSampler(PlatformGLObject sampler) final;
+    void bindSampler(GCGLuint unit, PlatformGLObject sampler) final;
+    void samplerParameteri(PlatformGLObject sampler, GCGLenum pname, GCGLint param) final;
+    void samplerParameterf(PlatformGLObject sampler, GCGLenum pname, GCGLfloat param) final;
+    // getSamplerParameter
+    void getSamplerParameterfv(PlatformGLObject sampler, GCGLenum pname, GCGLfloat* value) final;
+    void getSamplerParameteriv(PlatformGLObject sampler, GCGLenum pname, GCGLint* value) final;
+
+    PlatformGLObject fenceSync(GCGLenum condition, GCGLbitfield flags) final;
+    GCGLboolean isSync(PlatformGLObject sync) final;
+    void deleteSync(PlatformGLObject sync) final;
+    GCGLenum clientWaitSync(PlatformGLObject sync, GCGLbitfield flags, GCGLuint64 timeout) final;
+    void waitSync(PlatformGLObject sync, GCGLbitfield flags, GCGLint64 timeout) final;
+    // getSyncParameter
+    // FIXME - this can be implemented at the WebGL level if we signal the WebGLSync object.
+    void getSynciv(PlatformGLObject sync, GCGLenum pname, GCGLsizei bufSize, GCGLint *value) final;
+
+    PlatformGLObject createTransformFeedback() final;
+    void deleteTransformFeedback(PlatformGLObject id) final;
+    GCGLboolean isTransformFeedback(PlatformGLObject id) final;
+    void bindTransformFeedback(GCGLenum target, PlatformGLObject id) final;
+    void beginTransformFeedback(GCGLenum primitiveMode) final;
+    void endTransformFeedback() final;
+    void transformFeedbackVaryings(PlatformGLObject program, const Vector<String>& varyings, GCGLenum bufferMode) final;
+    PlatformGLObject getTransformFeedbackVarying(PlatformGLObject program, GCGLuint index) final;
+    void pauseTransformFeedback() final;
+    void resumeTransformFeedback() final;
+
+    void bindBufferBase(GCGLenum target, GCGLuint index, PlatformGLObject buffer) final;
+    void bindBufferRange(GCGLenum target, GCGLuint index, PlatformGLObject buffer, GCGLintptr offset, GCGLsizeiptr size) final;
+    // getIndexedParameter -> use getParameter calls above.
+    Vector<GCGLuint> getUniformIndices(PlatformGLObject program, const Vector<String>& uniformNames) final;
+    void getActiveUniforms(PlatformGLObject program, const Vector<GCGLuint>& uniformIndices, GCGLenum pname, Vector<GCGLint>& params) final;
+
+    GCGLuint getUniformBlockIndex(PlatformGLObject program, const String& uniformBlockName) final;
+    // getActiveUniformBlockParameter
+    void getActiveUniformBlockiv(PlatformGLObject program, GCGLuint uniformBlockIndex, GCGLenum pname, GCGLint* params) final;
+    String getActiveUniformBlockName(PlatformGLObject program, GCGLuint uniformBlockIndex) final;
+    void uniformBlockBinding(PlatformGLObject program, GCGLuint uniformBlockIndex, GCGLuint uniformBlockBinding) final;
+
+    void texImage2D(GCGLenum target, GCGLint level, GCGLint internalformat, GCGLsizei width, GCGLsizei height, GCGLint border, GCGLenum format, GCGLenum type, GCGLintptr pboOffset) final;
+    void texImage2D(GCGLenum target, GCGLint level, GCGLint internalformat, GCGLsizei width, GCGLsizei height, GCGLint border, GCGLenum format, GCGLenum type, const void* srcData, GCGLuint srcOffset) final;
+
+    void texSubImage2D(GCGLenum target, GCGLint level, GCGLint xoffset, GCGLint yoffset, GCGLsizei width, GCGLsizei height, GCGLenum format, GCGLenum type, GCGLintptr pboOffset) final;
+    void texSubImage2D(GCGLenum target, GCGLint level, GCGLint xoffset, GCGLint yoffset, GCGLsizei width, GCGLsizei height, GCGLenum format, GCGLenum type, const void* srcData, GCGLuint srcOffset) final;
+
+    void compressedTexImage2D(GCGLenum target, GCGLint level, GCGLenum internalformat, GCGLsizei width, GCGLsizei height, GCGLint border, GCGLsizei imageSize, GCGLintptr offset) final;
+    void compressedTexImage2D(GCGLenum target, GCGLint level, GCGLenum internalformat, GCGLsizei width, GCGLsizei height, GCGLint border, const void* srcData, GCGLuint srcOffset, GCGLuint srcLengthOverride) final;
+
+    void compressedTexSubImage2D(GCGLenum target, GCGLint level, GCGLint xoffset, GCGLint yoffset, GCGLsizei width, GCGLsizei height, GCGLenum format, GCGLsizei imageSize, GCGLintptr offset) final;
+    void compressedTexSubImage2D(GCGLenum target, GCGLint level, GCGLint xoffset, GCGLint yoffset, GCGLsizei width, GCGLsizei height, GCGLenum format, const void* srcData, GCGLuint srcOffset, GCGLuint srcLengthOverride) final;
+
+    void uniform1fv(GCGLint location, const GCGLfloat* data, GCGLuint srcOffset, GCGLuint srcLength) final;
+    void uniform2fv(GCGLint location, const GCGLfloat* data, GCGLuint srcOffset, GCGLuint srcLength) final;
+    void uniform3fv(GCGLint location, const GCGLfloat* data, GCGLuint srcOffset, GCGLuint srcLength) final;
+    void uniform4fv(GCGLint location, const GCGLfloat* data, GCGLuint srcOffset, GCGLuint srcLength) final;
+
+    void uniform1iv(GCGLint location, const GCGLint* data, GCGLuint srcOffset, GCGLuint srcLength) final;
+    void uniform2iv(GCGLint location, const GCGLint* data, GCGLuint srcOffset, GCGLuint srcLength) final;
+    void uniform3iv(GCGLint location, const GCGLint* data, GCGLuint srcOffset, GCGLuint srcLength) final;
+    void uniform4iv(GCGLint location, const GCGLint* data, GCGLuint srcOffset, GCGLuint srcLength) final;
+
+    void uniformMatrix2fv(GCGLint location, GCGLboolean transpose, const GCGLfloat* data, GCGLuint srcOffset, GCGLuint srcLength) final;
+    void uniformMatrix3fv(GCGLint location, GCGLboolean transpose, const GCGLfloat* data, GCGLuint srcOffset, GCGLuint srcLength) final;
+    void uniformMatrix4fv(GCGLint location, GCGLboolean transpose, const GCGLfloat* data, GCGLuint srcOffset, GCGLuint srcLength) final;
+
+    void readPixels(GCGLint x, GCGLint y, GCGLsizei width, GCGLsizei height, GCGLenum format, GCGLenum type, GCGLintptr offset) final;
+    void readPixels(GCGLint x, GCGLint y, GCGLsizei width, GCGLsizei height, GCGLenum format, GCGLenum type, const void* dstData, GCGLuint dstOffset) final;
+
+    // Helper methods.
+
     void paintToCanvas(const unsigned char* imagePixels, const IntSize& imageSize, const IntSize& canvasSize, GraphicsContext&);
 
     void markContextChanged();
@@ -390,7 +527,7 @@
     bool paintCompositedResultsToCanvas(ImageBuffer*);
 
 #if USE(OPENGL) && ENABLE(WEBGL2)
-    void primitiveRestartIndex(GCGLuint) override;
+    void primitiveRestartIndex(GCGLuint) final;
 #endif
 
 #if PLATFORM(COCOA)
@@ -414,19 +551,19 @@
     GraphicsContextGLPowerPreference powerPreferenceUsedForCreation() const { return m_powerPreferenceUsedForCreation; }
 
     // Support for buffer creation and deletion
-    PlatformGLObject createBuffer() override;
-    PlatformGLObject createFramebuffer() override;
-    PlatformGLObject createProgram() override;
-    PlatformGLObject createRenderbuffer() override;
-    PlatformGLObject createShader(GCGLenum) override;
-    PlatformGLObject createTexture() override;
+    PlatformGLObject createBuffer() final;
+    PlatformGLObject createFramebuffer() final;
+    PlatformGLObject createProgram() final;
+    PlatformGLObject createRenderbuffer() final;
+    PlatformGLObject createShader(GCGLenum) final;
+    PlatformGLObject createTexture() final;
 
-    void deleteBuffer(PlatformGLObject) override;
-    void deleteFramebuffer(PlatformGLObject) override;
-    void deleteProgram(PlatformGLObject) override;
-    void deleteRenderbuffer(PlatformGLObject) override;
-    void deleteShader(PlatformGLObject) override;
-    void deleteTexture(PlatformGLObject) override;
+    void deleteBuffer(PlatformGLObject) final;
+    void deleteFramebuffer(PlatformGLObject) final;
+    void deleteProgram(PlatformGLObject) final;
+    void deleteRenderbuffer(PlatformGLObject) final;
+    void deleteShader(PlatformGLObject) final;
+    void deleteTexture(PlatformGLObject) final;
 
     // Synthesizes an OpenGL error which will be returned from a
     // later call to getError. This is used to emulate OpenGL ES
@@ -446,7 +583,7 @@
     // all methods it contains may necessarily be supported on the
     // current hardware. Must call ExtensionsGL::supports() to
     // determine this.
-    ExtensionsGL& getExtensions() override;
+    ExtensionsGL& getExtensions() final;
 
     IntSize getInternalFramebufferSize() const;
 

Modified: trunk/Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGLCommon.cpp (254349 => 254350)


--- trunk/Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGLCommon.cpp	2020-01-10 18:49:51 UTC (rev 254349)
+++ trunk/Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGLCommon.cpp	2020-01-10 18:50:35 UTC (rev 254350)
@@ -558,102 +558,6 @@
     ::glBufferSubData(target, offset, size, data);
 }
 
-#if USE(OPENGL_3) || USE(OPENGL_ES_3)
-void* GraphicsContextGLOpenGL::mapBufferRange(GCGLenum target, GCGLintptr offset, GCGLsizeiptr length, GCGLbitfield access)
-{
-    makeContextCurrent();
-    return ::glMapBufferRange(target, offset, length, access);
-}
-
-GCGLboolean GraphicsContextGLOpenGL::unmapBuffer(GCGLenum target)
-{
-    makeContextCurrent();
-    return ::glUnmapBuffer(target);
-}
-
-void GraphicsContextGLOpenGL::copyBufferSubData(GCGLenum readTarget, GCGLenum writeTarget, GCGLintptr readOffset, GCGLintptr writeOffset, GCGLsizeiptr size)
-{
-    makeContextCurrent();
-    ::glCopyBufferSubData(readTarget, writeTarget, readOffset, writeOffset, size);
-}
-
-void GraphicsContextGLOpenGL::getInternalformativ(GCGLenum target, GCGLenum internalformat, GCGLenum pname, GCGLsizei bufSize, GCGLint* params)
-{
-#if USE(OPENGL_ES)
-    makeContextCurrent();
-    ::glGetInternalformativ(target, internalformat, pname, bufSize, params);
-#else
-    UNUSED_PARAM(target);
-    UNUSED_PARAM(internalformat);
-    UNUSED_PARAM(pname);
-    UNUSED_PARAM(bufSize);
-    UNUSED_PARAM(params);
-#endif
-}
-
-void GraphicsContextGLOpenGL::renderbufferStorageMultisample(GCGLenum target, GCGLsizei samples, GCGLenum internalformat, GCGLsizei width, GCGLsizei height)
-{
-    makeContextCurrent();
-    ::glRenderbufferStorageMultisample(target, samples, internalformat, width, height);
-}
-
-void GraphicsContextGLOpenGL::texStorage2D(GCGLenum target, GCGLsizei levels, GCGLenum internalformat, GCGLsizei width, GCGLsizei height)
-{
-    makeContextCurrent();
-    ::glTexStorage2D(target, levels, internalformat, width, height);
-    m_state.textureSeedCount.add(m_state.currentBoundTexture());
-}
-
-void GraphicsContextGLOpenGL::texStorage3D(GCGLenum target, GCGLsizei levels, GCGLenum internalformat, GCGLsizei width, GCGLsizei height, GCGLsizei depth)
-{
-    makeContextCurrent();
-    ::glTexStorage3D(target, levels, internalformat, width, height, depth);
-    m_state.textureSeedCount.add(m_state.currentBoundTexture());
-}
-
-void GraphicsContextGLOpenGL::getActiveUniforms(PlatformGLObject program, const Vector<GCGLuint>& uniformIndices, GCGLenum pname, Vector<GCGLint>& params)
-{
-    ASSERT(program);
-    makeContextCurrent();
-
-    ::glGetActiveUniformsiv(program, uniformIndices.size(), uniformIndices.data(), pname, params.data());
-}
-#else
-void* GraphicsContextGLOpenGL::mapBufferRange(GCGLenum, GCGLintptr, GCGLsizeiptr, GCGLbitfield)
-{
-    return nullptr;
-}
-
-GCGLboolean GraphicsContextGLOpenGL::unmapBuffer(GCGLenum)
-{
-    return 0;
-}
-
-void GraphicsContextGLOpenGL::copyBufferSubData(GCGLenum, GCGLenum, GCGLintptr, GCGLintptr, GCGLsizeiptr)
-{
-}
-
-void GraphicsContextGLOpenGL::getInternalformativ(GCGLenum, GCGLenum, GCGLenum, GCGLsizei, GCGLint*)
-{
-}
-
-void GraphicsContextGLOpenGL::renderbufferStorageMultisample(GCGLenum, GCGLsizei, GCGLenum, GCGLsizei, GCGLsizei)
-{
-}
-
-void GraphicsContextGLOpenGL::texStorage2D(GCGLenum, GCGLsizei, GCGLenum, GCGLsizei, GCGLsizei)
-{
-}
-
-void GraphicsContextGLOpenGL::texStorage3D(GCGLenum, GCGLsizei, GCGLenum, GCGLsizei, GCGLsizei, GCGLsizei)
-{
-}
-
-void GraphicsContextGLOpenGL::getActiveUniforms(PlatformGLObject, const Vector<GCGLuint>&, GCGLenum, Vector<GCGLint>&)
-{
-}
-#endif // USE(OPENGL_3) || USE(OPENGL_ES_3)
-
 GCGLenum GraphicsContextGLOpenGL::checkFramebufferStatus(GCGLenum target)
 {
     makeContextCurrent();
@@ -2113,6 +2017,1021 @@
 }
 #endif
 
+void GraphicsContextGLOpenGL::bufferData(GCGLenum target, const void* data, GCGLenum usage, GCGLuint srcOffset, GCGLuint length)
+{
+    UNUSED_PARAM(target);
+    UNUSED_PARAM(data);
+    UNUSED_PARAM(usage);
+    UNUSED_PARAM(srcOffset);
+    UNUSED_PARAM(length);
 }
 
+void GraphicsContextGLOpenGL::bufferSubData(GCGLenum target, GCGLintptr dstByteOffset, const void* srcData, GCGLuint srcOffset, GCGLuint length)
+{
+    UNUSED_PARAM(target);
+    UNUSED_PARAM(dstByteOffset);
+    UNUSED_PARAM(srcData);
+    UNUSED_PARAM(srcOffset);
+    UNUSED_PARAM(length);
+}
+
+#if USE(OPENGL_3) || USE(OPENGL_ES_3)
+void GraphicsContextGLOpenGL::copyBufferSubData(GCGLenum readTarget, GCGLenum writeTarget, GCGLintptr readOffset, GCGLintptr writeOffset, GCGLsizeiptr size)
+{
+    makeContextCurrent();
+    ::glCopyBufferSubData(readTarget, writeTarget, readOffset, writeOffset, size);
+}
+#else
+void GraphicsContextGLOpenGL::copyBufferSubData(GCGLenum, GCGLenum, GCGLintptr, GCGLintptr, GCGLsizeiptr)
+{
+}
+#endif
+
+void GraphicsContextGLOpenGL::getBufferSubData(GCGLenum target, GCGLintptr srcByteOffset, const void* dstData, GCGLuint dstOffset, GCGLuint length)
+{
+    UNUSED_PARAM(target);
+    UNUSED_PARAM(srcByteOffset);
+    UNUSED_PARAM(dstData);
+    UNUSED_PARAM(dstOffset);
+    UNUSED_PARAM(length);
+}
+
+#if USE(OPENGL_3) || USE(OPENGL_ES_3)
+void* GraphicsContextGLOpenGL::mapBufferRange(GCGLenum target, GCGLintptr offset, GCGLsizeiptr length, GCGLbitfield access)
+{
+    makeContextCurrent();
+    return ::glMapBufferRange(target, offset, length, access);
+}
+
+GCGLboolean GraphicsContextGLOpenGL::unmapBuffer(GCGLenum target)
+{
+    makeContextCurrent();
+    return ::glUnmapBuffer(target);
+}
+#else
+void* GraphicsContextGLOpenGL::mapBufferRange(GCGLenum, GCGLintptr, GCGLsizeiptr, GCGLbitfield)
+{
+    return nullptr;
+}
+
+GCGLboolean GraphicsContextGLOpenGL::unmapBuffer(GCGLenum)
+{
+    return false;
+}
+#endif
+
+void GraphicsContextGLOpenGL::blitFramebuffer(GCGLint srcX0, GCGLint srcY0, GCGLint srcX1, GCGLint srcY1, GCGLint dstX0, GCGLint dstY0, GCGLint dstX1, GCGLint dstY1, GCGLbitfield mask, GCGLenum filter)
+{
+    UNUSED_PARAM(srcX0);
+    UNUSED_PARAM(srcY0);
+    UNUSED_PARAM(srcX1);
+    UNUSED_PARAM(srcY1);
+    UNUSED_PARAM(dstX0);
+    UNUSED_PARAM(dstY0);
+    UNUSED_PARAM(dstX1);
+    UNUSED_PARAM(dstY1);
+    UNUSED_PARAM(mask);
+    UNUSED_PARAM(filter);
+}
+
+void GraphicsContextGLOpenGL::framebufferTextureLayer(GCGLenum target, GCGLenum attachment, PlatformGLObject texture, GCGLint level, GCGLint layer)
+{
+    UNUSED_PARAM(target);
+    UNUSED_PARAM(attachment);
+    UNUSED_PARAM(texture);
+    UNUSED_PARAM(level);
+    UNUSED_PARAM(layer);
+}
+
+void GraphicsContextGLOpenGL::invalidateFramebuffer(GCGLenum target, const Vector<GCGLenum>& attachments)
+{
+    UNUSED_PARAM(target);
+    UNUSED_PARAM(attachments);
+}
+
+void GraphicsContextGLOpenGL::invalidateSubFramebuffer(GCGLenum target, const Vector<GCGLenum>& attachments, GCGLint x, GCGLint y, GCGLsizei width, GCGLsizei height)
+{
+    UNUSED_PARAM(target);
+    UNUSED_PARAM(attachments);
+    UNUSED_PARAM(x);
+    UNUSED_PARAM(y);
+    UNUSED_PARAM(width);
+    UNUSED_PARAM(height);
+}
+
+void GraphicsContextGLOpenGL::readBuffer(GCGLenum src)
+{
+    UNUSED_PARAM(src);
+}
+
+#if USE(OPENGL_3) || USE(OPENGL_ES_3)
+void GraphicsContextGLOpenGL::getInternalformativ(GCGLenum target, GCGLenum internalformat, GCGLenum pname, GCGLsizei bufSize, GCGLint* params)
+{
+#if USE(OPENGL_ES)
+    makeContextCurrent();
+    ::glGetInternalformativ(target, internalformat, pname, bufSize, params);
+#else
+    UNUSED_PARAM(target);
+    UNUSED_PARAM(internalformat);
+    UNUSED_PARAM(pname);
+    UNUSED_PARAM(bufSize);
+    UNUSED_PARAM(params);
+#endif
+}
+
+void GraphicsContextGLOpenGL::renderbufferStorageMultisample(GCGLenum target, GCGLsizei samples, GCGLenum internalformat, GCGLsizei width, GCGLsizei height)
+{
+    makeContextCurrent();
+    ::glRenderbufferStorageMultisample(target, samples, internalformat, width, height);
+}
+
+void GraphicsContextGLOpenGL::texStorage2D(GCGLenum target, GCGLsizei levels, GCGLenum internalformat, GCGLsizei width, GCGLsizei height)
+{
+    makeContextCurrent();
+    ::glTexStorage2D(target, levels, internalformat, width, height);
+    m_state.textureSeedCount.add(m_state.currentBoundTexture());
+}
+
+void GraphicsContextGLOpenGL::texStorage3D(GCGLenum target, GCGLsizei levels, GCGLenum internalformat, GCGLsizei width, GCGLsizei height, GCGLsizei depth)
+{
+    makeContextCurrent();
+    ::glTexStorage3D(target, levels, internalformat, width, height, depth);
+    m_state.textureSeedCount.add(m_state.currentBoundTexture());
+}
+#else
+void GraphicsContextGLOpenGL::getInternalformativ(GCGLenum, GCGLenum, GCGLenum, GCGLsizei, GCGLint*)
+{
+}
+
+void GraphicsContextGLOpenGL::renderbufferStorageMultisample(GCGLenum, GCGLsizei, GCGLenum, GCGLsizei, GCGLsizei)
+{
+}
+
+void GraphicsContextGLOpenGL::texStorage2D(GCGLenum, GCGLsizei, GCGLenum, GCGLsizei, GCGLsizei)
+{
+}
+
+void GraphicsContextGLOpenGL::texStorage3D(GCGLenum, GCGLsizei, GCGLenum, GCGLsizei, GCGLsizei, GCGLsizei)
+{
+}
+#endif
+
+void GraphicsContextGLOpenGL::texImage3D(GCGLenum target, GCGLint level, GCGLint internalformat, GCGLsizei width, GCGLsizei height, GCGLsizei depth, GCGLint border, GCGLenum format, GCGLenum type, GCGLintptr pboOffset)
+{
+    UNUSED_PARAM(target);
+    UNUSED_PARAM(level);
+    UNUSED_PARAM(internalformat);
+    UNUSED_PARAM(width);
+    UNUSED_PARAM(height);
+    UNUSED_PARAM(depth);
+    UNUSED_PARAM(border);
+    UNUSED_PARAM(format);
+    UNUSED_PARAM(type);
+    UNUSED_PARAM(pboOffset);
+}
+
+void GraphicsContextGLOpenGL::texImage3D(GCGLenum target, GCGLint level, GCGLint internalformat, GCGLsizei width, GCGLsizei height, GCGLsizei depth, GCGLint border, GCGLenum format, GCGLenum type, const void* pixels)
+{
+    UNUSED_PARAM(target);
+    UNUSED_PARAM(level);
+    UNUSED_PARAM(internalformat);
+    UNUSED_PARAM(width);
+    UNUSED_PARAM(height);
+    UNUSED_PARAM(depth);
+    UNUSED_PARAM(border);
+    UNUSED_PARAM(format);
+    UNUSED_PARAM(type);
+    UNUSED_PARAM(pixels);
+}
+
+void GraphicsContextGLOpenGL::texImage3D(GCGLenum target, GCGLint level, GCGLint internalformat, GCGLsizei width, GCGLsizei height, GCGLsizei depth, GCGLint border, GCGLenum format, GCGLenum type, const void* srcData, GCGLuint srcOffset)
+{
+    UNUSED_PARAM(target);
+    UNUSED_PARAM(level);
+    UNUSED_PARAM(internalformat);
+    UNUSED_PARAM(width);
+    UNUSED_PARAM(height);
+    UNUSED_PARAM(depth);
+    UNUSED_PARAM(border);
+    UNUSED_PARAM(format);
+    UNUSED_PARAM(type);
+    UNUSED_PARAM(srcData);
+    UNUSED_PARAM(srcOffset);
+}
+
+void GraphicsContextGLOpenGL::texSubImage3D(GCGLenum target, GCGLint level, GCGLint xoffset, GCGLint yoffset, GCGLint zoffset, GCGLsizei width, GCGLsizei height, GCGLsizei depth, GCGLenum format, GCGLenum type, GCGLintptr pboOffset)
+{
+    UNUSED_PARAM(target);
+    UNUSED_PARAM(level);
+    UNUSED_PARAM(xoffset);
+    UNUSED_PARAM(yoffset);
+    UNUSED_PARAM(zoffset);
+    UNUSED_PARAM(width);
+    UNUSED_PARAM(height);
+    UNUSED_PARAM(depth);
+    UNUSED_PARAM(format);
+    UNUSED_PARAM(type);
+    UNUSED_PARAM(pboOffset);
+}
+
+void GraphicsContextGLOpenGL::texSubImage3D(GCGLenum target, GCGLint level, GCGLint xoffset, GCGLint yoffset, GCGLint zoffset, GCGLsizei width, GCGLsizei height, GCGLsizei depth, GCGLenum format, GCGLenum type, const void* srcData, GCGLuint srcOffset)
+{
+    UNUSED_PARAM(target);
+    UNUSED_PARAM(level);
+    UNUSED_PARAM(xoffset);
+    UNUSED_PARAM(yoffset);
+    UNUSED_PARAM(zoffset);
+    UNUSED_PARAM(width);
+    UNUSED_PARAM(height);
+    UNUSED_PARAM(depth);
+    UNUSED_PARAM(format);
+    UNUSED_PARAM(type);
+    UNUSED_PARAM(srcData);
+    UNUSED_PARAM(srcOffset);
+}
+
+void GraphicsContextGLOpenGL::copyTexSubImage3D(GCGLenum target, GCGLint level, GCGLint xoffset, GCGLint yoffset, GCGLint zoffset, GCGLint x, GCGLint y, GCGLsizei width, GCGLsizei height)
+{
+    UNUSED_PARAM(target);
+    UNUSED_PARAM(level);
+    UNUSED_PARAM(xoffset);
+    UNUSED_PARAM(yoffset);
+    UNUSED_PARAM(zoffset);
+    UNUSED_PARAM(x);
+    UNUSED_PARAM(y);
+    UNUSED_PARAM(width);
+    UNUSED_PARAM(height);
+}
+
+void GraphicsContextGLOpenGL::compressedTexImage3D(GCGLenum target, GCGLint level, GCGLenum internalformat, GCGLsizei width, GCGLsizei height, GCGLsizei depth, GCGLint border, GCGLsizei imageSize, GCGLintptr offset)
+{
+    UNUSED_PARAM(target);
+    UNUSED_PARAM(level);
+    UNUSED_PARAM(internalformat);
+    UNUSED_PARAM(width);
+    UNUSED_PARAM(height);
+    UNUSED_PARAM(depth);
+    UNUSED_PARAM(border);
+    UNUSED_PARAM(imageSize);
+    UNUSED_PARAM(offset);
+}
+
+void GraphicsContextGLOpenGL::compressedTexImage3D(GCGLenum target, GCGLint level, GCGLenum internalformat, GCGLsizei width, GCGLsizei height, GCGLsizei depth, GCGLint border, const void* srcData, GCGLuint srcOffset, GCGLuint srcLengthOverride)
+{
+    UNUSED_PARAM(target);
+    UNUSED_PARAM(level);
+    UNUSED_PARAM(internalformat);
+    UNUSED_PARAM(width);
+    UNUSED_PARAM(height);
+    UNUSED_PARAM(depth);
+    UNUSED_PARAM(border);
+    UNUSED_PARAM(srcData);
+    UNUSED_PARAM(srcOffset);
+    UNUSED_PARAM(srcLengthOverride);
+}
+
+void GraphicsContextGLOpenGL::compressedTexSubImage3D(GCGLenum target, GCGLint level, GCGLint xoffset, GCGLint yoffset, GCGLint zoffset, GCGLsizei width, GCGLsizei height, GCGLsizei depth, GCGLenum format, GCGLsizei imageSize, GCGLintptr offset)
+{
+    UNUSED_PARAM(target);
+    UNUSED_PARAM(level);
+    UNUSED_PARAM(xoffset);
+    UNUSED_PARAM(yoffset);
+    UNUSED_PARAM(zoffset);
+    UNUSED_PARAM(width);
+    UNUSED_PARAM(height);
+    UNUSED_PARAM(depth);
+    UNUSED_PARAM(format);
+    UNUSED_PARAM(imageSize);
+    UNUSED_PARAM(offset);
+}
+
+void GraphicsContextGLOpenGL::compressedTexSubImage3D(GCGLenum target, GCGLint level, GCGLint xoffset, GCGLint yoffset, GCGLint zoffset, GCGLsizei width, GCGLsizei height, GCGLsizei depth, GCGLenum format, const void* srcData, GCGLuint srcOffset, GCGLuint srcLengthOverride)
+{
+    UNUSED_PARAM(target);
+    UNUSED_PARAM(level);
+    UNUSED_PARAM(xoffset);
+    UNUSED_PARAM(yoffset);
+    UNUSED_PARAM(zoffset);
+    UNUSED_PARAM(width);
+    UNUSED_PARAM(height);
+    UNUSED_PARAM(depth);
+    UNUSED_PARAM(format);
+    UNUSED_PARAM(srcData);
+    UNUSED_PARAM(srcOffset);
+    UNUSED_PARAM(srcLengthOverride);
+}
+
+GCGLint GraphicsContextGLOpenGL::getFragDataLocation(PlatformGLObject program, const String& name)
+{
+    UNUSED_PARAM(program);
+    UNUSED_PARAM(name);
+
+    return 0;
+}
+
+void GraphicsContextGLOpenGL::uniform1ui(GCGLint location, GCGLuint v0)
+{
+    UNUSED_PARAM(location);
+    UNUSED_PARAM(v0);
+}
+
+void GraphicsContextGLOpenGL::uniform2ui(GCGLint location, GCGLuint v0, GCGLuint v1)
+{
+    UNUSED_PARAM(location);
+    UNUSED_PARAM(v0);
+    UNUSED_PARAM(v1);
+}
+
+void GraphicsContextGLOpenGL::uniform3ui(GCGLint location, GCGLuint v0, GCGLuint v1, GCGLuint v2)
+{
+    UNUSED_PARAM(location);
+    UNUSED_PARAM(v0);
+    UNUSED_PARAM(v1);
+    UNUSED_PARAM(v2);
+}
+
+void GraphicsContextGLOpenGL::uniform4ui(GCGLint location, GCGLuint v0, GCGLuint v1, GCGLuint v2, GCGLuint v3)
+{
+    UNUSED_PARAM(location);
+    UNUSED_PARAM(v0);
+    UNUSED_PARAM(v1);
+    UNUSED_PARAM(v2);
+    UNUSED_PARAM(v3);
+}
+
+void GraphicsContextGLOpenGL::uniform1uiv(GCGLint location, const GCGLuint* data, GCGLuint srcOffset, GCGLuint srcLength)
+{
+    UNUSED_PARAM(location);
+    UNUSED_PARAM(data);
+    UNUSED_PARAM(srcOffset);
+    UNUSED_PARAM(srcLength);
+}
+
+void GraphicsContextGLOpenGL::uniform2uiv(GCGLint location, const GCGLuint* data, GCGLuint srcOffset, GCGLuint srcLength)
+{
+    UNUSED_PARAM(location);
+    UNUSED_PARAM(data);
+    UNUSED_PARAM(srcOffset);
+    UNUSED_PARAM(srcLength);
+}
+
+void GraphicsContextGLOpenGL::uniform3uiv(GCGLint location, const GCGLuint* data, GCGLuint srcOffset, GCGLuint srcLength)
+{
+    UNUSED_PARAM(location);
+    UNUSED_PARAM(data);
+    UNUSED_PARAM(srcOffset);
+    UNUSED_PARAM(srcLength);
+}
+
+void GraphicsContextGLOpenGL::uniform4uiv(GCGLint location, const GCGLuint* data, GCGLuint srcOffset, GCGLuint srcLength)
+{
+    UNUSED_PARAM(location);
+    UNUSED_PARAM(data);
+    UNUSED_PARAM(srcOffset);
+    UNUSED_PARAM(srcLength);
+}
+
+void GraphicsContextGLOpenGL::uniformMatrix2x3fv(GCGLint location, GCGLboolean transpose, const GCGLfloat* data, GCGLuint srcOffset, GCGLuint srcLength)
+{
+    UNUSED_PARAM(location);
+    UNUSED_PARAM(transpose);
+    UNUSED_PARAM(data);
+    UNUSED_PARAM(srcOffset);
+    UNUSED_PARAM(srcLength);
+}
+
+void GraphicsContextGLOpenGL::uniformMatrix3x2fv(GCGLint location, GCGLboolean transpose, const GCGLfloat* data, GCGLuint srcOffset, GCGLuint srcLength)
+{
+    UNUSED_PARAM(location);
+    UNUSED_PARAM(transpose);
+    UNUSED_PARAM(data);
+    UNUSED_PARAM(srcOffset);
+    UNUSED_PARAM(srcLength);
+}
+
+void GraphicsContextGLOpenGL::uniformMatrix2x4fv(GCGLint location, GCGLboolean transpose, const GCGLfloat* data, GCGLuint srcOffset, GCGLuint srcLength)
+{
+    UNUSED_PARAM(location);
+    UNUSED_PARAM(transpose);
+    UNUSED_PARAM(data);
+    UNUSED_PARAM(srcOffset);
+    UNUSED_PARAM(srcLength);
+}
+
+void GraphicsContextGLOpenGL::uniformMatrix4x2fv(GCGLint location, GCGLboolean transpose, const GCGLfloat* data, GCGLuint srcOffset, GCGLuint srcLength)
+{
+    UNUSED_PARAM(location);
+    UNUSED_PARAM(transpose);
+    UNUSED_PARAM(data);
+    UNUSED_PARAM(srcOffset);
+    UNUSED_PARAM(srcLength);
+}
+
+void GraphicsContextGLOpenGL::uniformMatrix3x4fv(GCGLint location, GCGLboolean transpose, const GCGLfloat* data, GCGLuint srcOffset, GCGLuint srcLength)
+{
+    UNUSED_PARAM(location);
+    UNUSED_PARAM(transpose);
+    UNUSED_PARAM(data);
+    UNUSED_PARAM(srcOffset);
+    UNUSED_PARAM(srcLength);
+}
+
+void GraphicsContextGLOpenGL::uniformMatrix4x3fv(GCGLint location, GCGLboolean transpose, const GCGLfloat* data, GCGLuint srcOffset, GCGLuint srcLength)
+{
+    UNUSED_PARAM(location);
+    UNUSED_PARAM(transpose);
+    UNUSED_PARAM(data);
+    UNUSED_PARAM(srcOffset);
+    UNUSED_PARAM(srcLength);
+}
+
+void GraphicsContextGLOpenGL::vertexAttribI4i(GCGLuint index, GCGLint x, GCGLint y, GCGLint z, GCGLint w)
+{
+    UNUSED_PARAM(index);
+    UNUSED_PARAM(x);
+    UNUSED_PARAM(y);
+    UNUSED_PARAM(z);
+    UNUSED_PARAM(w);
+}
+
+void GraphicsContextGLOpenGL::vertexAttribI4iv(GCGLuint index, const GCGLint* values)
+{
+    UNUSED_PARAM(index);
+    UNUSED_PARAM(values);
+}
+
+void GraphicsContextGLOpenGL::vertexAttribI4ui(GCGLuint index, GCGLuint x, GCGLuint y, GCGLuint z, GCGLuint w)
+{
+    UNUSED_PARAM(index);
+    UNUSED_PARAM(x);
+    UNUSED_PARAM(y);
+    UNUSED_PARAM(z);
+    UNUSED_PARAM(w);
+}
+
+void GraphicsContextGLOpenGL::vertexAttribI4uiv(GCGLuint index, const GCGLuint* values)
+{
+    UNUSED_PARAM(index);
+    UNUSED_PARAM(values);
+}
+
+void GraphicsContextGLOpenGL::vertexAttribIPointer(GCGLuint index, GCGLint size, GCGLenum type, GCGLsizei stride, GCGLintptr offset)
+{
+    UNUSED_PARAM(index);
+    UNUSED_PARAM(size);
+    UNUSED_PARAM(type);
+    UNUSED_PARAM(stride);
+    UNUSED_PARAM(offset);
+}
+
+void GraphicsContextGLOpenGL::drawRangeElements(GCGLenum mode, GCGLuint start, GCGLuint end, GCGLsizei count, GCGLenum type, GCGLintptr offset)
+{
+    UNUSED_PARAM(mode);
+    UNUSED_PARAM(start);
+    UNUSED_PARAM(end);
+    UNUSED_PARAM(count);
+    UNUSED_PARAM(type);
+    UNUSED_PARAM(offset);
+}
+
+void GraphicsContextGLOpenGL::drawBuffers(const Vector<GCGLenum>& buffers)
+{
+    UNUSED_PARAM(buffers);
+}
+
+void GraphicsContextGLOpenGL::clearBufferiv(GCGLenum buffer, GCGLint drawbuffer, const GCGLint* values, GCGLuint srcOffset)
+{
+    UNUSED_PARAM(buffer);
+    UNUSED_PARAM(drawbuffer);
+    UNUSED_PARAM(values);
+    UNUSED_PARAM(srcOffset);
+}
+
+void GraphicsContextGLOpenGL::clearBufferuiv(GCGLenum buffer, GCGLint drawbuffer, const GCGLuint* values, GCGLuint srcOffset)
+{
+    UNUSED_PARAM(buffer);
+    UNUSED_PARAM(drawbuffer);
+    UNUSED_PARAM(values);
+    UNUSED_PARAM(srcOffset);
+}
+
+void GraphicsContextGLOpenGL::clearBufferfv(GCGLenum buffer, GCGLint drawbuffer, const GCGLfloat* values, GCGLuint srcOffset)
+{
+    UNUSED_PARAM(buffer);
+    UNUSED_PARAM(drawbuffer);
+    UNUSED_PARAM(values);
+    UNUSED_PARAM(srcOffset);
+}
+
+void GraphicsContextGLOpenGL::clearBufferfi(GCGLenum buffer, GCGLint drawbuffer, GCGLfloat depth, GCGLint stencil)
+{
+    UNUSED_PARAM(buffer);
+    UNUSED_PARAM(drawbuffer);
+    UNUSED_PARAM(depth);
+    UNUSED_PARAM(stencil);
+}
+
+PlatformGLObject GraphicsContextGLOpenGL::createQuery()
+{
+    return 0;
+}
+
+void GraphicsContextGLOpenGL::deleteQuery(PlatformGLObject query)
+{
+    UNUSED_PARAM(query);
+}
+
+GCGLboolean GraphicsContextGLOpenGL::isQuery(PlatformGLObject query)
+{
+    UNUSED_PARAM(query);
+
+    return false;
+}
+
+void GraphicsContextGLOpenGL::beginQuery(GCGLenum target, PlatformGLObject query)
+{
+    UNUSED_PARAM(target);
+    UNUSED_PARAM(query);
+}
+
+void GraphicsContextGLOpenGL::endQuery(GCGLenum target)
+{
+    UNUSED_PARAM(target);
+}
+
+PlatformGLObject GraphicsContextGLOpenGL::getQuery(GCGLenum target, GCGLenum pname)
+{
+    UNUSED_PARAM(target);
+    UNUSED_PARAM(pname);
+
+    return 0;
+}
+
+void GraphicsContextGLOpenGL::glGetQueryObjectuiv(PlatformGLObject query, GCGLenum pname, GCGLuint* value)
+{
+    UNUSED_PARAM(query);
+    UNUSED_PARAM(pname);
+    UNUSED_PARAM(value);
+}
+
+PlatformGLObject GraphicsContextGLOpenGL::createSampler()
+{
+    return 0;
+}
+
+void GraphicsContextGLOpenGL::deleteSampler(PlatformGLObject sampler)
+{
+    UNUSED_PARAM(sampler);
+}
+
+GCGLboolean GraphicsContextGLOpenGL::isSampler(PlatformGLObject sampler)
+{
+    UNUSED_PARAM(sampler);
+
+    return false;
+}
+
+void GraphicsContextGLOpenGL::bindSampler(GCGLuint unit, PlatformGLObject sampler)
+{
+    UNUSED_PARAM(unit);
+    UNUSED_PARAM(sampler);
+}
+
+void GraphicsContextGLOpenGL::samplerParameteri(PlatformGLObject sampler, GCGLenum pname, GCGLint param)
+{
+    UNUSED_PARAM(sampler);
+    UNUSED_PARAM(pname);
+    UNUSED_PARAM(param);
+}
+
+void GraphicsContextGLOpenGL::samplerParameterf(PlatformGLObject sampler, GCGLenum pname, GCGLfloat param)
+{
+    UNUSED_PARAM(sampler);
+    UNUSED_PARAM(pname);
+    UNUSED_PARAM(param);
+}
+
+void GraphicsContextGLOpenGL::getSamplerParameterfv(PlatformGLObject sampler, GCGLenum pname, GCGLfloat* value)
+{
+    UNUSED_PARAM(sampler);
+    UNUSED_PARAM(pname);
+    UNUSED_PARAM(value);
+}
+
+void GraphicsContextGLOpenGL::getSamplerParameteriv(PlatformGLObject sampler, GCGLenum pname, GCGLint* value)
+{
+    UNUSED_PARAM(sampler);
+    UNUSED_PARAM(pname);
+    UNUSED_PARAM(value);
+}
+
+PlatformGLObject GraphicsContextGLOpenGL::fenceSync(GCGLenum condition, GCGLbitfield flags)
+{
+    UNUSED_PARAM(condition);
+    UNUSED_PARAM(flags);
+
+    return 0;
+}
+
+GCGLboolean GraphicsContextGLOpenGL::isSync(PlatformGLObject sync)
+{
+    UNUSED_PARAM(sync);
+
+    return false;
+}
+
+void GraphicsContextGLOpenGL::deleteSync(PlatformGLObject sync)
+{
+    UNUSED_PARAM(sync);
+}
+
+GCGLenum GraphicsContextGLOpenGL::clientWaitSync(PlatformGLObject sync, GCGLbitfield flags, GCGLuint64 timeout)
+{
+    UNUSED_PARAM(sync);
+    UNUSED_PARAM(flags);
+    UNUSED_PARAM(timeout);
+
+    return 0;
+}
+
+void GraphicsContextGLOpenGL::waitSync(PlatformGLObject sync, GCGLbitfield flags, GCGLint64 timeout)
+{
+    UNUSED_PARAM(sync);
+    UNUSED_PARAM(flags);
+    UNUSED_PARAM(timeout);
+}
+
+void GraphicsContextGLOpenGL::getSynciv(PlatformGLObject sync, GCGLenum pname, GCGLsizei bufSize, GCGLint *value)
+{
+    UNUSED_PARAM(sync);
+    UNUSED_PARAM(pname);
+    UNUSED_PARAM(bufSize);
+    UNUSED_PARAM(value);
+}
+
+PlatformGLObject GraphicsContextGLOpenGL::createTransformFeedback()
+{
+    return 0;
+}
+
+void GraphicsContextGLOpenGL::deleteTransformFeedback(PlatformGLObject id)
+{
+    UNUSED_PARAM(id);
+}
+
+GCGLboolean GraphicsContextGLOpenGL::isTransformFeedback(PlatformGLObject id)
+{
+    UNUSED_PARAM(id);
+
+    return false;
+}
+
+void GraphicsContextGLOpenGL::bindTransformFeedback(GCGLenum target, PlatformGLObject id)
+{
+    UNUSED_PARAM(target);
+    UNUSED_PARAM(id);
+}
+
+void GraphicsContextGLOpenGL::beginTransformFeedback(GCGLenum primitiveMode)
+{
+    UNUSED_PARAM(primitiveMode);
+}
+
+void GraphicsContextGLOpenGL::endTransformFeedback()
+{
+}
+
+void GraphicsContextGLOpenGL::transformFeedbackVaryings(PlatformGLObject program, const Vector<String>& varyings, GCGLenum bufferMode)
+{
+    UNUSED_PARAM(program);
+    UNUSED_PARAM(varyings);
+    UNUSED_PARAM(bufferMode);
+}
+
+PlatformGLObject GraphicsContextGLOpenGL::getTransformFeedbackVarying(PlatformGLObject program, GCGLuint index)
+{
+    UNUSED_PARAM(program);
+    UNUSED_PARAM(index);
+
+    return 0;
+}
+
+void GraphicsContextGLOpenGL::pauseTransformFeedback()
+{
+}
+
+void GraphicsContextGLOpenGL::resumeTransformFeedback()
+{
+}
+
+void GraphicsContextGLOpenGL::bindBufferBase(GCGLenum target, GCGLuint index, PlatformGLObject buffer)
+{
+    UNUSED_PARAM(target);
+    UNUSED_PARAM(index);
+    UNUSED_PARAM(buffer);
+}
+
+void GraphicsContextGLOpenGL::bindBufferRange(GCGLenum target, GCGLuint index, PlatformGLObject buffer, GCGLintptr offset, GCGLsizeiptr size)
+{
+    UNUSED_PARAM(target);
+    UNUSED_PARAM(index);
+    UNUSED_PARAM(buffer);
+    UNUSED_PARAM(offset);
+    UNUSED_PARAM(size);
+}
+
+Vector<GCGLuint> GraphicsContextGLOpenGL::getUniformIndices(PlatformGLObject program, const Vector<String>& uniformNames)
+{
+    UNUSED_PARAM(program);
+    UNUSED_PARAM(uniformNames);
+
+    return { };
+}
+
+#if USE(OPENGL_3) || USE(OPENGL_ES_3)
+void GraphicsContextGLOpenGL::getActiveUniforms(PlatformGLObject program, const Vector<GCGLuint>& uniformIndices, GCGLenum pname, Vector<GCGLint>& params)
+{
+    ASSERT(program);
+    makeContextCurrent();
+
+    ::glGetActiveUniformsiv(program, uniformIndices.size(), uniformIndices.data(), pname, params.data());
+}
+
+GCGLuint GraphicsContextGLOpenGL::getUniformBlockIndex(PlatformGLObject program, const String& uniformBlockName)
+{
+    UNUSED_PARAM(program);
+    UNUSED_PARAM(uniformBlockName);
+
+    return 0;
+}
+
+void GraphicsContextGLOpenGL::getActiveUniformBlockiv(PlatformGLObject program, GCGLuint uniformBlockIndex, GCGLenum pname, GCGLint* params)
+{
+    UNUSED_PARAM(program);
+    UNUSED_PARAM(uniformBlockIndex);
+    UNUSED_PARAM(pname);
+    UNUSED_PARAM(params);
+}
+
+String GraphicsContextGLOpenGL::getActiveUniformBlockName(PlatformGLObject program, GCGLuint uniformBlockIndex)
+{
+    UNUSED_PARAM(program);
+    UNUSED_PARAM(uniformBlockIndex);
+
+    return emptyString();
+}
+
+void GraphicsContextGLOpenGL::uniformBlockBinding(PlatformGLObject program, GCGLuint uniformBlockIndex, GCGLuint uniformBlockBinding)
+{
+    UNUSED_PARAM(program);
+    UNUSED_PARAM(uniformBlockIndex);
+    UNUSED_PARAM(uniformBlockBinding);
+}
+#else
+void GraphicsContextGLOpenGL::getActiveUniforms(PlatformGLObject, const Vector<GCGLuint>&, GCGLenum, Vector<GCGLint>&)
+{
+}
+
+GCGLuint GraphicsContextGLOpenGL::getUniformBlockIndex(PlatformGLObject, const String&)
+{
+    return 0;
+}
+
+void GraphicsContextGLOpenGL::getActiveUniformBlockiv(PlatformGLObject, GCGLuint, GCGLenum, GCGLint*)
+{
+}
+
+String GraphicsContextGLOpenGL::getActiveUniformBlockName(PlatformGLObject, GCGLuint)
+{
+    return emptyString();
+}
+
+void GraphicsContextGLOpenGL::uniformBlockBinding(PlatformGLObject, GCGLuint, GCGLuint)
+{
+}
+#endif
+
+void GraphicsContextGLOpenGL::texImage2D(GCGLenum target, GCGLint level, GCGLint internalformat, GCGLsizei width, GCGLsizei height, GCGLint border, GCGLenum format, GCGLenum type, GCGLintptr pboOffset)
+{
+    UNUSED_PARAM(target);
+    UNUSED_PARAM(level);
+    UNUSED_PARAM(internalformat);
+    UNUSED_PARAM(width);
+    UNUSED_PARAM(height);
+    UNUSED_PARAM(border);
+    UNUSED_PARAM(format);
+    UNUSED_PARAM(type);
+    UNUSED_PARAM(pboOffset);
+}
+
+void GraphicsContextGLOpenGL::texImage2D(GCGLenum target, GCGLint level, GCGLint internalformat, GCGLsizei width, GCGLsizei height, GCGLint border, GCGLenum format, GCGLenum type, const void* srcData, GCGLuint srcOffset)
+{
+    UNUSED_PARAM(target);
+    UNUSED_PARAM(level);
+    UNUSED_PARAM(internalformat);
+    UNUSED_PARAM(width);
+    UNUSED_PARAM(height);
+    UNUSED_PARAM(border);
+    UNUSED_PARAM(format);
+    UNUSED_PARAM(type);
+    UNUSED_PARAM(srcData);
+    UNUSED_PARAM(srcOffset);
+}
+
+void GraphicsContextGLOpenGL::texSubImage2D(GCGLenum target, GCGLint level, GCGLint xoffset, GCGLint yoffset, GCGLsizei width, GCGLsizei height, GCGLenum format, GCGLenum type, GCGLintptr pboOffset)
+{
+    UNUSED_PARAM(target);
+    UNUSED_PARAM(level);
+    UNUSED_PARAM(xoffset);
+    UNUSED_PARAM(yoffset);
+    UNUSED_PARAM(width);
+    UNUSED_PARAM(height);
+    UNUSED_PARAM(format);
+    UNUSED_PARAM(type);
+    UNUSED_PARAM(pboOffset);
+}
+
+void GraphicsContextGLOpenGL::texSubImage2D(GCGLenum target, GCGLint level, GCGLint xoffset, GCGLint yoffset, GCGLsizei width, GCGLsizei height, GCGLenum format, GCGLenum type, const void* srcData, GCGLuint srcOffset)
+{
+    UNUSED_PARAM(target);
+    UNUSED_PARAM(level);
+    UNUSED_PARAM(xoffset);
+    UNUSED_PARAM(yoffset);
+    UNUSED_PARAM(width);
+    UNUSED_PARAM(height);
+    UNUSED_PARAM(format);
+    UNUSED_PARAM(type);
+    UNUSED_PARAM(srcData);
+    UNUSED_PARAM(srcOffset);
+}
+
+void GraphicsContextGLOpenGL::compressedTexImage2D(GCGLenum target, GCGLint level, GCGLenum internalformat, GCGLsizei width, GCGLsizei height, GCGLint border, GCGLsizei imageSize, GCGLintptr offset)
+{
+    UNUSED_PARAM(target);
+    UNUSED_PARAM(level);
+    UNUSED_PARAM(internalformat);
+    UNUSED_PARAM(width);
+    UNUSED_PARAM(height);
+    UNUSED_PARAM(border);
+    UNUSED_PARAM(imageSize);
+    UNUSED_PARAM(offset);
+}
+
+void GraphicsContextGLOpenGL::compressedTexImage2D(GCGLenum target, GCGLint level, GCGLenum internalformat, GCGLsizei width, GCGLsizei height, GCGLint border, const void* srcData, GCGLuint srcOffset, GCGLuint srcLengthOverride)
+{
+    UNUSED_PARAM(target);
+    UNUSED_PARAM(level);
+    UNUSED_PARAM(internalformat);
+    UNUSED_PARAM(width);
+    UNUSED_PARAM(height);
+    UNUSED_PARAM(border);
+    UNUSED_PARAM(srcData);
+    UNUSED_PARAM(srcOffset);
+    UNUSED_PARAM(srcLengthOverride);
+}
+
+void GraphicsContextGLOpenGL::compressedTexSubImage2D(GCGLenum target, GCGLint level, GCGLint xoffset, GCGLint yoffset, GCGLsizei width, GCGLsizei height, GCGLenum format, GCGLsizei imageSize, GCGLintptr offset)
+{
+    UNUSED_PARAM(target);
+    UNUSED_PARAM(level);
+    UNUSED_PARAM(xoffset);
+    UNUSED_PARAM(yoffset);
+    UNUSED_PARAM(width);
+    UNUSED_PARAM(height);
+    UNUSED_PARAM(format);
+    UNUSED_PARAM(imageSize);
+    UNUSED_PARAM(offset);
+}
+
+void GraphicsContextGLOpenGL::compressedTexSubImage2D(GCGLenum target, GCGLint level, GCGLint xoffset, GCGLint yoffset, GCGLsizei width, GCGLsizei height, GCGLenum format, const void* srcData, GCGLuint srcOffset, GCGLuint srcLengthOverride)
+{
+    UNUSED_PARAM(target);
+    UNUSED_PARAM(level);
+    UNUSED_PARAM(xoffset);
+    UNUSED_PARAM(yoffset);
+    UNUSED_PARAM(width);
+    UNUSED_PARAM(height);
+    UNUSED_PARAM(format);
+    UNUSED_PARAM(srcData);
+    UNUSED_PARAM(srcOffset);
+    UNUSED_PARAM(srcLengthOverride);
+}
+
+void GraphicsContextGLOpenGL::uniform1fv(GCGLint location, const GCGLfloat* data, GCGLuint srcOffset, GCGLuint srcLength)
+{
+    UNUSED_PARAM(location);
+    UNUSED_PARAM(data);
+    UNUSED_PARAM(srcOffset);
+    UNUSED_PARAM(srcLength);
+}
+
+void GraphicsContextGLOpenGL::uniform2fv(GCGLint location, const GCGLfloat* data, GCGLuint srcOffset, GCGLuint srcLength)
+{
+    UNUSED_PARAM(location);
+    UNUSED_PARAM(data);
+    UNUSED_PARAM(srcOffset);
+    UNUSED_PARAM(srcLength);
+}
+
+void GraphicsContextGLOpenGL::uniform3fv(GCGLint location, const GCGLfloat* data, GCGLuint srcOffset, GCGLuint srcLength)
+{
+    UNUSED_PARAM(location);
+    UNUSED_PARAM(data);
+    UNUSED_PARAM(srcOffset);
+    UNUSED_PARAM(srcLength);
+}
+
+void GraphicsContextGLOpenGL::uniform4fv(GCGLint location, const GCGLfloat* data, GCGLuint srcOffset, GCGLuint srcLength)
+{
+    UNUSED_PARAM(location);
+    UNUSED_PARAM(data);
+    UNUSED_PARAM(srcOffset);
+    UNUSED_PARAM(srcLength);
+}
+
+void GraphicsContextGLOpenGL::uniform1iv(GCGLint location, const GCGLint* data, GCGLuint srcOffset, GCGLuint srcLength)
+{
+    UNUSED_PARAM(location);
+    UNUSED_PARAM(data);
+    UNUSED_PARAM(srcOffset);
+    UNUSED_PARAM(srcLength);
+}
+
+void GraphicsContextGLOpenGL::uniform2iv(GCGLint location, const GCGLint* data, GCGLuint srcOffset, GCGLuint srcLength)
+{
+    UNUSED_PARAM(location);
+    UNUSED_PARAM(data);
+    UNUSED_PARAM(srcOffset);
+    UNUSED_PARAM(srcLength);
+}
+
+void GraphicsContextGLOpenGL::uniform3iv(GCGLint location, const GCGLint* data, GCGLuint srcOffset, GCGLuint srcLength)
+{
+    UNUSED_PARAM(location);
+    UNUSED_PARAM(data);
+    UNUSED_PARAM(srcOffset);
+    UNUSED_PARAM(srcLength);
+}
+
+void GraphicsContextGLOpenGL::uniform4iv(GCGLint location, const GCGLint* data, GCGLuint srcOffset, GCGLuint srcLength)
+{
+    UNUSED_PARAM(location);
+    UNUSED_PARAM(data);
+    UNUSED_PARAM(srcOffset);
+    UNUSED_PARAM(srcLength);
+}
+
+void GraphicsContextGLOpenGL::uniformMatrix2fv(GCGLint location, GCGLboolean transpose, const GCGLfloat* data, GCGLuint srcOffset, GCGLuint srcLength)
+{
+    UNUSED_PARAM(location);
+    UNUSED_PARAM(transpose);
+    UNUSED_PARAM(data);
+    UNUSED_PARAM(srcOffset);
+    UNUSED_PARAM(srcLength);
+}
+
+void GraphicsContextGLOpenGL::uniformMatrix3fv(GCGLint location, GCGLboolean transpose, const GCGLfloat* data, GCGLuint srcOffset, GCGLuint srcLength)
+{
+    UNUSED_PARAM(location);
+    UNUSED_PARAM(transpose);
+    UNUSED_PARAM(data);
+    UNUSED_PARAM(srcOffset);
+    UNUSED_PARAM(srcLength);
+}
+
+void GraphicsContextGLOpenGL::uniformMatrix4fv(GCGLint location, GCGLboolean transpose, const GCGLfloat* data, GCGLuint srcOffset, GCGLuint srcLength)
+{
+    UNUSED_PARAM(location);
+    UNUSED_PARAM(transpose);
+    UNUSED_PARAM(data);
+    UNUSED_PARAM(srcOffset);
+    UNUSED_PARAM(srcLength);
+}
+
+void GraphicsContextGLOpenGL::readPixels(GCGLint x, GCGLint y, GCGLsizei width, GCGLsizei height, GCGLenum format, GCGLenum type, GCGLintptr offset)
+{
+    UNUSED_PARAM(x);
+    UNUSED_PARAM(y);
+    UNUSED_PARAM(width);
+    UNUSED_PARAM(height);
+    UNUSED_PARAM(format);
+    UNUSED_PARAM(type);
+    UNUSED_PARAM(offset);
+}
+
+void GraphicsContextGLOpenGL::readPixels(GCGLint x, GCGLint y, GCGLsizei width, GCGLsizei height, GCGLenum format, GCGLenum type, const void* dstData, GCGLuint dstOffset)
+{
+    UNUSED_PARAM(x);
+    UNUSED_PARAM(y);
+    UNUSED_PARAM(width);
+    UNUSED_PARAM(height);
+    UNUSED_PARAM(format);
+    UNUSED_PARAM(type);
+    UNUSED_PARAM(dstData);
+    UNUSED_PARAM(dstOffset);
+}
+
+
+}
+
 #endif // ENABLE(GRAPHICS_CONTEXT_GL) && (USE(OPENGL) || USE(OPENGL_ES))
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to