92 if (config ==
nullptr) {
115 const EGLint* attrib_list,
118 EGLint* num_config) {
123 if (configs ==
nullptr) {
124 if (num_config !=
nullptr) {
130 EGLint n_returned = 0;
131 if (config_size >= 1) {
136 if (num_config !=
nullptr) {
137 *num_config = n_returned;
145 EGLContext share_context,
146 const EGLint* attrib_list) {
148 return EGL_NO_CONTEXT;
161 const EGLint* attrib_list) {
163 return EGL_NO_SURFACE;
172 EGLNativeWindowType win,
173 const EGLint* attrib_list) {
175 return EGL_NO_SURFACE;
195 case EGL_BUFFER_SIZE:
198 case EGL_COLOR_BUFFER_TYPE:
201 case EGL_TRANSPARENT_TYPE:
222 case EGL_STENCIL_SIZE:
228 case EGL_SAMPLE_BUFFERS:
231 case EGL_NATIVE_VISUAL_ID:
234 case EGL_NATIVE_VISUAL_TYPE:
237 case EGL_NATIVE_RENDERABLE:
240 case EGL_CONFIG_CAVEAT:
243 case EGL_BIND_TO_TEXTURE_RGB:
246 case EGL_BIND_TO_TEXTURE_RGBA:
249 case EGL_RENDERABLE_TYPE:
255 case EGL_SURFACE_TYPE:
258 case EGL_MAX_PBUFFER_WIDTH:
261 case EGL_MAX_PBUFFER_HEIGHT:
264 case EGL_MAX_PBUFFER_PIXELS:
267 case EGL_MIN_SWAP_INTERVAL:
270 case EGL_MAX_SWAP_INTERVAL:
287 void* native_display,
288 const EGLint* attrib_list) {
339 if (major !=
nullptr) {
342 if (minor !=
nullptr) {
363 if (attribute == EGL_CONTEXT_CLIENT_TYPE) {
364 *
value = EGL_OPENGL_API;
381 EGLClientBuffer buffer,
382 const EGLAttrib* attrib_list) {
383 mock->eglCreateImage(dpy, ctx,
target, buffer, attrib_list);
395 if (cap == GL_BLEND) {
397 }
else if (cap == GL_SCISSOR_TEST) {
409 if (
target == GL_TEXTURE_2D) {
424 mock->glBlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1,
425 dstY1, mask, filter);
435 mock->glClearColor(r, g, b, a);
444 mock->glDeleteFramebuffers(n, framebuffers);
450 mock->glDeleteRenderbuffers(n, renderbuffers);
458 mock->glDeleteTextures(n, textures);
472 GLenum renderbuffertarget,
473 GLuint renderbuffer) {
484 for (GLsizei
i = 0;
i < n;
i++) {
488 mock->glGenTextures(n, textures);
493 for (GLsizei
i = 0;
i < n;
i++) {
497 mock->glGenFramebuffers(n, framebuffers);
502 for (GLsizei
i = 0;
i < n;
i++) {
503 renderbuffers[
i] = 0;
506 mock->glGenRenderbuffers(n, renderbuffers);
514 if (pname == GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE) {
518 }
else if (pname == GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME) {
525 if (pname == GL_TEXTURE_BINDING_2D) {
531 if (pname == GL_LINK_STATUS) {
542 if (pname == GL_COMPILE_STATUS) {
553 return mock->glGetString(pname);
557 if (cap == GL_BLEND) {
559 }
else if (cap == GL_SCISSOR_TEST) {
572 GLint internalformat,
578 const void* pixels) {}
587 GLenum internalformat,
593 const GLchar*
const*
string,
597 return mock->epoxy_has_gl_extension(extension);
601 return mock->epoxy_is_desktop_gl();
605 return mock->epoxy_gl_version();
609#define CONSTRUCT(_func) static void _func(void) __attribute__((constructor));
610#define DESTRUCT(_func) static void _func(void) __attribute__((destructor));
611#elif defined(_MSC_VER) && (_MSC_VER >= 1500)
612#define CONSTRUCT(_func) \
613 static void _func(void); \
614 static int _func##_wrapper(void) { \
618 __pragma(section(".CRT$XCU", read)) \
619 __declspec(allocate(".CRT$XCU")) static int (*_array##_func)(void) = \
623#error "You will need constructor support for your compiler"
630 const EGLint* attrib_list,
636 EGLContext share_context,
637 const EGLint* attrib_list);
640 const EGLint* attrib_list);
643 EGLNativeWindowType win,
644 const EGLint* attrib_list);
651 void* native_display,
652 const EGLint* attrib_list);
664 EGLClientBuffer buffer,
665 const EGLAttrib* attrib_list);
689 GLenum renderbuffertarget,
690 GLuint renderbuffer);
704 GLenum internalformat,
709 const GLchar* const*
string,
715 GLint internalformat,
const EmbeddedViewParams * params
const uint8_t uint32_t uint32_t GError ** error
static EGLBoolean bool_failure(EGLint error)
void(* epoxy_glCompileShader)(GLuint shader)
static void _glGenFramebuffers(GLsizei n, GLuint *framebuffers)
static bool check_config(EGLConfig config)
GLuint(* epoxy_glCreateProgram)()
void(* epoxy_glRenderbufferStorage)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height)
void(* epoxy_glBindTexture)(GLenum target, GLuint texture)
EGLBoolean _eglGetConfigAttrib(EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint *value)
EGLSurface(* epoxy_eglCreateWindowSurface)(EGLDisplay dpy, EGLConfig config, EGLNativeWindowType win, const EGLint *attrib_list)
EGLBoolean _eglChooseConfig(EGLDisplay dpy, const EGLint *attrib_list, EGLConfig *configs, EGLint config_size, EGLint *num_config)
void(* epoxy_glGetFramebufferAttachmentParameteriv)(GLenum target, GLenum attachment, GLenum pname, GLint *params)
void _glShaderSource(GLuint shader, GLsizei count, const GLchar *const *string, const GLint *length)
void _glClearColor(GLfloat r, GLfloat g, GLfloat b, GLfloat a)
void(* epoxy_glShaderSource)(GLuint shader, GLsizei count, const GLchar *const *string, const GLint *length)
void(* epoxy_glDeleteTextures)(GLsizei n, const GLuint *textures)
EGLBoolean _eglInitialize(EGLDisplay dpy, EGLint *major, EGLint *minor)
static void _glFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
EGLBoolean _eglQueryContext(EGLDisplay display, EGLContext context, EGLint attribute, EGLint *value)
void(* epoxy_glBindRenderbuffer)(GLenum target, GLuint renderbuffer)
static GLboolean enable_blend
void _glDeleteShader(GLuint shader)
void(* expoxy_glDeleteShader)(GLuint shader)
static void _glGetProgramiv(GLuint program, GLenum pname, GLint *params)
static GLuint bound_texture_2d
void(* epoxy_glGenFramebuffers)(GLsizei n, GLuint *framebuffers)
static std::map< GLenum, GLuint > framebuffer_renderbuffers
bool epoxy_has_gl_extension(const char *extension)
void(* epoxy_glAttachShader)(GLuint program, GLuint shader)
static void _glGetProgramInfoLog(GLuint program, GLsizei maxLength, GLsizei *length, GLchar *infoLog)
void(* epoxy_glTexParameteri)(GLenum target, GLenum pname, GLint param)
static void _glGenRenderbuffers(GLsizei n, GLuint *renderbuffers)
static void _glBindRenderbuffer(GLenum target, GLuint framebuffer)
static MockContext mock_context
static void library_init()
static void _glEnable(GLenum cap)
EGLImage _eglCreateImage(EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLAttrib *attrib_list)
void(* epoxy_glTexImage2D)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels)
static MockImage mock_image
static void _glTexParameteri(GLenum target, GLenum pname, GLint param)
static void _glTexParameterf(GLenum target, GLenum pname, GLfloat param)
void(*(* epoxy_eglGetProcAddress)(const char *procname))(void)
EGLSurface _eglCreateWindowSurface(EGLDisplay dpy, EGLConfig config, EGLNativeWindowType win, const EGLint *attrib_list)
EGLBoolean _eglBindAPI(EGLenum api)
EGLContext(* epoxy_eglCreateContext)(EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint *attrib_list)
static void _glGetShaderInfoLog(GLuint shader, GLsizei maxLength, GLsizei *length, GLchar *infoLog)
static void _glBindFramebuffer(GLenum target, GLuint framebuffer)
GLuint(* epoxy_glCreateShader)(GLenum shaderType)
static void _glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint *params)
static bool check_initialized(EGLDisplay dpy)
EGLBoolean(* epoxy_eglGetConfigAttrib)(EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint *value)
void _glDeleteRenderbuffers(GLsizei n, const GLuint *renderbuffers)
static GLboolean _glIsEnabled(GLenum cap)
static MockConfig mock_config
GLuint _glCreateShader(GLenum shaderType)
void _glAttachShader(GLuint program, GLuint shader)
static const GLubyte * _glGetString(GLenum pname)
static void _glGetShaderiv(GLuint shader, GLenum pname, GLint *params)
void(* epoxy_glDeleteFramebuffers)(GLsizei n, const GLuint *framebuffers)
void(* epoxy_glTexParameterf)(GLenum target, GLenum pname, GLfloat param)
EGLBoolean(* epoxy_eglInitialize)(EGLDisplay dpy, EGLint *major, EGLint *minor)
static void _glBindTexture(GLenum target, GLuint texture)
EGLDisplay _eglGetDisplay(EGLNativeDisplayType display_id)
static bool check_display(EGLDisplay dpy)
GLuint _glCreateProgram()
void(* epoxy_glGenTextures)(GLsizei n, GLuint *textures)
void _glDeleteTextures(GLsizei n, const GLuint *textures)
void(* epoxy_glBindFramebuffer)(GLenum target, GLuint framebuffer)
EGLContext _eglGetCurrentContext()
EGLSurface _eglCreatePbufferSurface(EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list)
EGLSurface(* epoxy_eglCreatePbufferSurface)(EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list)
static bool display_initialized
void _glDeleteFramebuffers(GLsizei n, const GLuint *framebuffers)
static void _glGenTextures(GLsizei n, GLuint *textures)
void _glCompileShader(GLuint shader)
EGLDisplay(* epoxy_eglGetPlatformDisplayEXT)(EGLenum platform, void *native_display, const EGLint *attrib_list)
void(*)(void) _eglGetProcAddress(const char *procname)
static GLboolean enable_scissor_test
void(* epoxy_glFramebufferRenderbuffer)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
EGLDisplay(* epoxy_eglGetDisplay)(EGLNativeDisplayType display_id)
EGLint(* epoxy_eglGetError)()
EGLImage(* epoxy_eglCreateImage)(EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLAttrib *attrib_list)
static EGLBoolean bool_success()
static void _glBlitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter)
static void _glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels)
void(* epoxy_glLinkProgram)(GLuint program)
GLenum(* epoxy_glGetError)()
bool epoxy_is_desktop_gl(void)
EGLDisplay _eglGetPlatformDisplayEXT(EGLenum platform, void *native_display, const EGLint *attrib_list)
static void _glDisable(GLenum cap)
int epoxy_gl_version(void)
static void _glFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
static void _setEnable(GLenum cap, GLboolean value)
EGLBoolean(* epoxy_eglSwapBuffers)(EGLDisplay dpy, EGLSurface surface)
EGLContext _eglCreateContext(EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint *attrib_list)
EGLBoolean _eglMakeCurrent(EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx)
EGLBoolean(* epoxy_eglMakeCurrent)(EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx)
EGLBoolean(* epoxy_eglBindAPI)(EGLenum api)
static void _glGetIntegerv(GLenum pname, GLint *data)
EGLDisplay _eglGetCurrentDisplay()
EGLBoolean(* epoxy_eglChooseConfig)(EGLDisplay dpy, const EGLint *attrib_list, EGLConfig *configs, EGLint config_size, EGLint *num_config)
void _glLinkProgram(GLuint program)
static MockDisplay mock_display
static MockSurface mock_surface
void(* epoxy_glFramebufferTexture2D)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
EGLBoolean _eglSwapBuffers(EGLDisplay dpy, EGLSurface surface)
void _glRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height)
void(* epoxy_glBlitFramebuffer)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter)
static GLenum _glGetError()
DEF_SWITCHES_START aot vmservice shared library Name of the *so containing AOT compiled Dart assets for launching the service isolate vm snapshot data
EGLint bind_to_texture_rgba
EGLint native_visual_type
EGLint max_pbuffer_pixels
EGLint max_pbuffer_height
EGLint bind_to_texture_rgb