| Differences between
and this patch
- a/Source/WebCore/ChangeLog +126 lines
Lines 1-3 a/Source/WebCore/ChangeLog_sec1
1
2020-12-04  Rini Patel  <rini_patel@apple.com>
2
3
        Remove unused functions from GraphicsContextGL and ExtensionsGL
4
        https://bugs.webkit.org/show_bug.cgi?id=218896
5
6
        Reviewed by NOBODY (OOPS!).
7
8
        Remove unused functions from GraphicsContextGL and ExtensionsGL
9
        They're dead code and make it harder to implement the GPU Process version.
10
11
        - If the function is unused, remove it fully
12
        - If the function is unused in USE(ANGLE) WebGL part, remove the function from GraphicsContextGL and ANGLE GraphicsContextGLOpenGL
13
14
        * html/canvas/WebGLRenderingContextBase.cpp:
15
        (WebCore::WebGLRenderingContextBase::create):
16
        * platform/graphics/ExtensionsGL.h:
17
        * platform/graphics/angle/ExtensionsGLANGLE.cpp:
18
        (WebCore::ExtensionsGLANGLE::ExtensionsGLANGLE):
19
        (WebCore::ExtensionsGLANGLE::initializeAvailableExtensions):
20
        (WebCore::ExtensionsGLANGLE::blitFramebufferANGLE): Deleted.
21
        (WebCore::ExtensionsGLANGLE::renderbufferStorageMultisampleANGLE): Deleted.
22
        (WebCore::ExtensionsGLANGLE::insertEventMarkerEXT): Deleted.
23
        (WebCore::ExtensionsGLANGLE::pushGroupMarkerEXT): Deleted.
24
        (WebCore::ExtensionsGLANGLE::popGroupMarkerEXT): Deleted.
25
        (WebCore::ExtensionsGLANGLE::readPixelsRobustANGLE): Deleted.
26
        (WebCore::ExtensionsGLANGLE::texParameterfvRobustANGLE): Deleted.
27
        (WebCore::ExtensionsGLANGLE::texParameterivRobustANGLE): Deleted.
28
        (WebCore::ExtensionsGLANGLE::getQueryivRobustANGLE): Deleted.
29
        (WebCore::ExtensionsGLANGLE::getQueryObjectuivRobustANGLE): Deleted.
30
        (WebCore::ExtensionsGLANGLE::getBufferPointervRobustANGLE): Deleted.
31
        (WebCore::ExtensionsGLANGLE::getVertexAttribIivRobustANGLE): Deleted.
32
        (WebCore::ExtensionsGLANGLE::getVertexAttribIuivRobustANGLE): Deleted.
33
        (WebCore::ExtensionsGLANGLE::getUniformuivRobustANGLE): Deleted.
34
        (WebCore::ExtensionsGLANGLE::getBufferParameteri64vRobustANGLE): Deleted.
35
        (WebCore::ExtensionsGLANGLE::samplerParameterivRobustANGLE): Deleted.
36
        (WebCore::ExtensionsGLANGLE::samplerParameterfvRobustANGLE): Deleted.
37
        (WebCore::ExtensionsGLANGLE::getSamplerParameterivRobustANGLE): Deleted.
38
        (WebCore::ExtensionsGLANGLE::getSamplerParameterfvRobustANGLE): Deleted.
39
        (WebCore::ExtensionsGLANGLE::getFramebufferParameterivRobustANGLE): Deleted.
40
        (WebCore::ExtensionsGLANGLE::getProgramInterfaceivRobustANGLE): Deleted.
41
        (WebCore::ExtensionsGLANGLE::getBooleani_vRobustANGLE): Deleted.
42
        (WebCore::ExtensionsGLANGLE::getMultisamplefvRobustANGLE): Deleted.
43
        (WebCore::ExtensionsGLANGLE::getTexLevelParameterivRobustANGLE): Deleted.
44
        (WebCore::ExtensionsGLANGLE::getTexLevelParameterfvRobustANGLE): Deleted.
45
        (WebCore::ExtensionsGLANGLE::getPointervRobustANGLERobustANGLE): Deleted.
46
        (WebCore::ExtensionsGLANGLE::getnUniformfvRobustANGLE): Deleted.
47
        (WebCore::ExtensionsGLANGLE::getnUniformivRobustANGLE): Deleted.
48
        (WebCore::ExtensionsGLANGLE::getnUniformuivRobustANGLE): Deleted.
49
        (WebCore::ExtensionsGLANGLE::texParameterIivRobustANGLE): Deleted.
50
        (WebCore::ExtensionsGLANGLE::texParameterIuivRobustANGLE): Deleted.
51
        (WebCore::ExtensionsGLANGLE::getTexParameterIivRobustANGLE): Deleted.
52
        (WebCore::ExtensionsGLANGLE::getTexParameterIuivRobustANGLE): Deleted.
53
        (WebCore::ExtensionsGLANGLE::samplerParameterIivRobustANGLE): Deleted.
54
        (WebCore::ExtensionsGLANGLE::samplerParameterIuivRobustANGLE): Deleted.
55
        (WebCore::ExtensionsGLANGLE::getSamplerParameterIivRobustANGLE): Deleted.
56
        (WebCore::ExtensionsGLANGLE::getSamplerParameterIuivRobustANGLE): Deleted.
57
        (WebCore::ExtensionsGLANGLE::getQueryObjectivRobustANGLE): Deleted.
58
        (WebCore::ExtensionsGLANGLE::getQueryObjecti64vRobustANGLE): Deleted.
59
        (WebCore::ExtensionsGLANGLE::getQueryObjectui64vRobustANGLE): Deleted.
60
        * platform/graphics/angle/ExtensionsGLANGLE.h:
61
        * platform/graphics/opengl/ExtensionsGLOpenGL.cpp:
62
        (WebCore::ExtensionsGLOpenGL::blitFramebufferANGLE): Deleted.
63
        (WebCore::ExtensionsGLOpenGL::renderbufferStorageMultisampleANGLE): Deleted.
64
        (WebCore::ExtensionsGLOpenGL::insertEventMarkerEXT): Deleted.
65
        (WebCore::ExtensionsGLOpenGL::pushGroupMarkerEXT): Deleted.
66
        (WebCore::ExtensionsGLOpenGL::popGroupMarkerEXT): Deleted.
67
        * platform/graphics/opengl/ExtensionsGLOpenGL.h:
68
        * platform/graphics/opengl/ExtensionsGLOpenGLCommon.cpp:
69
        (WebCore::ExtensionsGLOpenGLCommon::readPixelsRobustANGLE): Deleted.
70
        (WebCore::ExtensionsGLOpenGLCommon::texParameterfvRobustANGLE): Deleted.
71
        (WebCore::ExtensionsGLOpenGLCommon::texParameterivRobustANGLE): Deleted.
72
        (WebCore::ExtensionsGLOpenGLCommon::getQueryivRobustANGLE): Deleted.
73
        (WebCore::ExtensionsGLOpenGLCommon::getQueryObjectuivRobustANGLE): Deleted.
74
        (WebCore::ExtensionsGLOpenGLCommon::getBufferPointervRobustANGLE): Deleted.
75
        (WebCore::ExtensionsGLOpenGLCommon::getVertexAttribIivRobustANGLE): Deleted.
76
        (WebCore::ExtensionsGLOpenGLCommon::getVertexAttribIuivRobustANGLE): Deleted.
77
        (WebCore::ExtensionsGLOpenGLCommon::getUniformuivRobustANGLE): Deleted.
78
        (WebCore::ExtensionsGLOpenGLCommon::getBufferParameteri64vRobustANGLE): Deleted.
79
        (WebCore::ExtensionsGLOpenGLCommon::samplerParameterivRobustANGLE): Deleted.
80
        (WebCore::ExtensionsGLOpenGLCommon::samplerParameterfvRobustANGLE): Deleted.
81
        (WebCore::ExtensionsGLOpenGLCommon::getSamplerParameterivRobustANGLE): Deleted.
82
        (WebCore::ExtensionsGLOpenGLCommon::getSamplerParameterfvRobustANGLE): Deleted.
83
        (WebCore::ExtensionsGLOpenGLCommon::getFramebufferParameterivRobustANGLE): Deleted.
84
        (WebCore::ExtensionsGLOpenGLCommon::getProgramInterfaceivRobustANGLE): Deleted.
85
        (WebCore::ExtensionsGLOpenGLCommon::getBooleani_vRobustANGLE): Deleted.
86
        (WebCore::ExtensionsGLOpenGLCommon::getMultisamplefvRobustANGLE): Deleted.
87
        (WebCore::ExtensionsGLOpenGLCommon::getTexLevelParameterivRobustANGLE): Deleted.
88
        (WebCore::ExtensionsGLOpenGLCommon::getTexLevelParameterfvRobustANGLE): Deleted.
89
        (WebCore::ExtensionsGLOpenGLCommon::getPointervRobustANGLERobustANGLE): Deleted.
90
        (WebCore::ExtensionsGLOpenGLCommon::getnUniformfvRobustANGLE): Deleted.
91
        (WebCore::ExtensionsGLOpenGLCommon::getnUniformivRobustANGLE): Deleted.
92
        (WebCore::ExtensionsGLOpenGLCommon::getnUniformuivRobustANGLE): Deleted.
93
        (WebCore::ExtensionsGLOpenGLCommon::texParameterIivRobustANGLE): Deleted.
94
        (WebCore::ExtensionsGLOpenGLCommon::texParameterIuivRobustANGLE): Deleted.
95
        (WebCore::ExtensionsGLOpenGLCommon::getTexParameterIivRobustANGLE): Deleted.
96
        (WebCore::ExtensionsGLOpenGLCommon::getTexParameterIuivRobustANGLE): Deleted.
97
        (WebCore::ExtensionsGLOpenGLCommon::samplerParameterIivRobustANGLE): Deleted.
98
        (WebCore::ExtensionsGLOpenGLCommon::samplerParameterIuivRobustANGLE): Deleted.
99
        (WebCore::ExtensionsGLOpenGLCommon::getSamplerParameterIivRobustANGLE): Deleted.
100
        (WebCore::ExtensionsGLOpenGLCommon::getSamplerParameterIuivRobustANGLE): Deleted.
101
        (WebCore::ExtensionsGLOpenGLCommon::getQueryObjectivRobustANGLE): Deleted.
102
        (WebCore::ExtensionsGLOpenGLCommon::getQueryObjecti64vRobustANGLE): Deleted.
103
        (WebCore::ExtensionsGLOpenGLCommon::getQueryObjectui64vRobustANGLE): Deleted.
104
        * platform/graphics/opengl/ExtensionsGLOpenGLCommon.h:
105
        (WebCore::ExtensionsGLOpenGLCommon::isNVIDIA const):
106
        (WebCore::ExtensionsGLOpenGLCommon::isAMD const):
107
        (WebCore::ExtensionsGLOpenGLCommon::isIntel const):
108
        (WebCore::ExtensionsGLOpenGLCommon::isImagination const):
109
        (WebCore::ExtensionsGLOpenGLCommon::vendor const):
110
        (WebCore::ExtensionsGLOpenGLCommon::requiresBuiltInFunctionEmulation const):
111
        (WebCore::ExtensionsGLOpenGLCommon::requiresRestrictedMaximumTextureSize const):
112
        * platform/graphics/opengl/ExtensionsGLOpenGLES.cpp:
113
        (WebCore::ExtensionsGLOpenGLES::blitFramebufferANGLE): Deleted.
114
        (WebCore::ExtensionsGLOpenGLES::insertEventMarkerEXT): Deleted.
115
        (WebCore::ExtensionsGLOpenGLES::pushGroupMarkerEXT): Deleted.
116
        (WebCore::ExtensionsGLOpenGLES::popGroupMarkerEXT): Deleted.
117
        * platform/graphics/opengl/ExtensionsGLOpenGLES.h:
118
        * platform/graphics/opengl/GraphicsContextGLOpenGL.h:
119
        * platform/graphics/opengl/GraphicsContextGLOpenGLBase.cpp:
120
        (WebCore::GraphicsContextGLOpenGL::reshapeFBOs):
121
        (WebCore::GraphicsContextGLOpenGL::getExtensions):
122
        * platform/graphics/opengl/GraphicsContextGLOpenGLCommon.cpp:
123
        (WebCore::GraphicsContextGLOpenGL::validateDepthStencil):
124
        * platform/graphics/opengl/GraphicsContextGLOpenGLES.cpp:
125
        (WebCore::GraphicsContextGLOpenGL::getExtensions):
126
1
2020-12-04  Peng Liu  <peng.liu6@apple.com>
127
2020-12-04  Peng Liu  <peng.liu6@apple.com>
2
128
3
        [MSE] Move track buffer management from SourceBuffer to SourceBufferPrivate
129
        [MSE] Move track buffer management from SourceBuffer to SourceBufferPrivate
- a/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp -4 lines
Lines 742-751 std::unique_ptr<WebGLRenderingContextBase> WebGLRenderingContextBase::create(Can a/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp_sec1
742
        return nullptr;
742
        return nullptr;
743
    }
743
    }
744
744
745
    auto& extensions = context->getExtensions();
746
    if (extensions.supports("GL_EXT_debug_marker"_s))
747
        extensions.pushGroupMarkerEXT("WebGLRenderingContext"_s);
748
749
    std::unique_ptr<WebGLRenderingContextBase> renderingContext;
745
    std::unique_ptr<WebGLRenderingContextBase> renderingContext;
750
#if ENABLE(WEBGL2)
746
#if ENABLE(WEBGL2)
751
    if (type == "webgl2")
747
    if (type == "webgl2")
- a/Source/WebCore/platform/graphics/ExtensionsGL.h -62 lines
Lines 278-289 public: a/Source/WebCore/platform/graphics/ExtensionsGL.h_sec1
278
    // externally.
278
    // externally.
279
    virtual GCGLint getGraphicsResetStatusARB() = 0;
279
    virtual GCGLint getGraphicsResetStatusARB() = 0;
280
280
281
    // GL_ANGLE_framebuffer_blit
282
    virtual void blitFramebufferANGLE(GCGLint srcX0, GCGLint srcY0, GCGLint srcX1, GCGLint srcY1, GCGLint dstX0, GCGLint dstY0, GCGLint dstX1, GCGLint dstY1, GCGLbitfield mask, GCGLenum filter) = 0;
283
284
    // GL_ANGLE_framebuffer_multisample
285
    virtual void renderbufferStorageMultisampleANGLE(GCGLenum target, GCGLsizei samples, GCGLenum internalformat, GCGLsizei width, GCGLsizei height) = 0;
286
287
    // GL_OES_vertex_array_object
281
    // GL_OES_vertex_array_object
288
    virtual PlatformGLObject createVertexArrayOES() = 0;
282
    virtual PlatformGLObject createVertexArrayOES() = 0;
289
    virtual void deleteVertexArrayOES(PlatformGLObject) = 0;
283
    virtual void deleteVertexArrayOES(PlatformGLObject) = 0;
Lines 293-303 public: a/Source/WebCore/platform/graphics/ExtensionsGL.h_sec2
293
    // GL_ANGLE_translated_shader_source
287
    // GL_ANGLE_translated_shader_source
294
    virtual String getTranslatedShaderSourceANGLE(PlatformGLObject) = 0;
288
    virtual String getTranslatedShaderSourceANGLE(PlatformGLObject) = 0;
295
289
296
    // GL_EXT_debug_marker
297
    virtual void insertEventMarkerEXT(const String&) = 0;
298
    virtual void pushGroupMarkerEXT(const String&) = 0;
299
    virtual void popGroupMarkerEXT() = 0;
300
301
    // GL_ARB_draw_buffers / GL_EXT_draw_buffers
290
    // GL_ARB_draw_buffers / GL_EXT_draw_buffers
302
    virtual void drawBuffersEXT(GCGLSpan<const GCGLenum> bufs) = 0;
291
    virtual void drawBuffersEXT(GCGLSpan<const GCGLenum> bufs) = 0;
303
292
Lines 306-352 public: a/Source/WebCore/platform/graphics/ExtensionsGL.h_sec3
306
    virtual void drawElementsInstancedANGLE(GCGLenum mode, GCGLsizei count, GCGLenum type, GCGLvoidptr offset, GCGLsizei primcount) = 0;
295
    virtual void drawElementsInstancedANGLE(GCGLenum mode, GCGLsizei count, GCGLenum type, GCGLvoidptr offset, GCGLsizei primcount) = 0;
307
    virtual void vertexAttribDivisorANGLE(GCGLuint index, GCGLuint divisor) = 0;
296
    virtual void vertexAttribDivisorANGLE(GCGLuint index, GCGLuint divisor) = 0;
308
297
309
    // GL_ANGLE_robust_client_memory
310
    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;
311
    virtual void texParameterfvRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, const GCGLfloat* params) = 0;
312
    virtual void texParameterivRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, const GCGLint* params) = 0;
313
314
    virtual void getQueryivRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, GCGLsizei* length, GCGLint* params) = 0;
315
    virtual void getQueryObjectuivRobustANGLE(GCGLuint id, GCGLenum pname, GCGLsizei bufSize, GCGLsizei* length, GCGLuint* params) = 0;
316
    virtual void getBufferPointervRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, GCGLsizei* length, GCGLvoid** params) = 0;
317
    virtual void getVertexAttribIivRobustANGLE(GCGLuint index, GCGLenum pname, GCGLsizei bufSize, GCGLsizei* length, GCGLint* params) = 0;
318
    virtual void getVertexAttribIuivRobustANGLE(GCGLuint index, GCGLenum pname, GCGLsizei bufSize, GCGLsizei* length, GCGLuint* params) = 0;
319
    virtual void getUniformuivRobustANGLE(GCGLuint program, GCGLint location, GCGLsizei bufSize, GCGLsizei* length, GCGLuint* params) = 0;
320
    virtual void getBufferParameteri64vRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, GCGLsizei* length, GCGLint64* params) = 0;
321
    virtual void samplerParameterivRobustANGLE(GCGLuint sampler, GCGLenum pname, GCGLsizei bufSize, const GCGLint* param) = 0;
322
    virtual void samplerParameterfvRobustANGLE(GCGLuint sampler, GCGLenum pname, GCGLsizei bufSize, const GCGLfloat* param) = 0;
323
    virtual void getSamplerParameterivRobustANGLE(GCGLuint sampler, GCGLenum pname, GCGLsizei bufSize, GCGLsizei* length, GCGLint* params) = 0;
324
    virtual void getSamplerParameterfvRobustANGLE(GCGLuint sampler, GCGLenum pname, GCGLsizei bufSize, GCGLsizei* length, GCGLfloat* params) = 0;
325
326
    virtual void getFramebufferParameterivRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, GCGLsizei* length, GCGLint* params) = 0;
327
    virtual void getProgramInterfaceivRobustANGLE(GCGLuint program, GCGLenum programInterface, GCGLenum pname, GCGLsizei bufSize, GCGLsizei* length, GCGLint* params) = 0;
328
    virtual void getBooleani_vRobustANGLE(GCGLenum target, GCGLuint index, GCGLsizei bufSize, GCGLsizei* length, GCGLboolean* data) = 0; // NOLINT
329
    virtual void getMultisamplefvRobustANGLE(GCGLenum pname, GCGLuint index, GCGLsizei bufSize, GCGLsizei* length, GCGLfloat* val) = 0;
330
    virtual void getTexLevelParameterivRobustANGLE(GCGLenum target, GCGLint level, GCGLenum pname, GCGLsizei bufSize, GCGLsizei* length, GCGLint* params) = 0;
331
    virtual void getTexLevelParameterfvRobustANGLE(GCGLenum target, GCGLint level, GCGLenum pname, GCGLsizei bufSize, GCGLsizei* length, GCGLfloat* params) = 0;
332
333
    virtual void getPointervRobustANGLERobustANGLE(GCGLenum pname, GCGLsizei bufSize, GCGLsizei* length, GCGLvoid** params) = 0;
334
    virtual void getnUniformfvRobustANGLE(GCGLuint program, GCGLint location, GCGLsizei bufSize, GCGLsizei* length, GCGLfloat* params) = 0;
335
    virtual void getnUniformivRobustANGLE(GCGLuint program, GCGLint location, GCGLsizei bufSize, GCGLsizei* length, GCGLint* params) = 0;
336
    virtual void getnUniformuivRobustANGLE(GCGLuint program, GCGLint location, GCGLsizei bufSize, GCGLsizei* length, GCGLuint* params) = 0;
337
    virtual void texParameterIivRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, const GCGLint* params) = 0;
338
    virtual void texParameterIuivRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, const GCGLuint* params) = 0;
339
    virtual void getTexParameterIivRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, GCGLsizei* length, GCGLint* params) = 0;
340
    virtual void getTexParameterIuivRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, GCGLsizei* length, GCGLuint* params) = 0;
341
    virtual void samplerParameterIivRobustANGLE(GCGLuint sampler, GCGLenum pname, GCGLsizei bufSize, const GCGLint* param) = 0;
342
    virtual void samplerParameterIuivRobustANGLE(GCGLuint sampler, GCGLenum pname, GCGLsizei bufSize, const GCGLuint* param) = 0;
343
    virtual void getSamplerParameterIivRobustANGLE(GCGLuint sampler, GCGLenum pname, GCGLsizei bufSize, GCGLsizei* length, GCGLint* params) = 0;
344
    virtual void getSamplerParameterIuivRobustANGLE(GCGLuint sampler, GCGLenum pname, GCGLsizei bufSize, GCGLsizei* length, GCGLuint* params) = 0;
345
346
    virtual void getQueryObjectivRobustANGLE(GCGLuint id, GCGLenum pname, GCGLsizei bufSize, GCGLsizei* length, GCGLint* params) = 0;
347
    virtual void getQueryObjecti64vRobustANGLE(GCGLuint id, GCGLenum pname, GCGLsizei bufSize, GCGLsizei* length, GCGLint64* params) = 0;
348
    virtual void getQueryObjectui64vRobustANGLE(GCGLuint id, GCGLenum pname, GCGLsizei bufSize, GCGLsizei* length, GCGLuint64* params) = 0;
349
350
    // Other functions.
298
    // Other functions.
351
#if !USE(ANGLE)
299
#if !USE(ANGLE)
352
    // EXT Robustness - uses getGraphicsResetStatusARB
300
    // EXT Robustness - uses getGraphicsResetStatusARB
Lines 354-369 public: a/Source/WebCore/platform/graphics/ExtensionsGL.h_sec4
354
    virtual void getnUniformfvEXT(GCGLuint program, GCGLint location, GCGLsizei bufSize, GCGLfloat* params) = 0;
302
    virtual void getnUniformfvEXT(GCGLuint program, GCGLint location, GCGLsizei bufSize, GCGLfloat* params) = 0;
355
    virtual void getnUniformivEXT(GCGLuint program, GCGLint location, GCGLsizei bufSize, GCGLint* params) = 0;
303
    virtual void getnUniformivEXT(GCGLuint program, GCGLint location, GCGLsizei bufSize, GCGLint* params) = 0;
356
304
357
    virtual bool isNVIDIA() = 0;
358
    virtual bool isAMD() = 0;
359
    virtual bool isIntel() = 0;
360
    virtual bool isImagination() = 0;
361
    virtual String vendor() = 0;
362
363
    // Some configurations have bugs regarding built-in functions in their OpenGL drivers
364
    // that must be avoided. Ports should implement these flags on such configurations.
365
    virtual bool requiresBuiltInFunctionEmulation() = 0;
366
    virtual bool requiresRestrictedMaximumTextureSize() = 0;
367
#endif
305
#endif
368
306
369
};
307
};
- a/Source/WebCore/platform/graphics/angle/ExtensionsGLANGLE.cpp -338 / +7 lines
Lines 43-52 typedef void* GLeglContext; a/Source/WebCore/platform/graphics/angle/ExtensionsGLANGLE.cpp_sec1
43
43
44
namespace WebCore {
44
namespace WebCore {
45
45
46
ExtensionsGLANGLE::ExtensionsGLANGLE(GraphicsContextGLOpenGL* context, bool useIndexedGetString)
46
ExtensionsGLANGLE::ExtensionsGLANGLE(GraphicsContextGLOpenGL* context)
47
    : m_initializedAvailableExtensions(false)
47
    : m_initializedAvailableExtensions(false)
48
    , m_context(context)
48
    , m_context(context)
49
    , m_useIndexedGetString(useIndexedGetString)
50
{
49
{
51
}
50
}
52
51
Lines 109-150 String ExtensionsGLANGLE::getTranslatedShaderSourceANGLE(PlatformGLObject shader a/Source/WebCore/platform/graphics/angle/ExtensionsGLANGLE.cpp_sec2
109
108
110
void ExtensionsGLANGLE::initializeAvailableExtensions()
109
void ExtensionsGLANGLE::initializeAvailableExtensions()
111
{
110
{
112
    if (m_useIndexedGetString) {
111
    String extensionsString = getExtensions();
113
        GLint numExtensions = 0;
112
    for (auto& extension : extensionsString.split(' '))
114
        gl::GetIntegerv(GL_NUM_EXTENSIONS, &numExtensions);
113
        m_availableExtensions.add(extension);
115
        for (GLint i = 0; i < numExtensions; ++i)
114
    extensionsString = String(reinterpret_cast<const char*>(gl::GetString(GL_REQUESTABLE_EXTENSIONS_ANGLE)));
116
            m_availableExtensions.add(gl::GetStringi(GL_EXTENSIONS, i));
115
    for (auto& extension : extensionsString.split(' '))
117
        gl::GetIntegerv(GL_NUM_REQUESTABLE_EXTENSIONS_ANGLE, &numExtensions);
116
        m_requestableExtensions.add(extension);
118
        for (GLint i = 0; i < numExtensions; ++i)
119
            m_requestableExtensions.add(gl::GetStringi(GL_REQUESTABLE_EXTENSIONS_ANGLE, i));
120
    } else {
121
        String extensionsString = getExtensions();
122
        for (auto& extension : extensionsString.split(' '))
123
            m_availableExtensions.add(extension);
124
        extensionsString = String(reinterpret_cast<const char*>(gl::GetString(GL_REQUESTABLE_EXTENSIONS_ANGLE)));
125
        for (auto& extension : extensionsString.split(' '))
126
            m_requestableExtensions.add(extension);
127
    }
128
    m_initializedAvailableExtensions = true;
117
    m_initializedAvailableExtensions = true;
129
}
118
}
130
119
131
void ExtensionsGLANGLE::blitFramebufferANGLE(GCGLint srcX0, GCGLint srcY0, GCGLint srcX1, GCGLint srcY1, GCGLint dstX0, GCGLint dstY0, GCGLint dstX1, GCGLint dstY1, GCGLbitfield mask, GCGLenum filter)
132
{
133
    // FIXME: consider adding support for APPLE_framebuffer_multisample.
134
    if (!m_context->makeContextCurrent())
135
        return;
136
137
    gl::BlitFramebufferANGLE(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
138
}
139
140
void ExtensionsGLANGLE::renderbufferStorageMultisampleANGLE(GCGLenum target, GCGLsizei samples, GCGLenum internalformat, GCGLsizei width, GCGLsizei height)
141
{
142
    if (!m_context->makeContextCurrent())
143
        return;
144
145
    gl::RenderbufferStorageMultisampleANGLE(target, samples, internalformat, width, height);
146
}
147
148
PlatformGLObject ExtensionsGLANGLE::createVertexArrayOES()
120
PlatformGLObject ExtensionsGLANGLE::createVertexArrayOES()
149
{
121
{
150
    if (!m_context->makeContextCurrent())
122
    if (!m_context->makeContextCurrent())
Lines 185-208 void ExtensionsGLANGLE::bindVertexArrayOES(PlatformGLObject array) a/Source/WebCore/platform/graphics/angle/ExtensionsGLANGLE.cpp_sec3
185
    gl::BindVertexArrayOES(array);
157
    gl::BindVertexArrayOES(array);
186
}
158
}
187
159
188
void ExtensionsGLANGLE::insertEventMarkerEXT(const String&)
189
{
190
    // FIXME: implement this function and add GL_EXT_debug_marker in supports().
191
    return;
192
}
193
194
void ExtensionsGLANGLE::pushGroupMarkerEXT(const String&)
195
{
196
    // FIXME: implement this function and add GL_EXT_debug_marker in supports().
197
    return;
198
}
199
200
void ExtensionsGLANGLE::popGroupMarkerEXT(void)
201
{
202
    // FIXME: implement this function and add GL_EXT_debug_marker in supports().
203
    return;
204
}
205
206
bool ExtensionsGLANGLE::supportsExtension(const String& name)
160
bool ExtensionsGLANGLE::supportsExtension(const String& name)
207
{
161
{
208
    return m_availableExtensions.contains(name) || m_requestableExtensions.contains(name);
162
    return m_availableExtensions.contains(name) || m_requestableExtensions.contains(name);
Lines 258-548 GCGLenum ExtensionsGLANGLE::adjustWebGL1TextureInternalFormat(GCGLenum internalf a/Source/WebCore/platform/graphics/angle/ExtensionsGLANGLE.cpp_sec4
258
    return internalformat;
212
    return internalformat;
259
}
213
}
260
214
261
// GL_ANGLE_robust_client_memory
262
void ExtensionsGLANGLE::readPixelsRobustANGLE(int x, int y, GCGLsizei width, GCGLsizei height, GCGLenum format, GCGLenum type, GCGLsizei bufSize, GCGLsizei *length, GCGLsizei *columns, GCGLsizei *rows, void *pixels)
263
{
264
    if (!m_context->makeContextCurrent())
265
        return;
266
267
    gl::ReadPixelsRobustANGLE(x, y, width, height, format, type, bufSize, length, columns, rows, pixels);
268
}
269
270
void ExtensionsGLANGLE::texParameterfvRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, const GCGLfloat *params)
271
{
272
    if (!m_context->makeContextCurrent())
273
        return;
274
275
    gl::TexParameterfvRobustANGLE(target, pname, bufSize, params);
276
}
277
278
void ExtensionsGLANGLE::texParameterivRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, const GCGLint *params)
279
{
280
    if (!m_context->makeContextCurrent())
281
        return;
282
283
    gl::TexParameterivRobustANGLE(target, pname, bufSize, params);
284
}
285
286
void ExtensionsGLANGLE::getQueryivRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params)
287
{
288
    if (!m_context->makeContextCurrent())
289
        return;
290
291
    gl::GetQueryivRobustANGLE(target, pname, bufSize, length, params);
292
}
293
294
void ExtensionsGLANGLE::getQueryObjectuivRobustANGLE(GCGLuint id, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLuint *params)
295
{
296
    if (!m_context->makeContextCurrent())
297
        return;
298
299
    gl::GetQueryObjectuivRobustANGLE(id, pname, bufSize, length, params);
300
}
301
302
void ExtensionsGLANGLE::getBufferPointervRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, void **params)
303
{
304
    if (!m_context->makeContextCurrent())
305
        return;
306
307
    gl::GetBufferPointervRobustANGLE(target, pname, bufSize, length, params);
308
}
309
310
void ExtensionsGLANGLE::getVertexAttribIivRobustANGLE(GCGLuint index, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params)
311
{
312
    if (!m_context->makeContextCurrent())
313
        return;
314
315
    gl::GetVertexAttribIivRobustANGLE(index, pname, bufSize, length, params);
316
}
317
318
void ExtensionsGLANGLE::getVertexAttribIuivRobustANGLE(GCGLuint index, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLuint *params)
319
{
320
    if (!m_context->makeContextCurrent())
321
        return;
322
323
    gl::GetVertexAttribIuivRobustANGLE(index, pname, bufSize, length, params);
324
}
325
326
void ExtensionsGLANGLE::getUniformuivRobustANGLE(GCGLuint program, GCGLint location, GCGLsizei bufSize, GCGLsizei *length, GCGLuint *params)
327
{
328
    if (!m_context->makeContextCurrent())
329
        return;
330
331
    gl::GetUniformuivRobustANGLE(program, location, bufSize, length, params);
332
}
333
334
void ExtensionsGLANGLE::getBufferParameteri64vRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint64 *params)
335
{
336
    if (!m_context->makeContextCurrent())
337
        return;
338
339
    gl::GetBufferParameteri64vRobustANGLE(target, pname, bufSize, length, reinterpret_cast<GLint64*>(params));
340
}
341
342
void ExtensionsGLANGLE::samplerParameterivRobustANGLE(GCGLuint sampler, GCGLenum pname, GCGLsizei bufSize, const GCGLint *param)
343
{
344
    if (!m_context->makeContextCurrent())
345
        return;
346
347
    gl::SamplerParameterivRobustANGLE(sampler, pname, bufSize, param);
348
}
349
350
void ExtensionsGLANGLE::samplerParameterfvRobustANGLE(GCGLuint sampler, GCGLenum pname, GCGLsizei bufSize, const GCGLfloat *param)
351
{
352
    if (!m_context->makeContextCurrent())
353
        return;
354
355
    gl::SamplerParameterfvRobustANGLE(sampler, pname, bufSize, param);
356
}
357
358
void ExtensionsGLANGLE::getSamplerParameterivRobustANGLE(GCGLuint sampler, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params)
359
{
360
    if (!m_context->makeContextCurrent())
361
        return;
362
363
    gl::GetSamplerParameterivRobustANGLE(sampler, pname, bufSize, length, params);
364
}
365
366
void ExtensionsGLANGLE::getSamplerParameterfvRobustANGLE(GCGLuint sampler, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLfloat *params)
367
{
368
    if (!m_context->makeContextCurrent())
369
        return;
370
371
    gl::GetSamplerParameterfvRobustANGLE(sampler, pname, bufSize, length, params);
372
}
373
374
375
void ExtensionsGLANGLE::getFramebufferParameterivRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params)
376
{
377
    if (!m_context->makeContextCurrent())
378
        return;
379
380
    gl::GetFramebufferParameterivRobustANGLE(target, pname, bufSize, length, params);
381
}
382
383
void ExtensionsGLANGLE::getProgramInterfaceivRobustANGLE(GCGLuint program, GCGLenum programInterface, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params)
384
{
385
    if (!m_context->makeContextCurrent())
386
        return;
387
388
    gl::GetProgramInterfaceivRobustANGLE(program, programInterface, pname, bufSize, length, params);
389
}
390
391
void ExtensionsGLANGLE::getBooleani_vRobustANGLE(GCGLenum target, GCGLuint index, GCGLsizei bufSize, GCGLsizei *length, GCGLboolean *data)
392
{
393
    if (!m_context->makeContextCurrent())
394
        return;
395
396
    gl::GetBooleani_vRobustANGLE(target, index, bufSize, length, data);
397
}
398
399
void ExtensionsGLANGLE::getMultisamplefvRobustANGLE(GCGLenum pname, GCGLuint index, GCGLsizei bufSize, GCGLsizei *length, GCGLfloat *val)
400
{
401
    if (!m_context->makeContextCurrent())
402
        return;
403
404
    gl::GetMultisamplefvRobustANGLE(pname, index, bufSize, length, val);
405
}
406
407
void ExtensionsGLANGLE::getTexLevelParameterivRobustANGLE(GCGLenum target, GCGLint level, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params)
408
{
409
    if (!m_context->makeContextCurrent())
410
        return;
411
412
    gl::GetTexLevelParameterivRobustANGLE(target, level, pname, bufSize, length, params);
413
}
414
415
void ExtensionsGLANGLE::getTexLevelParameterfvRobustANGLE(GCGLenum target, GCGLint level, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLfloat *params)
416
{
417
    if (!m_context->makeContextCurrent())
418
        return;
419
420
    gl::GetTexLevelParameterfvRobustANGLE(target, level, pname, bufSize, length, params);
421
}
422
423
424
void ExtensionsGLANGLE::getPointervRobustANGLERobustANGLE(GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, void **params)
425
{
426
    if (!m_context->makeContextCurrent())
427
        return;
428
429
    gl::GetPointervRobustANGLERobustANGLE(pname, bufSize, length, params);
430
}
431
432
void ExtensionsGLANGLE::getnUniformfvRobustANGLE(GCGLuint program, GCGLint location, GCGLsizei bufSize, GCGLsizei *length, GCGLfloat *params)
433
{
434
    if (!m_context->makeContextCurrent())
435
        return;
436
437
    gl::GetnUniformfvRobustANGLE(program, location, bufSize, length, params);
438
}
439
440
void ExtensionsGLANGLE::getnUniformivRobustANGLE(GCGLuint program, GCGLint location, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params)
441
{
442
    if (!m_context->makeContextCurrent())
443
        return;
444
445
    gl::GetnUniformivRobustANGLE(program, location, bufSize, length, params);
446
}
447
448
void ExtensionsGLANGLE::getnUniformuivRobustANGLE(GCGLuint program, GCGLint location, GCGLsizei bufSize, GCGLsizei *length, GCGLuint *params)
449
{
450
    if (!m_context->makeContextCurrent())
451
        return;
452
453
    gl::GetnUniformuivRobustANGLE(program, location, bufSize, length, params);
454
}
455
456
void ExtensionsGLANGLE::texParameterIivRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, const GCGLint *params)
457
{
458
    if (!m_context->makeContextCurrent())
459
        return;
460
461
    gl::TexParameterIivRobustANGLE(target, pname, bufSize, params);
462
}
463
464
void ExtensionsGLANGLE::texParameterIuivRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, const GCGLuint *params)
465
{
466
    if (!m_context->makeContextCurrent())
467
        return;
468
469
    gl::TexParameterIuivRobustANGLE(target, pname, bufSize, params);
470
}
471
472
void ExtensionsGLANGLE::getTexParameterIivRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params)
473
{
474
    if (!m_context->makeContextCurrent())
475
        return;
476
477
    gl::GetTexParameterIivRobustANGLE(target, pname, bufSize, length, params);
478
}
479
480
void ExtensionsGLANGLE::getTexParameterIuivRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLuint *params)
481
{
482
    if (!m_context->makeContextCurrent())
483
        return;
484
485
    gl::GetTexParameterIuivRobustANGLE(target, pname, bufSize, length, params);
486
}
487
488
void ExtensionsGLANGLE::samplerParameterIivRobustANGLE(GCGLuint sampler, GCGLenum pname, GCGLsizei bufSize, const GCGLint *param)
489
{
490
    if (!m_context->makeContextCurrent())
491
        return;
492
493
    gl::SamplerParameterIivRobustANGLE(sampler, pname, bufSize, param);
494
}
495
496
void ExtensionsGLANGLE::samplerParameterIuivRobustANGLE(GCGLuint sampler, GCGLenum pname, GCGLsizei bufSize, const GCGLuint *param)
497
{
498
    if (!m_context->makeContextCurrent())
499
        return;
500
501
    gl::SamplerParameterIuivRobustANGLE(sampler, pname, bufSize, param);
502
}
503
504
void ExtensionsGLANGLE::getSamplerParameterIivRobustANGLE(GCGLuint sampler, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params)
505
{
506
    if (!m_context->makeContextCurrent())
507
        return;
508
509
    gl::GetSamplerParameterIivRobustANGLE(sampler, pname, bufSize, length, params);
510
}
511
512
void ExtensionsGLANGLE::getSamplerParameterIuivRobustANGLE(GCGLuint sampler, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLuint *params)
513
{
514
    if (!m_context->makeContextCurrent())
515
        return;
516
517
    gl::GetSamplerParameterIuivRobustANGLE(sampler, pname, bufSize, length, params);
518
}
519
520
521
void ExtensionsGLANGLE::getQueryObjectivRobustANGLE(GCGLuint id, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params)
522
{
523
    if (!m_context->makeContextCurrent())
524
        return;
525
526
    gl::GetQueryObjectivRobustANGLE(id, pname, bufSize, length, params);
527
}
528
529
void ExtensionsGLANGLE::getQueryObjecti64vRobustANGLE(GCGLuint id, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint64 *params)
530
{
531
    if (!m_context->makeContextCurrent())
532
        return;
533
534
    gl::GetQueryObjecti64vRobustANGLE(id, pname, bufSize, length, reinterpret_cast<GLint64*>(params));
535
}
536
537
void ExtensionsGLANGLE::getQueryObjectui64vRobustANGLE(GCGLuint id, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLuint64 *params)
538
{
539
    if (!m_context->makeContextCurrent())
540
        return;
541
542
    gl::GetQueryObjectui64vRobustANGLE(id, pname, bufSize, length, reinterpret_cast<GLuint64*>(params));
543
}
544
545
546
} // namespace WebCore
215
} // namespace WebCore
547
216
548
#endif // ENABLE(GRAPHICS_CONTEXT_GL) && USE(ANGLE)
217
#endif // ENABLE(GRAPHICS_CONTEXT_GL) && USE(ANGLE)
- a/Source/WebCore/platform/graphics/angle/ExtensionsGLANGLE.h -49 / +1 lines
Lines 36-42 class ExtensionsGLANGLE : public ExtensionsGL { a/Source/WebCore/platform/graphics/angle/ExtensionsGLANGLE.h_sec1
36
    WTF_MAKE_FAST_ALLOCATED;
36
    WTF_MAKE_FAST_ALLOCATED;
37
public:
37
public:
38
    // This class only needs to be instantiated by GraphicsContextGLOpenGL implementations.
38
    // This class only needs to be instantiated by GraphicsContextGLOpenGL implementations.
39
    ExtensionsGLANGLE(GraphicsContextGLOpenGL*, bool useIndexedGetString = false);
39
    explicit ExtensionsGLANGLE(GraphicsContextGLOpenGL*);
40
    virtual ~ExtensionsGLANGLE();
40
    virtual ~ExtensionsGLANGLE();
41
41
42
    // ExtensionsGL methods.
42
    // ExtensionsGL methods.
Lines 49-108 public: a/Source/WebCore/platform/graphics/angle/ExtensionsGLANGLE.h_sec2
49
    void deleteVertexArrayOES(PlatformGLObject) override;
49
    void deleteVertexArrayOES(PlatformGLObject) override;
50
    GCGLboolean isVertexArrayOES(PlatformGLObject) override;
50
    GCGLboolean isVertexArrayOES(PlatformGLObject) override;
51
    void bindVertexArrayOES(PlatformGLObject) override;
51
    void bindVertexArrayOES(PlatformGLObject) override;
52
    void insertEventMarkerEXT(const String&) override;
53
    void pushGroupMarkerEXT(const String&) override;
54
    void popGroupMarkerEXT(void) override;
55
    void drawBuffersEXT(GCGLSpan<const GCGLenum>) override;
52
    void drawBuffersEXT(GCGLSpan<const GCGLenum>) override;
56
53
57
    String getTranslatedShaderSourceANGLE(PlatformGLObject) override;
54
    String getTranslatedShaderSourceANGLE(PlatformGLObject) override;
58
55
59
    void blitFramebufferANGLE(GCGLint srcX0, GCGLint srcY0, GCGLint srcX1, GCGLint srcY1, GCGLint dstX0, GCGLint dstY0, GCGLint dstX1, GCGLint dstY1, GCGLbitfield mask, GCGLenum filter) override;
60
    void renderbufferStorageMultisampleANGLE(GCGLenum target, GCGLsizei samples, GCGLenum internalformat, GCGLsizei width, GCGLsizei height) override;
61
62
    void drawArraysInstancedANGLE(GCGLenum mode, GCGLint first, GCGLsizei count, GCGLsizei primcount) override;
56
    void drawArraysInstancedANGLE(GCGLenum mode, GCGLint first, GCGLsizei count, GCGLsizei primcount) override;
63
    void drawElementsInstancedANGLE(GCGLenum mode, GCGLsizei count, GCGLenum type, GCGLvoidptr offset, GCGLsizei primcount) override;
57
    void drawElementsInstancedANGLE(GCGLenum mode, GCGLsizei count, GCGLenum type, GCGLvoidptr offset, GCGLsizei primcount) override;
64
    void vertexAttribDivisorANGLE(GCGLuint index, GCGLuint divisor) override;
58
    void vertexAttribDivisorANGLE(GCGLuint index, GCGLuint divisor) override;
65
59
66
    // GL_ANGLE_robust_client_memory
67
    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;
68
    void texParameterfvRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, const GCGLfloat *params) override;
69
    void texParameterivRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, const GCGLint *params) override;
70
    void getQueryivRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params) override;
71
    void getQueryObjectuivRobustANGLE(GCGLuint id, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLuint *params) override;
72
    void getBufferPointervRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, void **params) override;
73
    void getVertexAttribIivRobustANGLE(GCGLuint index, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params) override;
74
    void getVertexAttribIuivRobustANGLE(GCGLuint index, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLuint *params) override;
75
    void getUniformuivRobustANGLE(GCGLuint program, GCGLint location, GCGLsizei bufSize, GCGLsizei *length, GCGLuint *params) override;
76
    void getBufferParameteri64vRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint64 *params) override;
77
    void samplerParameterivRobustANGLE(GCGLuint sampler, GCGLenum pname, GCGLsizei bufSize, const GCGLint *param) override;
78
    void samplerParameterfvRobustANGLE(GCGLuint sampler, GCGLenum pname, GCGLsizei bufSize, const GCGLfloat *param) override;
79
    void getSamplerParameterivRobustANGLE(GCGLuint sampler, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params) override;
80
    void getSamplerParameterfvRobustANGLE(GCGLuint sampler, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLfloat *params) override;
81
82
    void getFramebufferParameterivRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params) override;
83
    void getProgramInterfaceivRobustANGLE(GCGLuint program, GCGLenum programInterface, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params) override;
84
    void getBooleani_vRobustANGLE(GCGLenum target, GCGLuint index, GCGLsizei bufSize, GCGLsizei *length, GCGLboolean *data) override; // NOLINT
85
    void getMultisamplefvRobustANGLE(GCGLenum pname, GCGLuint index, GCGLsizei bufSize, GCGLsizei *length, GCGLfloat *val) override;
86
    void getTexLevelParameterivRobustANGLE(GCGLenum target, GCGLint level, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params) override;
87
    void getTexLevelParameterfvRobustANGLE(GCGLenum target, GCGLint level, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLfloat *params) override;
88
89
    void getPointervRobustANGLERobustANGLE(GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, void **params) override;
90
    void getnUniformfvRobustANGLE(GCGLuint program, GCGLint location, GCGLsizei bufSize, GCGLsizei *length, GCGLfloat *params) override;
91
    void getnUniformivRobustANGLE(GCGLuint program, GCGLint location, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params) override;
92
    void getnUniformuivRobustANGLE(GCGLuint program, GCGLint location, GCGLsizei bufSize, GCGLsizei *length, GCGLuint *params) override;
93
    void texParameterIivRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, const GCGLint *params) override;
94
    void texParameterIuivRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, const GCGLuint *params) override;
95
    void getTexParameterIivRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params) override;
96
    void getTexParameterIuivRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLuint *params) override;
97
    void samplerParameterIivRobustANGLE(GCGLuint sampler, GCGLenum pname, GCGLsizei bufSize, const GCGLint *param) override;
98
    void samplerParameterIuivRobustANGLE(GCGLuint sampler, GCGLenum pname, GCGLsizei bufSize, const GCGLuint *param) override;
99
    void getSamplerParameterIivRobustANGLE(GCGLuint sampler, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params) override;
100
    void getSamplerParameterIuivRobustANGLE(GCGLuint sampler, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLuint *params) override;
101
102
    void getQueryObjectivRobustANGLE(GCGLuint id, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params) override;
103
    void getQueryObjecti64vRobustANGLE(GCGLuint id, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint64 *params) override;
104
    void getQueryObjectui64vRobustANGLE(GCGLuint id, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLuint64 *params) override;
105
106
    // Only for non-WebGL 2.0 contexts.
60
    // Only for non-WebGL 2.0 contexts.
107
    GCGLenum adjustWebGL1TextureInternalFormat(GCGLenum internalformat, GCGLenum format, GCGLenum type);
61
    GCGLenum adjustWebGL1TextureInternalFormat(GCGLenum internalformat, GCGLenum format, GCGLenum type);
108
62
Lines 119-126 private: a/Source/WebCore/platform/graphics/angle/ExtensionsGLANGLE.h_sec3
119
    // Weak pointer back to GraphicsContextGLOpenGL.
73
    // Weak pointer back to GraphicsContextGLOpenGL.
120
    GraphicsContextGLOpenGL* m_context;
74
    GraphicsContextGLOpenGL* m_context;
121
75
122
    bool m_useIndexedGetString { false };
123
124
    // Whether the WebGL 1.0-related floating-point renderability extensions have been enabled.
76
    // Whether the WebGL 1.0-related floating-point renderability extensions have been enabled.
125
    bool m_webglColorBufferFloatRGB { false };
77
    bool m_webglColorBufferFloatRGB { false };
126
    bool m_webglColorBufferFloatRGBA { false };
78
    bool m_webglColorBufferFloatRGBA { false };
- a/Source/WebCore/platform/graphics/opengl/ExtensionsGLOpenGL.cpp -34 lines
Lines 48-69 ExtensionsGLOpenGL::ExtensionsGLOpenGL(GraphicsContextGLOpenGL* context, bool us a/Source/WebCore/platform/graphics/opengl/ExtensionsGLOpenGL.cpp_sec1
48
ExtensionsGLOpenGL::~ExtensionsGLOpenGL() = default;
48
ExtensionsGLOpenGL::~ExtensionsGLOpenGL() = default;
49
49
50
50
51
void ExtensionsGLOpenGL::blitFramebufferANGLE(GCGLint srcX0, GCGLint srcY0, GCGLint srcX1, GCGLint srcY1, GCGLint dstX0, GCGLint dstY0, GCGLint dstX1, GCGLint dstY1, GCGLbitfield mask, GCGLenum filter)
52
{
53
    if (!m_context->makeContextCurrent())
54
        return;
55
56
    ::glBlitFramebufferEXT(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
57
}
58
59
void ExtensionsGLOpenGL::renderbufferStorageMultisampleANGLE(GCGLenum target, GCGLsizei samples, GCGLenum internalformat, GCGLsizei width, GCGLsizei height)
60
{
61
    if (!m_context->makeContextCurrent())
62
        return;
63
64
    ::glRenderbufferStorageMultisampleEXT(target, samples, internalformat, width, height);
65
}
66
67
PlatformGLObject ExtensionsGLOpenGL::createVertexArrayOES()
51
PlatformGLObject ExtensionsGLOpenGL::createVertexArrayOES()
68
{
52
{
69
    if (!m_context->makeContextCurrent())
53
    if (!m_context->makeContextCurrent())
Lines 127-150 void ExtensionsGLOpenGL::bindVertexArrayOES(PlatformGLObject array) a/Source/WebCore/platform/graphics/opengl/ExtensionsGLOpenGL.cpp_sec2
127
#endif
111
#endif
128
}
112
}
129
113
130
void ExtensionsGLOpenGL::insertEventMarkerEXT(const String&)
131
{
132
    // FIXME: implement this function and add GL_EXT_debug_marker in supports().
133
    return;
134
}
135
136
void ExtensionsGLOpenGL::pushGroupMarkerEXT(const String&)
137
{
138
    // FIXME: implement this function and add GL_EXT_debug_marker in supports().
139
    return;
140
}
141
142
void ExtensionsGLOpenGL::popGroupMarkerEXT(void)
143
{
144
    // FIXME: implement this function and add GL_EXT_debug_marker in supports().
145
    return;
146
}
147
148
bool ExtensionsGLOpenGL::supportsExtension(const String& name)
114
bool ExtensionsGLOpenGL::supportsExtension(const String& name)
149
{
115
{
150
    // GL_ANGLE_framebuffer_blit and GL_ANGLE_framebuffer_multisample are "fake". They are implemented using other
116
    // GL_ANGLE_framebuffer_blit and GL_ANGLE_framebuffer_multisample are "fake". They are implemented using other
- a/Source/WebCore/platform/graphics/opengl/ExtensionsGLOpenGL.h -6 lines
Lines 40-55 public: a/Source/WebCore/platform/graphics/opengl/ExtensionsGLOpenGL.h_sec1
40
    virtual ~ExtensionsGLOpenGL();
40
    virtual ~ExtensionsGLOpenGL();
41
41
42
    // ExtensionsGL methods.
42
    // ExtensionsGL methods.
43
    void blitFramebufferANGLE(GCGLint srcX0, GCGLint srcY0, GCGLint srcX1, GCGLint srcY1, GCGLint dstX0, GCGLint dstY0, GCGLint dstX1, GCGLint dstY1, GCGLbitfield mask, GCGLenum filter) override;
44
    void renderbufferStorageMultisampleANGLE(GCGLenum target, GCGLsizei samples, GCGLenum internalformat, GCGLsizei width, GCGLsizei height) override;
45
46
    PlatformGLObject createVertexArrayOES() override;
43
    PlatformGLObject createVertexArrayOES() override;
47
    void deleteVertexArrayOES(PlatformGLObject) override;
44
    void deleteVertexArrayOES(PlatformGLObject) override;
48
    GCGLboolean isVertexArrayOES(PlatformGLObject) override;
45
    GCGLboolean isVertexArrayOES(PlatformGLObject) override;
49
    void bindVertexArrayOES(PlatformGLObject) override;
46
    void bindVertexArrayOES(PlatformGLObject) override;
50
    void insertEventMarkerEXT(const String&) override;
51
    void pushGroupMarkerEXT(const String&) override;
52
    void popGroupMarkerEXT(void) override;
53
    void drawBuffersEXT(GCGLSpan<const GCGLenum>) override;
47
    void drawBuffersEXT(GCGLSpan<const GCGLenum>) override;
54
48
55
    void drawArraysInstancedANGLE(GCGLenum mode, GCGLint first, GCGLsizei count, GCGLsizei primcount) override;
49
    void drawArraysInstancedANGLE(GCGLenum mode, GCGLint first, GCGLsizei count, GCGLsizei primcount) override;
- a/Source/WebCore/platform/graphics/opengl/ExtensionsGLOpenGLCommon.cpp -179 lines
Lines 254-438 void ExtensionsGLOpenGLCommon::getnUniformivEXT(GCGLuint, int, GCGLsizei, GCGLin a/Source/WebCore/platform/graphics/opengl/ExtensionsGLOpenGLCommon.cpp_sec1
254
    m_context->synthesizeGLError(GL_INVALID_OPERATION);
254
    m_context->synthesizeGLError(GL_INVALID_OPERATION);
255
}
255
}
256
256
257
void ExtensionsGLOpenGLCommon::readPixelsRobustANGLE(int, int, GCGLsizei, GCGLsizei, GCGLenum, GCGLenum, GCGLsizei, GCGLsizei *, GCGLsizei *, GCGLsizei *, void *)
258
{
259
    m_context->synthesizeGLError(GL_INVALID_OPERATION);
260
}
261
262
void ExtensionsGLOpenGLCommon::texParameterfvRobustANGLE(GCGLenum, GCGLenum, GCGLsizei, const GCGLfloat *)
263
{
264
    m_context->synthesizeGLError(GL_INVALID_OPERATION);
265
}
266
267
void ExtensionsGLOpenGLCommon::texParameterivRobustANGLE(GCGLenum, GCGLenum, GCGLsizei, const GCGLint *)
268
{
269
    m_context->synthesizeGLError(GL_INVALID_OPERATION);
270
}
271
272
void ExtensionsGLOpenGLCommon::getQueryivRobustANGLE(GCGLenum, GCGLenum, GCGLsizei, GCGLsizei *, GCGLint *)
273
{
274
    m_context->synthesizeGLError(GL_INVALID_OPERATION);
275
}
276
277
void ExtensionsGLOpenGLCommon::getQueryObjectuivRobustANGLE(GCGLuint, GCGLenum, GCGLsizei, GCGLsizei *, GCGLuint *)
278
{
279
    m_context->synthesizeGLError(GL_INVALID_OPERATION);
280
}
281
282
void ExtensionsGLOpenGLCommon::getBufferPointervRobustANGLE(GCGLenum, GCGLenum, GCGLsizei, GCGLsizei *, void **)
283
{
284
    m_context->synthesizeGLError(GL_INVALID_OPERATION);
285
}
286
287
void ExtensionsGLOpenGLCommon::getVertexAttribIivRobustANGLE(GCGLuint, GCGLenum, GCGLsizei, GCGLsizei *, GCGLint *)
288
{
289
    m_context->synthesizeGLError(GL_INVALID_OPERATION);
290
}
291
292
void ExtensionsGLOpenGLCommon::getVertexAttribIuivRobustANGLE(GCGLuint, GCGLenum, GCGLsizei, GCGLsizei *, GCGLuint *)
293
{
294
    m_context->synthesizeGLError(GL_INVALID_OPERATION);
295
}
296
297
void ExtensionsGLOpenGLCommon::getUniformuivRobustANGLE(GCGLuint, int, GCGLsizei, GCGLsizei *, GCGLuint *)
298
{
299
    m_context->synthesizeGLError(GL_INVALID_OPERATION);
300
}
301
302
void ExtensionsGLOpenGLCommon::getBufferParameteri64vRobustANGLE(GCGLenum, GCGLenum, GCGLsizei, GCGLsizei *, GCGLint64 *)
303
{
304
    m_context->synthesizeGLError(GL_INVALID_OPERATION);
305
}
306
307
void ExtensionsGLOpenGLCommon::samplerParameterivRobustANGLE(GCGLuint, GCGLenum, GCGLsizei, const GCGLint *)
308
{
309
    m_context->synthesizeGLError(GL_INVALID_OPERATION);
310
}
311
312
void ExtensionsGLOpenGLCommon::samplerParameterfvRobustANGLE(GCGLuint, GCGLenum, GCGLsizei, const GCGLfloat *)
313
{
314
    m_context->synthesizeGLError(GL_INVALID_OPERATION);
315
}
316
317
void ExtensionsGLOpenGLCommon::getSamplerParameterivRobustANGLE(GCGLuint, GCGLenum, GCGLsizei, GCGLsizei *, GCGLint *)
318
{
319
    m_context->synthesizeGLError(GL_INVALID_OPERATION);
320
}
321
322
void ExtensionsGLOpenGLCommon::getSamplerParameterfvRobustANGLE(GCGLuint, GCGLenum, GCGLsizei, GCGLsizei *, GCGLfloat *)
323
{
324
    m_context->synthesizeGLError(GL_INVALID_OPERATION);
325
}
326
327
328
void ExtensionsGLOpenGLCommon::getFramebufferParameterivRobustANGLE(GCGLenum, GCGLenum, GCGLsizei, GCGLsizei *, GCGLint *)
329
{
330
    m_context->synthesizeGLError(GL_INVALID_OPERATION);
331
}
332
333
void ExtensionsGLOpenGLCommon::getProgramInterfaceivRobustANGLE(GCGLuint, GCGLenum, GCGLenum, GCGLsizei, GCGLsizei *, GCGLint *)
334
{
335
    m_context->synthesizeGLError(GL_INVALID_OPERATION);
336
}
337
338
void ExtensionsGLOpenGLCommon::getBooleani_vRobustANGLE(GCGLenum, GCGLuint, GCGLsizei, GCGLsizei *, GCGLboolean *)
339
{
340
    m_context->synthesizeGLError(GL_INVALID_OPERATION);
341
}
342
343
void ExtensionsGLOpenGLCommon::getMultisamplefvRobustANGLE(GCGLenum, GCGLuint, GCGLsizei, GCGLsizei *, GCGLfloat *)
344
{
345
    m_context->synthesizeGLError(GL_INVALID_OPERATION);
346
}
347
348
void ExtensionsGLOpenGLCommon::getTexLevelParameterivRobustANGLE(GCGLenum, int, GCGLenum, GCGLsizei, GCGLsizei *, GCGLint *)
349
{
350
    m_context->synthesizeGLError(GL_INVALID_OPERATION);
351
}
352
353
void ExtensionsGLOpenGLCommon::getTexLevelParameterfvRobustANGLE(GCGLenum, int, GCGLenum, GCGLsizei, GCGLsizei *, GCGLfloat *)
354
{
355
    m_context->synthesizeGLError(GL_INVALID_OPERATION);
356
}
357
358
359
void ExtensionsGLOpenGLCommon::getPointervRobustANGLERobustANGLE(GCGLenum, GCGLsizei, GCGLsizei *, void **)
360
{
361
    m_context->synthesizeGLError(GL_INVALID_OPERATION);
362
}
363
364
void ExtensionsGLOpenGLCommon::getnUniformfvRobustANGLE(GCGLuint, int, GCGLsizei, GCGLsizei *, GCGLfloat *)
365
{
366
    m_context->synthesizeGLError(GL_INVALID_OPERATION);
367
}
368
369
void ExtensionsGLOpenGLCommon::getnUniformivRobustANGLE(GCGLuint, int, GCGLsizei, GCGLsizei *, GCGLint *)
370
{
371
    m_context->synthesizeGLError(GL_INVALID_OPERATION);
372
}
373
374
void ExtensionsGLOpenGLCommon::getnUniformuivRobustANGLE(GCGLuint, int, GCGLsizei, GCGLsizei *, GCGLuint *)
375
{
376
    m_context->synthesizeGLError(GL_INVALID_OPERATION);
377
}
378
379
void ExtensionsGLOpenGLCommon::texParameterIivRobustANGLE(GCGLenum, GCGLenum, GCGLsizei, const GCGLint *)
380
{
381
    m_context->synthesizeGLError(GL_INVALID_OPERATION);
382
}
383
384
void ExtensionsGLOpenGLCommon::texParameterIuivRobustANGLE(GCGLenum, GCGLenum, GCGLsizei, const GCGLuint *)
385
{
386
    m_context->synthesizeGLError(GL_INVALID_OPERATION);
387
}
388
389
void ExtensionsGLOpenGLCommon::getTexParameterIivRobustANGLE(GCGLenum, GCGLenum, GCGLsizei, GCGLsizei *, GCGLint *)
390
{
391
    m_context->synthesizeGLError(GL_INVALID_OPERATION);
392
}
393
394
void ExtensionsGLOpenGLCommon::getTexParameterIuivRobustANGLE(GCGLenum, GCGLenum, GCGLsizei, GCGLsizei *, GCGLuint *)
395
{
396
    m_context->synthesizeGLError(GL_INVALID_OPERATION);
397
}
398
399
void ExtensionsGLOpenGLCommon::samplerParameterIivRobustANGLE(GCGLuint, GCGLenum, GCGLsizei, const GCGLint *)
400
{
401
    m_context->synthesizeGLError(GL_INVALID_OPERATION);
402
}
403
404
void ExtensionsGLOpenGLCommon::samplerParameterIuivRobustANGLE(GCGLuint, GCGLenum, GCGLsizei, const GCGLuint *)
405
{
406
    m_context->synthesizeGLError(GL_INVALID_OPERATION);
407
}
408
409
void ExtensionsGLOpenGLCommon::getSamplerParameterIivRobustANGLE(GCGLuint, GCGLenum, GCGLsizei, GCGLsizei *, GCGLint *)
410
{
411
    m_context->synthesizeGLError(GL_INVALID_OPERATION);
412
}
413
414
void ExtensionsGLOpenGLCommon::getSamplerParameterIuivRobustANGLE(GCGLuint, GCGLenum, GCGLsizei, GCGLsizei *, GCGLuint *)
415
{
416
    m_context->synthesizeGLError(GL_INVALID_OPERATION);
417
}
418
419
420
void ExtensionsGLOpenGLCommon::getQueryObjectivRobustANGLE(GCGLuint, GCGLenum, GCGLsizei, GCGLsizei *, GCGLint *)
421
{
422
    m_context->synthesizeGLError(GL_INVALID_OPERATION);
423
}
424
425
void ExtensionsGLOpenGLCommon::getQueryObjecti64vRobustANGLE(GCGLuint, GCGLenum, GCGLsizei, GCGLsizei *, GCGLint64 *)
426
{
427
    m_context->synthesizeGLError(GL_INVALID_OPERATION);
428
}
429
430
void ExtensionsGLOpenGLCommon::getQueryObjectui64vRobustANGLE(GCGLuint, GCGLenum, GCGLsizei, GCGLsizei *, GCGLuint64 *)
431
{
432
    m_context->synthesizeGLError(GL_INVALID_OPERATION);
433
}
434
435
436
} // namespace WebCore
257
} // namespace WebCore
437
258
438
#endif // ENABLE(GRAPHICS_CONTEXT_GL) && (USE(OPENGL) || USE(OPENGL_ES))
259
#endif // ENABLE(GRAPHICS_CONTEXT_GL) && (USE(OPENGL) || USE(OPENGL_ES))
- a/Source/WebCore/platform/graphics/opengl/ExtensionsGLOpenGLCommon.h -52 / +12 lines
Lines 55-112 public: a/Source/WebCore/platform/graphics/opengl/ExtensionsGLOpenGLCommon.h_sec1
55
    String getTranslatedShaderSourceANGLE(PlatformGLObject) override;
55
    String getTranslatedShaderSourceANGLE(PlatformGLObject) override;
56
56
57
    // EXT Robustness - uses getGraphicsResetStatusARB()
57
    // EXT Robustness - uses getGraphicsResetStatusARB()
58
    void readnPixelsEXT(int x, int y, GCGLsizei width, GCGLsizei height, GCGLenum format, GCGLenum type, GCGLsizei bufSize, void *data) override;
58
    void readnPixelsEXT(int x, int y, GCGLsizei width, GCGLsizei height, GCGLenum format, GCGLenum type, GCGLsizei bufSize, void *data);
59
    void getnUniformfvEXT(GCGLuint program, int location, GCGLsizei bufSize, float *params) override;
59
    void getnUniformfvEXT(GCGLuint program, int location, GCGLsizei bufSize, float *params);
60
    void getnUniformivEXT(GCGLuint program, int location, GCGLsizei bufSize, int *params) override;
60
    void getnUniformivEXT(GCGLuint program, int location, GCGLsizei bufSize, int *params);
61
61
62
    bool isNVIDIA() override { return m_isNVIDIA; }
62
    bool isNVIDIA() const { return m_isNVIDIA; }
63
    bool isAMD() override { return m_isAMD; }
63
    bool isAMD() const { return m_isAMD; }
64
    bool isIntel() override { return m_isIntel; }
64
    bool isIntel() const { return m_isIntel; }
65
    bool isImagination() override { return m_isImagination; }
65
    bool isImagination() const { return m_isImagination; }
66
    String vendor() override { return m_vendor; }
66
    String vendor() const { return m_vendor; }
67
67
68
    bool requiresBuiltInFunctionEmulation() override { return m_requiresBuiltInFunctionEmulation; }
68
    bool requiresBuiltInFunctionEmulation() const { return m_requiresBuiltInFunctionEmulation; }
69
    bool requiresRestrictedMaximumTextureSize() override { return m_requiresRestrictedMaximumTextureSize; }
69
    bool requiresRestrictedMaximumTextureSize() const { return m_requiresRestrictedMaximumTextureSize; }
70
71
    // GL_ANGLE_robust_client_memory
72
    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;
73
    void texParameterfvRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, const GCGLfloat *params) override;
74
    void texParameterivRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, const GCGLint *params) override;
75
    void getQueryivRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params) override;
76
    void getQueryObjectuivRobustANGLE(GCGLuint id, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLuint *params) override;
77
    void getBufferPointervRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, void **params) override;
78
    void getVertexAttribIivRobustANGLE(GCGLuint index, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params) override;
79
    void getVertexAttribIuivRobustANGLE(GCGLuint index, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLuint *params) override;
80
    void getUniformuivRobustANGLE(GCGLuint program, int location, GCGLsizei bufSize, GCGLsizei *length, GCGLuint *params) override;
81
    void getBufferParameteri64vRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint64 *params) override;
82
    void samplerParameterivRobustANGLE(GCGLuint sampler, GCGLenum pname, GCGLsizei bufSize, const GCGLint *param) override;
83
    void samplerParameterfvRobustANGLE(GCGLuint sampler, GCGLenum pname, GCGLsizei bufSize, const GCGLfloat *param) override;
84
    void getSamplerParameterivRobustANGLE(GCGLuint sampler, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params) override;
85
    void getSamplerParameterfvRobustANGLE(GCGLuint sampler, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLfloat *params) override;
86
87
    void getFramebufferParameterivRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params) override;
88
    void getProgramInterfaceivRobustANGLE(GCGLuint program, GCGLenum programInterface, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params) override;
89
    void getBooleani_vRobustANGLE(GCGLenum target, GCGLuint index, GCGLsizei bufSize, GCGLsizei *length, GCGLboolean *data) override;
90
    void getMultisamplefvRobustANGLE(GCGLenum pname, GCGLuint index, GCGLsizei bufSize, GCGLsizei *length, GCGLfloat *val) override;
91
    void getTexLevelParameterivRobustANGLE(GCGLenum target, int level, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params) override;
92
    void getTexLevelParameterfvRobustANGLE(GCGLenum target, int level, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLfloat *params) override;
93
94
    void getPointervRobustANGLERobustANGLE(GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, void **params) override;
95
    void getnUniformfvRobustANGLE(GCGLuint program, int location, GCGLsizei bufSize, GCGLsizei *length, GCGLfloat *params) override;
96
    void getnUniformivRobustANGLE(GCGLuint program, int location, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params) override;
97
    void getnUniformuivRobustANGLE(GCGLuint program, int location, GCGLsizei bufSize, GCGLsizei *length, GCGLuint *params) override;
98
    void texParameterIivRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, const GCGLint *params) override;
99
    void texParameterIuivRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, const GCGLuint *params) override;
100
    void getTexParameterIivRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params) override;
101
    void getTexParameterIuivRobustANGLE(GCGLenum target, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLuint *params) override;
102
    void samplerParameterIivRobustANGLE(GCGLuint sampler, GCGLenum pname, GCGLsizei bufSize, const GCGLint *param) override;
103
    void samplerParameterIuivRobustANGLE(GCGLuint sampler, GCGLenum pname, GCGLsizei bufSize, const GCGLuint *param) override;
104
    void getSamplerParameterIivRobustANGLE(GCGLuint sampler, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params) override;
105
    void getSamplerParameterIuivRobustANGLE(GCGLuint sampler, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLuint *params) override;
106
107
    void getQueryObjectivRobustANGLE(GCGLuint id, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint *params) override;
108
    void getQueryObjecti64vRobustANGLE(GCGLuint id, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLint64 *params) override;
109
    void getQueryObjectui64vRobustANGLE(GCGLuint id, GCGLenum pname, GCGLsizei bufSize, GCGLsizei *length, GCGLuint64 *params) override;
110
70
111
protected:
71
protected:
112
    friend class ExtensionsGLOpenGLES;
72
    friend class ExtensionsGLOpenGLES;
- a/Source/WebCore/platform/graphics/opengl/ExtensionsGLOpenGLES.cpp -20 lines
Lines 100-110 void ExtensionsGLOpenGLES::renderbufferStorageMultisampleIMG(unsigned long targe a/Source/WebCore/platform/graphics/opengl/ExtensionsGLOpenGLES.cpp_sec1
100
        m_context->synthesizeGLError(GL_INVALID_OPERATION);
100
        m_context->synthesizeGLError(GL_INVALID_OPERATION);
101
}
101
}
102
102
103
void ExtensionsGLOpenGLES::blitFramebufferANGLE(GCGLint, GCGLint, GCGLint, GCGLint, GCGLint, GCGLint, GCGLint, GCGLint, GCGLbitfield, GCGLenum)
104
{
105
    notImplemented();
106
}
107
108
void ExtensionsGLOpenGLES::renderbufferStorageMultisampleANGLE(GCGLenum target, GCGLsizei samples, GCGLenum internalformat, GCGLsizei width, GCGLsizei height)
103
void ExtensionsGLOpenGLES::renderbufferStorageMultisampleANGLE(GCGLenum target, GCGLsizei samples, GCGLenum internalformat, GCGLsizei width, GCGLsizei height)
109
{
104
{
110
    if (!m_context->makeContextCurrent())
105
    if (!m_context->makeContextCurrent())
Lines 115-135 void ExtensionsGLOpenGLES::renderbufferStorageMultisampleANGLE(GCGLenum target, a/Source/WebCore/platform/graphics/opengl/ExtensionsGLOpenGLES.cpp_sec2
115
        notImplemented();
110
        notImplemented();
116
}
111
}
117
112
118
void ExtensionsGLOpenGLES::insertEventMarkerEXT(const String&)
119
{
120
    notImplemented();
121
}
122
123
void ExtensionsGLOpenGLES::pushGroupMarkerEXT(const String&)
124
{
125
    notImplemented();
126
}
127
128
void ExtensionsGLOpenGLES::popGroupMarkerEXT(void)
129
{
130
    notImplemented();
131
}
132
133
PlatformGLObject ExtensionsGLOpenGLES::createVertexArrayOES()
113
PlatformGLObject ExtensionsGLOpenGLES::createVertexArrayOES()
134
{
114
{
135
    if (m_glGenVertexArraysOES) {
115
    if (m_glGenVertexArraysOES) {
- a/Source/WebCore/platform/graphics/opengl/ExtensionsGLOpenGLES.h -5 / +1 lines
Lines 75-85 public: a/Source/WebCore/platform/graphics/opengl/ExtensionsGLOpenGLES.h_sec1
75
75
76
    // Extension3D methods
76
    // Extension3D methods
77
    bool isEnabled(const String&) override;
77
    bool isEnabled(const String&) override;
78
    void blitFramebufferANGLE(GCGLint srcX0, GCGLint srcY0, GCGLint srcX1, GCGLint srcY1, GCGLint dstX0, GCGLint dstY0, GCGLint dstX1, GCGLint dstY1, GCGLbitfield mask, GCGLenum filter) override;
78
    void renderbufferStorageMultisampleANGLE(GCGLenum target, GCGLsizei samples, GCGLenum internalformat, GCGLsizei width, GCGLsizei height);
79
    void renderbufferStorageMultisampleANGLE(GCGLenum target, GCGLsizei samples, GCGLenum internalformat, GCGLsizei width, GCGLsizei height) override;
80
    void insertEventMarkerEXT(const String&) override;
81
    void pushGroupMarkerEXT(const String&) override;
82
    void popGroupMarkerEXT(void) override;
83
79
84
    PlatformGLObject createVertexArrayOES() override;
80
    PlatformGLObject createVertexArrayOES() override;
85
    void deleteVertexArrayOES(PlatformGLObject) override;
81
    void deleteVertexArrayOES(PlatformGLObject) override;
- a/Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGL.h -1 / +1 lines
Lines 481-487 public: a/Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGL.h_sec1
481
    // all methods it contains may necessarily be supported on the
481
    // all methods it contains may necessarily be supported on the
482
    // current hardware. Must call ExtensionsGL::supports() to
482
    // current hardware. Must call ExtensionsGL::supports() to
483
    // determine this.
483
    // determine this.
484
    ExtensionsGL& getExtensions() final;
484
    ExtensionsGLOpenGLCommon& getExtensions() final;
485
485
486
    void setFailNextGPUStatusCheck() final { m_failNextStatusCheck = true; }
486
    void setFailNextGPUStatusCheck() final { m_failNextStatusCheck = true; }
487
487
- a/Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGLBase.cpp -2 / +2 lines
Lines 116-122 bool GraphicsContextGLOpenGL::reshapeFBOs(const IntSize& size) a/Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGLBase.cpp_sec1
116
        // We don't allow the logic where stencil is required and depth is not.
116
        // We don't allow the logic where stencil is required and depth is not.
117
        // See GraphicsContextGLOpenGL::validateAttributes.
117
        // See GraphicsContextGLOpenGL::validateAttributes.
118
118
119
        ExtensionsGL& extensions = getExtensions();
119
        ExtensionsGLOpenGLCommon& extensions = getExtensions();
120
        // Use a 24 bit depth buffer where we know we have it.
120
        // Use a 24 bit depth buffer where we know we have it.
121
        if (extensions.supports("GL_EXT_packed_depth_stencil"))
121
        if (extensions.supports("GL_EXT_packed_depth_stencil"))
122
            internalDepthStencilFormat = GL_DEPTH24_STENCIL8_EXT;
122
            internalDepthStencilFormat = GL_DEPTH24_STENCIL8_EXT;
Lines 417-423 void GraphicsContextGLOpenGL::clearDepth(GCGLclampf depth) a/Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGLBase.cpp_sec2
417
}
417
}
418
418
419
#if !PLATFORM(GTK)
419
#if !PLATFORM(GTK)
420
ExtensionsGL& GraphicsContextGLOpenGL::getExtensions()
420
ExtensionsGLOpenGLCommon& GraphicsContextGLOpenGL::getExtensions()
421
{
421
{
422
    if (!m_extensions)
422
    if (!m_extensions)
423
        m_extensions = makeUnique<ExtensionsGLOpenGL>(this, isGLES2Compliant());
423
        m_extensions = makeUnique<ExtensionsGLOpenGL>(this, isGLES2Compliant());
- a/Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGLCommon.cpp -1 / +1 lines
Lines 118-124 void GraphicsContextGLOpenGL::validateDepthStencil(const char* packedDepthStenci a/Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGLCommon.cpp_sec1
118
{
118
{
119
    auto attrs = contextAttributes();
119
    auto attrs = contextAttributes();
120
120
121
    ExtensionsGL& extensions = getExtensions();
121
    ExtensionsGLOpenGLCommon& extensions = getExtensions();
122
    if (attrs.stencil) {
122
    if (attrs.stencil) {
123
        if (extensions.supports(packedDepthStencilExtension)) {
123
        if (extensions.supports(packedDepthStencilExtension)) {
124
            extensions.ensureEnabled(packedDepthStencilExtension);
124
            extensions.ensureEnabled(packedDepthStencilExtension);
- a/Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGLES.cpp -1 / +1 lines
Lines 254-260 void GraphicsContextGLOpenGL::clearDepth(GCGLclampf depth) a/Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGLES.cpp_sec1
254
}
254
}
255
255
256
#if !PLATFORM(GTK)
256
#if !PLATFORM(GTK)
257
ExtensionsGL& GraphicsContextGLOpenGL::getExtensions()
257
ExtensionsGLOpenGLCommon& GraphicsContextGLOpenGL::getExtensions()
258
{
258
{
259
    if (!m_extensions)
259
    if (!m_extensions)
260
        m_extensions = makeUnique<ExtensionsGLOpenGLES>(this, isGLES2Compliant());
260
        m_extensions = makeUnique<ExtensionsGLOpenGLES>(this, isGLES2Compliant());

Return to Bug 218896