16#if SK_DISABLE_WEBGL_INTERFACE || !defined(__EMSCRIPTEN__)
23#define GL_GLEXT_PROTOTYPES
24#include <GLES3/gl32.h>
25#include <GLES3/gl2ext.h>
26#include <webgl/webgl2_ext.h>
28#define GET_PROC(F) functions->f##F = gl##F
29#define GET_PROC_SUFFIX(F, S) functions->f##F = gl##F##S
32 const char* verStr =
reinterpret_cast<const char*
>(glGetString(
GR_GL_VERSION));
148 }
else if (
extensions.has(
"GL_OES_vertex_array_object")) {
152 }
else if (
extensions.has(
"OES_vertex_array_object")) {
163 if (
extensions.has(
"GL_WEBGL_draw_instanced_base_vertex_base_instance")) {
173 if (
extensions.has(
"GL_WEBGL_multi_draw_instanced_base_vertex_base_instance")) {
175 GET_PROC_SUFFIX(MultiDrawElementsInstancedBaseVertexBaseInstance, WEBGL);
204 GET_PROC(GetFramebufferAttachmentParameteriv);
205 GET_PROC(GetRenderbufferParameteriv);
213 GET_PROC(RenderbufferStorageMultisample);
#define GET_PROC_SUFFIX(F, S)
GrGLFuncPtr(* GrGLGetProc)(void *ctx, const char name[])
sk_sp< const GrGLInterface > GrGLMakeAssembledWebGLInterface(void *ctx, GrGLGetProc get)
GrGLVersion GrGLGetVersionFromString(const char *versionString)
#define GR_GL_VER(major, minor)
static void Finish(Thread *thread)
static std::string GetShaderInfoLog(const ProcTableGLES &gl, GLuint shader)
static bool LinkProgram(const ReactorGLES &reactor, const std::shared_ptr< PipelineGLES > &pipeline, const std::shared_ptr< const ShaderFunction > &vert_function, const std::shared_ptr< const ShaderFunction > &frag_function)
const myers::Point & get(const myers::Segment &)
void Flush(SkSurface *surface)