<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[269850] trunk/Source</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/269850">269850</a></dd>
<dt>Author</dt> <dd>commit-queue@webkit.org</dd>
<dt>Date</dt> <dd>2020-11-16 04:57:13 -0800 (Mon, 16 Nov 2020)</dd>
</dl>

<h3>Log Message</h3>
<pre>Final refactor for WebGL implementation to use only GraphicsContextGL
https://bugs.webkit.org/show_bug.cgi?id=218333

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2020-11-16
Reviewed by Simon Fraser.

Source/WebCore:

Change WebGL implementation to use GraphicsContextGL abstract class
instead of GraphicsContextGLOpenGL concrete class. This allows
implementation of WebGL in GpuProcess, where the remote implementation
is one GraphicsContextGL subclass and the actual drawing is done,
either in GPUP and non-GPUP cases by the old GraphicsContextGLOpenGL.

The GPUP supports only ANGLE flavor of the WebGL implementation. This is
because ANGLE contains the functions that are designed to be more secure
for the cross-process environment. This is why GraphicsContextGL
interface is modified to contain only functions that make sense for
ANGLE. Functions unimplemeted by ANGLE are removed from the interface.
Calling WebGL code inside #ifdef !USE(ANGLE) will downcast the interface
to GraphicsContextGLOpenGL to call the functions that do not make sense
to exist in the ANGLE version.

Small amount of functions in GraphicsContextGL interface are re-ordered
to enable later IPC auto-generation from the interface.

ExtensionsGL.h is reformatted according to WebKit style to enable later
IPC auto-generation from the interface.

No new tests, a refactor.

* html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::rendererIsNeeded):
(WebCore::HTMLVideoElement::parseAttribute):
(WebCore::HTMLVideoElement::supportsFullscreen const):
(WebCore::HTMLVideoElement::paintCurrentFrameInContext):
(WebCore::HTMLVideoElement::copyVideoTextureToPlatformTexture):
(WebCore::HTMLVideoElement::hasAvailableVideoFrame const):
(WebCore::HTMLVideoElement::webkitEnterFullscreen):
* html/HTMLVideoElement.h:
* html/canvas/WebGL2RenderingContext.cpp:
(WebCore::WebGL2RenderingContext::create):
(WebCore::WebGL2RenderingContext::WebGL2RenderingContext):
(WebCore::WebGL2RenderingContext::getBufferSubData):
(WebCore::WebGL2RenderingContext::vertexAttribI4uiv):
(WebCore::WebGL2RenderingContext::bindSampler):
(WebCore::WebGL2RenderingContext::clientWaitSync):
(WebCore::WebGL2RenderingContext::deleteTransformFeedback):
(WebCore::WebGL2RenderingContext::beginTransformFeedback):
(WebCore::WebGL2RenderingContext::endTransformFeedback):
(WebCore::WebGL2RenderingContext::transformFeedbackVaryings):
(WebCore::WebGL2RenderingContext::getActiveUniforms):
* html/canvas/WebGL2RenderingContext.h:
* html/canvas/WebGLActiveInfo.h:
* html/canvas/WebGLBuffer.cpp:
(WebCore::WebGLBuffer::deleteObjectImpl):
* html/canvas/WebGLBuffer.h:
* html/canvas/WebGLContextGroup.cpp:
(WebCore::WebGLContextGroup::getAGraphicsContextGL):
* html/canvas/WebGLContextGroup.h:
* html/canvas/WebGLContextObject.cpp:
(WebCore::WebGLContextObject::getAGraphicsContextGL const):
* html/canvas/WebGLContextObject.h:
* html/canvas/WebGLDepthTexture.cpp:
(WebCore::WebGLDepthTexture::supported):
* html/canvas/WebGLDepthTexture.h:
* html/canvas/WebGLDrawBuffers.cpp:
(WebCore::WebGLDrawBuffers::satisfiesWebGLRequirements):
* html/canvas/WebGLFramebuffer.cpp:
(WebCore::WebGLFramebuffer::onAccess):
(WebCore::WebGLFramebuffer::deleteObjectImpl):
(WebCore::WebGLFramebuffer::initializeAttachments):
* html/canvas/WebGLFramebuffer.h:
* html/canvas/WebGLObject.cpp:
(WebCore::WebGLObject::deleteObject):
* html/canvas/WebGLObject.h:
* html/canvas/WebGLProgram.cpp:
(WebCore::WebGLProgram::deleteObjectImpl):
(WebCore::WebGLProgram::cacheActiveAttribLocations):
(WebCore::WebGLProgram::cacheInfoIfNeeded):
* html/canvas/WebGLProgram.h:
* html/canvas/WebGLQuery.cpp:
(WebCore::WebGLQuery::deleteObjectImpl):
* html/canvas/WebGLQuery.h:
* html/canvas/WebGLRenderbuffer.cpp:
(WebCore::WebGLRenderbuffer::deleteObjectImpl):
* html/canvas/WebGLRenderbuffer.h:
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::create):
(WebCore::WebGLRenderingContext::WebGLRenderingContext):
* html/canvas/WebGLRenderingContext.h:
* html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::isHighPerformanceContext):
(WebCore::WebGLRenderingContextBase::WebGLRenderingContextBase):
(WebCore::WebGLRenderingContextBase::initializeNewContext):
(WebCore::WebGLRenderingContextBase::compressedTexImage2D):
(WebCore::WebGLRenderingContextBase::validateElementArraySize):
(WebCore::WebGLRenderingContextBase::validateIndexArrayPrecise):
(WebCore::WebGLRenderingContextBase::validateDrawElements):
(WebCore::WebGLRenderingContextBase::readPixels):
(WebCore::WebGLRenderingContextBase::texImageSourceHelper):
(WebCore::WebGLRenderingContextBase::texImage2DBase):
(WebCore::WebGLRenderingContextBase::validateTexFuncFormatAndType):
(WebCore::WebGLRenderingContextBase::copyTexImage2D):
(WebCore::WebGLRenderingContextBase::isTexInternalFormatColorBufferCombinationValid):
(WebCore::WebGLRenderingContextBase::vertexAttribfvImpl):
(WebCore::WebGLRenderingContextBase::initVertexAttrib0):
(WebCore::WebGLRenderingContextBase::maybeRestoreContext):
(WebCore::WebGLRenderingContextBase::drawElementsInstanced):
* html/canvas/WebGLRenderingContextBase.h:
(WebCore::WebGLRenderingContextBase::graphicsContextGL const):
* html/canvas/WebGLSampler.cpp:
(WebCore::WebGLSampler::deleteObjectImpl):
* html/canvas/WebGLSampler.h:
* html/canvas/WebGLShader.cpp:
(WebCore::WebGLShader::deleteObjectImpl):
* html/canvas/WebGLShader.h:
* html/canvas/WebGLShaderPrecisionFormat.h:
* html/canvas/WebGLSharedObject.cpp:
(WebCore::WebGLSharedObject::getAGraphicsContextGL const):
* html/canvas/WebGLSharedObject.h:
* html/canvas/WebGLSync.cpp:
(WebCore::WebGLSync::deleteObjectImpl):
* html/canvas/WebGLSync.h:
* html/canvas/WebGLTexture.cpp:
(WebCore::WebGLTexture::deleteObjectImpl):
* html/canvas/WebGLTexture.h:
* html/canvas/WebGLTransformFeedback.cpp:
(WebCore::WebGLTransformFeedback::deleteObjectImpl):
* html/canvas/WebGLTransformFeedback.h:
* html/canvas/WebGLVertexArrayObject.cpp:
(WebCore::WebGLVertexArrayObject::deleteObjectImpl):
* html/canvas/WebGLVertexArrayObject.h:
* html/canvas/WebGLVertexArrayObjectBase.h:
* html/canvas/WebGLVertexArrayObjectOES.cpp:
(WebCore::WebGLVertexArrayObjectOES::deleteObjectImpl):
* html/canvas/WebGLVertexArrayObjectOES.h:
* inspector/InspectorShaderProgram.cpp:
* platform/graphics/ConcreteImageBuffer.h:
* platform/graphics/ExtensionsGL.h:
* platform/graphics/FormatConverter.cpp:
(WebCore::FormatConverter::convert):
* platform/graphics/FormatConverter.h:
* platform/graphics/GraphicsContext.h:
* platform/graphics/GraphicsContextGL.cpp:
* platform/graphics/GraphicsContextGL.h:
(WebCore::GraphicsContextGL::contextAttributes const):
(WebCore::GraphicsContextGL::setContextAttributes):
* platform/graphics/GraphicsTypesGL.h:
* platform/graphics/ImageBuffer.h:
* platform/graphics/ImageBufferBackend.h:
(WebCore::ImageBufferBackend::copyToPlatformTexture const):
* platform/graphics/MediaPlayer.cpp:
(WebCore::bestMediaEngineForSupportParameters):
(WebCore::MediaPlayer::nextMediaEngine):
(WebCore::MediaPlayer::loadWithNextMediaEngine):
(WebCore::MediaPlayer::cancelLoad):
(WebCore::MediaPlayer::setSize):
(WebCore::MediaPlayer::copyVideoTextureToPlatformTexture):
(WebCore::MediaPlayer::supportsType):
(WebCore::MediaPlayer::getSupportedTypes):
(WebCore::MediaPlayer::languageOfPrimaryAudioTrack const):
(WebCore::MediaPlayer::fileSize const):
* platform/graphics/MediaPlayer.h:
* platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::hasClosedCaptions const):
(WebCore::MediaPlayerPrivateInterface::copyVideoTextureToPlatformTexture):
* platform/graphics/angle/ExtensionsGLANGLE.cpp:
(WebCore::ExtensionsGLANGLE::compressedTexImage2DRobustANGLE):
(WebCore::ExtensionsGLANGLE::compressedTexSubImage2DRobustANGLE):
* platform/graphics/angle/ExtensionsGLANGLE.h:
* platform/graphics/angle/GraphicsContextGLANGLE.cpp:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::clearMediaCache):
(WebCore::MediaPlayerPrivateAVFoundationObjC::cancelLoad):
(WebCore::MediaPlayerPrivateAVFoundationObjC::synchronizeTextTrackState):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem):
(WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenGravity):
(WebCore::MediaPlayerPrivateAVFoundationObjC::accessLog const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::platformSetVisible):
(WebCore::MediaPlayerPrivateAVFoundationObjC::platformDuration const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::seekToTime):
(WebCore::MediaPlayerPrivateAVFoundationObjC::platformMaxTimeSeekable const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::platformMaxTimeLoaded const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::assetStatus const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateVideoLayerGravity):
(WebCore::determineChangedTracksFromNewTracksAndOldItems):
(WebCore::MediaPlayerPrivateAVFoundationObjC::copyVideoTextureToPlatformTexture):
(WebCore::MediaPlayerPrivateAVFoundationObjC::processMediaSelectionOptions):
(WebCore::MediaPlayerPrivateAVFoundationObjC::flushCues):
(WebCore::MediaPlayerPrivateAVFoundationObjC::setBufferingPolicy):
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::copyVideoTextureToPlatformTexture):
* platform/graphics/cocoa/IOSurface.mm:
(WebCore::optionsForBiplanarSurface):
(WebCore::IOSurface::ensurePlatformContext):
(WebCore::IOSurface::convertToFormat):
* platform/graphics/egl/GLContextEGL.cpp:
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::copyVideoTextureToPlatformTexture):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
* platform/graphics/opengl/GraphicsContextGLOpenGL.cpp:
(WebCore::GraphicsContextGLOpenGL::possibleFormatAndTypeForInternalFormat):
* platform/graphics/opengl/GraphicsContextGLOpenGL.h:
* platform/graphics/opengl/GraphicsContextGLOpenGLCommon.cpp:
(WebCore::GraphicsContextGLOpenGL::reshape):
(WebCore::GraphicsContextGLOpenGL::blendFunc):
(WebCore::GraphicsContextGLOpenGL::compileShader):
(WebCore::GraphicsContextGLOpenGL::getActiveAttribImpl):
(WebCore::GraphicsContextGLOpenGL::getActiveAttrib):
(WebCore::GraphicsContextGLOpenGL::getActiveUniformImpl):
(WebCore::GraphicsContextGLOpenGL::getActiveUniform):
(WebCore::GraphicsContextGLOpenGL::originalSymbolName):
(WebCore::GraphicsContextGLOpenGL::mappedSymbolName):
(WebCore::GraphicsContextGLOpenGL::deleteVertexArray):
(WebCore::GraphicsContextGLOpenGL::isVertexArray):
(WebCore::GraphicsContextGLOpenGL::getNonBuiltInActiveSymbolCount):
(WebCore::GraphicsContextGLOpenGL::getUnmangledInfoLog):
(WebCore::GraphicsContextGLOpenGL::getProgramInfoLog):
(WebCore::GraphicsContextGLOpenGL::getShaderiv):
(WebCore::GraphicsContextGLOpenGL::getShaderInfoLog):
(WebCore::GraphicsContextGLOpenGL::getShaderSource):

Source/WebKit:

Change MediaPlayerPrivate to use GraphicsContextGL abstract class
instead of GraphicsContextGLOpenGL concrete class, since the
calling code is doing the same change.

* WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:
(WebKit::MediaPlayerPrivateRemote::copyVideoTextureToPlatformTexture):
* WebProcess/GPU/media/MediaPlayerPrivateRemote.h:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLVideoElementcpp">trunk/Source/WebCore/html/HTMLVideoElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLVideoElementh">trunk/Source/WebCore/html/HTMLVideoElement.h</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasWebGL2RenderingContextcpp">trunk/Source/WebCore/html/canvas/WebGL2RenderingContext.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasWebGL2RenderingContexth">trunk/Source/WebCore/html/canvas/WebGL2RenderingContext.h</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasWebGLActiveInfoh">trunk/Source/WebCore/html/canvas/WebGLActiveInfo.h</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasWebGLBuffercpp">trunk/Source/WebCore/html/canvas/WebGLBuffer.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasWebGLBufferh">trunk/Source/WebCore/html/canvas/WebGLBuffer.h</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasWebGLContextGroupcpp">trunk/Source/WebCore/html/canvas/WebGLContextGroup.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasWebGLContextGrouph">trunk/Source/WebCore/html/canvas/WebGLContextGroup.h</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasWebGLContextObjectcpp">trunk/Source/WebCore/html/canvas/WebGLContextObject.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasWebGLContextObjecth">trunk/Source/WebCore/html/canvas/WebGLContextObject.h</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasWebGLDepthTexturecpp">trunk/Source/WebCore/html/canvas/WebGLDepthTexture.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasWebGLDepthTextureh">trunk/Source/WebCore/html/canvas/WebGLDepthTexture.h</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasWebGLDrawBufferscpp">trunk/Source/WebCore/html/canvas/WebGLDrawBuffers.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasWebGLFramebuffercpp">trunk/Source/WebCore/html/canvas/WebGLFramebuffer.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasWebGLFramebufferh">trunk/Source/WebCore/html/canvas/WebGLFramebuffer.h</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasWebGLObjectcpp">trunk/Source/WebCore/html/canvas/WebGLObject.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasWebGLObjecth">trunk/Source/WebCore/html/canvas/WebGLObject.h</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasWebGLProgramcpp">trunk/Source/WebCore/html/canvas/WebGLProgram.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasWebGLProgramh">trunk/Source/WebCore/html/canvas/WebGLProgram.h</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasWebGLQuerycpp">trunk/Source/WebCore/html/canvas/WebGLQuery.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasWebGLQueryh">trunk/Source/WebCore/html/canvas/WebGLQuery.h</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasWebGLRenderbuffercpp">trunk/Source/WebCore/html/canvas/WebGLRenderbuffer.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasWebGLRenderbufferh">trunk/Source/WebCore/html/canvas/WebGLRenderbuffer.h</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasWebGLRenderingContextcpp">trunk/Source/WebCore/html/canvas/WebGLRenderingContext.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasWebGLRenderingContexth">trunk/Source/WebCore/html/canvas/WebGLRenderingContext.h</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasWebGLRenderingContextBasecpp">trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasWebGLRenderingContextBaseh">trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.h</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasWebGLSamplercpp">trunk/Source/WebCore/html/canvas/WebGLSampler.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasWebGLSamplerh">trunk/Source/WebCore/html/canvas/WebGLSampler.h</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasWebGLShadercpp">trunk/Source/WebCore/html/canvas/WebGLShader.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasWebGLShaderh">trunk/Source/WebCore/html/canvas/WebGLShader.h</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasWebGLShaderPrecisionFormath">trunk/Source/WebCore/html/canvas/WebGLShaderPrecisionFormat.h</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasWebGLSharedObjectcpp">trunk/Source/WebCore/html/canvas/WebGLSharedObject.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasWebGLSharedObjecth">trunk/Source/WebCore/html/canvas/WebGLSharedObject.h</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasWebGLSynccpp">trunk/Source/WebCore/html/canvas/WebGLSync.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasWebGLSynch">trunk/Source/WebCore/html/canvas/WebGLSync.h</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasWebGLTexturecpp">trunk/Source/WebCore/html/canvas/WebGLTexture.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasWebGLTextureh">trunk/Source/WebCore/html/canvas/WebGLTexture.h</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasWebGLTransformFeedbackcpp">trunk/Source/WebCore/html/canvas/WebGLTransformFeedback.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasWebGLTransformFeedbackh">trunk/Source/WebCore/html/canvas/WebGLTransformFeedback.h</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasWebGLVertexArrayObjectcpp">trunk/Source/WebCore/html/canvas/WebGLVertexArrayObject.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasWebGLVertexArrayObjecth">trunk/Source/WebCore/html/canvas/WebGLVertexArrayObject.h</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasWebGLVertexArrayObjectBaseh">trunk/Source/WebCore/html/canvas/WebGLVertexArrayObjectBase.h</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasWebGLVertexArrayObjectOEScpp">trunk/Source/WebCore/html/canvas/WebGLVertexArrayObjectOES.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasWebGLVertexArrayObjectOESh">trunk/Source/WebCore/html/canvas/WebGLVertexArrayObjectOES.h</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorShaderProgramcpp">trunk/Source/WebCore/inspector/InspectorShaderProgram.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsConcreteImageBufferh">trunk/Source/WebCore/platform/graphics/ConcreteImageBuffer.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsExtensionsGLh">trunk/Source/WebCore/platform/graphics/ExtensionsGL.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsFormatConvertercpp">trunk/Source/WebCore/platform/graphics/FormatConverter.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsFormatConverterh">trunk/Source/WebCore/platform/graphics/FormatConverter.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsGraphicsContexth">trunk/Source/WebCore/platform/graphics/GraphicsContext.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsGraphicsContextGLcpp">trunk/Source/WebCore/platform/graphics/GraphicsContextGL.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsGraphicsContextGLh">trunk/Source/WebCore/platform/graphics/GraphicsContextGL.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsGraphicsTypesGLh">trunk/Source/WebCore/platform/graphics/GraphicsTypesGL.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsImageBufferh">trunk/Source/WebCore/platform/graphics/ImageBuffer.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsImageBufferBackendh">trunk/Source/WebCore/platform/graphics/ImageBufferBackend.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsMediaPlayercpp">trunk/Source/WebCore/platform/graphics/MediaPlayer.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsMediaPlayerh">trunk/Source/WebCore/platform/graphics/MediaPlayer.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsMediaPlayerPrivateh">trunk/Source/WebCore/platform/graphics/MediaPlayerPrivate.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsangleExtensionsGLANGLEcpp">trunk/Source/WebCore/platform/graphics/angle/ExtensionsGLANGLE.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsangleExtensionsGLANGLEh">trunk/Source/WebCore/platform/graphics/angle/ExtensionsGLANGLE.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsangleGraphicsContextGLANGLEcpp">trunk/Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsavfoundationobjcMediaPlayerPrivateAVFoundationObjCh">trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsavfoundationobjcMediaPlayerPrivateAVFoundationObjCmm">trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsavfoundationobjcMediaPlayerPrivateMediaSourceAVFObjCh">trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsavfoundationobjcMediaPlayerPrivateMediaSourceAVFObjCmm">trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicscocoaIOSurfacemm">trunk/Source/WebCore/platform/graphics/cocoa/IOSurface.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicseglGLContextEGLcpp">trunk/Source/WebCore/platform/graphics/egl/GLContextEGL.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsgstreamerMediaPlayerPrivateGStreamercpp">trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsgstreamerMediaPlayerPrivateGStreamerh">trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsopenglGraphicsContextGLOpenGLcpp">trunk/Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGL.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsopenglGraphicsContextGLOpenGLh">trunk/Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGL.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsopenglGraphicsContextGLOpenGLCommoncpp">trunk/Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGLCommon.cpp</a></li>
<li><a href="#trunkSourceWebKitChangeLog">trunk/Source/WebKit/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitWebProcessGPUmediaMediaPlayerPrivateRemotecpp">trunk/Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp</a></li>
<li><a href="#trunkSourceWebKitWebProcessGPUmediaMediaPlayerPrivateRemoteh">trunk/Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.h</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog   2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/ChangeLog      2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -1,3 +1,228 @@
</span><ins>+2020-11-16  Kimmo Kinnunen  <kkinnunen@apple.com>
+
+        Final refactor for WebGL implementation to use only GraphicsContextGL
+        https://bugs.webkit.org/show_bug.cgi?id=218333
+
+        Reviewed by Simon Fraser.
+
+        Change WebGL implementation to use GraphicsContextGL abstract class
+        instead of GraphicsContextGLOpenGL concrete class. This allows
+        implementation of WebGL in GpuProcess, where the remote implementation
+        is one GraphicsContextGL subclass and the actual drawing is done,
+        either in GPUP and non-GPUP cases by the old GraphicsContextGLOpenGL.
+
+        The GPUP supports only ANGLE flavor of the WebGL implementation. This is
+        because ANGLE contains the functions that are designed to be more secure
+        for the cross-process environment. This is why GraphicsContextGL
+        interface is modified to contain only functions that make sense for
+        ANGLE. Functions unimplemeted by ANGLE are removed from the interface.
+        Calling WebGL code inside #ifdef !USE(ANGLE) will downcast the interface
+        to GraphicsContextGLOpenGL to call the functions that do not make sense
+        to exist in the ANGLE version.
+
+        Small amount of functions in GraphicsContextGL interface are re-ordered
+        to enable later IPC auto-generation from the interface.
+
+        ExtensionsGL.h is reformatted according to WebKit style to enable later
+        IPC auto-generation from the interface.
+
+        No new tests, a refactor.
+
+        * html/HTMLVideoElement.cpp:
+        (WebCore::HTMLVideoElement::rendererIsNeeded):
+        (WebCore::HTMLVideoElement::parseAttribute):
+        (WebCore::HTMLVideoElement::supportsFullscreen const):
+        (WebCore::HTMLVideoElement::paintCurrentFrameInContext):
+        (WebCore::HTMLVideoElement::copyVideoTextureToPlatformTexture):
+        (WebCore::HTMLVideoElement::hasAvailableVideoFrame const):
+        (WebCore::HTMLVideoElement::webkitEnterFullscreen):
+        * html/HTMLVideoElement.h:
+        * html/canvas/WebGL2RenderingContext.cpp:
+        (WebCore::WebGL2RenderingContext::create):
+        (WebCore::WebGL2RenderingContext::WebGL2RenderingContext):
+        (WebCore::WebGL2RenderingContext::getBufferSubData):
+        (WebCore::WebGL2RenderingContext::vertexAttribI4uiv):
+        (WebCore::WebGL2RenderingContext::bindSampler):
+        (WebCore::WebGL2RenderingContext::clientWaitSync):
+        (WebCore::WebGL2RenderingContext::deleteTransformFeedback):
+        (WebCore::WebGL2RenderingContext::beginTransformFeedback):
+        (WebCore::WebGL2RenderingContext::endTransformFeedback):
+        (WebCore::WebGL2RenderingContext::transformFeedbackVaryings):
+        (WebCore::WebGL2RenderingContext::getActiveUniforms):
+        * html/canvas/WebGL2RenderingContext.h:
+        * html/canvas/WebGLActiveInfo.h:
+        * html/canvas/WebGLBuffer.cpp:
+        (WebCore::WebGLBuffer::deleteObjectImpl):
+        * html/canvas/WebGLBuffer.h:
+        * html/canvas/WebGLContextGroup.cpp:
+        (WebCore::WebGLContextGroup::getAGraphicsContextGL):
+        * html/canvas/WebGLContextGroup.h:
+        * html/canvas/WebGLContextObject.cpp:
+        (WebCore::WebGLContextObject::getAGraphicsContextGL const):
+        * html/canvas/WebGLContextObject.h:
+        * html/canvas/WebGLDepthTexture.cpp:
+        (WebCore::WebGLDepthTexture::supported):
+        * html/canvas/WebGLDepthTexture.h:
+        * html/canvas/WebGLDrawBuffers.cpp:
+        (WebCore::WebGLDrawBuffers::satisfiesWebGLRequirements):
+        * html/canvas/WebGLFramebuffer.cpp:
+        (WebCore::WebGLFramebuffer::onAccess):
+        (WebCore::WebGLFramebuffer::deleteObjectImpl):
+        (WebCore::WebGLFramebuffer::initializeAttachments):
+        * html/canvas/WebGLFramebuffer.h:
+        * html/canvas/WebGLObject.cpp:
+        (WebCore::WebGLObject::deleteObject):
+        * html/canvas/WebGLObject.h:
+        * html/canvas/WebGLProgram.cpp:
+        (WebCore::WebGLProgram::deleteObjectImpl):
+        (WebCore::WebGLProgram::cacheActiveAttribLocations):
+        (WebCore::WebGLProgram::cacheInfoIfNeeded):
+        * html/canvas/WebGLProgram.h:
+        * html/canvas/WebGLQuery.cpp:
+        (WebCore::WebGLQuery::deleteObjectImpl):
+        * html/canvas/WebGLQuery.h:
+        * html/canvas/WebGLRenderbuffer.cpp:
+        (WebCore::WebGLRenderbuffer::deleteObjectImpl):
+        * html/canvas/WebGLRenderbuffer.h:
+        * html/canvas/WebGLRenderingContext.cpp:
+        (WebCore::WebGLRenderingContext::create):
+        (WebCore::WebGLRenderingContext::WebGLRenderingContext):
+        * html/canvas/WebGLRenderingContext.h:
+        * html/canvas/WebGLRenderingContextBase.cpp:
+        (WebCore::isHighPerformanceContext):
+        (WebCore::WebGLRenderingContextBase::WebGLRenderingContextBase):
+        (WebCore::WebGLRenderingContextBase::initializeNewContext):
+        (WebCore::WebGLRenderingContextBase::compressedTexImage2D):
+        (WebCore::WebGLRenderingContextBase::validateElementArraySize):
+        (WebCore::WebGLRenderingContextBase::validateIndexArrayPrecise):
+        (WebCore::WebGLRenderingContextBase::validateDrawElements):
+        (WebCore::WebGLRenderingContextBase::readPixels):
+        (WebCore::WebGLRenderingContextBase::texImageSourceHelper):
+        (WebCore::WebGLRenderingContextBase::texImage2DBase):
+        (WebCore::WebGLRenderingContextBase::validateTexFuncFormatAndType):
+        (WebCore::WebGLRenderingContextBase::copyTexImage2D):
+        (WebCore::WebGLRenderingContextBase::isTexInternalFormatColorBufferCombinationValid):
+        (WebCore::WebGLRenderingContextBase::vertexAttribfvImpl):
+        (WebCore::WebGLRenderingContextBase::initVertexAttrib0):
+        (WebCore::WebGLRenderingContextBase::maybeRestoreContext):
+        (WebCore::WebGLRenderingContextBase::drawElementsInstanced):
+        * html/canvas/WebGLRenderingContextBase.h:
+        (WebCore::WebGLRenderingContextBase::graphicsContextGL const):
+        * html/canvas/WebGLSampler.cpp:
+        (WebCore::WebGLSampler::deleteObjectImpl):
+        * html/canvas/WebGLSampler.h:
+        * html/canvas/WebGLShader.cpp:
+        (WebCore::WebGLShader::deleteObjectImpl):
+        * html/canvas/WebGLShader.h:
+        * html/canvas/WebGLShaderPrecisionFormat.h:
+        * html/canvas/WebGLSharedObject.cpp:
+        (WebCore::WebGLSharedObject::getAGraphicsContextGL const):
+        * html/canvas/WebGLSharedObject.h:
+        * html/canvas/WebGLSync.cpp:
+        (WebCore::WebGLSync::deleteObjectImpl):
+        * html/canvas/WebGLSync.h:
+        * html/canvas/WebGLTexture.cpp:
+        (WebCore::WebGLTexture::deleteObjectImpl):
+        * html/canvas/WebGLTexture.h:
+        * html/canvas/WebGLTransformFeedback.cpp:
+        (WebCore::WebGLTransformFeedback::deleteObjectImpl):
+        * html/canvas/WebGLTransformFeedback.h:
+        * html/canvas/WebGLVertexArrayObject.cpp:
+        (WebCore::WebGLVertexArrayObject::deleteObjectImpl):
+        * html/canvas/WebGLVertexArrayObject.h:
+        * html/canvas/WebGLVertexArrayObjectBase.h:
+        * html/canvas/WebGLVertexArrayObjectOES.cpp:
+        (WebCore::WebGLVertexArrayObjectOES::deleteObjectImpl):
+        * html/canvas/WebGLVertexArrayObjectOES.h:
+        * inspector/InspectorShaderProgram.cpp:
+        * platform/graphics/ConcreteImageBuffer.h:
+        * platform/graphics/ExtensionsGL.h:
+        * platform/graphics/FormatConverter.cpp:
+        (WebCore::FormatConverter::convert):
+        * platform/graphics/FormatConverter.h:
+        * platform/graphics/GraphicsContext.h:
+        * platform/graphics/GraphicsContextGL.cpp:
+        * platform/graphics/GraphicsContextGL.h:
+        (WebCore::GraphicsContextGL::contextAttributes const):
+        (WebCore::GraphicsContextGL::setContextAttributes):
+        * platform/graphics/GraphicsTypesGL.h:
+        * platform/graphics/ImageBuffer.h:
+        * platform/graphics/ImageBufferBackend.h:
+        (WebCore::ImageBufferBackend::copyToPlatformTexture const):
+        * platform/graphics/MediaPlayer.cpp:
+        (WebCore::bestMediaEngineForSupportParameters):
+        (WebCore::MediaPlayer::nextMediaEngine):
+        (WebCore::MediaPlayer::loadWithNextMediaEngine):
+        (WebCore::MediaPlayer::cancelLoad):
+        (WebCore::MediaPlayer::setSize):
+        (WebCore::MediaPlayer::copyVideoTextureToPlatformTexture):
+        (WebCore::MediaPlayer::supportsType):
+        (WebCore::MediaPlayer::getSupportedTypes):
+        (WebCore::MediaPlayer::languageOfPrimaryAudioTrack const):
+        (WebCore::MediaPlayer::fileSize const):
+        * platform/graphics/MediaPlayer.h:
+        * platform/graphics/MediaPlayerPrivate.h:
+        (WebCore::MediaPlayerPrivateInterface::hasClosedCaptions const):
+        (WebCore::MediaPlayerPrivateInterface::copyVideoTextureToPlatformTexture):
+        * platform/graphics/angle/ExtensionsGLANGLE.cpp:
+        (WebCore::ExtensionsGLANGLE::compressedTexImage2DRobustANGLE):
+        (WebCore::ExtensionsGLANGLE::compressedTexSubImage2DRobustANGLE):
+        * platform/graphics/angle/ExtensionsGLANGLE.h:
+        * platform/graphics/angle/GraphicsContextGLANGLE.cpp:
+        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
+        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::clearMediaCache):
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::cancelLoad):
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::synchronizeTextTrackState):
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL):
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem):
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenGravity):
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::accessLog const):
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::platformSetVisible):
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::platformDuration const):
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::seekToTime):
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::platformMaxTimeSeekable const):
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::platformMaxTimeLoaded const):
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::assetStatus const):
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::updateVideoLayerGravity):
+        (WebCore::determineChangedTracksFromNewTracksAndOldItems):
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::copyVideoTextureToPlatformTexture):
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::processMediaSelectionOptions):
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::flushCues):
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::setBufferingPolicy):
+        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
+        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
+        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::copyVideoTextureToPlatformTexture):
+        * platform/graphics/cocoa/IOSurface.mm:
+        (WebCore::optionsForBiplanarSurface):
+        (WebCore::IOSurface::ensurePlatformContext):
+        (WebCore::IOSurface::convertToFormat):
+        * platform/graphics/egl/GLContextEGL.cpp:
+        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
+        (WebCore::MediaPlayerPrivateGStreamer::copyVideoTextureToPlatformTexture):
+        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
+        * platform/graphics/opengl/GraphicsContextGLOpenGL.cpp:
+        (WebCore::GraphicsContextGLOpenGL::possibleFormatAndTypeForInternalFormat):
+        * platform/graphics/opengl/GraphicsContextGLOpenGL.h:
+        * platform/graphics/opengl/GraphicsContextGLOpenGLCommon.cpp:
+        (WebCore::GraphicsContextGLOpenGL::reshape):
+        (WebCore::GraphicsContextGLOpenGL::blendFunc):
+        (WebCore::GraphicsContextGLOpenGL::compileShader):
+        (WebCore::GraphicsContextGLOpenGL::getActiveAttribImpl):
+        (WebCore::GraphicsContextGLOpenGL::getActiveAttrib):
+        (WebCore::GraphicsContextGLOpenGL::getActiveUniformImpl):
+        (WebCore::GraphicsContextGLOpenGL::getActiveUniform):
+        (WebCore::GraphicsContextGLOpenGL::originalSymbolName):
+        (WebCore::GraphicsContextGLOpenGL::mappedSymbolName):
+        (WebCore::GraphicsContextGLOpenGL::deleteVertexArray):
+        (WebCore::GraphicsContextGLOpenGL::isVertexArray):
+        (WebCore::GraphicsContextGLOpenGL::getNonBuiltInActiveSymbolCount):
+        (WebCore::GraphicsContextGLOpenGL::getUnmangledInfoLog):
+        (WebCore::GraphicsContextGLOpenGL::getProgramInfoLog):
+        (WebCore::GraphicsContextGLOpenGL::getShaderiv):
+        (WebCore::GraphicsContextGLOpenGL::getShaderInfoLog):
+        (WebCore::GraphicsContextGLOpenGL::getShaderSource):
+
</ins><span class="cx"> 2020-11-16  Philippe Normand  <pnormand@igalia.com>
</span><span class="cx"> 
</span><span class="cx">         [GStreamer] Clean-up Audio{Data,StreamDescription} implementations
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLVideoElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLVideoElement.cpp (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLVideoElement.cpp   2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/html/HTMLVideoElement.cpp      2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -300,7 +300,7 @@
</span><span class="cx">     context.paintFrameForMedia(*player, destRect);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool HTMLVideoElement::copyVideoTextureToPlatformTexture(GraphicsContextGLOpenGL* context, PlatformGLObject texture, GCGLenum target, GCGLint level, GCGLenum internalFormat, GCGLenum format, GCGLenum type, bool premultiplyAlpha, bool flipY)
</del><ins>+bool HTMLVideoElement::copyVideoTextureToPlatformTexture(GraphicsContextGL* context, PlatformGLObject texture, GCGLenum target, GCGLint level, GCGLenum internalFormat, GCGLenum format, GCGLenum type, bool premultiplyAlpha, bool flipY)
</ins><span class="cx"> {
</span><span class="cx">     if (!player())
</span><span class="cx">         return false;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLVideoElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLVideoElement.h (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLVideoElement.h     2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/html/HTMLVideoElement.h        2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -79,7 +79,7 @@
</span><span class="cx"> 
</span><span class="cx">     // Used by WebGL to do GPU-GPU textures copy if possible.
</span><span class="cx">     // See more details at MediaPlayer::copyVideoTextureToPlatformTexture() defined in Source/WebCore/platform/graphics/MediaPlayer.h.
</span><del>-    bool copyVideoTextureToPlatformTexture(GraphicsContextGLOpenGL*, PlatformGLObject texture, GCGLenum target, GCGLint level, GCGLenum internalFormat, GCGLenum format, GCGLenum type, bool premultiplyAlpha, bool flipY);
</del><ins>+    bool copyVideoTextureToPlatformTexture(GraphicsContextGL*, PlatformGLObject texture, GCGLenum target, GCGLint level, GCGLenum internalFormat, GCGLenum format, GCGLenum type, bool premultiplyAlpha, bool flipY);
</ins><span class="cx"> 
</span><span class="cx">     WEBCORE_EXPORT bool shouldDisplayPosterImage() const;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGL2RenderingContextcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGL2RenderingContext.cpp (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGL2RenderingContext.cpp      2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/html/canvas/WebGL2RenderingContext.cpp 2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -89,7 +89,7 @@
</span><span class="cx">     return renderingContext;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-std::unique_ptr<WebGL2RenderingContext> WebGL2RenderingContext::create(CanvasBase& canvas, Ref<GraphicsContextGLOpenGL>&& context, GraphicsContextGLAttributes attributes)
</del><ins>+std::unique_ptr<WebGL2RenderingContext> WebGL2RenderingContext::create(CanvasBase& canvas, Ref<GraphicsContextGL>&& context, GraphicsContextGLAttributes attributes)
</ins><span class="cx"> {
</span><span class="cx">     auto renderingContext = std::unique_ptr<WebGL2RenderingContext>(new WebGL2RenderingContext(canvas, WTFMove(context), attributes));
</span><span class="cx">     // This is virtual and can't be called in the constructor.
</span><span class="lines">@@ -105,7 +105,7 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-WebGL2RenderingContext::WebGL2RenderingContext(CanvasBase& canvas, Ref<GraphicsContextGLOpenGL>&& context, GraphicsContextGLAttributes attributes)
</del><ins>+WebGL2RenderingContext::WebGL2RenderingContext(CanvasBase& canvas, Ref<GraphicsContextGL>&& context, GraphicsContextGLAttributes attributes)
</ins><span class="cx">     : WebGLRenderingContextBase(canvas, WTFMove(context), attributes)
</span><span class="cx"> {
</span><span class="cx">     if (isContextLost())
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGL2RenderingContexth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGL2RenderingContext.h (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGL2RenderingContext.h        2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/html/canvas/WebGL2RenderingContext.h   2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -42,7 +42,7 @@
</span><span class="cx">     WTF_MAKE_ISO_ALLOCATED(WebGL2RenderingContext);
</span><span class="cx"> public:
</span><span class="cx">     static std::unique_ptr<WebGL2RenderingContext> create(CanvasBase&, GraphicsContextGLAttributes);
</span><del>-    static std::unique_ptr<WebGL2RenderingContext> create(CanvasBase&, Ref<GraphicsContextGLOpenGL>&&, GraphicsContextGLAttributes);
</del><ins>+    static std::unique_ptr<WebGL2RenderingContext> create(CanvasBase&, Ref<GraphicsContextGL>&&, GraphicsContextGLAttributes);
</ins><span class="cx"> 
</span><span class="cx">     ~WebGL2RenderingContext();
</span><span class="cx"> 
</span><span class="lines">@@ -265,7 +265,7 @@
</span><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     WebGL2RenderingContext(CanvasBase&, GraphicsContextGLAttributes);
</span><del>-    WebGL2RenderingContext(CanvasBase&, Ref<GraphicsContextGLOpenGL>&&, GraphicsContextGLAttributes);
</del><ins>+    WebGL2RenderingContext(CanvasBase&, Ref<GraphicsContextGL>&&, GraphicsContextGLAttributes);
</ins><span class="cx"> 
</span><span class="cx">     bool isWebGL2() const final { return true; }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGLActiveInfoh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGLActiveInfo.h (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGLActiveInfo.h       2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/html/canvas/WebGLActiveInfo.h  2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -27,7 +27,7 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(WEBGL)
</span><span class="cx"> 
</span><del>-#include "GraphicsContextGLOpenGL.h"
</del><ins>+#include "GraphicsContextGL.h"
</ins><span class="cx"> #include <wtf/RefCounted.h>
</span><span class="cx"> #include <wtf/text/WTFString.h>
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGLBuffercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGLBuffer.cpp (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGLBuffer.cpp 2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/html/canvas/WebGLBuffer.cpp    2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -56,7 +56,7 @@
</span><span class="cx">     runDestructor();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebGLBuffer::deleteObjectImpl(const AbstractLocker&, GraphicsContextGLOpenGL* context3d, PlatformGLObject object)
</del><ins>+void WebGLBuffer::deleteObjectImpl(const AbstractLocker&, GraphicsContextGL* context3d, PlatformGLObject object)
</ins><span class="cx"> {
</span><span class="cx">     context3d->deleteBuffer(object);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGLBufferh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGLBuffer.h (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGLBuffer.h   2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/html/canvas/WebGLBuffer.h      2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -67,7 +67,7 @@
</span><span class="cx"> private:
</span><span class="cx">     WebGLBuffer(WebGLRenderingContextBase&);
</span><span class="cx"> 
</span><del>-    void deleteObjectImpl(const WTF::AbstractLocker&, GraphicsContextGLOpenGL*, PlatformGLObject) override;
</del><ins>+    void deleteObjectImpl(const WTF::AbstractLocker&, GraphicsContextGL*, PlatformGLObject) override;
</ins><span class="cx"> 
</span><span class="cx">     GCGLenum m_target { 0 };
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGLContextGroupcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGLContextGroup.cpp (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGLContextGroup.cpp   2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/html/canvas/WebGLContextGroup.cpp      2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -28,7 +28,7 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(WEBGL)
</span><span class="cx"> 
</span><del>-#include "GraphicsContextGLOpenGL.h"
</del><ins>+#include "GraphicsContextGL.h"
</ins><span class="cx"> #include "WebGLRenderingContextBase.h"
</span><span class="cx"> #include "WebGLSharedObject.h"
</span><span class="cx"> 
</span><span class="lines">@@ -49,7 +49,7 @@
</span><span class="cx">     return !m_contexts.isEmpty();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-GraphicsContextGLOpenGL& WebGLContextGroup::getAGraphicsContextGL()
</del><ins>+GraphicsContextGL& WebGLContextGroup::getAGraphicsContextGL()
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(!m_contexts.isEmpty());
</span><span class="cx">     return *(*m_contexts.begin())->graphicsContextGL();
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGLContextGrouph"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGLContextGroup.h (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGLContextGroup.h     2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/html/canvas/WebGLContextGroup.h        2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -44,7 +44,7 @@
</span><span class="cx">     void removeObject(WebGLSharedObject&);
</span><span class="cx"> 
</span><span class="cx">     bool hasAContext() const;
</span><del>-    GraphicsContextGLOpenGL& getAGraphicsContextGL();
</del><ins>+    GraphicsContextGL& getAGraphicsContextGL();
</ins><span class="cx">     Lock& objectGraphLockForAContext();
</span><span class="cx"> 
</span><span class="cx">     void loseContextGroup(WebGLRenderingContextBase::LostContextMode);
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGLContextObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGLContextObject.cpp (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGLContextObject.cpp  2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/html/canvas/WebGLContextObject.cpp     2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -61,7 +61,7 @@
</span><span class="cx">     return m_context->objectGraphLock();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-GraphicsContextGLOpenGL* WebGLContextObject::getAGraphicsContextGL() const
</del><ins>+GraphicsContextGL* WebGLContextObject::getAGraphicsContextGL() const
</ins><span class="cx"> {
</span><span class="cx">     return m_context ? m_context->graphicsContextGL() : nullptr;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGLContextObjecth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGLContextObject.h (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGLContextObject.h    2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/html/canvas/WebGLContextObject.h       2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -31,7 +31,7 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-class GraphicsContextGLOpenGL;
</del><ins>+class GraphicsContextGL;
</ins><span class="cx"> class WebGLRenderingContextBase;
</span><span class="cx"> 
</span><span class="cx"> // WebGLContextObject the base class for objects that are owned by a specific
</span><span class="lines">@@ -59,7 +59,7 @@
</span><span class="cx">         return m_context;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    GraphicsContextGLOpenGL* getAGraphicsContextGL() const override;
</del><ins>+    GraphicsContextGL* getAGraphicsContextGL() const override;
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     WebGLRenderingContextBase* m_context;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGLDepthTexturecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGLDepthTexture.cpp (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGLDepthTexture.cpp   2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/html/canvas/WebGLDepthTexture.cpp      2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -50,7 +50,7 @@
</span><span class="cx">     return WebGLDepthTextureName;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool WebGLDepthTexture::supported(GraphicsContextGLOpenGL& context)
</del><ins>+bool WebGLDepthTexture::supported(GraphicsContextGL& context)
</ins><span class="cx"> {
</span><span class="cx">     ExtensionsGL& extensions = context.getExtensions();
</span><span class="cx">     return extensions.supports("GL_OES_depth_texture")
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGLDepthTextureh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGLDepthTexture.h (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGLDepthTexture.h     2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/html/canvas/WebGLDepthTexture.h        2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -37,7 +37,7 @@
</span><span class="cx">     explicit WebGLDepthTexture(WebGLRenderingContextBase&);
</span><span class="cx">     virtual ~WebGLDepthTexture();
</span><span class="cx"> 
</span><del>-    static bool supported(GraphicsContextGLOpenGL&);
</del><ins>+    static bool supported(GraphicsContextGL&);
</ins><span class="cx"> 
</span><span class="cx">     ExtensionName getName() const override;
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGLDrawBufferscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGLDrawBuffers.cpp (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGLDrawBuffers.cpp    2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/html/canvas/WebGLDrawBuffers.cpp       2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -95,7 +95,7 @@
</span><span class="cx"> // static
</span><span class="cx"> bool WebGLDrawBuffers::satisfiesWebGLRequirements(WebGLRenderingContextBase& webglContext)
</span><span class="cx"> {
</span><del>-    GraphicsContextGLOpenGL* context = webglContext.graphicsContextGL();
</del><ins>+    GraphicsContextGL* context = webglContext.graphicsContextGL();
</ins><span class="cx"> 
</span><span class="cx">     // This is called after we make sure GL_EXT_draw_buffers is supported.
</span><span class="cx">     GCGLint maxDrawBuffers = 0;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGLFramebuffercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGLFramebuffer.cpp (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGLFramebuffer.cpp    2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/html/canvas/WebGLFramebuffer.cpp       2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -37,6 +37,9 @@
</span><span class="cx"> #include <wtf/Lock.h>
</span><span class="cx"> #include <wtf/Locker.h>
</span><span class="cx"> 
</span><ins>+#if !USE(ANGLE)
+#include "GraphicsContextGLOpenGL.h"
+#endif
</ins><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx"> namespace {
</span><span class="lines">@@ -57,9 +60,9 @@
</span><span class="cx">         bool isValid() const override;
</span><span class="cx">         bool isInitialized() const override;
</span><span class="cx">         void setInitialized() override;
</span><del>-        void onDetached(const AbstractLocker&, GraphicsContextGLOpenGL*) override;
-        void attach(GraphicsContextGLOpenGL*, GCGLenum target, GCGLenum attachment) override;
-        void unattach(GraphicsContextGLOpenGL*, GCGLenum target, GCGLenum attachment) override;
</del><ins>+        void onDetached(const AbstractLocker&, GraphicsContextGL*) override;
+        void attach(GraphicsContextGL*, GCGLenum target, GCGLenum attachment) override;
+        void unattach(GraphicsContextGL*, GCGLenum target, GCGLenum attachment) override;
</ins><span class="cx">         void addMembersToOpaqueRoots(const AbstractLocker&, JSC::SlotVisitor&) override;
</span><span class="cx"> 
</span><span class="cx">         WebGLRenderbufferAttachment() { };
</span><span class="lines">@@ -120,18 +123,18 @@
</span><span class="cx">             m_renderbuffer->setInitialized();
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    void WebGLRenderbufferAttachment::onDetached(const AbstractLocker& locker, GraphicsContextGLOpenGL* context)
</del><ins>+    void WebGLRenderbufferAttachment::onDetached(const AbstractLocker& locker, GraphicsContextGL* context)
</ins><span class="cx">     {
</span><span class="cx">         m_renderbuffer->onDetached(locker, context);
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    void WebGLRenderbufferAttachment::attach(GraphicsContextGLOpenGL* context, GCGLenum target, GCGLenum attachment)
</del><ins>+    void WebGLRenderbufferAttachment::attach(GraphicsContextGL* context, GCGLenum target, GCGLenum attachment)
</ins><span class="cx">     {
</span><span class="cx">         PlatformGLObject object = objectOrZero(m_renderbuffer.get());
</span><span class="cx">         context->framebufferRenderbuffer(target, attachment, GraphicsContextGL::RENDERBUFFER, object);
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    void WebGLRenderbufferAttachment::unattach(GraphicsContextGLOpenGL* context, GCGLenum target, GCGLenum attachment)
</del><ins>+    void WebGLRenderbufferAttachment::unattach(GraphicsContextGL* context, GCGLenum target, GCGLenum attachment)
</ins><span class="cx">     {
</span><span class="cx"> #if !USE(ANGLE)
</span><span class="cx">         if (attachment == GraphicsContextGL::DEPTH_STENCIL_ATTACHMENT) {
</span><span class="lines">@@ -163,9 +166,9 @@
</span><span class="cx">         bool isValid() const override;
</span><span class="cx">         bool isInitialized() const override;
</span><span class="cx">         void setInitialized() override;
</span><del>-        void onDetached(const AbstractLocker&, GraphicsContextGLOpenGL*) override;
-        void attach(GraphicsContextGLOpenGL*, GCGLenum target, GCGLenum attachment) override;
-        void unattach(GraphicsContextGLOpenGL*, GCGLenum target, GCGLenum attachment) override;
</del><ins>+        void onDetached(const AbstractLocker&, GraphicsContextGL*) override;
+        void attach(GraphicsContextGL*, GCGLenum target, GCGLenum attachment) override;
+        void unattach(GraphicsContextGL*, GCGLenum target, GCGLenum attachment) override;
</ins><span class="cx">         void addMembersToOpaqueRoots(const AbstractLocker&, JSC::SlotVisitor&) override;
</span><span class="cx"> 
</span><span class="cx">         WebGLTextureAttachment() { };
</span><span class="lines">@@ -232,12 +235,12 @@
</span><span class="cx">         // Textures are assumed to be initialized.
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    void WebGLTextureAttachment::onDetached(const AbstractLocker& locker, GraphicsContextGLOpenGL* context)
</del><ins>+    void WebGLTextureAttachment::onDetached(const AbstractLocker& locker, GraphicsContextGL* context)
</ins><span class="cx">     {
</span><span class="cx">         m_texture->onDetached(locker, context);
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    void WebGLTextureAttachment::attach(GraphicsContextGLOpenGL* context, GCGLenum target, GCGLenum attachment)
</del><ins>+    void WebGLTextureAttachment::attach(GraphicsContextGL* context, GCGLenum target, GCGLenum attachment)
</ins><span class="cx">     {
</span><span class="cx">         PlatformGLObject object = objectOrZero(m_texture.get());
</span><span class="cx">         if (m_target == GraphicsContextGL::TEXTURE_3D || m_target == GraphicsContextGL::TEXTURE_2D_ARRAY)
</span><span class="lines">@@ -246,7 +249,7 @@
</span><span class="cx">             context->framebufferTexture2D(target, attachment, m_target, object, m_level);
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    void WebGLTextureAttachment::unattach(GraphicsContextGLOpenGL* context, GCGLenum target, GCGLenum attachment)
</del><ins>+    void WebGLTextureAttachment::unattach(GraphicsContextGL* context, GCGLenum target, GCGLenum attachment)
</ins><span class="cx">     {
</span><span class="cx"> #if USE(ANGLE)
</span><span class="cx">         // GL_DEPTH_STENCIL_ATTACHMENT attachment is valid in ES3.
</span><span class="lines">@@ -547,7 +550,7 @@
</span><span class="cx">     return GraphicsContextGL::FRAMEBUFFER_COMPLETE;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool WebGLFramebuffer::onAccess(GraphicsContextGLOpenGL* context3d, const char** reason)
</del><ins>+bool WebGLFramebuffer::onAccess(GraphicsContextGL* context3d, const char** reason)
</ins><span class="cx"> {
</span><span class="cx">     if (checkStatus(reason) != GraphicsContextGL::FRAMEBUFFER_COMPLETE)
</span><span class="cx">         return false;
</span><span class="lines">@@ -563,7 +566,7 @@
</span><span class="cx">     return attachment && attachment->isValid();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebGLFramebuffer::deleteObjectImpl(const AbstractLocker& locker, GraphicsContextGLOpenGL* context3d, PlatformGLObject object)
</del><ins>+void WebGLFramebuffer::deleteObjectImpl(const AbstractLocker& locker, GraphicsContextGL* context3d, PlatformGLObject object)
</ins><span class="cx"> {
</span><span class="cx">     for (auto& attachment : m_attachments.values())
</span><span class="cx">         attachment->onDetached(locker, context3d);
</span><span class="lines">@@ -572,7 +575,7 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if !USE(ANGLE)
</span><del>-bool WebGLFramebuffer::initializeAttachments(GraphicsContextGLOpenGL* g3d, const char** reason)
</del><ins>+bool WebGLFramebuffer::initializeAttachments(GraphicsContextGL* g3d, const char** reason)
</ins><span class="cx"> {
</span><span class="cx">     if (!context()) {
</span><span class="cx">         // Context has been deleted - should not be calling this.
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGLFramebufferh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGLFramebuffer.h (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGLFramebuffer.h      2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/html/canvas/WebGLFramebuffer.h 2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -62,9 +62,9 @@
</span><span class="cx">         virtual bool isValid() const = 0;
</span><span class="cx">         virtual bool isInitialized() const = 0;
</span><span class="cx">         virtual void setInitialized() = 0;
</span><del>-        virtual void onDetached(const WTF::AbstractLocker&, GraphicsContextGLOpenGL*) = 0;
-        virtual void attach(GraphicsContextGLOpenGL*, GCGLenum target, GCGLenum attachment) = 0;
-        virtual void unattach(GraphicsContextGLOpenGL*, GCGLenum target, GCGLenum attachment) = 0;
</del><ins>+        virtual void onDetached(const WTF::AbstractLocker&, GraphicsContextGL*) = 0;
+        virtual void attach(GraphicsContextGL*, GCGLenum target, GCGLenum attachment) = 0;
+        virtual void unattach(GraphicsContextGL*, GCGLenum target, GCGLenum attachment) = 0;
</ins><span class="cx">         virtual void addMembersToOpaqueRoots(const WTF::AbstractLocker&, JSC::SlotVisitor&) = 0;
</span><span class="cx"> 
</span><span class="cx">     protected:
</span><span class="lines">@@ -94,7 +94,7 @@
</span><span class="cx">     // Return false if the framebuffer is incomplete; otherwise initialize
</span><span class="cx">     // the buffers if they haven't been initialized and
</span><span class="cx">     // needToInitializeAttachments is true.
</span><del>-    bool onAccess(GraphicsContextGLOpenGL*, const char** reason);
</del><ins>+    bool onAccess(GraphicsContextGL*, const char** reason);
</ins><span class="cx"> 
</span><span class="cx">     // Software version of glCheckFramebufferStatus(), except that when
</span><span class="cx">     // FRAMEBUFFER_COMPLETE is returned, it is still possible for
</span><span class="lines">@@ -119,13 +119,13 @@
</span><span class="cx"> private:
</span><span class="cx">     WebGLFramebuffer(WebGLRenderingContextBase&);
</span><span class="cx"> 
</span><del>-    void deleteObjectImpl(const WTF::AbstractLocker&, GraphicsContextGLOpenGL*, PlatformGLObject) override;
</del><ins>+    void deleteObjectImpl(const WTF::AbstractLocker&, GraphicsContextGL*, PlatformGLObject) override;
</ins><span class="cx"> 
</span><span class="cx">     WebGLAttachment* getAttachment(GCGLenum) const;
</span><span class="cx"> 
</span><span class="cx"> #if !USE(ANGLE)
</span><span class="cx">     // Return false if framebuffer is incomplete.
</span><del>-    bool initializeAttachments(GraphicsContextGLOpenGL*, const char** reason);
</del><ins>+    bool initializeAttachments(GraphicsContextGL*, const char** reason);
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     // Check if the framebuffer is currently bound to the given target.
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGLObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGLObject.cpp (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGLObject.cpp 2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/html/canvas/WebGLObject.cpp    2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -58,7 +58,7 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebGLObject::deleteObject(const AbstractLocker& locker, GraphicsContextGLOpenGL* context3d)
</del><ins>+void WebGLObject::deleteObject(const AbstractLocker& locker, GraphicsContextGL* context3d)
</ins><span class="cx"> {
</span><span class="cx">     m_deleted = true;
</span><span class="cx">     if (!m_object)
</span><span class="lines">@@ -92,7 +92,7 @@
</span><span class="cx">     m_attachmentCount = 0; // Make sure OpenGL resource is deleted.
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebGLObject::onDetached(const AbstractLocker& locker, GraphicsContextGLOpenGL* context3d)
</del><ins>+void WebGLObject::onDetached(const AbstractLocker& locker, GraphicsContextGL* context3d)
</ins><span class="cx"> {
</span><span class="cx">     if (m_attachmentCount)
</span><span class="cx">         --m_attachmentCount;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGLObjecth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGLObject.h (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGLObject.h   2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/html/canvas/WebGLObject.h      2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -37,7 +37,7 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-class GraphicsContextGLOpenGL;
</del><ins>+class GraphicsContextGL;
</ins><span class="cx"> class WebGLContextGroup;
</span><span class="cx"> class WebGLRenderingContextBase;
</span><span class="cx"> 
</span><span class="lines">@@ -53,10 +53,10 @@
</span><span class="cx">     // The AbstractLocker argument enforces at compile time that the objectGraphLock
</span><span class="cx">     // is held. This isn't necessary for all object types, but enough of them that
</span><span class="cx">     // it's done for all of them.
</span><del>-    void deleteObject(const WTF::AbstractLocker&, GraphicsContextGLOpenGL*);
</del><ins>+    void deleteObject(const WTF::AbstractLocker&, GraphicsContextGL*);
</ins><span class="cx"> 
</span><span class="cx">     void onAttached() { ++m_attachmentCount; }
</span><del>-    void onDetached(const WTF::AbstractLocker&, GraphicsContextGLOpenGL*);
</del><ins>+    void onDetached(const WTF::AbstractLocker&, GraphicsContextGL*);
</ins><span class="cx"> 
</span><span class="cx">     // This indicates whether the client side issue a delete call already, not
</span><span class="cx">     // whether the OpenGL resource is deleted.
</span><span class="lines">@@ -82,13 +82,13 @@
</span><span class="cx">     void runDestructor();
</span><span class="cx"> 
</span><span class="cx">     // deleteObjectImpl should be only called once to delete the OpenGL resource.
</span><del>-    virtual void deleteObjectImpl(const WTF::AbstractLocker&, GraphicsContextGLOpenGL*, PlatformGLObject) = 0;
</del><ins>+    virtual void deleteObjectImpl(const WTF::AbstractLocker&, GraphicsContextGL*, PlatformGLObject) = 0;
</ins><span class="cx"> 
</span><span class="cx">     virtual bool hasGroupOrContext() const = 0;
</span><span class="cx"> 
</span><span class="cx">     virtual void detach();
</span><span class="cx"> 
</span><del>-    virtual GraphicsContextGLOpenGL* getAGraphicsContextGL() const = 0;
</del><ins>+    virtual GraphicsContextGL* getAGraphicsContextGL() const = 0;
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     PlatformGLObject m_object { 0 };
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGLProgramcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGLProgram.cpp (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGLProgram.cpp        2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/html/canvas/WebGLProgram.cpp   2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -39,6 +39,10 @@
</span><span class="cx"> #include <wtf/Locker.h>
</span><span class="cx"> #include <wtf/NeverDestroyed.h>
</span><span class="cx"> 
</span><ins>+#if !USE(ANGLE)
+#include "GraphicsContextGLOpenGL.h"
+#endif
+
</ins><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx"> HashMap<WebGLProgram*, WebGLRenderingContextBase*>& WebGLProgram::instances(const LockHolder&)
</span><span class="lines">@@ -95,7 +99,7 @@
</span><span class="cx">     ContextDestructionObserver::contextDestroyed();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebGLProgram::deleteObjectImpl(const AbstractLocker& locker, GraphicsContextGLOpenGL* context3d, PlatformGLObject obj)
</del><ins>+void WebGLProgram::deleteObjectImpl(const AbstractLocker& locker, GraphicsContextGL* context3d, PlatformGLObject obj)
</ins><span class="cx"> {
</span><span class="cx">     context3d->deleteProgram(obj);
</span><span class="cx">     if (m_vertexShader) {
</span><span class="lines">@@ -208,7 +212,7 @@
</span><span class="cx">     visitor.addOpaqueRoot(m_fragmentShader.get());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebGLProgram::cacheActiveAttribLocations(GraphicsContextGLOpenGL* context3d)
</del><ins>+void WebGLProgram::cacheActiveAttribLocations(GraphicsContextGL* context3d)
</ins><span class="cx"> {
</span><span class="cx">     m_activeAttribLocations.clear();
</span><span class="cx"> 
</span><span class="lines">@@ -217,7 +221,11 @@
</span><span class="cx">     m_activeAttribLocations.resize(static_cast<size_t>(numAttribs));
</span><span class="cx">     for (int i = 0; i < numAttribs; ++i) {
</span><span class="cx">         GraphicsContextGL::ActiveInfo info;
</span><del>-        context3d->getActiveAttribImpl(object(), i, info);
</del><ins>+#if USE(ANGLE)
+        context3d->getActiveAttrib(object(), i, info);
+#else
+        static_cast<GraphicsContextGLOpenGL*>(context3d)->getActiveAttribImpl(object(), i, info);
+#endif
</ins><span class="cx">         m_activeAttribLocations[i] = context3d->getAttribLocation(object(), info.name);
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="lines">@@ -230,7 +238,7 @@
</span><span class="cx">     if (!object())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    GraphicsContextGLOpenGL* context = getAGraphicsContextGL();
</del><ins>+    GraphicsContextGL* context = getAGraphicsContextGL();
</ins><span class="cx">     if (!context)
</span><span class="cx">         return;
</span><span class="cx">     GCGLint linkStatus = 0;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGLProgramh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGLProgram.h (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGLProgram.h  2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/html/canvas/WebGLProgram.h     2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -93,9 +93,9 @@
</span><span class="cx"> private:
</span><span class="cx">     WebGLProgram(WebGLRenderingContextBase&);
</span><span class="cx"> 
</span><del>-    void deleteObjectImpl(const WTF::AbstractLocker&, GraphicsContextGLOpenGL*, PlatformGLObject) override;
</del><ins>+    void deleteObjectImpl(const WTF::AbstractLocker&, GraphicsContextGL*, PlatformGLObject) override;
</ins><span class="cx"> 
</span><del>-    void cacheActiveAttribLocations(GraphicsContextGLOpenGL*);
</del><ins>+    void cacheActiveAttribLocations(GraphicsContextGL*);
</ins><span class="cx">     void cacheInfoIfNeeded();
</span><span class="cx"> 
</span><span class="cx">     Vector<GCGLint> m_activeAttribLocations;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGLQuerycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGLQuery.cpp (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGLQuery.cpp  2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/html/canvas/WebGLQuery.cpp     2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -54,7 +54,7 @@
</span><span class="cx">     setObject(ctx.graphicsContextGL()->createQuery());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebGLQuery::deleteObjectImpl(const AbstractLocker&, GraphicsContextGLOpenGL* context3d, PlatformGLObject object)
</del><ins>+void WebGLQuery::deleteObjectImpl(const AbstractLocker&, GraphicsContextGL* context3d, PlatformGLObject object)
</ins><span class="cx"> {
</span><span class="cx">     context3d->deleteQuery(object);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGLQueryh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGLQuery.h (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGLQuery.h    2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/html/canvas/WebGLQuery.h       2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -49,7 +49,7 @@
</span><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     explicit WebGLQuery(WebGLRenderingContextBase&);
</span><del>-    void deleteObjectImpl(const WTF::AbstractLocker&, GraphicsContextGLOpenGL*, PlatformGLObject) override;
</del><ins>+    void deleteObjectImpl(const WTF::AbstractLocker&, GraphicsContextGL*, PlatformGLObject) override;
</ins><span class="cx"> 
</span><span class="cx">     bool m_isResultAvailable { false };
</span><span class="cx">     GCGLenum m_target { 0 };
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGLRenderbuffercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGLRenderbuffer.cpp (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGLRenderbuffer.cpp   2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/html/canvas/WebGLRenderbuffer.cpp      2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -61,7 +61,7 @@
</span><span class="cx">     setObject(ctx.graphicsContextGL()->createRenderbuffer());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebGLRenderbuffer::deleteObjectImpl(const AbstractLocker&, GraphicsContextGLOpenGL* context3d, PlatformGLObject object)
</del><ins>+void WebGLRenderbuffer::deleteObjectImpl(const AbstractLocker&, GraphicsContextGL* context3d, PlatformGLObject object)
</ins><span class="cx"> {
</span><span class="cx">     context3d->deleteRenderbuffer(object);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGLRenderbufferh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGLRenderbuffer.h (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGLRenderbuffer.h     2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/html/canvas/WebGLRenderbuffer.h        2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -65,7 +65,7 @@
</span><span class="cx"> private:
</span><span class="cx">     WebGLRenderbuffer(WebGLRenderingContextBase&);
</span><span class="cx"> 
</span><del>-    void deleteObjectImpl(const WTF::AbstractLocker&, GraphicsContextGLOpenGL*, PlatformGLObject) override;
</del><ins>+    void deleteObjectImpl(const WTF::AbstractLocker&, GraphicsContextGL*, PlatformGLObject) override;
</ins><span class="cx"> 
</span><span class="cx">     bool isRenderbuffer() const override { return true; }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGLRenderingContextcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGLRenderingContext.cpp (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGLRenderingContext.cpp       2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/html/canvas/WebGLRenderingContext.cpp  2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -89,7 +89,7 @@
</span><span class="cx">     return renderingContext;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-std::unique_ptr<WebGLRenderingContext> WebGLRenderingContext::create(CanvasBase& canvas, Ref<GraphicsContextGLOpenGL>&& context, GraphicsContextGLAttributes attributes)
</del><ins>+std::unique_ptr<WebGLRenderingContext> WebGLRenderingContext::create(CanvasBase& canvas, Ref<GraphicsContextGL>&& context, GraphicsContextGLAttributes attributes)
</ins><span class="cx"> {
</span><span class="cx">     auto renderingContext = std::unique_ptr<WebGLRenderingContext>(new WebGLRenderingContext(canvas, WTFMove(context), attributes));
</span><span class="cx">     // This is virtual and can't be called in the constructor.
</span><span class="lines">@@ -105,7 +105,7 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-WebGLRenderingContext::WebGLRenderingContext(CanvasBase& canvas, Ref<GraphicsContextGLOpenGL>&& context, GraphicsContextGLAttributes attributes)
</del><ins>+WebGLRenderingContext::WebGLRenderingContext(CanvasBase& canvas, Ref<GraphicsContextGL>&& context, GraphicsContextGLAttributes attributes)
</ins><span class="cx">     : WebGLRenderingContextBase(canvas, WTFMove(context), attributes)
</span><span class="cx"> {
</span><span class="cx">     if (isContextLost())
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGLRenderingContexth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGLRenderingContext.h (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGLRenderingContext.h 2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/html/canvas/WebGLRenderingContext.h    2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -36,7 +36,7 @@
</span><span class="cx">     WTF_MAKE_ISO_ALLOCATED(WebGLRenderingContext);
</span><span class="cx"> public:
</span><span class="cx">     static std::unique_ptr<WebGLRenderingContext> create(CanvasBase&, GraphicsContextGLAttributes);
</span><del>-    static std::unique_ptr<WebGLRenderingContext> create(CanvasBase&, Ref<GraphicsContextGLOpenGL>&&, GraphicsContextGLAttributes);
</del><ins>+    static std::unique_ptr<WebGLRenderingContext> create(CanvasBase&, Ref<GraphicsContextGL>&&, GraphicsContextGLAttributes);
</ins><span class="cx"> 
</span><span class="cx">     bool isWebGL1() const final { return true; }
</span><span class="cx"> 
</span><span class="lines">@@ -53,7 +53,7 @@
</span><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     WebGLRenderingContext(CanvasBase&, GraphicsContextGLAttributes);
</span><del>-    WebGLRenderingContext(CanvasBase&, Ref<GraphicsContextGLOpenGL>&&, GraphicsContextGLAttributes);
</del><ins>+    WebGLRenderingContext(CanvasBase&, Ref<GraphicsContextGL>&&, GraphicsContextGLAttributes);
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGLRenderingContextBasecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp   2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp      2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -51,6 +51,7 @@
</span><span class="cx"> #include "FrameView.h"
</span><span class="cx"> #include "GraphicsContext.h"
</span><span class="cx"> #include "GraphicsContextGLImageExtractor.h"
</span><ins>+#include "GraphicsContextGLOpenGL.h"
</ins><span class="cx"> #include "HTMLCanvasElement.h"
</span><span class="cx"> #include "HTMLImageElement.h"
</span><span class="cx"> #include "HTMLVideoElement.h"
</span><span class="lines">@@ -617,7 +618,7 @@
</span><span class="cx">     bool m_didApply { false };
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-static bool isHighPerformanceContext(const RefPtr<GraphicsContextGLOpenGL>& context)
</del><ins>+static bool isHighPerformanceContext(const RefPtr<GraphicsContextGL>& context)
</ins><span class="cx"> {
</span><span class="cx">     return context->powerPreferenceUsedForCreation() == WebGLPowerPreference::HighPerformance;
</span><span class="cx"> }
</span><span class="lines">@@ -753,7 +754,7 @@
</span><span class="cx">         m_checkForContextLossHandlingTimer.startOneShot(checkContextLossHandlingDelay);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-WebGLRenderingContextBase::WebGLRenderingContextBase(CanvasBase& canvas, Ref<GraphicsContextGLOpenGL>&& context, WebGLContextAttributes attributes)
</del><ins>+WebGLRenderingContextBase::WebGLRenderingContextBase(CanvasBase& canvas, Ref<GraphicsContextGL>&& context, WebGLContextAttributes attributes)
</ins><span class="cx">     : GPUBasedCanvasRenderingContext(canvas)
</span><span class="cx">     , m_context(WTFMove(context))
</span><span class="cx">     , m_restoreTimer(canvas.scriptExecutionContext(), *this, &WebGLRenderingContextBase::maybeRestoreContext)
</span><span class="lines">@@ -1786,7 +1787,7 @@
</span><span class="cx">     if (!validateNPOTTextureLevel(width, height, level, "compressedTexImage2D"))
</span><span class="cx">         return;
</span><span class="cx">     m_context->moveErrorsToSyntheticErrorList();
</span><del>-    m_context->compressedTexImage2D(target, level, internalformat, width, height,
</del><ins>+    static_cast<GraphicsContextGLOpenGL*>(m_context.get())->compressedTexImage2D(target, level, internalformat, width, height,
</ins><span class="cx">         border, data.byteLength(), data.baseAddress());
</span><span class="cx">     if (m_context->moveErrorsToSyntheticErrorList()) {
</span><span class="cx">         // The compressedTexImage2D function failed. Tell the WebGLTexture it doesn't have the data for this level.
</span><span class="lines">@@ -1829,7 +1830,7 @@
</span><span class="cx">     if (!validateCompressedTexSubDimensions("compressedTexSubImage2D", target, level, xoffset, yoffset, width, height, format, tex.get()))
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    graphicsContextGL()->compressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, data.byteLength(), data.baseAddress());
</del><ins>+    static_cast<GraphicsContextGLOpenGL*>(graphicsContextGL())->compressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, data.byteLength(), data.baseAddress());
</ins><span class="cx">     tex->setCompressed();
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="lines">@@ -3205,7 +3206,7 @@
</span><span class="cx"> #if USE(ANGLE)
</span><span class="cx">         m_context->getProgramiv(program.object(), pname, &value);
</span><span class="cx"> #else
</span><del>-        m_context->getNonBuiltInActiveSymbolCount(program.object(), pname, &value);
</del><ins>+        static_cast<GraphicsContextGLOpenGL*>(m_context.get())->getNonBuiltInActiveSymbolCount(program.object(), pname, &value);
</ins><span class="cx"> #endif // USE(ANGLE)
</span><span class="cx">         return value;
</span><span class="cx">     default:
</span><span class="lines">@@ -3549,9 +3550,11 @@
</span><span class="cx">     switch (baseType) {
</span><span class="cx">     case GraphicsContextGL::FLOAT: {
</span><span class="cx">         GCGLfloat value[16] = {0};
</span><ins>+#if !USE(ANGLE)
</ins><span class="cx">         if (m_isRobustnessEXTSupported)
</span><span class="cx">             m_context->getExtensions().getnUniformfvEXT(program.object(), location, 16 * sizeof(GCGLfloat), value);
</span><span class="cx">         else
</span><ins>+#endif
</ins><span class="cx">             m_context->getUniformfv(program.object(), location, value);
</span><span class="cx">         if (length == 1)
</span><span class="cx">             return value[0];
</span><span class="lines">@@ -3559,9 +3562,11 @@
</span><span class="cx">     }
</span><span class="cx">     case GraphicsContextGL::INT: {
</span><span class="cx">         GCGLint value[4] = {0};
</span><ins>+#if !USE(ANGLE)
</ins><span class="cx">         if (m_isRobustnessEXTSupported)
</span><span class="cx">             m_context->getExtensions().getnUniformivEXT(program.object(), location, 4 * sizeof(GCGLint), value);
</span><span class="cx">         else
</span><ins>+#endif
</ins><span class="cx">             m_context->getUniformiv(program.object(), location, value);
</span><span class="cx">         if (length == 1)
</span><span class="cx">             return value[0];
</span><span class="lines">@@ -3576,9 +3581,11 @@
</span><span class="cx">     }
</span><span class="cx">     case GraphicsContextGL::BOOL: {
</span><span class="cx">         GCGLint value[4] = {0};
</span><ins>+#if !USE(ANGLE)
</ins><span class="cx">         if (m_isRobustnessEXTSupported)
</span><span class="cx">             m_context->getExtensions().getnUniformivEXT(program.object(), location, 4 * sizeof(GCGLint), value);
</span><span class="cx">         else
</span><ins>+#endif
</ins><span class="cx">             m_context->getUniformiv(program.object(), location, value);
</span><span class="cx">         if (length > 1) {
</span><span class="cx">             Vector<bool> vector(length);
</span><span class="lines">@@ -3619,7 +3626,7 @@
</span><span class="cx"> #if USE(ANGLE)
</span><span class="cx">     m_context->getProgramiv(program.object(), GraphicsContextGL::ACTIVE_UNIFORMS, &activeUniforms);
</span><span class="cx"> #else
</span><del>-    m_context->getNonBuiltInActiveSymbolCount(program.object(), GraphicsContextGL::ACTIVE_UNIFORMS, &activeUniforms);
</del><ins>+    static_cast<GraphicsContextGLOpenGL*>(m_context.get())->getNonBuiltInActiveSymbolCount(program.object(), GraphicsContextGL::ACTIVE_UNIFORMS, &activeUniforms);
</ins><span class="cx"> #endif
</span><span class="cx">     for (GCGLint i = 0; i < activeUniforms; i++) {
</span><span class="cx">         GraphicsContextGL::ActiveInfo info;
</span><span class="lines">@@ -3893,8 +3900,8 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx"> #if !USE(ANGLE)
</span><del>-    if (!m_context->precisionsMatch(objectOrZero(vertexShader.get()), objectOrZero(fragmentShader.get()))
-        || !m_context->checkVaryingsPacking(objectOrZero(vertexShader.get()), objectOrZero(fragmentShader.get()))) {
</del><ins>+    if (!static_cast<GraphicsContextGLOpenGL*>(m_context.get())->precisionsMatch(objectOrZero(vertexShader.get()), objectOrZero(fragmentShader.get()))
+        || !static_cast<GraphicsContextGLOpenGL*>(m_context.get())->checkVaryingsPacking(objectOrZero(vertexShader.get()), objectOrZero(fragmentShader.get()))) {
</ins><span class="cx">         program->setLinkStatus(false);
</span><span class="cx">         return false;
</span><span class="cx">     }
</span><span class="lines">@@ -4257,7 +4264,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx"> #define INTERNAL_FORMAT_CHECK(typeMacro, pixelTypeMacro) \
</span><del>-    if (type != GraphicsContextGLOpenGL::typeMacro || pixels.getType() != JSC::pixelTypeMacro) { \
</del><ins>+    if (type != GraphicsContextGL::typeMacro || pixels.getType() != JSC::pixelTypeMacro) { \
</ins><span class="cx">         synthesizeGLError(GraphicsContextGL::INVALID_ENUM, "readPixels", "type does not match internal format"); \
</span><span class="cx">         return; \
</span><span class="cx">     } \
</span><span class="lines">@@ -4268,7 +4275,7 @@
</span><span class="cx">     CHECK_COMPONENT_COUNT
</span><span class="cx"> 
</span><span class="cx"> #define INTERNAL_FORMAT_INTEGER_CHECK(typeMacro, pixelTypeMacro) \
</span><del>-    if (type != GraphicsContextGLOpenGL::typeMacro || pixels.getType() != JSC::pixelTypeMacro) { \
</del><ins>+    if (type != GraphicsContextGL::typeMacro || pixels.getType() != JSC::pixelTypeMacro) { \
</ins><span class="cx">         synthesizeGLError(GraphicsContextGL::INVALID_ENUM, "readPixels", "type does not match internal format"); \
</span><span class="cx">         return; \
</span><span class="cx">     } \
</span><span class="lines">@@ -4278,13 +4285,13 @@
</span><span class="cx">     } \
</span><span class="cx">     CHECK_COMPONENT_COUNT
</span><span class="cx"> 
</span><del>-#define CASE_PACKED_INTERNAL_FORMAT_CHECK(internalFormatMacro, formatMacro, type0Macro, pixelType0Macro, type1Macro, pixelType1Macro) case GraphicsContextGLOpenGL::internalFormatMacro: \
-    if (!(type == GraphicsContextGLOpenGL::type0Macro && pixels.getType() == JSC::pixelType0Macro) \
-        && !(type == GraphicsContextGLOpenGL::type1Macro && pixels.getType() == JSC::pixelType1Macro)) { \
</del><ins>+#define CASE_PACKED_INTERNAL_FORMAT_CHECK(internalFormatMacro, formatMacro, type0Macro, pixelType0Macro, type1Macro, pixelType1Macro) case GraphicsContextGL::internalFormatMacro: \
+    if (!(type == GraphicsContextGL::type0Macro && pixels.getType() == JSC::pixelType0Macro) \
+        && !(type == GraphicsContextGL::type1Macro && pixels.getType() == JSC::pixelType1Macro)) { \
</ins><span class="cx">         synthesizeGLError(GraphicsContextGL::INVALID_ENUM, "readPixels", "type does not match internal format"); \
</span><span class="cx">         return; \
</span><span class="cx">     } \
</span><del>-    if (format != GraphicsContextGLOpenGL::formatMacro) { \
</del><ins>+    if (format != GraphicsContextGL::formatMacro) { \
</ins><span class="cx">         synthesizeGLError(GraphicsContextGL::INVALID_ENUM, "readPixels", "Invalid format"); \
</span><span class="cx">         return; \
</span><span class="cx">     } \
</span><span class="lines">@@ -4699,7 +4706,7 @@
</span><span class="cx">                 // The UNSIGNED_INT_10F_11F_11F_REV type pack/unpack isn't implemented.
</span><span class="cx">                 type = GraphicsContextGL::FLOAT;
</span><span class="cx">             }
</span><del>-            if (!m_context->extractImageData(pixels.get(), GraphicsContextGLOpenGL::DataFormat::RGBA8, adjustedSourceImageRect, depth, unpackImageHeight, format, type, m_unpackFlipY, m_unpackPremultiplyAlpha, data)) {
</del><ins>+            if (!m_context->extractImageData(pixels.get(), GraphicsContextGL::DataFormat::RGBA8, adjustedSourceImageRect, depth, unpackImageHeight, format, type, m_unpackFlipY, m_unpackPremultiplyAlpha, data)) {
</ins><span class="cx">                 synthesizeGLError(GraphicsContextGL::INVALID_VALUE, "texImage2D", "bad image data");
</span><span class="cx">                 return { };
</span><span class="cx">             }
</span><span class="lines">@@ -5013,7 +5020,7 @@
</span><span class="cx">     ASSERT(tex);
</span><span class="cx">     ASSERT(validateNPOTTextureLevel(width, height, level, "texImage2D"));
</span><span class="cx">     if (!pixels) {
</span><del>-        if (!m_context->texImage2DResourceSafe(target, level, internalFormat, width, height, border, format, type, m_unpackAlignment))
</del><ins>+        if (!static_cast<GraphicsContextGLOpenGL*>(m_context.get())->texImage2DResourceSafe(target, level, internalFormat, width, height, border, format, type, m_unpackAlignment))
</ins><span class="cx">             return;
</span><span class="cx">     } else {
</span><span class="cx">         ASSERT(validateSettableTexInternalFormat("texImage2D", internalFormat));
</span><span class="lines">@@ -5485,8 +5492,8 @@
</span><span class="cx">     UNUSED_PARAM(internalFormat);
</span><span class="cx"> #else
</span><span class="cx">     // Verify that the combination of internalformat, format, and type is supported.
</span><del>-#define INTERNAL_FORMAT_CASE(internalFormatMacro, formatMacro, type0, type1, type2, type3, type4) case GraphicsContextGLOpenGL::internalFormatMacro: \
-    if (format != GraphicsContextGLOpenGL::formatMacro) { \
</del><ins>+#define INTERNAL_FORMAT_CASE(internalFormatMacro, formatMacro, type0, type1, type2, type3, type4) case GraphicsContextGL::internalFormatMacro: \
+    if (format != GraphicsContextGL::formatMacro) { \
</ins><span class="cx">         synthesizeGLError(GraphicsContextGL::INVALID_OPERATION, functionName, "invalid format for internalformat"); \
</span><span class="cx">         return false; \
</span><span class="cx">     } \
</span><span class="lines">@@ -5625,7 +5632,7 @@
</span><span class="cx">     GCGLint clippedX, clippedY;
</span><span class="cx">     GCGLsizei clippedWidth, clippedHeight;
</span><span class="cx">     if (clip2D(x, y, width, height, getBoundReadFramebufferWidth(), getBoundReadFramebufferHeight(), &clippedX, &clippedY, &clippedWidth, &clippedHeight)) {
</span><del>-        m_context->texImage2DResourceSafe(target, level, internalFormat, width, height, border,
</del><ins>+        static_cast<GraphicsContextGLOpenGL*>(m_context.get())->texImage2DResourceSafe(target, level, internalFormat, width, height, border,
</ins><span class="cx">             internalFormat, GraphicsContextGL::UNSIGNED_BYTE, m_unpackAlignment);
</span><span class="cx">         if (clippedWidth > 0 && clippedHeight > 0) {
</span><span class="cx">             m_context->copyTexSubImage2D(target, level, clippedX - x, clippedY - y,
</span><span class="lines">@@ -6406,8 +6413,8 @@
</span><span class="cx"> 
</span><span class="cx"> bool WebGLRenderingContextBase::isTexInternalFormatColorBufferCombinationValid(GCGLenum texInternalFormat, GCGLenum colorBufferFormat)
</span><span class="cx"> {
</span><del>-    auto need = GraphicsContextGLOpenGL::getChannelBitsByFormat(texInternalFormat);
-    auto have = GraphicsContextGLOpenGL::getChannelBitsByFormat(colorBufferFormat);
</del><ins>+    auto need = GraphicsContextGL::getChannelBitsByFormat(texInternalFormat);
+    auto have = GraphicsContextGL::getChannelBitsByFormat(colorBufferFormat);
</ins><span class="cx">     return (need & have) == need;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -7484,7 +7491,7 @@
</span><span class="cx">     if (!hostWindow)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    RefPtr<GraphicsContextGLOpenGL> context(GraphicsContextGLOpenGL::create(m_attributes, hostWindow));
</del><ins>+    RefPtr<GraphicsContextGL> context(GraphicsContextGLOpenGL::create(m_attributes, hostWindow));
</ins><span class="cx">     if (!context) {
</span><span class="cx">         if (m_contextLostMode == RealLostContext)
</span><span class="cx">             m_restoreTimer.startOneShot(secondsBetweenRestoreAttempts);
</span><span class="lines">@@ -7760,7 +7767,7 @@
</span><span class="cx"> 
</span><span class="cx"> #if USE(OPENGL) && ENABLE(WEBGL2)
</span><span class="cx">     if (isWebGL2())
</span><del>-        m_context->primitiveRestartIndex(getRestartIndex(type));
</del><ins>+        static_cast<GraphicsContextGLOpenGL*>(m_context.get())->primitiveRestartIndex(getRestartIndex(type));
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     m_context->drawElementsInstanced(mode, count, type, static_cast<GCGLintptr>(offset), primcount);
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGLRenderingContextBaseh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.h (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.h     2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.h        2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -30,7 +30,7 @@
</span><span class="cx"> #include "ActivityStateChangeObserver.h"
</span><span class="cx"> #include "ExceptionOr.h"
</span><span class="cx"> #include "GPUBasedCanvasRenderingContext.h"
</span><del>-#include "GraphicsContextGLOpenGL.h"
</del><ins>+#include "GraphicsContextGL.h"
</ins><span class="cx"> #include "ImageBuffer.h"
</span><span class="cx"> #include "SuspendableTimer.h"
</span><span class="cx"> #include "Timer.h"
</span><span class="lines">@@ -124,7 +124,7 @@
</span><span class="cx"> using WebGLCanvas = WTF::Variant<RefPtr<HTMLCanvasElement>>;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-class WebGLRenderingContextBase : public GraphicsContextGLOpenGL::Client, public GPUBasedCanvasRenderingContext, private ActivityStateChangeObserver {
</del><ins>+class WebGLRenderingContextBase : public GraphicsContextGL::Client, public GPUBasedCanvasRenderingContext, private ActivityStateChangeObserver {
</ins><span class="cx">     WTF_MAKE_ISO_ALLOCATED(WebGLRenderingContextBase);
</span><span class="cx"> public:
</span><span class="cx">     static std::unique_ptr<WebGLRenderingContextBase> create(CanvasBase&, WebGLContextAttributes&, const String&);
</span><span class="lines">@@ -377,7 +377,7 @@
</span><span class="cx">     void loseContextImpl(LostContextMode);
</span><span class="cx">     WEBCORE_EXPORT void simulateContextChanged();
</span><span class="cx"> 
</span><del>-    GraphicsContextGLOpenGL* graphicsContextGL() const { return m_context.get(); }
</del><ins>+    GraphicsContextGL* graphicsContextGL() const { return m_context.get(); }
</ins><span class="cx">     WebGLContextGroup* contextGroup() const { return m_contextGroup.get(); }
</span><span class="cx">     PlatformLayer* platformLayer() const override;
</span><span class="cx"> 
</span><span class="lines">@@ -427,7 +427,7 @@
</span><span class="cx"> 
</span><span class="cx"> protected:
</span><span class="cx">     WebGLRenderingContextBase(CanvasBase&, WebGLContextAttributes);
</span><del>-    WebGLRenderingContextBase(CanvasBase&, Ref<GraphicsContextGLOpenGL>&&, WebGLContextAttributes);
</del><ins>+    WebGLRenderingContextBase(CanvasBase&, Ref<GraphicsContextGL>&&, WebGLContextAttributes);
</ins><span class="cx"> 
</span><span class="cx">     friend class EXTTextureCompressionRGTC;
</span><span class="cx">     friend class WebGLDrawBuffers;
</span><span class="lines">@@ -527,7 +527,7 @@
</span><span class="cx">     bool needsPreparationForDisplay() const final { return true; }
</span><span class="cx">     void prepareForDisplay() final;
</span><span class="cx"> 
</span><del>-    RefPtr<GraphicsContextGLOpenGL> m_context;
</del><ins>+    RefPtr<GraphicsContextGL> m_context;
</ins><span class="cx">     RefPtr<WebGLContextGroup> m_contextGroup;
</span><span class="cx">     Lock m_objectGraphLock;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGLSamplercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGLSampler.cpp (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGLSampler.cpp        2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/html/canvas/WebGLSampler.cpp   2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -54,7 +54,7 @@
</span><span class="cx">     setObject(ctx.graphicsContextGL()->createSampler());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebGLSampler::deleteObjectImpl(const AbstractLocker&, GraphicsContextGLOpenGL* context3d, PlatformGLObject object)
</del><ins>+void WebGLSampler::deleteObjectImpl(const AbstractLocker&, GraphicsContextGL* context3d, PlatformGLObject object)
</ins><span class="cx"> {
</span><span class="cx">     context3d->deleteSampler(object);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGLSamplerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGLSampler.h (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGLSampler.h  2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/html/canvas/WebGLSampler.h     2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -42,7 +42,7 @@
</span><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     explicit WebGLSampler(WebGLRenderingContextBase&);
</span><del>-    void deleteObjectImpl(const WTF::AbstractLocker&, GraphicsContextGLOpenGL*, PlatformGLObject) final;
</del><ins>+    void deleteObjectImpl(const WTF::AbstractLocker&, GraphicsContextGL*, PlatformGLObject) final;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGLShadercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGLShader.cpp (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGLShader.cpp 2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/html/canvas/WebGLShader.cpp    2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -58,7 +58,7 @@
</span><span class="cx">     runDestructor();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebGLShader::deleteObjectImpl(const AbstractLocker&, GraphicsContextGLOpenGL* context3d, PlatformGLObject object)
</del><ins>+void WebGLShader::deleteObjectImpl(const AbstractLocker&, GraphicsContextGL* context3d, PlatformGLObject object)
</ins><span class="cx"> {
</span><span class="cx">     context3d->deleteShader(object);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGLShaderh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGLShader.h (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGLShader.h   2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/html/canvas/WebGLShader.h      2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -48,7 +48,7 @@
</span><span class="cx"> private:
</span><span class="cx">     WebGLShader(WebGLRenderingContextBase&, GCGLenum);
</span><span class="cx"> 
</span><del>-    void deleteObjectImpl(const WTF::AbstractLocker&, GraphicsContextGLOpenGL*, PlatformGLObject) final;
</del><ins>+    void deleteObjectImpl(const WTF::AbstractLocker&, GraphicsContextGL*, PlatformGLObject) final;
</ins><span class="cx"> 
</span><span class="cx">     GCGLenum m_type;
</span><span class="cx">     String m_source;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGLShaderPrecisionFormath"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGLShaderPrecisionFormat.h (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGLShaderPrecisionFormat.h    2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/html/canvas/WebGLShaderPrecisionFormat.h       2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -28,7 +28,7 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(WEBGL)
</span><span class="cx"> 
</span><del>-#include "GraphicsContextGLOpenGL.h"
</del><ins>+#include "GraphicsContextGL.h"
</ins><span class="cx"> #include <wtf/RefCounted.h>
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGLSharedObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGLSharedObject.cpp (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGLSharedObject.cpp   2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/html/canvas/WebGLSharedObject.cpp      2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -77,7 +77,7 @@
</span><span class="cx">     return m_contextGroup && m_contextGroup->hasAContext();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-GraphicsContextGLOpenGL* WebGLSharedObject::getAGraphicsContextGL() const
</del><ins>+GraphicsContextGL* WebGLSharedObject::getAGraphicsContextGL() const
</ins><span class="cx"> {
</span><span class="cx">     return m_contextGroup ? &m_contextGroup->getAGraphicsContextGL() : nullptr;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGLSharedObjecth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGLSharedObject.h (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGLSharedObject.h     2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/html/canvas/WebGLSharedObject.h        2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -36,7 +36,7 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-class GraphicsContextGLOpenGL;
</del><ins>+class GraphicsContextGL;
</ins><span class="cx"> class WebGLContextGroup;
</span><span class="cx"> class WebGLRenderingContextBase;
</span><span class="cx"> 
</span><span class="lines">@@ -66,7 +66,7 @@
</span><span class="cx"> 
</span><span class="cx">     bool hasGroupOrContext() const override;
</span><span class="cx"> 
</span><del>-    GraphicsContextGLOpenGL* getAGraphicsContextGL() const override;
</del><ins>+    GraphicsContextGL* getAGraphicsContextGL() const override;
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     WebGLContextGroup* m_contextGroup;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGLSynccpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGLSync.cpp (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGLSync.cpp   2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/html/canvas/WebGLSync.cpp      2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -58,7 +58,7 @@
</span><span class="cx">     setObject(-1);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebGLSync::deleteObjectImpl(const AbstractLocker&, GraphicsContextGLOpenGL* context3d, PlatformGLObject object)
</del><ins>+void WebGLSync::deleteObjectImpl(const AbstractLocker&, GraphicsContextGL* context3d, PlatformGLObject object)
</ins><span class="cx"> {
</span><span class="cx">     UNUSED_PARAM(object);
</span><span class="cx">     context3d->deleteSync(m_sync);
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGLSynch"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGLSync.h (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGLSync.h     2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/html/canvas/WebGLSync.h        2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -50,7 +50,7 @@
</span><span class="cx">     GCGLint m_syncStatus = { GraphicsContextGL::UNSIGNALED };
</span><span class="cx">     GCGLsync m_sync;
</span><span class="cx"> 
</span><del>-    void deleteObjectImpl(const WTF::AbstractLocker&, GraphicsContextGLOpenGL*, PlatformGLObject) override;
</del><ins>+    void deleteObjectImpl(const WTF::AbstractLocker&, GraphicsContextGL*, PlatformGLObject) override;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGLTexturecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGLTexture.cpp (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGLTexture.cpp        2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/html/canvas/WebGLTexture.cpp   2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -95,7 +95,7 @@
</span><span class="cx"> #endif // USE(ANGLE)
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebGLTexture::deleteObjectImpl(const AbstractLocker&, GraphicsContextGLOpenGL* context3d, PlatformGLObject object)
</del><ins>+void WebGLTexture::deleteObjectImpl(const AbstractLocker&, GraphicsContextGL* context3d, PlatformGLObject object)
</ins><span class="cx"> {
</span><span class="cx">     context3d->deleteTexture(object);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGLTextureh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGLTexture.h (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGLTexture.h  2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/html/canvas/WebGLTexture.h     2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -90,7 +90,7 @@
</span><span class="cx"> private:
</span><span class="cx">     WebGLTexture(WebGLRenderingContextBase&);
</span><span class="cx"> 
</span><del>-    void deleteObjectImpl(const WTF::AbstractLocker&, GraphicsContextGLOpenGL*, PlatformGLObject) override;
</del><ins>+    void deleteObjectImpl(const WTF::AbstractLocker&, GraphicsContextGL*, PlatformGLObject) override;
</ins><span class="cx"> 
</span><span class="cx">     bool isTexture() const override { return true; }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGLTransformFeedbackcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGLTransformFeedback.cpp (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGLTransformFeedback.cpp      2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/html/canvas/WebGLTransformFeedback.cpp 2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -57,7 +57,7 @@
</span><span class="cx">     m_boundIndexedTransformFeedbackBuffers.resize(ctx.maxTransformFeedbackSeparateAttribs());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebGLTransformFeedback::deleteObjectImpl(const AbstractLocker&, GraphicsContextGLOpenGL* context3d, PlatformGLObject object)
</del><ins>+void WebGLTransformFeedback::deleteObjectImpl(const AbstractLocker&, GraphicsContextGL* context3d, PlatformGLObject object)
</ins><span class="cx"> {
</span><span class="cx">     context3d->deleteTransformFeedback(object);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGLTransformFeedbackh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGLTransformFeedback.h (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGLTransformFeedback.h        2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/html/canvas/WebGLTransformFeedback.h   2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -75,7 +75,7 @@
</span><span class="cx"> private:
</span><span class="cx">     WebGLTransformFeedback(WebGL2RenderingContext&);
</span><span class="cx"> 
</span><del>-    void deleteObjectImpl(const WTF::AbstractLocker&, GraphicsContextGLOpenGL*, PlatformGLObject) override;
</del><ins>+    void deleteObjectImpl(const WTF::AbstractLocker&, GraphicsContextGL*, PlatformGLObject) override;
</ins><span class="cx">     
</span><span class="cx">     bool m_active { false };
</span><span class="cx">     bool m_paused { false };
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGLVertexArrayObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGLVertexArrayObject.cpp (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGLVertexArrayObject.cpp      2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/html/canvas/WebGLVertexArrayObject.cpp 2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -58,7 +58,7 @@
</span><span class="cx">     setObject(this->context()->graphicsContextGL()->createVertexArray());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebGLVertexArrayObject::deleteObjectImpl(const AbstractLocker& locker, GraphicsContextGLOpenGL* context3d, PlatformGLObject object)
</del><ins>+void WebGLVertexArrayObject::deleteObjectImpl(const AbstractLocker& locker, GraphicsContextGL* context3d, PlatformGLObject object)
</ins><span class="cx"> {
</span><span class="cx">     switch (m_type) {
</span><span class="cx">     case Type::Default:
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGLVertexArrayObjecth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGLVertexArrayObject.h (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGLVertexArrayObject.h        2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/html/canvas/WebGLVertexArrayObject.h   2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -43,7 +43,7 @@
</span><span class="cx">     virtual ~WebGLVertexArrayObject();
</span><span class="cx"> private:
</span><span class="cx">     WebGLVertexArrayObject(WebGLRenderingContextBase&, Type);
</span><del>-    void deleteObjectImpl(const WTF::AbstractLocker&, GraphicsContextGLOpenGL*, PlatformGLObject) final;
</del><ins>+    void deleteObjectImpl(const WTF::AbstractLocker&, GraphicsContextGL*, PlatformGLObject) final;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGLVertexArrayObjectBaseh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGLVertexArrayObjectBase.h (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGLVertexArrayObjectBase.h    2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/html/canvas/WebGLVertexArrayObjectBase.h       2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -27,7 +27,7 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(WEBGL)
</span><span class="cx"> 
</span><del>-#include "GraphicsContextGLOpenGL.h"
</del><ins>+#include "GraphicsContextGL.h"
</ins><span class="cx"> #include "WebGLBuffer.h"
</span><span class="cx"> #include "WebGLContextObject.h"
</span><span class="cx"> 
</span><span class="lines">@@ -80,7 +80,7 @@
</span><span class="cx"> 
</span><span class="cx"> protected:
</span><span class="cx">     WebGLVertexArrayObjectBase(WebGLRenderingContextBase&, Type);
</span><del>-    void deleteObjectImpl(const WTF::AbstractLocker&, GraphicsContextGLOpenGL*, PlatformGLObject) override = 0;
</del><ins>+    void deleteObjectImpl(const WTF::AbstractLocker&, GraphicsContextGL*, PlatformGLObject) override = 0;
</ins><span class="cx"> 
</span><span class="cx">     Type m_type;
</span><span class="cx">     bool m_hasEverBeenBound { false };
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGLVertexArrayObjectOEScpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGLVertexArrayObjectOES.cpp (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGLVertexArrayObjectOES.cpp   2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/html/canvas/WebGLVertexArrayObjectOES.cpp      2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -59,7 +59,7 @@
</span><span class="cx">     runDestructor();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebGLVertexArrayObjectOES::deleteObjectImpl(const WTF::AbstractLocker& locker, GraphicsContextGLOpenGL* context3d, PlatformGLObject object)
</del><ins>+void WebGLVertexArrayObjectOES::deleteObjectImpl(const WTF::AbstractLocker& locker, GraphicsContextGL* context3d, PlatformGLObject object)
</ins><span class="cx"> {
</span><span class="cx">     switch (m_type) {
</span><span class="cx">     case Type::Default:
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGLVertexArrayObjectOESh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGLVertexArrayObjectOES.h (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGLVertexArrayObjectOES.h     2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/html/canvas/WebGLVertexArrayObjectOES.h        2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -37,7 +37,7 @@
</span><span class="cx">     virtual ~WebGLVertexArrayObjectOES();
</span><span class="cx"> private:
</span><span class="cx">     WebGLVertexArrayObjectOES(WebGLRenderingContextBase&, Type);
</span><del>-    void deleteObjectImpl(const WTF::AbstractLocker&, GraphicsContextGLOpenGL*, PlatformGLObject) final;
</del><ins>+    void deleteObjectImpl(const WTF::AbstractLocker&, GraphicsContextGL*, PlatformGLObject) final;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorShaderProgramcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorShaderProgram.cpp (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorShaderProgram.cpp        2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/inspector/InspectorShaderProgram.cpp   2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -36,7 +36,7 @@
</span><span class="cx"> #include <wtf/text/WTFString.h>
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(WEBGL)
</span><del>-#include "GraphicsContextGLOpenGL.h"
</del><ins>+#include "GraphicsContextGL.h"
</ins><span class="cx"> #include "WebGLProgram.h"
</span><span class="cx"> #include "WebGLRenderingContextBase.h"
</span><span class="cx"> #include "WebGLShader.h"
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsConcreteImageBufferh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/ConcreteImageBuffer.h (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/ConcreteImageBuffer.h     2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/platform/graphics/ConcreteImageBuffer.h        2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -251,7 +251,7 @@
</span><span class="cx">         return nullptr;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    bool copyToPlatformTexture(GraphicsContextGLOpenGL& context, GCGLenum target, PlatformGLObject destinationTexture, GCGLenum internalformat, bool premultiplyAlpha, bool flipY) const override
</del><ins>+    bool copyToPlatformTexture(GraphicsContextGL& context, GCGLenum target, PlatformGLObject destinationTexture, GCGLenum internalformat, bool premultiplyAlpha, bool flipY) const override
</ins><span class="cx">     {
</span><span class="cx">         if (auto* backend = ensureBackendCreated())
</span><span class="cx">             return backend->copyToPlatformTexture(context, target, destinationTexture, internalformat, premultiplyAlpha, flipY);
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsExtensionsGLh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/ExtensionsGL.h (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/ExtensionsGL.h    2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/platform/graphics/ExtensionsGL.h       2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -266,6 +266,8 @@
</span><span class="cx">         COLOR_ATTACHMENT15_EXT = 0x8CEF
</span><span class="cx">     };
</span><span class="cx"> 
</span><ins>+    // WebGL functions in format generate-gpup-webgl understands.
+
</ins><span class="cx">     // GL_ARB_robustness
</span><span class="cx">     // Note: This method's behavior differs from the GL_ARB_robustness
</span><span class="cx">     // specification in the following way:
</span><span class="lines">@@ -273,7 +275,7 @@
</span><span class="cx">     // If getGraphicsResetStatusARB returns an error, it should continue
</span><span class="cx">     // returning the same error. Restoring the GraphicsContextGLOpenGL is handled
</span><span class="cx">     // externally.
</span><del>-    virtual int getGraphicsResetStatusARB() = 0;
</del><ins>+    virtual GCGLint getGraphicsResetStatusARB() = 0;
</ins><span class="cx"> 
</span><span class="cx">     // GL_ANGLE_framebuffer_blit
</span><span class="cx">     virtual void blitFramebuffer(long srcX0, long srcY0, long srcX1, long srcY1, long dstX0, long dstY0, long dstX1, long dstY1, unsigned long mask, unsigned long filter) = 0;
</span><span class="lines">@@ -290,11 +292,6 @@
</span><span class="cx">     // GL_ANGLE_translated_shader_source
</span><span class="cx">     virtual String getTranslatedShaderSourceANGLE(PlatformGLObject) = 0;
</span><span class="cx"> 
</span><del>-    // EXT Robustness - uses getGraphicsResetStatusARB
-    virtual void readnPixelsEXT(int x, int y, GCGLsizei width, GCGLsizei height, GCGLenum format, GCGLenum type, GCGLsizei bufSize, void *data) = 0;
-    virtual void getnUniformfvEXT(GCGLuint program, int location, GCGLsizei bufSize, float *params) = 0;
-    virtual void getnUniformivEXT(GCGLuint program, int location, GCGLsizei bufSize, int *params) = 0;
-
</del><span class="cx">     // GL_EXT_debug_marker
</span><span class="cx">     virtual void insertEventMarkerEXT(const String&) = 0;
</span><span class="cx">     virtual void pushGroupMarkerEXT(const String&) = 0;
</span><span class="lines">@@ -308,6 +305,84 @@
</span><span class="cx">     virtual void drawElementsInstanced(GCGLenum mode, GCGLsizei count, GCGLenum type, long long offset, GCGLsizei primcount) = 0;
</span><span class="cx">     virtual void vertexAttribDivisor(GCGLuint index, GCGLuint divisor) = 0;
</span><span class="cx"> 
</span><ins>+    // GL_ANGLE_robust_client_memory
+    virtual void getBooleanvRobustANGLE(GCGLenum pname, GCGLsizei bufSize, GCGLsizei* length, GCGLboolean* data) = 0;
+    virtual void getBufferParameterivRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, GCGLsizei* length, GCGLint* params) = 0;
+    virtual void getFloatvRobustANGLE(GCGLenum pname, GCGLsizei bufSize, GCGLsizei* length, GCGLfloat* data) = 0;
+    virtual void getFramebufferAttachmentParameterivRobustANGLE(GCGLenum target, GCGLenum attachment, GCGLenum pname, GCGLsizei bufSize, GCGLsizei* length, GCGLint* params) = 0;
+    virtual void getIntegervRobustANGLE(GCGLenum pname, GCGLsizei bufSize, GCGLsizei* length, GCGLint* data) = 0;
+    virtual void getProgramivRobustANGLE(GCGLuint program, GCGLenum pname, GCGLsizei bufSize, GCGLsizei* length, GCGLint* params) = 0;
+    virtual void getRenderbufferParameterivRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, GCGLsizei* length, GCGLint* params) = 0;
+    virtual void getShaderivRobustANGLE(GCGLuint shader, GCGLenum pname, GCGLsizei bufSize, GCGLsizei* length, GCGLint* params) = 0;
+    virtual void getTexParameterfvRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, GCGLsizei* length, GCGLfloat* params) = 0;
+    virtual void getTexParameterivRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, GCGLsizei* length, GCGLint* params) = 0;
+    virtual void getUniformfvRobustANGLE(GCGLuint program, GCGLint location, GCGLsizei bufSize, GCGLsizei* length, GCGLfloat* params) = 0;
+    virtual void getUniformivRobustANGLE(GCGLuint program, GCGLint location, GCGLsizei bufSize, GCGLsizei* length, GCGLint* params) = 0;
+    virtual void getVertexAttribfvRobustANGLE(GCGLuint index, GCGLenum pname, GCGLsizei bufSize, GCGLsizei* length, GCGLfloat* params) = 0;
+    virtual void getVertexAttribivRobustANGLE(GCGLuint index, GCGLenum pname, GCGLsizei bufSize, GCGLsizei* length, GCGLint* params) = 0;
+    virtual void getVertexAttribPointervRobustANGLE(GCGLuint index, GCGLenum pname, GCGLsizei bufSize, GCGLsizei* length, GCGLvoid** pointer) = 0;
+    virtual void readPixelsRobustANGLE(GCGLint x, GCGLint y, GCGLsizei width, GCGLsizei height, GCGLenum format, GCGLenum type, GCGLsizei bufSize, GCGLsizei* length, GCGLsizei* columns, GCGLsizei* rows, GCGLvoid* pixels) = 0;
+    virtual void texImage2DRobustANGLE(GCGLenum target, GCGLint level, GCGLint internalformat, GCGLsizei width, GCGLsizei height, GCGLint border, GCGLenum format, GCGLenum type, GCGLsizei bufSize, const GCGLvoid* pixels) = 0;
+    virtual void texParameterfvRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, const GCGLfloat* params) = 0;
+    virtual void texParameterivRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, const GCGLint* params) = 0;
+    virtual void texSubImage2DRobustANGLE(GCGLenum target, GCGLint level, GCGLint xoffset, GCGLint yoffset, GCGLsizei width, GCGLsizei height, GCGLenum format, GCGLenum type, GCGLsizei bufSize, const GCGLvoid* pixels) = 0;
+    virtual void compressedTexImage2DRobustANGLE(GCGLenum target, GCGLint level, GCGLenum internalformat, GCGLsizei width, GCGLsizei height, GCGLint border, GCGLsizei imageSize, GCGLsizei bufSize, const GCGLvoid* data) = 0;
+    virtual void compressedTexSubImage2DRobustANGLE(GCGLenum target, GCGLint level, GCGLint xoffset, GCGLint yoffset, GCGLsizei width, GCGLsizei height, GCGLenum format, GCGLsizei imageSize, GCGLsizei bufSize, const GCGLvoid* data) = 0;
+    virtual void compressedTexImage3DRobustANGLE(GCGLenum target, GCGLint level, GCGLenum internalformat, GCGLsizei width, GCGLsizei height, GCGLsizei depth, GCGLint border, GCGLsizei imageSize, GCGLsizei bufSize, const GCGLvoid* data) = 0;
+    virtual void compressedTexSubImage3DRobustANGLE(GCGLenum target, GCGLint level, GCGLint xoffset, GCGLint yoffset, GCGLint zoffset, GCGLsizei width, GCGLsizei height, GCGLsizei depth, GCGLenum format, GCGLsizei imageSize, GCGLsizei bufSize, const GCGLvoid* data) = 0;
+
+    virtual void texImage3DRobustANGLE(GCGLenum target, GCGLint level, GCGLint internalformat, GCGLsizei width, GCGLsizei height, GCGLsizei depth, GCGLint border, GCGLenum format, GCGLenum type, GCGLsizei bufSize, const GCGLvoid* pixels) = 0;
+    virtual void texSubImage3DRobustANGLE(GCGLenum target, GCGLint level, GCGLint xoffset, GCGLint yoffset, GCGLint zoffset, GCGLsizei width, GCGLsizei height, GCGLsizei depth, GCGLenum format, GCGLenum type, GCGLsizei bufSize, const GCGLvoid* pixels) = 0;
+    virtual void getQueryivRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, GCGLsizei* length, GCGLint* params) = 0;
+    virtual void getQueryObjectuivRobustANGLE(GCGLuint id, GCGLenum pname, GCGLsizei bufSize, GCGLsizei* length, GCGLuint* params) = 0;
+    virtual void getBufferPointervRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, GCGLsizei* length, GCGLvoid** params) = 0;
+    virtual void getIntegeri_vRobustANGLE(GCGLenum target, GCGLuint index, GCGLsizei bufSize, GCGLsizei* length, GCGLint* data) = 0; // NOLINT
+    virtual void getInternalformativRobustANGLE(GCGLenum target, GCGLenum internalformat, GCGLenum pname, GCGLsizei bufSize, GCGLsizei* length, GCGLint* params) = 0;
+    virtual void getVertexAttribIivRobustANGLE(GCGLuint index, GCGLenum pname, GCGLsizei bufSize, GCGLsizei* length, GCGLint* params) = 0;
+    virtual void getVertexAttribIuivRobustANGLE(GCGLuint index, GCGLenum pname, GCGLsizei bufSize, GCGLsizei* length, GCGLuint* params) = 0;
+    virtual void getUniformuivRobustANGLE(GCGLuint program, GCGLint location, GCGLsizei bufSize, GCGLsizei* length, GCGLuint* params) = 0;
+    virtual void getActiveUniformBlockivRobustANGLE(GCGLuint program, GCGLuint uniformBlockIndex, GCGLenum pname, GCGLsizei bufSize, GCGLsizei* length, GCGLint* params) = 0;
+    virtual void getInteger64vRobustANGLE(GCGLenum pname, GCGLsizei bufSize, GCGLsizei* length, GCGLint64* data) = 0;
+    virtual void getInteger64i_vRobustANGLE(GCGLenum target, GCGLuint index, GCGLsizei bufSize, GCGLsizei* length, GCGLint64* data) = 0; // NOLINT
+    virtual void getBufferParameteri64vRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, GCGLsizei* length, GCGLint64* params) = 0;
+    virtual void samplerParameterivRobustANGLE(GCGLuint sampler, GCGLenum pname, GCGLsizei bufSize, const GCGLint* param) = 0;
+    virtual void samplerParameterfvRobustANGLE(GCGLuint sampler, GCGLenum pname, GCGLsizei bufSize, const GCGLfloat* param) = 0;
+    virtual void getSamplerParameterivRobustANGLE(GCGLuint sampler, GCGLenum pname, GCGLsizei bufSize, GCGLsizei* length, GCGLint* params) = 0;
+    virtual void getSamplerParameterfvRobustANGLE(GCGLuint sampler, GCGLenum pname, GCGLsizei bufSize, GCGLsizei* length, GCGLfloat* params) = 0;
+
+    virtual void getFramebufferParameterivRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, GCGLsizei* length, GCGLint* params) = 0;
+    virtual void getProgramInterfaceivRobustANGLE(GCGLuint program, GCGLenum programInterface, GCGLenum pname, GCGLsizei bufSize, GCGLsizei* length, GCGLint* params) = 0;
+    virtual void getBooleani_vRobustANGLE(GCGLenum target, GCGLuint index, GCGLsizei bufSize, GCGLsizei* length, GCGLboolean* data) = 0; // NOLINT
+    virtual void getMultisamplefvRobustANGLE(GCGLenum pname, GCGLuint index, GCGLsizei bufSize, GCGLsizei* length, GCGLfloat* val) = 0;
+    virtual void getTexLevelParameterivRobustANGLE(GCGLenum target, GCGLint level, GCGLenum pname, GCGLsizei bufSize, GCGLsizei* length, GCGLint* params) = 0;
+    virtual void getTexLevelParameterfvRobustANGLE(GCGLenum target, GCGLint level, GCGLenum pname, GCGLsizei bufSize, GCGLsizei* length, GCGLfloat* params) = 0;
+
+    virtual void getPointervRobustANGLERobustANGLE(GCGLenum pname, GCGLsizei bufSize, GCGLsizei* length, GCGLvoid** params) = 0;
+    virtual void readnPixelsRobustANGLE(GCGLint x, GCGLint y, GCGLsizei width, GCGLsizei height, GCGLenum format, GCGLenum type, GCGLsizei bufSize, GCGLsizei* length, GCGLsizei* columns, GCGLsizei* rows, GCGLvoid* data, bool readingToPixelBufferObject) = 0;
+    virtual void getnUniformfvRobustANGLE(GCGLuint program, GCGLint location, GCGLsizei bufSize, GCGLsizei* length, GCGLfloat* params) = 0;
+    virtual void getnUniformivRobustANGLE(GCGLuint program, GCGLint location, GCGLsizei bufSize, GCGLsizei* length, GCGLint* params) = 0;
+    virtual void getnUniformuivRobustANGLE(GCGLuint program, GCGLint location, GCGLsizei bufSize, GCGLsizei* length, GCGLuint* params) = 0;
+    virtual void texParameterIivRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, const GCGLint* params) = 0;
+    virtual void texParameterIuivRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, const GCGLuint* params) = 0;
+    virtual void getTexParameterIivRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, GCGLsizei* length, GCGLint* params) = 0;
+    virtual void getTexParameterIuivRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, GCGLsizei* length, GCGLuint* params) = 0;
+    virtual void samplerParameterIivRobustANGLE(GCGLuint sampler, GCGLenum pname, GCGLsizei bufSize, const GCGLint* param) = 0;
+    virtual void samplerParameterIuivRobustANGLE(GCGLuint sampler, GCGLenum pname, GCGLsizei bufSize, const GCGLuint* param) = 0;
+    virtual void getSamplerParameterIivRobustANGLE(GCGLuint sampler, GCGLenum pname, GCGLsizei bufSize, GCGLsizei* length, GCGLint* params) = 0;
+    virtual void getSamplerParameterIuivRobustANGLE(GCGLuint sampler, GCGLenum pname, GCGLsizei bufSize, GCGLsizei* length, GCGLuint* params) = 0;
+
+    virtual void getQueryObjectivRobustANGLE(GCGLuint id, GCGLenum pname, GCGLsizei bufSize, GCGLsizei* length, GCGLint* params) = 0;
+    virtual void getQueryObjecti64vRobustANGLE(GCGLuint id, GCGLenum pname, GCGLsizei bufSize, GCGLsizei* length, GCGLint64* params) = 0;
+    virtual void getQueryObjectui64vRobustANGLE(GCGLuint id, GCGLenum pname, GCGLsizei bufSize, GCGLsizei* length, GCGLuint64* params) = 0;
+
+    // Other functions.
+#if !USE(ANGLE)
+    // EXT Robustness - uses getGraphicsResetStatusARB
+    virtual void readnPixelsEXT(GCGLint x, GCGLint y, GCGLsizei width, GCGLsizei height, GCGLenum format, GCGLenum type, GCGLsizei bufSize, GCGLvoid* data) = 0;
+    virtual void getnUniformfvEXT(GCGLuint program, GCGLint location, GCGLsizei bufSize, GCGLfloat* params) = 0;
+    virtual void getnUniformivEXT(GCGLuint program, GCGLint location, GCGLsizei bufSize, GCGLint* params) = 0;
+#endif
+
</ins><span class="cx">     virtual bool isNVIDIA() = 0;
</span><span class="cx">     virtual bool isAMD() = 0;
</span><span class="cx">     virtual bool isIntel() = 0;
</span><span class="lines">@@ -319,75 +394,6 @@
</span><span class="cx">     virtual bool requiresBuiltInFunctionEmulation() = 0;
</span><span class="cx">     virtual bool requiresRestrictedMaximumTextureSize() = 0;
</span><span class="cx"> 
</span><del>-    // GL_ANGLE_robust_client_memory
-    virtual void getBooleanvRobustANGLE(GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLboolean *data) = 0;
-    virtual void getBufferParameterivRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params) = 0;
-    virtual void getFloatvRobustANGLE(GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLfloat *data) = 0;
-    virtual void getFramebufferAttachmentParameterivRobustANGLE(GCGLenum target, GCGLenum attachment, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params) = 0;
-    virtual void getIntegervRobustANGLE(GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint *data) = 0;
-    virtual void getProgramivRobustANGLE(GCGLuint program, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params) = 0;
-    virtual void getRenderbufferParameterivRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params) = 0;
-    virtual void getShaderivRobustANGLE(GCGLuint shader, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params) = 0;
-    virtual void getTexParameterfvRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLfloat *params) = 0;
-    virtual void getTexParameterivRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params) = 0;
-    virtual void getUniformfvRobustANGLE(GCGLuint program, int location, GCGLsizei bufSize, GCGLsizei *length, GCGLfloat *params) = 0;
-    virtual void getUniformivRobustANGLE(GCGLuint program, int location, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params) = 0;
-    virtual void getVertexAttribfvRobustANGLE(GCGLuint index, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLfloat *params) = 0;
-    virtual void getVertexAttribivRobustANGLE(GCGLuint index, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params) = 0;
-    virtual void getVertexAttribPointervRobustANGLE(GCGLuint index, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, void **pointer) = 0;
-    virtual void readPixelsRobustANGLE(int x, int y, GCGLsizei width, GCGLsizei height, GCGLenum format, GCGLenum type, GCGLsizei bufSize, GCGLsizei *length, GCGLsizei *columns, GCGLsizei *rows, void *pixels) = 0;
-    virtual void texImage2DRobustANGLE(GCGLenum target, int level, int internalformat, GCGLsizei width, GCGLsizei height, int border, GCGLenum format, GCGLenum type, GCGLsizei bufSize, const void *pixels) = 0;
-    virtual void texParameterfvRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, const GCGLfloat *params) = 0;
-    virtual void texParameterivRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, const GCGLint *params) = 0;
-    virtual void texSubImage2DRobustANGLE(GCGLenum target, int level, int xoffset, int yoffset, GCGLsizei width, GCGLsizei height, GCGLenum format, GCGLenum type, GCGLsizei bufSize, const void *pixels) = 0;
-    virtual void compressedTexImage2DRobustANGLE(GCGLenum target, int level, GCGLenum internalformat, GCGLsizei width, GCGLsizei height, int border, GCGLsizei imageSize, GCGLsizei bufSize, const void* data) = 0;
-    virtual void compressedTexSubImage2DRobustANGLE(GCGLenum target, int level, int xoffset, int yoffset, GCGLsizei width, GCGLsizei height, GCGLenum format, GCGLsizei imageSize, GCGLsizei bufSize, const void* data) = 0;
-    virtual void compressedTexImage3DRobustANGLE(GCGLenum target, int level, GCGLenum internalformat, GCGLsizei width, GCGLsizei height, GCGLsizei depth, int border, GCGLsizei imageSize, GCGLsizei bufSize, const void* data) = 0;
-    virtual void compressedTexSubImage3DRobustANGLE(GCGLenum target, int level, int xoffset, int yoffset, int zoffset, GCGLsizei width, GCGLsizei height, GCGLsizei depth, GCGLenum format, GCGLsizei imageSize, GCGLsizei bufSize, const void* data) = 0;
-
-    virtual void texImage3DRobustANGLE(GCGLenum target, int level, int internalformat, GCGLsizei width, GCGLsizei height, GCGLsizei depth, int border, GCGLenum format, GCGLenum type, GCGLsizei bufSize, const void *pixels) = 0;
-    virtual void texSubImage3DRobustANGLE(GCGLenum target, int level, int xoffset, int yoffset, int zoffset, GCGLsizei width, GCGLsizei height, GCGLsizei depth, GCGLenum format, GCGLenum type, GCGLsizei bufSize, const void *pixels) = 0;
-    virtual void getQueryivRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params) = 0;
-    virtual void getQueryObjectuivRobustANGLE(GCGLuint id, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLuint *params) = 0;
-    virtual void getBufferPointervRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, void **params) = 0;
-    virtual void getIntegeri_vRobustANGLE(GCGLenum target, GCGLuint index, GCGLsizei bufSize, GCGLsizei *length, int *data) = 0;
-    virtual void getInternalformativRobustANGLE(GCGLenum target, GCGLenum internalformat, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params) = 0;
-    virtual void getVertexAttribIivRobustANGLE(GCGLuint index, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params) = 0;
-    virtual void getVertexAttribIuivRobustANGLE(GCGLuint index, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLuint *params) = 0;
-    virtual void getUniformuivRobustANGLE(GCGLuint program, int location, GCGLsizei bufSize, GCGLsizei *length, GCGLuint *params) = 0;
-    virtual void getActiveUniformBlockivRobustANGLE(GCGLuint program, GCGLuint uniformBlockIndex, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params) = 0;
-    virtual void getInteger64vRobustANGLE(GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint64 *data) = 0;
-    virtual void getInteger64i_vRobustANGLE(GCGLenum target, GCGLuint index, GCGLsizei bufSize, GCGLsizei *length, GCGLint64 *data) = 0;
-    virtual void getBufferParameteri64vRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint64 *params) = 0;
-    virtual void samplerParameterivRobustANGLE(GCGLuint sampler, GCGLenum pname, GCGLsizei bufSize, const GCGLint *param) = 0;
-    virtual void samplerParameterfvRobustANGLE(GCGLuint sampler, GCGLenum pname, GCGLsizei bufSize, const GCGLfloat *param) = 0;
-    virtual void getSamplerParameterivRobustANGLE(GCGLuint sampler, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params) = 0;
-    virtual void getSamplerParameterfvRobustANGLE(GCGLuint sampler, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLfloat *params) = 0;
-
-    virtual void getFramebufferParameterivRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params) = 0;
-    virtual void getProgramInterfaceivRobustANGLE(GCGLuint program, GCGLenum programInterface, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params) = 0;
-    virtual void getBooleani_vRobustANGLE(GCGLenum target, GCGLuint index, GCGLsizei bufSize, GCGLsizei *length, GCGLboolean *data) = 0;
-    virtual void getMultisamplefvRobustANGLE(GCGLenum pname, GCGLuint index, GCGLsizei bufSize, GCGLsizei *length, GCGLfloat *val) = 0;
-    virtual void getTexLevelParameterivRobustANGLE(GCGLenum target, int level, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params) = 0;
-    virtual void getTexLevelParameterfvRobustANGLE(GCGLenum target, int level, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLfloat *params) = 0;
-
-    virtual void getPointervRobustANGLERobustANGLE(GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, void **params) = 0;
-    virtual void readnPixelsRobustANGLE(int x, int y, GCGLsizei width, GCGLsizei height, GCGLenum format, GCGLenum type, GCGLsizei bufSize, GCGLsizei *length, GCGLsizei *columns, GCGLsizei *rows, void *data, bool readingToPixelBufferObject) = 0;
-    virtual void getnUniformfvRobustANGLE(GCGLuint program, int location, GCGLsizei bufSize, GCGLsizei *length, GCGLfloat *params) = 0;
-    virtual void getnUniformivRobustANGLE(GCGLuint program, int location, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params) = 0;
-    virtual void getnUniformuivRobustANGLE(GCGLuint program, int location, GCGLsizei bufSize, GCGLsizei *length, GCGLuint *params) = 0;
-    virtual void texParameterIivRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, const GCGLint *params) = 0;
-    virtual void texParameterIuivRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, const GCGLuint *params) = 0;
-    virtual void getTexParameterIivRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params) = 0;
-    virtual void getTexParameterIuivRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLuint *params) = 0;
-    virtual void samplerParameterIivRobustANGLE(GCGLuint sampler, GCGLenum pname, GCGLsizei bufSize, const GCGLint *param) = 0;
-    virtual void samplerParameterIuivRobustANGLE(GCGLuint sampler, GCGLenum pname, GCGLsizei bufSize, const GCGLuint *param) = 0;
-    virtual void getSamplerParameterIivRobustANGLE(GCGLuint sampler, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params) = 0;
-    virtual void getSamplerParameterIuivRobustANGLE(GCGLuint sampler, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLuint *params) = 0;
-
-    virtual void getQueryObjectivRobustANGLE(GCGLuint id, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params) = 0;
-    virtual void getQueryObjecti64vRobustANGLE(GCGLuint id, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint64 *params) = 0;
-    virtual void getQueryObjectui64vRobustANGLE(GCGLuint id, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLuint64 *params) = 0;
</del><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsFormatConvertercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/FormatConverter.cpp (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/FormatConverter.cpp       2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/platform/graphics/FormatConverter.cpp  2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -1719,7 +1719,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     // Only textures uploaded from DOM elements or ImageData can allow DstFormat != SrcFormat.
</span><del>-    const bool srcFormatComesFromDOMElementOrImageData = GraphicsContextGLOpenGL::srcFormatComesFromDOMElementOrImageData(SrcFormat);
</del><ins>+    const bool srcFormatComesFromDOMElementOrImageData = GraphicsContextGL::srcFormatComesFromDOMElementOrImageData(SrcFormat);
</ins><span class="cx">     if (!srcFormatComesFromDOMElementOrImageData && SrcFormat != DstFormat) {
</span><span class="cx">         ASSERT_NOT_REACHED();
</span><span class="cx">         return;
</span><span class="lines">@@ -1733,7 +1733,7 @@
</span><span class="cx">         ASSERT_NOT_REACHED();
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    if ((!GraphicsContextGLOpenGL::hasAlpha(SrcFormat) || !GraphicsContextGLOpenGL::hasColor(SrcFormat) || !GraphicsContextGLOpenGL::hasColor(DstFormat)) && alphaOp != GraphicsContextGL::AlphaOp::DoNothing) {
</del><ins>+    if ((!GraphicsContextGL::hasAlpha(SrcFormat) || !GraphicsContextGL::hasColor(SrcFormat) || !GraphicsContextGL::hasColor(DstFormat)) && alphaOp != GraphicsContextGL::AlphaOp::DoNothing) {
</ins><span class="cx">         ASSERT_NOT_REACHED();
</span><span class="cx">         return;
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsFormatConverterh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/FormatConverter.h (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/FormatConverter.h 2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/platform/graphics/FormatConverter.h    2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -29,7 +29,7 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(GRAPHICS_CONTEXT_GL)
</span><span class="cx"> 
</span><del>-#include "GraphicsContextGLOpenGL.h"
</del><ins>+#include "GraphicsContextGL.h"
</ins><span class="cx"> #include "IntRect.h"
</span><span class="cx"> #include <wtf/StdLibExtras.h>
</span><span class="cx"> #include <wtf/UniqueArray.h>
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsGraphicsContexth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/GraphicsContext.h (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/GraphicsContext.h 2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/platform/graphics/GraphicsContext.h    2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -94,7 +94,7 @@
</span><span class="cx"> class IntRect;
</span><span class="cx"> class MediaPlayer;
</span><span class="cx"> class RoundedRect;
</span><del>-class GraphicsContextGLOpenGL;
</del><ins>+class GraphicsContextGL;
</ins><span class="cx"> class Path;
</span><span class="cx"> class TextRun;
</span><span class="cx"> class TransformationMatrix;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsGraphicsContextGLcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/GraphicsContextGL.cpp (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/GraphicsContextGL.cpp     2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/platform/graphics/GraphicsContextGL.cpp        2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -734,87 +734,6 @@
</span><span class="cx">     return GraphicsContextGL::NO_ERROR;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-#if !USE(ANGLE)
-bool GraphicsContextGL::possibleFormatAndTypeForInternalFormat(GCGLenum internalFormat, GCGLenum& format, GCGLenum& type)
-{
-#define POSSIBLE_FORMAT_TYPE_CASE(internalFormatMacro, formatMacro, typeMacro) case internalFormatMacro: \
-        format = formatMacro; \
-        type = typeMacro; \
-        break;
-
-    switch (internalFormat) {
-        POSSIBLE_FORMAT_TYPE_CASE(RGB, RGB, UNSIGNED_BYTE);
-        POSSIBLE_FORMAT_TYPE_CASE(RGBA, RGBA, UNSIGNED_BYTE);
-        POSSIBLE_FORMAT_TYPE_CASE(LUMINANCE_ALPHA, LUMINANCE_ALPHA, UNSIGNED_BYTE);
-        POSSIBLE_FORMAT_TYPE_CASE(LUMINANCE, LUMINANCE, UNSIGNED_BYTE);
-        POSSIBLE_FORMAT_TYPE_CASE(ALPHA, ALPHA, UNSIGNED_BYTE);
-        POSSIBLE_FORMAT_TYPE_CASE(R8, RED, UNSIGNED_BYTE);
-        POSSIBLE_FORMAT_TYPE_CASE(R8_SNORM, RED, BYTE);
-        POSSIBLE_FORMAT_TYPE_CASE(R16F, RED, HALF_FLOAT);
-        POSSIBLE_FORMAT_TYPE_CASE(R32F, RED, FLOAT);
-        POSSIBLE_FORMAT_TYPE_CASE(R8UI, RED_INTEGER, UNSIGNED_BYTE);
-        POSSIBLE_FORMAT_TYPE_CASE(R8I, RED_INTEGER, BYTE);
-        POSSIBLE_FORMAT_TYPE_CASE(R16UI, RED_INTEGER, UNSIGNED_SHORT);
-        POSSIBLE_FORMAT_TYPE_CASE(R16I, RED_INTEGER, SHORT);
-        POSSIBLE_FORMAT_TYPE_CASE(R32UI, RED_INTEGER, UNSIGNED_INT);
-        POSSIBLE_FORMAT_TYPE_CASE(R32I, RED_INTEGER, INT);
-        POSSIBLE_FORMAT_TYPE_CASE(RG8, RG, UNSIGNED_BYTE);
-        POSSIBLE_FORMAT_TYPE_CASE(RG8_SNORM, RG, BYTE);
-        POSSIBLE_FORMAT_TYPE_CASE(RG16F, RG, HALF_FLOAT);
-        POSSIBLE_FORMAT_TYPE_CASE(RG32F, RG, FLOAT);
-        POSSIBLE_FORMAT_TYPE_CASE(RG8UI, RG_INTEGER, UNSIGNED_BYTE);
-        POSSIBLE_FORMAT_TYPE_CASE(RG8I, RG_INTEGER, BYTE);
-        POSSIBLE_FORMAT_TYPE_CASE(RG16UI, RG_INTEGER, UNSIGNED_SHORT);
-        POSSIBLE_FORMAT_TYPE_CASE(RG16I, RG_INTEGER, SHORT);
-        POSSIBLE_FORMAT_TYPE_CASE(RG32UI, RG_INTEGER, UNSIGNED_INT);
-        POSSIBLE_FORMAT_TYPE_CASE(RG32I, RG_INTEGER, INT);
-        POSSIBLE_FORMAT_TYPE_CASE(RGB8, RGB, UNSIGNED_BYTE);
-        POSSIBLE_FORMAT_TYPE_CASE(SRGB8, RGB, UNSIGNED_BYTE);
-        POSSIBLE_FORMAT_TYPE_CASE(RGB565, RGB, UNSIGNED_SHORT_5_6_5);
-        POSSIBLE_FORMAT_TYPE_CASE(RGB8_SNORM, RGB, BYTE);
-        POSSIBLE_FORMAT_TYPE_CASE(R11F_G11F_B10F, RGB, UNSIGNED_INT_10F_11F_11F_REV);
-        POSSIBLE_FORMAT_TYPE_CASE(RGB9_E5, RGB, UNSIGNED_INT_5_9_9_9_REV);
-        POSSIBLE_FORMAT_TYPE_CASE(RGB16F, RGB, HALF_FLOAT);
-        POSSIBLE_FORMAT_TYPE_CASE(RGB32F, RGB, FLOAT);
-        POSSIBLE_FORMAT_TYPE_CASE(RGB8UI, RGB_INTEGER, UNSIGNED_BYTE);
-        POSSIBLE_FORMAT_TYPE_CASE(RGB8I, RGB_INTEGER, BYTE);
-        POSSIBLE_FORMAT_TYPE_CASE(RGB16UI, RGB_INTEGER, UNSIGNED_SHORT);
-        POSSIBLE_FORMAT_TYPE_CASE(RGB16I, RGB_INTEGER, SHORT);
-        POSSIBLE_FORMAT_TYPE_CASE(RGB32UI, RGB_INTEGER, UNSIGNED_INT);
-        POSSIBLE_FORMAT_TYPE_CASE(RGB32I, RGB_INTEGER, INT);
-        POSSIBLE_FORMAT_TYPE_CASE(RGBA8, RGBA, UNSIGNED_BYTE);
-        POSSIBLE_FORMAT_TYPE_CASE(SRGB8_ALPHA8, RGBA, UNSIGNED_BYTE);
-        POSSIBLE_FORMAT_TYPE_CASE(RGBA8_SNORM, RGBA, BYTE);
-        POSSIBLE_FORMAT_TYPE_CASE(RGB5_A1, RGBA, UNSIGNED_SHORT_5_5_5_1);
-        POSSIBLE_FORMAT_TYPE_CASE(RGBA4, RGBA, UNSIGNED_SHORT_4_4_4_4);
-        POSSIBLE_FORMAT_TYPE_CASE(RGB10_A2, RGBA, UNSIGNED_INT_2_10_10_10_REV);
-        POSSIBLE_FORMAT_TYPE_CASE(RGBA16F, RGBA, HALF_FLOAT);
-        POSSIBLE_FORMAT_TYPE_CASE(RGBA32F, RGBA, FLOAT);
-        POSSIBLE_FORMAT_TYPE_CASE(RGBA8UI, RGBA_INTEGER, UNSIGNED_BYTE);
-        POSSIBLE_FORMAT_TYPE_CASE(RGBA8I, RGBA_INTEGER, BYTE);
-        POSSIBLE_FORMAT_TYPE_CASE(RGB10_A2UI, RGBA_INTEGER, UNSIGNED_INT_2_10_10_10_REV);
-        POSSIBLE_FORMAT_TYPE_CASE(RGBA16UI, RGBA_INTEGER, UNSIGNED_SHORT);
-        POSSIBLE_FORMAT_TYPE_CASE(RGBA16I, RGBA_INTEGER, SHORT);
-        POSSIBLE_FORMAT_TYPE_CASE(RGBA32I, RGBA_INTEGER, INT);
-        POSSIBLE_FORMAT_TYPE_CASE(RGBA32UI, RGBA_INTEGER, UNSIGNED_INT);
-        POSSIBLE_FORMAT_TYPE_CASE(DEPTH_COMPONENT16, DEPTH_COMPONENT, UNSIGNED_SHORT);
-        POSSIBLE_FORMAT_TYPE_CASE(DEPTH_COMPONENT, DEPTH_COMPONENT, UNSIGNED_SHORT);
-        POSSIBLE_FORMAT_TYPE_CASE(DEPTH_COMPONENT24, DEPTH_COMPONENT, UNSIGNED_INT);
-        POSSIBLE_FORMAT_TYPE_CASE(DEPTH_COMPONENT32F, DEPTH_COMPONENT, FLOAT);
-        POSSIBLE_FORMAT_TYPE_CASE(DEPTH_STENCIL, DEPTH_STENCIL, UNSIGNED_INT_24_8);
-        POSSIBLE_FORMAT_TYPE_CASE(DEPTH24_STENCIL8, DEPTH_STENCIL, UNSIGNED_INT_24_8);
-        POSSIBLE_FORMAT_TYPE_CASE(DEPTH32F_STENCIL8, DEPTH_STENCIL, FLOAT_32_UNSIGNED_INT_24_8_REV);
-        POSSIBLE_FORMAT_TYPE_CASE(ExtensionsGL::SRGB_EXT, ExtensionsGL::SRGB_EXT, UNSIGNED_BYTE);
-        POSSIBLE_FORMAT_TYPE_CASE(ExtensionsGL::SRGB_ALPHA_EXT, ExtensionsGL::SRGB_ALPHA_EXT, UNSIGNED_BYTE);
-    default:
-        return false;
-    }
-#undef POSSIBLE_FORMAT_TYPE_CASE
-
-    return true;
-}
-#endif // !USE(ANGLE)
-
</del><span class="cx"> bool GraphicsContextGL::packImageData(Image* image, const void* pixels, GCGLenum format, GCGLenum type, bool flipY, AlphaOp alphaOp, DataFormat sourceFormat, unsigned sourceImageWidth, unsigned sourceImageHeight, const IntRect& sourceImageSubRectangle, int depth, unsigned sourceUnpackAlignment, int unpackImageHeight, Vector<uint8_t>& data)
</span><span class="cx"> {
</span><span class="cx">     if (!image || !pixels)
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsGraphicsContextGLh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/GraphicsContextGL.h (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/GraphicsContextGL.h       2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/platform/graphics/GraphicsContextGL.h  2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -919,7 +919,7 @@
</span><span class="cx">     void addClient(Client& client) { m_clients.add(&client); }
</span><span class="cx">     void removeClient(Client& client) { m_clients.remove(&client); }
</span><span class="cx"> 
</span><del>-    // ========== WebGL 1 entry points.
</del><ins>+    // WebGL functions in format generate-gpup-webgl understands.
</ins><span class="cx"> 
</span><span class="cx">     virtual void activeTexture(GCGLenum texture) = 0;
</span><span class="cx">     virtual void attachShader(PlatformGLObject program, PlatformGLObject shader) = 0;
</span><span class="lines">@@ -1099,29 +1099,19 @@
</span><span class="cx"> 
</span><span class="cx">     virtual void viewport(GCGLint x, GCGLint y, GCGLsizei width, GCGLsizei height) = 0;
</span><span class="cx"> 
</span><del>-    virtual void bufferData(GCGLenum target, GCGLsizeiptr size, GCGLenum usage) = 0;
-    virtual void bufferData(GCGLenum target, GCGLsizeiptr size, const void* data, GCGLenum usage) = 0;
-    virtual void bufferSubData(GCGLenum target, GCGLintptr offset, GCGLsizeiptr size, const void* data) = 0;
</del><ins>+    virtual void bufferData(GCGLenum target, GCGLsizeiptr, GCGLenum usage) = 0;
+    virtual void bufferData(GCGLenum target, GCGLsizeiptr, const GCGLvoid* data, GCGLenum usage) = 0;
+    virtual void bufferSubData(GCGLenum target, GCGLintptr offset, GCGLsizeiptr, const GCGLvoid* data) = 0;
</ins><span class="cx"> 
</span><del>-    virtual void compressedTexImage2D(GCGLenum target, GCGLint level, GCGLenum internalformat, GCGLsizei width, GCGLsizei height, GCGLint border, GCGLsizei imageSize, const void* data) = 0;
-    virtual void compressedTexSubImage2D(GCGLenum target, GCGLint level, GCGLint xoffset, GCGLint yoffset, GCGLsizei width, GCGLsizei height, GCGLenum format, GCGLsizei imageSize, const void* data) = 0;
</del><ins>+    virtual void readPixels(GCGLint x, GCGLint y, GCGLsizei width, GCGLsizei height, GCGLenum format, GCGLenum type, GCGLvoid* data) = 0;
</ins><span class="cx"> 
</span><del>-    virtual void readPixels(GCGLint x, GCGLint y, GCGLsizei width, GCGLsizei height, GCGLenum format, GCGLenum type, void* data) = 0;
</del><ins>+    virtual bool texImage2D(GCGLenum target, GCGLint level, GCGLenum internalformat, GCGLsizei width, GCGLsizei height, GCGLint border, GCGLenum format, GCGLenum type, const GCGLvoid* pixels) = 0;
+    virtual void texSubImage2D(GCGLenum target, GCGLint level, GCGLint xoffset, GCGLint yoffset, GCGLsizei width, GCGLsizei height, GCGLenum format, GCGLenum type, const GCGLvoid* pixels) = 0;
</ins><span class="cx"> 
</span><del>-    virtual bool texImage2D(GCGLenum target, GCGLint level, GCGLenum internalformat, GCGLsizei width, GCGLsizei height, GCGLint border, GCGLenum format, GCGLenum type, const void* pixels) = 0;
-    virtual void texSubImage2D(GCGLenum target, GCGLint level, GCGLint xoffset, GCGLint yoffset, GCGLsizei width, GCGLsizei height, GCGLenum format, GCGLenum type, const void* pixels) = 0;
-
</del><span class="cx">     virtual void drawArraysInstanced(GCGLenum mode, GCGLint first, GCGLsizei count, GCGLsizei primcount) = 0;
</span><span class="cx">     virtual void drawElementsInstanced(GCGLenum mode, GCGLsizei count, GCGLenum type, GCGLintptr offset, GCGLsizei primcount) = 0;
</span><span class="cx">     virtual void vertexAttribDivisor(GCGLuint index, GCGLuint divisor) = 0;
</span><span class="cx"> 
</span><del>-    GraphicsContextGLAttributes contextAttributes() const { return m_attrs; }
-    void setContextAttributes(const GraphicsContextGLAttributes& attrs) { m_attrs = attrs; }
-    // Concession to Canvas captureStream, which needs to dynamically set
-    // preserveDrawingBuffer to true in order to avoid implicit clears.
-    // Implementations generally do not support toggling this bit arbitrarily.
-    virtual void enablePreserveDrawingBuffer();
-
</del><span class="cx">     // VertexArrayOject calls
</span><span class="cx">     virtual PlatformGLObject createVertexArray() = 0;
</span><span class="cx">     virtual void deleteVertexArray(PlatformGLObject) = 0;
</span><span class="lines">@@ -1128,24 +1118,10 @@
</span><span class="cx">     virtual GCGLboolean isVertexArray(PlatformGLObject) = 0;
</span><span class="cx">     virtual void bindVertexArray(PlatformGLObject) = 0;
</span><span class="cx"> 
</span><del>-#if USE(OPENGL) && ENABLE(WEBGL2)
-    virtual void primitiveRestartIndex(GCGLuint) = 0;
-#endif
-
-    // Support for extensions. Returns a non-null object, though not
-    // all methods it contains may necessarily be supported on the
-    // current hardware. Must call ExtensionsGL::supports() to
-    // determine this.
-    virtual ExtensionsGL& getExtensions() = 0;
-
</del><span class="cx">     // ========== WebGL 2 entry points.
</span><span class="cx"> 
</span><del>-    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;
-
</del><span class="cx">     virtual void copyBufferSubData(GCGLenum readTarget, GCGLenum writeTarget, GCGLintptr readOffset, GCGLintptr writeOffset, GCGLsizeiptr size) = 0;
</span><del>-    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;
</del><ins>+    virtual GCGLvoid* mapBufferRange(GCGLenum target, GCGLintptr offset, GCGLsizeiptr length, GCGLbitfield access) = 0;
</ins><span class="cx">     virtual GCGLboolean unmapBuffer(GCGLenum target) = 0;
</span><span class="cx"> 
</span><span class="cx">     virtual void blitFramebuffer(GCGLint srcX0, GCGLint srcY0, GCGLint srcX1, GCGLint srcY1, GCGLint dstX0, GCGLint dstY0, GCGLint dstX1, GCGLint dstY1, GCGLbitfield mask, GCGLenum filter) = 0;
</span><span class="lines">@@ -1243,19 +1219,9 @@
</span><span class="cx"> 
</span><span class="cx">     virtual GCGLuint getUniformBlockIndex(PlatformGLObject program, const String& uniformBlockName) = 0;
</span><span class="cx">     // getActiveUniformBlockParameter
</span><del>-    virtual void getActiveUniformBlockiv(PlatformGLObject program, GCGLuint uniformBlockIndex, GCGLenum pname, GCGLint* params) = 0;
</del><span class="cx">     virtual String getActiveUniformBlockName(PlatformGLObject program, GCGLuint uniformBlockIndex) = 0;
</span><span class="cx">     virtual void uniformBlockBinding(PlatformGLObject program, GCGLuint uniformBlockIndex, GCGLuint uniformBlockBinding) = 0;
</span><span class="cx"> 
</span><del>-    // texSubImage2D with pixel pack buffer, and srcData+offset, are
-    // supported only via ANGLE_robust_client_memory.
-
-    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;
-
</del><span class="cx">     virtual void uniform1fv(GCGLint location, const GCGLfloat* data, GCGLuint srcOffset, GCGLuint srcLength) = 0;
</span><span class="cx">     virtual void uniform2fv(GCGLint location, const GCGLfloat* data, GCGLuint srcOffset, GCGLuint srcLength) = 0;
</span><span class="cx">     virtual void uniform3fv(GCGLint location, const GCGLfloat* data, GCGLuint srcOffset, GCGLuint srcLength) = 0;
</span><span class="lines">@@ -1270,11 +1236,25 @@
</span><span class="cx">     virtual void uniformMatrix3fv(GCGLint location, GCGLboolean transpose, const GCGLfloat* data, GCGLuint srcOffset, GCGLuint srcLength) = 0;
</span><span class="cx">     virtual void uniformMatrix4fv(GCGLint location, GCGLboolean transpose, const GCGLfloat* data, GCGLuint srcOffset, GCGLuint srcLength) = 0;
</span><span class="cx"> 
</span><del>-    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;
</del><ins>+    // Other functions.
</ins><span class="cx"> 
</span><del>-    // ========== Non-WebGL based entry points.
</del><ins>+    GraphicsContextGLAttributes contextAttributes() const { return m_attrs; }
+    void setContextAttributes(const GraphicsContextGLAttributes& attrs) { m_attrs = attrs; }
</ins><span class="cx"> 
</span><ins>+    // FIXME: The calling site should be fixed, this breaks the WebGL spec
+    // wrt preserveDrawingBuffer == false behavior.
+    // Concession to Canvas captureStream, which needs to dynamically set
+    // preserveDrawingBuffer to true in order to avoid implicit clears.
+    // Implementations generally do not support toggling this bit arbitrarily.
+    virtual void enablePreserveDrawingBuffer();
+
+    // Support for extensions. Returns a non-null object, though not
+    // all methods it contains may necessarily be supported on the
+    // current hardware. Must call ExtensionsGL::supports() to
+    // determine this.
+    virtual ExtensionsGL& getExtensions() = 0;
+    virtual void reshape(int width, int height) = 0;
+
</ins><span class="cx">     virtual void setContextVisibility(bool) = 0;
</span><span class="cx"> 
</span><span class="cx">     virtual GraphicsContextGLPowerPreference powerPreferenceUsedForCreation() const = 0;
</span><span class="lines">@@ -1291,21 +1271,43 @@
</span><span class="cx">     // getError in the order they were added.
</span><span class="cx">     virtual void synthesizeGLError(GCGLenum error) = 0;
</span><span class="cx"> 
</span><ins>+    // Read real OpenGL errors, and move them to the synthetic
+    // error list. Return true if at least one error is moved.
+    virtual bool moveErrorsToSyntheticErrorList() = 0;
+
</ins><span class="cx">     virtual void setFailNextGPUStatusCheck() = 0;
</span><span class="cx"> 
</span><span class="cx">     virtual void prepareForDisplay() = 0;
</span><span class="cx"> 
</span><ins>+    // FIXME: should be removed, caller should keep track of changed state.
+    virtual void markContextChanged() = 0;
+
+    // FIXME: these should be removed, caller is interested in buffer clear status and
+    // should track that in a variable that the caller holds. Caller should receive
+    // the value from reshape() and didComposite().
+    virtual bool layerComposited() const = 0;
+    virtual void setBuffersToAutoClear(GCGLbitfield) = 0;
+    virtual GCGLbitfield getBuffersToAutoClear() const = 0;
+
+    // FIXME: these should be removed, they're part of drawing buffer and
+    // display buffer abstractions that the caller should hold separate to
+    // the context.
+    virtual void paintRenderingResultsToCanvas(ImageBuffer*) = 0;
+    virtual RefPtr<ImageData> paintRenderingResultsToImageData() = 0;
+    virtual bool paintCompositedResultsToCanvas(ImageBuffer*) = 0;
+
+    // FIXME: this should be removed. The layer should be marked composited by
+    // preparing for display, so that canvas image buffer and the layer agree
+    // on the content.
+    virtual void markLayerComposited() = 0;
+
+    virtual void simulateContextChanged() = 0;
+
</ins><span class="cx"> #if ENABLE(VIDEO) && USE(AVFOUNDATION)
</span><span class="cx">     // Returns interface for CV interaction if the functionality is present.
</span><span class="cx">     virtual GraphicsContextGLCV* asCV() = 0;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-#if !USE(ANGLE)
-    // Helper to texImage2D with pixel==0 case: pixels are initialized to 0.
-    // Return true if no GL error is synthesized.
-    // By default, alignment is 4, the OpenGL default setting.
-    virtual bool texImage2DResourceSafe(GCGLenum target, GCGLint level, GCGLenum internalformat, GCGLsizei width, GCGLsizei height, GCGLint border, GCGLenum format, GCGLenum type, GCGLint alignment = 4) =  0;
-#endif
</del><span class="cx"> 
</span><span class="cx">     IntSize getInternalFramebufferSize() const { return IntSize(m_currentWidth, m_currentHeight); }
</span><span class="cx"> 
</span><span class="lines">@@ -1335,10 +1337,6 @@
</span><span class="cx">     //   INVALID_ENUM if format/type is illegal.
</span><span class="cx">     static GCGLenum computeImageSizeInBytes(GCGLenum format, GCGLenum type, GCGLsizei width, GCGLsizei height, GCGLsizei depth, const PixelStoreParams&, unsigned* imageSizeInBytes, unsigned* paddingInBytes, unsigned* skipSizeInBytes);
</span><span class="cx"> 
</span><del>-#if !USE(ANGLE)
-    static bool possibleFormatAndTypeForInternalFormat(GCGLenum internalFormat, GCGLenum& format, GCGLenum& type);
-#endif // !USE(ANGLE)
-
</del><span class="cx">     // Extracts the contents of the given ImageData into the passed Vector,
</span><span class="cx">     // packing the pixel data according to the given format and type,
</span><span class="cx">     // and obeying the flipY and premultiplyAlpha flags. Returns true
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsGraphicsTypesGLh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/GraphicsTypesGL.h (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/GraphicsTypesGL.h 2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/platform/graphics/GraphicsTypesGL.h    2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -48,6 +48,7 @@
</span><span class="cx"> typedef long long GCGLint64;
</span><span class="cx"> typedef unsigned long long GCGLuint64;
</span><span class="cx"> typedef struct __GLsync* GCGLsync;
</span><ins>+typedef void GCGLvoid;
</ins><span class="cx"> 
</span><span class="cx"> typedef GCGLuint PlatformGLObject;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsImageBufferh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/ImageBuffer.h (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/ImageBuffer.h     2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/platform/graphics/ImageBuffer.h        2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -118,7 +118,7 @@
</span><span class="cx"> 
</span><span class="cx">     // FIXME: current implementations of this method have the restriction that they only work
</span><span class="cx">     // with textures that are RGB or RGBA format, and UNSIGNED_BYTE type.
</span><del>-    virtual bool copyToPlatformTexture(GraphicsContextGLOpenGL&, GCGLenum, PlatformGLObject, GCGLenum, bool, bool) const = 0;
</del><ins>+    virtual bool copyToPlatformTexture(GraphicsContextGL&, GCGLenum, PlatformGLObject, GCGLenum, bool, bool) const = 0;
</ins><span class="cx">     virtual PlatformLayer* platformLayer() const = 0;
</span><span class="cx">     
</span><span class="cx"> protected:
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsImageBufferBackendh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/ImageBufferBackend.h (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/ImageBufferBackend.h      2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/platform/graphics/ImageBufferBackend.h 2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -38,7 +38,7 @@
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx"> class GraphicsContext;
</span><del>-class GraphicsContextGLOpenGL;
</del><ins>+class GraphicsContextGL;
</ins><span class="cx"> class HostWindow;
</span><span class="cx"> class Image;
</span><span class="cx"> class ImageData;
</span><span class="lines">@@ -117,7 +117,7 @@
</span><span class="cx">     virtual void putImageData(AlphaPremultiplication inputFormat, const ImageData&, const IntRect& srcRect, const IntPoint& destPoint, AlphaPremultiplication destFormat) = 0;
</span><span class="cx"> 
</span><span class="cx">     virtual PlatformLayer* platformLayer() const { return nullptr; }
</span><del>-    virtual bool copyToPlatformTexture(GraphicsContextGLOpenGL&, GCGLenum, PlatformGLObject, GCGLenum, bool, bool) const { return false; }
</del><ins>+    virtual bool copyToPlatformTexture(GraphicsContextGL&, GCGLenum, PlatformGLObject, GCGLenum, bool, bool) const { return false; }
</ins><span class="cx"> 
</span><span class="cx">     virtual bool isInUse() const { return false; }
</span><span class="cx">     virtual void releaseGraphicsContext() { ASSERT_NOT_REACHED(); }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsMediaPlayercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/MediaPlayer.cpp (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/MediaPlayer.cpp   2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/platform/graphics/MediaPlayer.cpp      2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -1005,7 +1005,7 @@
</span><span class="cx">     m_private->paint(p, r);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool MediaPlayer::copyVideoTextureToPlatformTexture(GraphicsContextGLOpenGL* context, PlatformGLObject texture, GCGLenum target, GCGLint level, GCGLenum internalFormat, GCGLenum format, GCGLenum type, bool premultiplyAlpha, bool flipY)
</del><ins>+bool MediaPlayer::copyVideoTextureToPlatformTexture(GraphicsContextGL* context, PlatformGLObject texture, GCGLenum target, GCGLint level, GCGLenum internalFormat, GCGLenum format, GCGLenum type, bool premultiplyAlpha, bool flipY)
</ins><span class="cx"> {
</span><span class="cx">     return m_private->copyVideoTextureToPlatformTexture(context, texture, target, level, internalFormat, format, type, premultiplyAlpha, flipY);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsMediaPlayerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/MediaPlayer.h (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/MediaPlayer.h     2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/platform/graphics/MediaPlayer.h        2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -66,7 +66,7 @@
</span><span class="cx"> class AudioSourceProvider;
</span><span class="cx"> class CDMInstance;
</span><span class="cx"> class CachedResourceLoader;
</span><del>-class GraphicsContextGLOpenGL;
</del><ins>+class GraphicsContextGL;
</ins><span class="cx"> class GraphicsContext;
</span><span class="cx"> class InbandTextTrackPrivate;
</span><span class="cx"> class LegacyCDM;
</span><span class="lines">@@ -431,7 +431,7 @@
</span><span class="cx">     // The destination texture may need to be resized to to the dimensions of the source texture or re-defined to the required internalFormat.
</span><span class="cx">     // The current restrictions require that format shoud be RGB or RGBA, type should be UNSIGNED_BYTE and level should be 0. It may be lifted in the future.
</span><span class="cx"> 
</span><del>-    bool copyVideoTextureToPlatformTexture(GraphicsContextGLOpenGL*, PlatformGLObject texture, GCGLenum target, GCGLint level, GCGLenum internalFormat, GCGLenum format, GCGLenum type, bool premultiplyAlpha, bool flipY);
</del><ins>+    bool copyVideoTextureToPlatformTexture(GraphicsContextGL*, PlatformGLObject texture, GCGLenum target, GCGLint level, GCGLenum internalFormat, GCGLenum format, GCGLenum type, bool premultiplyAlpha, bool flipY);
</ins><span class="cx"> 
</span><span class="cx">     RefPtr<NativeImage> nativeImageForCurrentTime();
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsMediaPlayerPrivateh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/MediaPlayerPrivate.h (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/MediaPlayerPrivate.h      2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/platform/graphics/MediaPlayerPrivate.h 2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -160,7 +160,7 @@
</span><span class="cx">     virtual void paint(GraphicsContext&, const FloatRect&) = 0;
</span><span class="cx"> 
</span><span class="cx">     virtual void paintCurrentFrameInContext(GraphicsContext& c, const FloatRect& r) { paint(c, r); }
</span><del>-    virtual bool copyVideoTextureToPlatformTexture(GraphicsContextGLOpenGL*, PlatformGLObject, GCGLenum, GCGLint, GCGLenum, GCGLenum, GCGLenum, bool, bool) { return false; }
</del><ins>+    virtual bool copyVideoTextureToPlatformTexture(GraphicsContextGL*, PlatformGLObject, GCGLenum, GCGLint, GCGLenum, GCGLenum, GCGLenum, bool, bool) { return false; }
</ins><span class="cx">     virtual RefPtr<NativeImage> nativeImageForCurrentTime() { return nullptr; }
</span><span class="cx"> 
</span><span class="cx">     virtual void setPreload(MediaPlayer::Preload) { }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsangleExtensionsGLANGLEcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/angle/ExtensionsGLANGLE.cpp (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/angle/ExtensionsGLANGLE.cpp       2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/platform/graphics/angle/ExtensionsGLANGLE.cpp  2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -148,21 +148,6 @@
</span><span class="cx">     m_initializedAvailableExtensions = true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void ExtensionsGLANGLE::readnPixelsEXT(int, int, GCGLsizei, GCGLsizei, GCGLenum, GCGLenum, GCGLsizei, void *)
-{
-    m_context->synthesizeGLError(GL_INVALID_OPERATION);
-}
-
-void ExtensionsGLANGLE::getnUniformfvEXT(GCGLuint, int, GCGLsizei, float *)
-{
-    m_context->synthesizeGLError(GL_INVALID_OPERATION);
-}
-
-void ExtensionsGLANGLE::getnUniformivEXT(GCGLuint, int, GCGLsizei, int *)
-{
-    m_context->synthesizeGLError(GL_INVALID_OPERATION);
-}
-
</del><span class="cx"> void ExtensionsGLANGLE::blitFramebuffer(long srcX0, long srcY0, long srcX1, long srcY1, long dstX0, long dstY0, long dstX1, long dstY1, unsigned long mask, unsigned long filter)
</span><span class="cx"> {
</span><span class="cx">     // FIXME: consider adding support for APPLE_framebuffer_multisample.
</span><span class="lines">@@ -462,6 +447,8 @@
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     gl::CompressedTexImage2DRobustANGLE(target, level, internalformat, width, height, border, imageSize, bufSize, data);
</span><ins>+    m_context->m_state.textureSeedCount.add(m_context->m_state.currentBoundTexture());
+
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void ExtensionsGLANGLE::compressedTexSubImage2DRobustANGLE(GCGLenum target, int level, int xoffset, int yoffset, GCGLsizei width, GCGLsizei height, GCGLenum format, GCGLsizei imageSize, GCGLsizei bufSize, const void* data)
</span><span class="lines">@@ -470,6 +457,7 @@
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     gl::CompressedTexSubImage2DRobustANGLE(target, level, xoffset, yoffset, width, height, format, imageSize, bufSize, data);
</span><ins>+    m_context->m_state.textureSeedCount.add(m_context->m_state.currentBoundTexture());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void ExtensionsGLANGLE::compressedTexImage3DRobustANGLE(GCGLenum target, int level, GCGLenum internalformat, GCGLsizei width, GCGLsizei height, GCGLsizei depth, int border, GCGLsizei imageSize, GCGLsizei bufSize, const void* data)
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsangleExtensionsGLANGLEh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/angle/ExtensionsGLANGLE.h (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/angle/ExtensionsGLANGLE.h 2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/platform/graphics/angle/ExtensionsGLANGLE.h    2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -43,7 +43,7 @@
</span><span class="cx">     bool supports(const String&) override;
</span><span class="cx">     void ensureEnabled(const String&) override;
</span><span class="cx">     bool isEnabled(const String&) override;
</span><del>-    int getGraphicsResetStatusARB() override;
</del><ins>+    GCGLint getGraphicsResetStatusARB() override;
</ins><span class="cx"> 
</span><span class="cx">     PlatformGLObject createVertexArrayOES() override;
</span><span class="cx">     void deleteVertexArrayOES(PlatformGLObject) override;
</span><span class="lines">@@ -63,11 +63,6 @@
</span><span class="cx">     void drawElementsInstanced(GCGLenum mode, GCGLsizei count, GCGLenum type, long long offset, GCGLsizei primcount) override;
</span><span class="cx">     void vertexAttribDivisor(GCGLuint index, GCGLuint divisor) override;
</span><span class="cx"> 
</span><del>-    // EXT Robustness - uses getGraphicsResetStatusARB()
-    void readnPixelsEXT(int x, int y, GCGLsizei width, GCGLsizei height, GCGLenum format, GCGLenum type, GCGLsizei bufSize, void *data) override;
-    void getnUniformfvEXT(GCGLuint program, int location, GCGLsizei bufSize, float *params) override;
-    void getnUniformivEXT(GCGLuint program, int location, GCGLsizei bufSize, int *params) override;
-
</del><span class="cx">     bool isNVIDIA() override { return m_isNVIDIA; }
</span><span class="cx">     bool isAMD() override { return m_isAMD; }
</span><span class="cx">     bool isIntel() override { return m_isIntel; }
</span><span class="lines">@@ -88,34 +83,34 @@
</span><span class="cx">     void getShaderivRobustANGLE(GCGLuint shader, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params) override;
</span><span class="cx">     void getTexParameterfvRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLfloat *params) override;
</span><span class="cx">     void getTexParameterivRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params) override;
</span><del>-    void getUniformfvRobustANGLE(GCGLuint program, int location, GCGLsizei bufSize, GCGLsizei *length, GCGLfloat *params) override;
-    void getUniformivRobustANGLE(GCGLuint program, int location, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params) override;
</del><ins>+    void getUniformfvRobustANGLE(GCGLuint program, GCGLint location, GCGLsizei bufSize, GCGLsizei *length, GCGLfloat *params) override;
+    void getUniformivRobustANGLE(GCGLuint program, GCGLint location, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params) override;
</ins><span class="cx">     void getVertexAttribfvRobustANGLE(GCGLuint index, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLfloat *params) override;
</span><span class="cx">     void getVertexAttribivRobustANGLE(GCGLuint index, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params) override;
</span><span class="cx">     void getVertexAttribPointervRobustANGLE(GCGLuint index, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, void **pointer) override;
</span><del>-    void readPixelsRobustANGLE(int x, int y, GCGLsizei width, GCGLsizei height, GCGLenum format, GCGLenum type, GCGLsizei bufSize, GCGLsizei *length, GCGLsizei *columns, GCGLsizei *rows, void *pixels) override;
-    void texImage2DRobustANGLE(GCGLenum target, int level, int internalformat, GCGLsizei width, GCGLsizei height, int border, GCGLenum format, GCGLenum type, GCGLsizei bufSize, const void *pixels) override;
</del><ins>+    void readPixelsRobustANGLE(GCGLint x, GCGLint y, GCGLsizei width, GCGLsizei height, GCGLenum format, GCGLenum type, GCGLsizei bufSize, GCGLsizei *length, GCGLsizei *columns, GCGLsizei *rows, void *pixels) override;
+    void texImage2DRobustANGLE(GCGLenum target, GCGLint level, GCGLint internalformat, GCGLsizei width, GCGLsizei height, GCGLint border, GCGLenum format, GCGLenum type, GCGLsizei bufSize, const void *pixels) override;
</ins><span class="cx">     void texParameterfvRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, const GCGLfloat *params) override;
</span><span class="cx">     void texParameterivRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, const GCGLint *params) override;
</span><del>-    void texSubImage2DRobustANGLE(GCGLenum target, int level, int xoffset, int yoffset, GCGLsizei width, GCGLsizei height, GCGLenum format, GCGLenum type, GCGLsizei bufSize, const void *pixels) override;
-    void compressedTexImage2DRobustANGLE(GCGLenum target, int level, GCGLenum internalformat, GCGLsizei width, GCGLsizei height, int border, GCGLsizei imageSize, GCGLsizei bufSize, const void* data) override;
-    void compressedTexSubImage2DRobustANGLE(GCGLenum target, int level, int xoffset, int yoffset, GCGLsizei width, GCGLsizei height, GCGLenum format, GCGLsizei imageSize, GCGLsizei bufSize, const void* data) override;
-    void compressedTexImage3DRobustANGLE(GCGLenum target, int level, GCGLenum internalformat, GCGLsizei width, GCGLsizei height, GCGLsizei depth, int border, GCGLsizei imageSize, GCGLsizei bufSize, const void* data) override;
-    void compressedTexSubImage3DRobustANGLE(GCGLenum target, int level, int xoffset, int yoffset, int zoffset, GCGLsizei width, GCGLsizei height, GCGLsizei depth, GCGLenum format, GCGLsizei imageSize, GCGLsizei bufSize, const void* data) override;
</del><ins>+    void texSubImage2DRobustANGLE(GCGLenum target, GCGLint level, GCGLint xoffset, GCGLint yoffset, GCGLsizei width, GCGLsizei height, GCGLenum format, GCGLenum type, GCGLsizei bufSize, const void *pixels) override;
+    void compressedTexImage2DRobustANGLE(GCGLenum target, GCGLint level, GCGLenum internalformat, GCGLsizei width, GCGLsizei height, GCGLint border, GCGLsizei imageSize, GCGLsizei bufSize, const GCGLvoid* data) override;
+    void compressedTexSubImage2DRobustANGLE(GCGLenum target, GCGLint level, GCGLint xoffset, GCGLint yoffset, GCGLsizei width, GCGLsizei height, GCGLenum format, GCGLsizei imageSize, GCGLsizei bufSize, const GCGLvoid* data) override;
+    void compressedTexImage3DRobustANGLE(GCGLenum target, GCGLint level, GCGLenum internalformat, GCGLsizei width, GCGLsizei height, GCGLsizei depth, GCGLint border, GCGLsizei imageSize, GCGLsizei bufSize, const GCGLvoid* data) override;
+    void compressedTexSubImage3DRobustANGLE(GCGLenum target, GCGLint level, GCGLint xoffset, GCGLint yoffset, GCGLint zoffset, GCGLsizei width, GCGLsizei height, GCGLsizei depth, GCGLenum format, GCGLsizei imageSize, GCGLsizei bufSize, const GCGLvoid* data) override;
</ins><span class="cx"> 
</span><del>-    void texImage3DRobustANGLE(GCGLenum target, int level, int internalformat, GCGLsizei width, GCGLsizei height, GCGLsizei depth, int border, GCGLenum format, GCGLenum type, GCGLsizei bufSize, const void *pixels) override;
-    void texSubImage3DRobustANGLE(GCGLenum target, int level, int xoffset, int yoffset, int zoffset, GCGLsizei width, GCGLsizei height, GCGLsizei depth, GCGLenum format, GCGLenum type, GCGLsizei bufSize, const void *pixels) override;
</del><ins>+    void texImage3DRobustANGLE(GCGLenum target, GCGLint level, GCGLint internalformat, GCGLsizei width, GCGLsizei height, GCGLsizei depth, GCGLint border, GCGLenum format, GCGLenum type, GCGLsizei bufSize, const void *pixels) override;
+    void texSubImage3DRobustANGLE(GCGLenum target, GCGLint level, GCGLint xoffset, GCGLint yoffset, GCGLint zoffset, GCGLsizei width, GCGLsizei height, GCGLsizei depth, GCGLenum format, GCGLenum type, GCGLsizei bufSize, const void *pixels) override;
</ins><span class="cx">     void getQueryivRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params) override;
</span><span class="cx">     void getQueryObjectuivRobustANGLE(GCGLuint id, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLuint *params) override;
</span><span class="cx">     void getBufferPointervRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, void **params) override;
</span><del>-    void getIntegeri_vRobustANGLE(GCGLenum target, GCGLuint index, GCGLsizei bufSize, GCGLsizei *length, int *data) override;
</del><ins>+    void getIntegeri_vRobustANGLE(GCGLenum target, GCGLuint index, GCGLsizei bufSize, GCGLsizei *length, GCGLint *data) override; // NOLINT
</ins><span class="cx">     void getInternalformativRobustANGLE(GCGLenum target, GCGLenum internalformat, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params) override;
</span><span class="cx">     void getVertexAttribIivRobustANGLE(GCGLuint index, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params) override;
</span><span class="cx">     void getVertexAttribIuivRobustANGLE(GCGLuint index, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLuint *params) override;
</span><del>-    void getUniformuivRobustANGLE(GCGLuint program, int location, GCGLsizei bufSize, GCGLsizei *length, GCGLuint *params) override;
</del><ins>+    void getUniformuivRobustANGLE(GCGLuint program, GCGLint location, GCGLsizei bufSize, GCGLsizei *length, GCGLuint *params) override;
</ins><span class="cx">     void getActiveUniformBlockivRobustANGLE(GCGLuint program, GCGLuint uniformBlockIndex, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params) override;
</span><span class="cx">     void getInteger64vRobustANGLE(GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint64 *data) override;
</span><del>-    void getInteger64i_vRobustANGLE(GCGLenum target, GCGLuint index, GCGLsizei bufSize, GCGLsizei *length, GCGLint64 *data) override;
</del><ins>+    void getInteger64i_vRobustANGLE(GCGLenum target, GCGLuint index, GCGLsizei bufSize, GCGLsizei *length, GCGLint64 *data) override; // NOLINT
</ins><span class="cx">     void getBufferParameteri64vRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint64 *params) override;
</span><span class="cx">     void samplerParameterivRobustANGLE(GCGLuint sampler, GCGLenum pname, GCGLsizei bufSize, const GCGLint *param) override;
</span><span class="cx">     void samplerParameterfvRobustANGLE(GCGLuint sampler, GCGLenum pname, GCGLsizei bufSize, const GCGLfloat *param) override;
</span><span class="lines">@@ -124,16 +119,16 @@
</span><span class="cx"> 
</span><span class="cx">     void getFramebufferParameterivRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params) override;
</span><span class="cx">     void getProgramInterfaceivRobustANGLE(GCGLuint program, GCGLenum programInterface, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params) override;
</span><del>-    void getBooleani_vRobustANGLE(GCGLenum target, GCGLuint index, GCGLsizei bufSize, GCGLsizei *length, GCGLboolean *data) override;
</del><ins>+    void getBooleani_vRobustANGLE(GCGLenum target, GCGLuint index, GCGLsizei bufSize, GCGLsizei *length, GCGLboolean *data) override; // NOLINT
</ins><span class="cx">     void getMultisamplefvRobustANGLE(GCGLenum pname, GCGLuint index, GCGLsizei bufSize, GCGLsizei *length, GCGLfloat *val) override;
</span><del>-    void getTexLevelParameterivRobustANGLE(GCGLenum target, int level, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params) override;
-    void getTexLevelParameterfvRobustANGLE(GCGLenum target, int level, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLfloat *params) override;
</del><ins>+    void getTexLevelParameterivRobustANGLE(GCGLenum target, GCGLint level, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params) override;
+    void getTexLevelParameterfvRobustANGLE(GCGLenum target, GCGLint level, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLfloat *params) override;
</ins><span class="cx"> 
</span><span class="cx">     void getPointervRobustANGLERobustANGLE(GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, void **params) override;
</span><del>-    void readnPixelsRobustANGLE(int x, int y, GCGLsizei width, GCGLsizei height, GCGLenum format, GCGLenum type, GCGLsizei bufSize, GCGLsizei *length, GCGLsizei *columns, GCGLsizei *rows, void *data, bool readingToPixelBufferObject) override;
-    void getnUniformfvRobustANGLE(GCGLuint program, int location, GCGLsizei bufSize, GCGLsizei *length, GCGLfloat *params) override;
-    void getnUniformivRobustANGLE(GCGLuint program, int location, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params) override;
-    void getnUniformuivRobustANGLE(GCGLuint program, int location, GCGLsizei bufSize, GCGLsizei *length, GCGLuint *params) override;
</del><ins>+    void readnPixelsRobustANGLE(GCGLint x, GCGLint y, GCGLsizei width, GCGLsizei height, GCGLenum format, GCGLenum type, GCGLsizei bufSize, GCGLsizei *length, GCGLsizei *columns, GCGLsizei *rows, void *data, bool readingToPixelBufferObject) override;
+    void getnUniformfvRobustANGLE(GCGLuint program, GCGLint location, GCGLsizei bufSize, GCGLsizei *length, GCGLfloat *params) override;
+    void getnUniformivRobustANGLE(GCGLuint program, GCGLint location, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params) override;
+    void getnUniformuivRobustANGLE(GCGLuint program, GCGLint location, GCGLsizei bufSize, GCGLsizei *length, GCGLuint *params) override;
</ins><span class="cx">     void texParameterIivRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, const GCGLint *params) override;
</span><span class="cx">     void texParameterIuivRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, const GCGLuint *params) override;
</span><span class="cx">     void getTexParameterIivRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params) override;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsangleGraphicsContextGLANGLEcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.cpp (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.cpp  2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.cpp     2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -2050,24 +2050,6 @@
</span><span class="cx">     m_state.textureSeedCount.add(m_state.currentBoundTexture());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void GraphicsContextGLOpenGL::compressedTexImage2D(GCGLenum target, GCGLint level, GCGLenum internalformat, GCGLsizei width, GCGLsizei height, GCGLint border, GCGLsizei imageSize, const void* data)
-{
-    if (!makeContextCurrent())
-        return;
-
-    gl::CompressedTexImage2D(target, level, internalformat, width, height, border, imageSize, data);
-    m_state.textureSeedCount.add(m_state.currentBoundTexture());
-}
-
-void GraphicsContextGLOpenGL::compressedTexSubImage2D(GCGLenum target, GCGLint level, GCGLint xoffset, GCGLint yoffset, GCGLsizei width, GCGLsizei height, GCGLenum format, GCGLsizei imageSize, const void* data)
-{
-    if (!makeContextCurrent())
-        return;
-
-    gl::CompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data);
-    m_state.textureSeedCount.add(m_state.currentBoundTexture());
-}
-
</del><span class="cx"> PlatformGLObject GraphicsContextGLOpenGL::createBuffer()
</span><span class="cx"> {
</span><span class="cx">     if (!makeContextCurrent())
</span><span class="lines">@@ -2287,16 +2269,6 @@
</span><span class="cx">     return gl::GetUniformBlockIndex(program, uniformBlockName.utf8().data());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void GraphicsContextGLOpenGL::getActiveUniformBlockiv(PlatformGLObject program, GCGLuint uniformBlockIndex, GCGLenum pname, GCGLint* params)
-{
-    RELEASE_LOG(WebGL, "Use getActiveUniformBlockivRobustANGLE instead.");
-    notImplemented();
-    UNUSED_PARAM(program);
-    UNUSED_PARAM(uniformBlockIndex);
-    UNUSED_PARAM(pname);
-    UNUSED_PARAM(params);
-}
-
</del><span class="cx"> String GraphicsContextGLOpenGL::getActiveUniformBlockName(PlatformGLObject program, GCGLuint uniformBlockIndex)
</span><span class="cx"> {
</span><span class="cx">     ASSERT(program);
</span><span class="lines">@@ -2459,34 +2431,6 @@
</span><span class="cx">     gl::BindBufferBase(target, index, buffer);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-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);
-}
-
-
-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);
-}
-
</del><span class="cx"> void GraphicsContextGLOpenGL::blitFramebuffer(GCGLint srcX0, GCGLint srcY0, GCGLint srcX1, GCGLint srcY1, GCGLint dstX0, GCGLint dstY0, GCGLint dstX1, GCGLint dstY1, GCGLbitfield mask, GCGLenum filter)
</span><span class="cx"> {
</span><span class="cx">     if (!makeContextCurrent())
</span><span class="lines">@@ -2921,58 +2865,6 @@
</span><span class="cx">     return result;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-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);
-}
-
</del><span class="cx"> void GraphicsContextGLOpenGL::uniform1fv(GCGLint location, const GCGLfloat* data, GCGLuint srcOffset, GCGLuint srcLength)
</span><span class="cx"> {
</span><span class="cx">     if (!makeContextCurrent())
</span><span class="lines">@@ -3061,29 +2953,6 @@
</span><span class="cx">     gl::UniformMatrix4fv(location, srcLength, transpose, data + srcOffset);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-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);
-}
-
</del><span class="cx"> #if ENABLE(VIDEO) && USE(AVFOUNDATION)
</span><span class="cx"> GraphicsContextGLCV* GraphicsContextGLOpenGL::asCV()
</span><span class="cx"> {
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsavfoundationobjcMediaPlayerPrivateAVFoundationObjCh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h    2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h       2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -253,7 +253,7 @@
</span><span class="cx">     RefPtr<NativeImage> nativeImageForCurrentTime() final;
</span><span class="cx">     void waitForVideoOutputMediaDataWillChange();
</span><span class="cx"> 
</span><del>-    bool copyVideoTextureToPlatformTexture(GraphicsContextGLOpenGL*, PlatformGLObject, GCGLenum target, GCGLint level, GCGLenum internalFormat, GCGLenum format, GCGLenum type, bool premultiplyAlpha, bool flipY) final;
</del><ins>+    bool copyVideoTextureToPlatformTexture(GraphicsContextGL*, PlatformGLObject, GCGLenum target, GCGLint level, GCGLenum internalFormat, GCGLenum format, GCGLenum type, bool premultiplyAlpha, bool flipY) final;
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(LEGACY_ENCRYPTED_MEDIA)
</span><span class="cx">     void keyAdded() final;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsavfoundationobjcMediaPlayerPrivateAVFoundationObjCmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm   2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm      2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -42,8 +42,8 @@
</span><span class="cx"> #import "FloatConversion.h"
</span><span class="cx"> #import "GraphicsContext.h"
</span><span class="cx"> #import "GraphicsContextCG.h"
</span><ins>+#import "GraphicsContextGL.h"
</ins><span class="cx"> #import "GraphicsContextGLCV.h"
</span><del>-#import "GraphicsContextGLOpenGL.h"
</del><span class="cx"> #import "ImageRotationSessionVT.h"
</span><span class="cx"> #import "InbandMetadataTextTrackPrivateAVF.h"
</span><span class="cx"> #import "InbandTextTrackPrivateAVFObjC.h"
</span><span class="lines">@@ -2325,7 +2325,7 @@
</span><span class="cx"> 
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool MediaPlayerPrivateAVFoundationObjC::copyVideoTextureToPlatformTexture(GraphicsContextGLOpenGL* context, PlatformGLObject outputTexture, GCGLenum outputTarget, GCGLint level, GCGLenum internalFormat, GCGLenum format, GCGLenum type, bool premultiplyAlpha, bool flipY)
</del><ins>+bool MediaPlayerPrivateAVFoundationObjC::copyVideoTextureToPlatformTexture(GraphicsContextGL* context, PlatformGLObject outputTexture, GCGLenum outputTarget, GCGLint level, GCGLenum internalFormat, GCGLenum format, GCGLenum type, bool premultiplyAlpha, bool flipY)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(context);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsavfoundationobjcMediaPlayerPrivateMediaSourceAVFObjCh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h  2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h     2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -219,7 +219,7 @@
</span><span class="cx">     bool updateLastImage();
</span><span class="cx">     void paint(GraphicsContext&, const FloatRect&) override;
</span><span class="cx">     void paintCurrentFrameInContext(GraphicsContext&, const FloatRect&) override;
</span><del>-    bool copyVideoTextureToPlatformTexture(GraphicsContextGLOpenGL*, PlatformGLObject, GCGLenum target, GCGLint level, GCGLenum internalFormat, GCGLenum format, GCGLenum type, bool premultiplyAlpha, bool flipY) override;
</del><ins>+    bool copyVideoTextureToPlatformTexture(GraphicsContextGL*, PlatformGLObject, GCGLenum target, GCGLint level, GCGLenum internalFormat, GCGLenum format, GCGLenum type, bool premultiplyAlpha, bool flipY) override;
</ins><span class="cx"> 
</span><span class="cx">     bool supportsAcceleratedRendering() const override;
</span><span class="cx">     // called when the rendering system flips the into or out of accelerated rendering mode.
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsavfoundationobjcMediaPlayerPrivateMediaSourceAVFObjCmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm 2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm    2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -33,8 +33,8 @@
</span><span class="cx"> #import "AVStreamDataParserMIMETypeCache.h"
</span><span class="cx"> #import "CDMSessionAVStreamSession.h"
</span><span class="cx"> #import "GraphicsContextCG.h"
</span><ins>+#import "GraphicsContextGL.h"
</ins><span class="cx"> #import "GraphicsContextGLCV.h"
</span><del>-#import "GraphicsContextGLOpenGL.h"
</del><span class="cx"> #import "Logging.h"
</span><span class="cx"> #import "MediaSourcePrivateAVFObjC.h"
</span><span class="cx"> #import "MediaSourcePrivateClient.h"
</span><span class="lines">@@ -623,7 +623,7 @@
</span><span class="cx">     context.drawNativeImage(*image, imageRect.size(), outputRect, imageRect);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool MediaPlayerPrivateMediaSourceAVFObjC::copyVideoTextureToPlatformTexture(GraphicsContextGLOpenGL* context, PlatformGLObject outputTexture, GCGLenum outputTarget, GCGLint level, GCGLenum internalFormat, GCGLenum format, GCGLenum type, bool premultiplyAlpha, bool flipY)
</del><ins>+bool MediaPlayerPrivateMediaSourceAVFObjC::copyVideoTextureToPlatformTexture(GraphicsContextGL* context, PlatformGLObject outputTexture, GCGLenum outputTarget, GCGLint level, GCGLenum internalFormat, GCGLenum format, GCGLenum type, bool premultiplyAlpha, bool flipY)
</ins><span class="cx"> {
</span><span class="cx">     // We have been asked to paint into a WebGL canvas, so take that as a signal to create
</span><span class="cx">     // a decompression session, even if that means the native video can't also be displayed
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicscocoaIOSurfacemm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/cocoa/IOSurface.mm (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/cocoa/IOSurface.mm        2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/platform/graphics/cocoa/IOSurface.mm   2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -27,7 +27,7 @@
</span><span class="cx"> #import "IOSurface.h"
</span><span class="cx"> 
</span><span class="cx"> #import "GraphicsContextCG.h"
</span><del>-#import "GraphicsContextGLOpenGL.h"
</del><ins>+#import "GraphicsContextGL.h"
</ins><span class="cx"> #import "HostWindow.h"
</span><span class="cx"> #import "IOSurfacePool.h"
</span><span class="cx"> #import "ImageBuffer.h"
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicseglGLContextEGLcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/egl/GLContextEGL.cpp (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/egl/GLContextEGL.cpp      2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/platform/graphics/egl/GLContextEGL.cpp 2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -21,7 +21,7 @@
</span><span class="cx"> 
</span><span class="cx"> #if USE(EGL)
</span><span class="cx"> 
</span><del>-#include "GraphicsContextGLOpenGL.h"
</del><ins>+#include "GraphicsContextGL.h"
</ins><span class="cx"> #include "Logging.h"
</span><span class="cx"> #include "PlatformDisplay.h"
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsgstreamerMediaPlayerPrivateGStreamercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp 2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp    2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -3182,7 +3182,7 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if USE(GSTREAMER_GL)
</span><del>-bool MediaPlayerPrivateGStreamer::copyVideoTextureToPlatformTexture(GraphicsContextGLOpenGL* context, PlatformGLObject outputTexture, GCGLenum outputTarget, GCGLint level, GCGLenum internalFormat, GCGLenum format, GCGLenum type, bool premultiplyAlpha, bool flipY)
</del><ins>+bool MediaPlayerPrivateGStreamer::copyVideoTextureToPlatformTexture(GraphicsContextGL* context, PlatformGLObject outputTexture, GCGLenum outputTarget, GCGLint level, GCGLenum internalFormat, GCGLenum format, GCGLenum type, bool premultiplyAlpha, bool flipY)
</ins><span class="cx"> {
</span><span class="cx">     UNUSED_PARAM(context);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsgstreamerMediaPlayerPrivateGStreamerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h   2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h      2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -93,7 +93,7 @@
</span><span class="cx"> class BitmapTextureGL;
</span><span class="cx"> class GLContext;
</span><span class="cx"> class GraphicsContext;
</span><del>-class GraphicsContextGLOpenGL;
</del><ins>+class GraphicsContextGL;
</ins><span class="cx"> class IntSize;
</span><span class="cx"> class IntRect;
</span><span class="cx"> class VideoTextureCopierGStreamer;
</span><span class="lines">@@ -215,7 +215,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if USE(GSTREAMER_GL)
</span><del>-    bool copyVideoTextureToPlatformTexture(GraphicsContextGLOpenGL*, PlatformGLObject, GCGLenum, GCGLint, GCGLenum, GCGLenum, GCGLenum, bool, bool) override;
</del><ins>+    bool copyVideoTextureToPlatformTexture(GraphicsContextGL*, PlatformGLObject, GCGLenum, GCGLint, GCGLenum, GCGLenum, GCGLenum, bool, bool) override;
</ins><span class="cx">     RefPtr<NativeImage> nativeImageForCurrentTime() override;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsopenglGraphicsContextGLOpenGLcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGL.cpp (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGL.cpp        2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGL.cpp   2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -97,6 +97,88 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> 
</span><ins>+#if !USE(ANGLE)
+bool GraphicsContextGLOpenGL::possibleFormatAndTypeForInternalFormat(GCGLenum internalFormat, GCGLenum& format, GCGLenum& type)
+{
+#define POSSIBLE_FORMAT_TYPE_CASE(internalFormatMacro, formatMacro, typeMacro) case internalFormatMacro: \
+        format = formatMacro; \
+        type = typeMacro; \
+        break;
+
+    switch (internalFormat) {
+        POSSIBLE_FORMAT_TYPE_CASE(RGB, RGB, UNSIGNED_BYTE);
+        POSSIBLE_FORMAT_TYPE_CASE(RGBA, RGBA, UNSIGNED_BYTE);
+        POSSIBLE_FORMAT_TYPE_CASE(LUMINANCE_ALPHA, LUMINANCE_ALPHA, UNSIGNED_BYTE);
+        POSSIBLE_FORMAT_TYPE_CASE(LUMINANCE, LUMINANCE, UNSIGNED_BYTE);
+        POSSIBLE_FORMAT_TYPE_CASE(ALPHA, ALPHA, UNSIGNED_BYTE);
+        POSSIBLE_FORMAT_TYPE_CASE(R8, RED, UNSIGNED_BYTE);
+        POSSIBLE_FORMAT_TYPE_CASE(R8_SNORM, RED, BYTE);
+        POSSIBLE_FORMAT_TYPE_CASE(R16F, RED, HALF_FLOAT);
+        POSSIBLE_FORMAT_TYPE_CASE(R32F, RED, FLOAT);
+        POSSIBLE_FORMAT_TYPE_CASE(R8UI, RED_INTEGER, UNSIGNED_BYTE);
+        POSSIBLE_FORMAT_TYPE_CASE(R8I, RED_INTEGER, BYTE);
+        POSSIBLE_FORMAT_TYPE_CASE(R16UI, RED_INTEGER, UNSIGNED_SHORT);
+        POSSIBLE_FORMAT_TYPE_CASE(R16I, RED_INTEGER, SHORT);
+        POSSIBLE_FORMAT_TYPE_CASE(R32UI, RED_INTEGER, UNSIGNED_INT);
+        POSSIBLE_FORMAT_TYPE_CASE(R32I, RED_INTEGER, INT);
+        POSSIBLE_FORMAT_TYPE_CASE(RG8, RG, UNSIGNED_BYTE);
+        POSSIBLE_FORMAT_TYPE_CASE(RG8_SNORM, RG, BYTE);
+        POSSIBLE_FORMAT_TYPE_CASE(RG16F, RG, HALF_FLOAT);
+        POSSIBLE_FORMAT_TYPE_CASE(RG32F, RG, FLOAT);
+        POSSIBLE_FORMAT_TYPE_CASE(RG8UI, RG_INTEGER, UNSIGNED_BYTE);
+        POSSIBLE_FORMAT_TYPE_CASE(RG8I, RG_INTEGER, BYTE);
+        POSSIBLE_FORMAT_TYPE_CASE(RG16UI, RG_INTEGER, UNSIGNED_SHORT);
+        POSSIBLE_FORMAT_TYPE_CASE(RG16I, RG_INTEGER, SHORT);
+        POSSIBLE_FORMAT_TYPE_CASE(RG32UI, RG_INTEGER, UNSIGNED_INT);
+        POSSIBLE_FORMAT_TYPE_CASE(RG32I, RG_INTEGER, INT);
+        POSSIBLE_FORMAT_TYPE_CASE(RGB8, RGB, UNSIGNED_BYTE);
+        POSSIBLE_FORMAT_TYPE_CASE(SRGB8, RGB, UNSIGNED_BYTE);
+        POSSIBLE_FORMAT_TYPE_CASE(RGB565, RGB, UNSIGNED_SHORT_5_6_5);
+        POSSIBLE_FORMAT_TYPE_CASE(RGB8_SNORM, RGB, BYTE);
+        POSSIBLE_FORMAT_TYPE_CASE(R11F_G11F_B10F, RGB, UNSIGNED_INT_10F_11F_11F_REV);
+        POSSIBLE_FORMAT_TYPE_CASE(RGB9_E5, RGB, UNSIGNED_INT_5_9_9_9_REV);
+        POSSIBLE_FORMAT_TYPE_CASE(RGB16F, RGB, HALF_FLOAT);
+        POSSIBLE_FORMAT_TYPE_CASE(RGB32F, RGB, FLOAT);
+        POSSIBLE_FORMAT_TYPE_CASE(RGB8UI, RGB_INTEGER, UNSIGNED_BYTE);
+        POSSIBLE_FORMAT_TYPE_CASE(RGB8I, RGB_INTEGER, BYTE);
+        POSSIBLE_FORMAT_TYPE_CASE(RGB16UI, RGB_INTEGER, UNSIGNED_SHORT);
+        POSSIBLE_FORMAT_TYPE_CASE(RGB16I, RGB_INTEGER, SHORT);
+        POSSIBLE_FORMAT_TYPE_CASE(RGB32UI, RGB_INTEGER, UNSIGNED_INT);
+        POSSIBLE_FORMAT_TYPE_CASE(RGB32I, RGB_INTEGER, INT);
+        POSSIBLE_FORMAT_TYPE_CASE(RGBA8, RGBA, UNSIGNED_BYTE);
+        POSSIBLE_FORMAT_TYPE_CASE(SRGB8_ALPHA8, RGBA, UNSIGNED_BYTE);
+        POSSIBLE_FORMAT_TYPE_CASE(RGBA8_SNORM, RGBA, BYTE);
+        POSSIBLE_FORMAT_TYPE_CASE(RGB5_A1, RGBA, UNSIGNED_SHORT_5_5_5_1);
+        POSSIBLE_FORMAT_TYPE_CASE(RGBA4, RGBA, UNSIGNED_SHORT_4_4_4_4);
+        POSSIBLE_FORMAT_TYPE_CASE(RGB10_A2, RGBA, UNSIGNED_INT_2_10_10_10_REV);
+        POSSIBLE_FORMAT_TYPE_CASE(RGBA16F, RGBA, HALF_FLOAT);
+        POSSIBLE_FORMAT_TYPE_CASE(RGBA32F, RGBA, FLOAT);
+        POSSIBLE_FORMAT_TYPE_CASE(RGBA8UI, RGBA_INTEGER, UNSIGNED_BYTE);
+        POSSIBLE_FORMAT_TYPE_CASE(RGBA8I, RGBA_INTEGER, BYTE);
+        POSSIBLE_FORMAT_TYPE_CASE(RGB10_A2UI, RGBA_INTEGER, UNSIGNED_INT_2_10_10_10_REV);
+        POSSIBLE_FORMAT_TYPE_CASE(RGBA16UI, RGBA_INTEGER, UNSIGNED_SHORT);
+        POSSIBLE_FORMAT_TYPE_CASE(RGBA16I, RGBA_INTEGER, SHORT);
+        POSSIBLE_FORMAT_TYPE_CASE(RGBA32I, RGBA_INTEGER, INT);
+        POSSIBLE_FORMAT_TYPE_CASE(RGBA32UI, RGBA_INTEGER, UNSIGNED_INT);
+        POSSIBLE_FORMAT_TYPE_CASE(DEPTH_COMPONENT16, DEPTH_COMPONENT, UNSIGNED_SHORT);
+        POSSIBLE_FORMAT_TYPE_CASE(DEPTH_COMPONENT, DEPTH_COMPONENT, UNSIGNED_SHORT);
+        POSSIBLE_FORMAT_TYPE_CASE(DEPTH_COMPONENT24, DEPTH_COMPONENT, UNSIGNED_INT);
+        POSSIBLE_FORMAT_TYPE_CASE(DEPTH_COMPONENT32F, DEPTH_COMPONENT, FLOAT);
+        POSSIBLE_FORMAT_TYPE_CASE(DEPTH_STENCIL, DEPTH_STENCIL, UNSIGNED_INT_24_8);
+        POSSIBLE_FORMAT_TYPE_CASE(DEPTH24_STENCIL8, DEPTH_STENCIL, UNSIGNED_INT_24_8);
+        POSSIBLE_FORMAT_TYPE_CASE(DEPTH32F_STENCIL8, DEPTH_STENCIL, FLOAT_32_UNSIGNED_INT_24_8_REV);
+        POSSIBLE_FORMAT_TYPE_CASE(ExtensionsGL::SRGB_EXT, ExtensionsGL::SRGB_EXT, UNSIGNED_BYTE);
+        POSSIBLE_FORMAT_TYPE_CASE(ExtensionsGL::SRGB_ALPHA_EXT, ExtensionsGL::SRGB_ALPHA_EXT, UNSIGNED_BYTE);
+    default:
+        return false;
+    }
+#undef POSSIBLE_FORMAT_TYPE_CASE
+
+    return true;
+}
+#endif // !USE(ANGLE)
+
+
</ins><span class="cx"> #if !PLATFORM(COCOA)
</span><span class="cx"> void GraphicsContextGLOpenGL::setContextVisibility(bool)
</span><span class="cx"> {
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsopenglGraphicsContextGLOpenGLh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGL.h (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGL.h  2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGL.h     2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -129,7 +129,10 @@
</span><span class="cx">     void compileShaderDirect(PlatformGLObject);
</span><span class="cx"> 
</span><span class="cx"> #if !USE(ANGLE)
</span><del>-    bool texImage2DResourceSafe(GCGLenum target, GCGLint level, GCGLenum internalformat, GCGLsizei width, GCGLsizei height, GCGLint border, GCGLenum format, GCGLenum type, GCGLint alignment = 4) final;
</del><ins>+    // Helper to texImage2D with pixel==0 case: pixels are initialized to 0.
+    // Return true if no GL error is synthesized.
+    // By default, alignment is 4, the OpenGL default setting.
+    bool texImage2DResourceSafe(GCGLenum target, GCGLint level, GCGLenum internalformat, GCGLsizei width, GCGLsizei height, GCGLint border, GCGLenum format, GCGLenum type, GCGLint alignment = 4);
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     bool isGLES2Compliant() const final;
</span><span class="lines">@@ -163,8 +166,10 @@
</span><span class="cx">     void colorMask(GCGLboolean red, GCGLboolean green, GCGLboolean blue, GCGLboolean alpha) final;
</span><span class="cx">     void compileShader(PlatformGLObject) final;
</span><span class="cx"> 
</span><del>-    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;
</del><ins>+#if !USE(ANGLE)
+    void compressedTexImage2D(GCGLenum target, GCGLint level, GCGLenum internalformat, GCGLsizei width, GCGLsizei height, GCGLint border, GCGLsizei imageSize, const void* data);
+    void compressedTexSubImage2D(GCGLenum target, GCGLint level, GCGLint xoffset, GCGLint yoffset, GCGLsizei width, GCGLsizei height, GCGLenum format, GCGLsizei imageSize, const void* data);
+#endif
</ins><span class="cx">     void copyTexImage2D(GCGLenum target, GCGLint level, GCGLenum internalformat, GCGLint x, GCGLint y, GCGLsizei width, GCGLsizei height, GCGLint border) final;
</span><span class="cx">     void copyTexSubImage2D(GCGLenum target, GCGLint level, GCGLint xoffset, GCGLint yoffset, GCGLint x, GCGLint y, GCGLsizei width, GCGLsizei height) final;
</span><span class="cx">     void cullFace(GCGLenum mode) final;
</span><span class="lines">@@ -293,7 +298,7 @@
</span><span class="cx"> 
</span><span class="cx">     void viewport(GCGLint x, GCGLint y, GCGLsizei width, GCGLsizei height) final;
</span><span class="cx"> 
</span><del>-    void reshape(int width, int height);
</del><ins>+    void reshape(int width, int height) final;
</ins><span class="cx"> 
</span><span class="cx">     void drawArraysInstanced(GCGLenum mode, GCGLint first, GCGLsizei count, GCGLsizei primcount) final;
</span><span class="cx">     void drawElementsInstanced(GCGLenum mode, GCGLsizei count, GCGLenum type, GCGLintptr offset, GCGLsizei primcount) final;
</span><span class="lines">@@ -307,11 +312,13 @@
</span><span class="cx"> 
</span><span class="cx">     // ========== WebGL2 entry points.
</span><span class="cx"> 
</span><del>-    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;
</del><ins>+#if !USE(ANGLE)
+    void bufferData(GCGLenum target, const void* data, GCGLenum usage, GCGLuint srcOffset, GCGLuint length);
+    void bufferSubData(GCGLenum target, GCGLintptr dstByteOffset, const void* srcData, GCGLuint srcOffset, GCGLuint length);
+    void getBufferSubData(GCGLenum target, GCGLintptr srcByteOffset, const void* dstData, GCGLuint dstOffset, GCGLuint length);
+#endif
+    void copyBufferSubData(GCGLenum readTarget, GCGLenum writeTarget, GCGLintptr readOffset, GCGLintptr writeOffset, GCGLsizeiptr size) final;
</ins><span class="cx"> 
</span><del>-    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;
</del><span class="cx">     void* mapBufferRange(GCGLenum target, GCGLintptr offset, GCGLsizeiptr length, GCGLbitfield access) final;
</span><span class="cx">     GCGLboolean unmapBuffer(GCGLenum target) final;
</span><span class="cx"> 
</span><span class="lines">@@ -407,15 +414,16 @@
</span><span class="cx"> 
</span><span class="cx">     GCGLuint getUniformBlockIndex(PlatformGLObject program, const String& uniformBlockName) final;
</span><span class="cx">     // getActiveUniformBlockParameter
</span><del>-    void getActiveUniformBlockiv(PlatformGLObject program, GCGLuint uniformBlockIndex, GCGLenum pname, GCGLint* params) final;
</del><span class="cx">     String getActiveUniformBlockName(PlatformGLObject program, GCGLuint uniformBlockIndex) final;
</span><span class="cx">     void uniformBlockBinding(PlatformGLObject program, GCGLuint uniformBlockIndex, GCGLuint uniformBlockBinding) final;
</span><span class="cx"> 
</span><del>-    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;
</del><ins>+#if !USE(ANGLE)
+    void compressedTexImage2D(GCGLenum target, GCGLint level, GCGLenum internalformat, GCGLsizei width, GCGLsizei height, GCGLint border, GCGLsizei imageSize, GCGLintptr offset);
+    void compressedTexImage2D(GCGLenum target, GCGLint level, GCGLenum internalformat, GCGLsizei width, GCGLsizei height, GCGLint border, const void* srcData, GCGLuint srcOffset, GCGLuint srcLengthOverride);
</ins><span class="cx"> 
</span><del>-    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;
</del><ins>+    void compressedTexSubImage2D(GCGLenum target, GCGLint level, GCGLint xoffset, GCGLint yoffset, GCGLsizei width, GCGLsizei height, GCGLenum format, GCGLsizei imageSize, GCGLintptr offset);
+    void compressedTexSubImage2D(GCGLenum target, GCGLint level, GCGLint xoffset, GCGLint yoffset, GCGLsizei width, GCGLsizei height, GCGLenum format, const void* srcData, GCGLuint srcOffset, GCGLuint srcLengthOverride);
+#endif
</ins><span class="cx"> 
</span><span class="cx">     void uniform1fv(GCGLint location, const GCGLfloat* data, GCGLuint srcOffset, GCGLuint srcLength) final;
</span><span class="cx">     void uniform2fv(GCGLint location, const GCGLfloat* data, GCGLuint srcOffset, GCGLuint srcLength) final;
</span><span class="lines">@@ -431,16 +439,18 @@
</span><span class="cx">     void uniformMatrix3fv(GCGLint location, GCGLboolean transpose, const GCGLfloat* data, GCGLuint srcOffset, GCGLuint srcLength) final;
</span><span class="cx">     void uniformMatrix4fv(GCGLint location, GCGLboolean transpose, const GCGLfloat* data, GCGLuint srcOffset, GCGLuint srcLength) final;
</span><span class="cx"> 
</span><del>-    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;
</del><ins>+#if !USE(ANGLE)
+    void readPixels(GCGLint x, GCGLint y, GCGLsizei width, GCGLsizei height, GCGLenum format, GCGLenum type, GCGLintptr offset);
+    void readPixels(GCGLint x, GCGLint y, GCGLsizei width, GCGLsizei height, GCGLenum format, GCGLenum type, const void* dstData, GCGLuint dstOffset);
+#endif
</ins><span class="cx"> 
</span><span class="cx">     // Helper methods.
</span><span class="cx"> 
</span><span class="cx">     void paintToCanvas(const unsigned char* imagePixels, const IntSize& imageSize, const IntSize& canvasSize, GraphicsContext&);
</span><span class="cx"> 
</span><del>-    void markContextChanged();
-    void markLayerComposited();
-    bool layerComposited() const;
</del><ins>+    void markContextChanged() final;
+    void markLayerComposited() final;
+    bool layerComposited() const final;
</ins><span class="cx">     void forceContextLost();
</span><span class="cx">     void recycleContext();
</span><span class="cx"> 
</span><span class="lines">@@ -448,19 +458,19 @@
</span><span class="cx">     // reset method is present to keep calling code simpler, so it
</span><span class="cx">     // doesn't have to know which buffers were allocated.
</span><span class="cx">     void resetBuffersToAutoClear();
</span><del>-    void setBuffersToAutoClear(GCGLbitfield);
-    GCGLbitfield getBuffersToAutoClear() const;
</del><ins>+    void setBuffersToAutoClear(GCGLbitfield) final;
+    GCGLbitfield getBuffersToAutoClear() const final;
</ins><span class="cx">     void enablePreserveDrawingBuffer() final;
</span><span class="cx"> 
</span><span class="cx">     void dispatchContextChangedNotification();
</span><del>-    void simulateContextChanged();
</del><ins>+    void simulateContextChanged() final;
</ins><span class="cx"> 
</span><del>-    void paintRenderingResultsToCanvas(ImageBuffer*);
-    RefPtr<ImageData> paintRenderingResultsToImageData();
-    bool paintCompositedResultsToCanvas(ImageBuffer*);
</del><ins>+    void paintRenderingResultsToCanvas(ImageBuffer*) final;
+    RefPtr<ImageData> paintRenderingResultsToImageData() final;
+    bool paintCompositedResultsToCanvas(ImageBuffer*) final;
</ins><span class="cx"> 
</span><span class="cx"> #if USE(OPENGL) && ENABLE(WEBGL2)
</span><del>-    void primitiveRestartIndex(GCGLuint) final;
</del><ins>+    void primitiveRestartIndex(GCGLuint);
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(COCOA) && PLATFORM(MAC)
</span><span class="lines">@@ -487,11 +497,8 @@
</span><span class="cx">     void deleteTexture(PlatformGLObject) final;
</span><span class="cx"> 
</span><span class="cx">     void synthesizeGLError(GCGLenum error) final;
</span><ins>+    bool moveErrorsToSyntheticErrorList() final;
</ins><span class="cx"> 
</span><del>-    // Read real OpenGL errors, and move them to the synthetic
-    // error list. Return true if at least one error is moved.
-    bool moveErrorsToSyntheticErrorList();
-
</del><span class="cx">     // Support for extensions. Returns a non-null object, though not
</span><span class="cx">     // all methods it contains may necessarily be supported on the
</span><span class="cx">     // current hardware. Must call ExtensionsGL::supports() to
</span><span class="lines">@@ -513,6 +520,10 @@
</span><span class="cx">     GraphicsContextGLCV* asCV() final;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><ins>+#if !USE(ANGLE)
+    static bool possibleFormatAndTypeForInternalFormat(GCGLenum internalFormat, GCGLenum& format, GCGLenum& type);
+#endif // !USE(ANGLE)
+
</ins><span class="cx"> private:
</span><span class="cx">     GraphicsContextGLOpenGL(GraphicsContextGLAttributes, HostWindow*, Destination = Destination::Offscreen, GraphicsContextGLOpenGL* sharedContext = nullptr);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsopenglGraphicsContextGLOpenGLCommoncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGLCommon.cpp (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGLCommon.cpp  2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGLCommon.cpp     2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -2943,14 +2943,6 @@
</span><span class="cx">     return 0;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void GraphicsContextGLOpenGL::getActiveUniformBlockiv(PlatformGLObject program, GCGLuint uniformBlockIndex, GCGLenum pname, GCGLint* params)
-{
-    UNUSED_PARAM(program);
-    UNUSED_PARAM(uniformBlockIndex);
-    UNUSED_PARAM(pname);
-    UNUSED_PARAM(params);
-}
-
</del><span class="cx"> String GraphicsContextGLOpenGL::getActiveUniformBlockName(PlatformGLObject program, GCGLuint uniformBlockIndex)
</span><span class="cx"> {
</span><span class="cx">     UNUSED_PARAM(program);
</span><span class="lines">@@ -2975,10 +2967,6 @@
</span><span class="cx">     return 0;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void GraphicsContextGLOpenGL::getActiveUniformBlockiv(PlatformGLObject, GCGLuint, GCGLenum, GCGLint*)
-{
-}
-
</del><span class="cx"> String GraphicsContextGLOpenGL::getActiveUniformBlockName(PlatformGLObject, GCGLuint)
</span><span class="cx"> {
</span><span class="cx">     return emptyString();
</span></span></pre></div>
<a id="trunkSourceWebKitChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/ChangeLog (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/ChangeLog    2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebKit/ChangeLog       2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -1,3 +1,18 @@
</span><ins>+2020-11-16  Kimmo Kinnunen  <kkinnunen@apple.com>
+
+        Final refactor for WebGL implementation to use only GraphicsContextGL
+        https://bugs.webkit.org/show_bug.cgi?id=218333
+
+        Reviewed by Simon Fraser.
+
+        Change MediaPlayerPrivate to use GraphicsContextGL abstract class
+        instead of GraphicsContextGLOpenGL concrete class, since the
+        calling code is doing the same change.
+
+        * WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:
+        (WebKit::MediaPlayerPrivateRemote::copyVideoTextureToPlatformTexture):
+        * WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
+
</ins><span class="cx"> 2020-11-16  Devin Rousso  <drousso@apple.com>
</span><span class="cx"> 
</span><span class="cx">         [iPad] nhl.com cannot select new video to play while video is playing with desktop UA
</span></span></pre></div>
<a id="trunkSourceWebKitWebProcessGPUmediaMediaPlayerPrivateRemotecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp    2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp       2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -805,7 +805,7 @@
</span><span class="cx">     notImplemented();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool MediaPlayerPrivateRemote::copyVideoTextureToPlatformTexture(GraphicsContextGLOpenGL*, PlatformGLObject, GCGLenum, GCGLint, GCGLenum, GCGLenum, GCGLenum, bool, bool)
</del><ins>+bool MediaPlayerPrivateRemote::copyVideoTextureToPlatformTexture(GraphicsContextGL*, PlatformGLObject, GCGLenum, GCGLint, GCGLenum, GCGLenum, GCGLenum, bool, bool)
</ins><span class="cx"> {
</span><span class="cx">     notImplemented();
</span><span class="cx">     return false;
</span></span></pre></div>
<a id="trunkSourceWebKitWebProcessGPUmediaMediaPlayerPrivateRemoteh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.h (269849 => 269850)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.h      2020-11-16 12:46:38 UTC (rev 269849)
+++ trunk/Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.h 2020-11-16 12:57:13 UTC (rev 269850)
</span><span class="lines">@@ -263,7 +263,7 @@
</span><span class="cx"> 
</span><span class="cx">     void paint(WebCore::GraphicsContext&, const WebCore::FloatRect&) final;
</span><span class="cx">     void paintCurrentFrameInContext(WebCore::GraphicsContext&, const WebCore::FloatRect&) final;
</span><del>-    bool copyVideoTextureToPlatformTexture(WebCore::GraphicsContextGLOpenGL*, PlatformGLObject, GCGLenum, GCGLint, GCGLenum, GCGLenum, GCGLenum, bool, bool) final;
</del><ins>+    bool copyVideoTextureToPlatformTexture(WebCore::GraphicsContextGL*, PlatformGLObject, GCGLenum, GCGLint, GCGLenum, GCGLenum, GCGLenum, bool, bool) final;
</ins><span class="cx">     RefPtr<WebCore::NativeImage> nativeImageForCurrentTime() final;
</span><span class="cx"> 
</span><span class="cx">     WebCore::MediaPlayerIdentifier identifier() const final;
</span></span></pre>
</div>
</div>

</body>
</html>