return container_of(base, struct rpi_compositor, base);
}
-static const char *
-egl_error_string(EGLint code)
-{
-#define MYERRCODE(x) case x: return #x;
- switch (code) {
- MYERRCODE(EGL_SUCCESS)
- MYERRCODE(EGL_NOT_INITIALIZED)
- MYERRCODE(EGL_BAD_ACCESS)
- MYERRCODE(EGL_BAD_ALLOC)
- MYERRCODE(EGL_BAD_ATTRIBUTE)
- MYERRCODE(EGL_BAD_CONTEXT)
- MYERRCODE(EGL_BAD_CONFIG)
- MYERRCODE(EGL_BAD_CURRENT_SURFACE)
- MYERRCODE(EGL_BAD_DISPLAY)
- MYERRCODE(EGL_BAD_SURFACE)
- MYERRCODE(EGL_BAD_MATCH)
- MYERRCODE(EGL_BAD_PARAMETER)
- MYERRCODE(EGL_BAD_NATIVE_PIXMAP)
- MYERRCODE(EGL_BAD_NATIVE_WINDOW)
- MYERRCODE(EGL_CONTEXT_LOST)
- default:
- return "unknown";
- }
-#undef MYERRCODE
-}
-
-static void
-print_egl_error_state(void)
-{
- EGLint code;
-
- code = eglGetError();
- weston_log("EGL error state: %s (0x%04lx)\n",
- egl_error_string(code), (long)code);
-}
-
static inline int
int_max(int a, int b)
{
goto out_output;
if (!eglSurfaceAttrib(gl_renderer_display(&compositor->base),
- gl_renderer_output_surface(&output->base),
+ gl_renderer_output_surface(&output->base),
EGL_SWAP_BEHAVIOR, EGL_BUFFER_PRESERVED)) {
- print_egl_error_state();
weston_log("Failed to set swap behaviour to preserved.\n");
+ gl_renderer_print_egl_error_state();
goto out_gl;
}
#undef MYERRCODE
}
-static void
-print_egl_error_state(void)
+WL_EXPORT void
+gl_renderer_print_egl_error_state(void)
{
EGLint code;
return -1;
errored = 1;
weston_log("Failed to make EGL context current.\n");
- print_egl_error_state();
+ gl_renderer_print_egl_error_state();
return -1;
}
if (ret == EGL_FALSE && !errored) {
errored = 1;
weston_log("Failed in eglSwapBuffers.\n");
- print_egl_error_state();
+ gl_renderer_print_egl_error_state();
}
go->current_buffer ^= 1;
return 0;
err_egl:
- print_egl_error_state();
+ gl_renderer_print_egl_error_state();
free(gr);
return -1;
}
if (!eglBindAPI(EGL_OPENGL_ES_API)) {
weston_log("failed to bind EGL_OPENGL_ES_API\n");
- print_egl_error_state();
+ gl_renderer_print_egl_error_state();
return -1;
}
EGL_NO_CONTEXT, context_attribs);
if (gr->egl_context == NULL) {
weston_log("failed to create context\n");
- print_egl_error_state();
+ gl_renderer_print_egl_error_state();
return -1;
}
egl_surface, gr->egl_context);
if (ret == EGL_FALSE) {
weston_log("Failed to make EGL context current.\n");
- print_egl_error_state();
+ gl_renderer_print_egl_error_state();
return -1;
}