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);
398 if (
target == GL_TEXTURE_2D) {
413 mock->glBlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1,
414 dstY1, mask, filter);
424 mock->glClearColor(r, g, b, a);
433 mock->glDeleteFramebuffers(n, framebuffers);
439 mock->glDeleteRenderbuffers(n, renderbuffers);
447 mock->glDeleteTextures(n, textures);
453 GLenum renderbuffertarget,
454 GLuint renderbuffer) {
465 for (GLsizei
i = 0;
i < n;
i++) {
469 mock->glGenTextures(n, textures);
474 for (GLsizei
i = 0;
i < n;
i++) {
478 mock->glGenFramebuffers(n, framebuffers);
483 for (GLsizei
i = 0;
i < n;
i++) {
484 renderbuffers[
i] = 0;
487 mock->glGenRenderbuffers(n, renderbuffers);
495 if (pname == GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE) {
499 }
else if (pname == GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME) {
506 if (pname == GL_TEXTURE_BINDING_2D) {
512 if (pname == GL_LINK_STATUS) {
523 if (pname == GL_COMPILE_STATUS) {
534 return mock->glGetString(pname);
543 GLint internalformat,
549 const void* pixels) {}
558 GLenum internalformat,
564 const GLchar*
const*
string,
568 return mock->epoxy_has_gl_extension(extension);
572 return mock->epoxy_is_desktop_gl();
576 return mock->epoxy_gl_version();
580#define CONSTRUCT(_func) static void _func(void) __attribute__((constructor));
581#define DESTRUCT(_func) static void _func(void) __attribute__((destructor));
582#elif defined(_MSC_VER) && (_MSC_VER >= 1500)
583#define CONSTRUCT(_func) \
584 static void _func(void); \
585 static int _func##_wrapper(void) { \
589 __pragma(section(".CRT$XCU", read)) \
590 __declspec(allocate(".CRT$XCU")) static int (*_array##_func)(void) = \
594#error "You will need constructor support for your compiler"
601 const EGLint* attrib_list,
607 EGLContext share_context,
608 const EGLint* attrib_list);
611 const EGLint* attrib_list);
614 EGLNativeWindowType win,
615 const EGLint* attrib_list);
622 void* native_display,
623 const EGLint* attrib_list);
635 EGLClientBuffer buffer,
636 const EGLAttrib* attrib_list);
660 GLenum renderbuffertarget,
661 GLuint renderbuffer);
675 GLenum internalformat,
680 const GLchar* const*
string,
686 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)
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()
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 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)
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)
int epoxy_gl_version(void)
static void _glFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
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