aboutsummaryrefslogtreecommitdiff
path: root/examples/egl_common.c
diff options
context:
space:
mode:
Diffstat (limited to 'examples/egl_common.c')
-rw-r--r--examples/egl_common.c122
1 files changed, 0 insertions, 122 deletions
diff --git a/examples/egl_common.c b/examples/egl_common.c
deleted file mode 100644
index f095a487..00000000
--- a/examples/egl_common.c
+++ /dev/null
@@ -1,122 +0,0 @@
-#define _POSIX_C_SOURCE 200809L
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <stdbool.h>
-#include <unistd.h>
-#include <wayland-client.h>
-
-#include <EGL/egl.h>
-#include <EGL/eglext.h>
-
-#include "egl_common.h"
-
-EGLDisplay egl_display;
-EGLConfig egl_config;
-EGLContext egl_context;
-
-PFNEGLGETPLATFORMDISPLAYEXTPROC eglGetPlatformDisplayEXT;
-PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC eglCreatePlatformWindowSurfaceEXT;
-
-const EGLint config_attribs[] = {
- EGL_SURFACE_TYPE, EGL_WINDOW_BIT,
- EGL_RED_SIZE, 8,
- EGL_GREEN_SIZE, 8,
- EGL_BLUE_SIZE, 8,
- EGL_ALPHA_SIZE, 8,
- EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
- EGL_NONE,
-};
-
-const EGLint context_attribs[] = {
- EGL_CONTEXT_CLIENT_VERSION, 2,
- EGL_NONE,
-};
-
-bool egl_init(struct wl_display *display) {
- const char *client_exts_str =
- eglQueryString(EGL_NO_DISPLAY, EGL_EXTENSIONS);
- if (client_exts_str == NULL) {
- if (eglGetError() == EGL_BAD_DISPLAY) {
- fprintf(stderr, "EGL_EXT_client_extensions not supported\n");
- } else {
- fprintf(stderr, "Failed to query EGL client extensions\n");
- }
- return false;
- }
-
- if (!strstr(client_exts_str, "EGL_EXT_platform_base")) {
- fprintf(stderr, "EGL_EXT_platform_base not supported\n");
- return false;
- }
-
- if (!strstr(client_exts_str, "EGL_EXT_platform_wayland")) {
- fprintf(stderr, "EGL_EXT_platform_wayland not supported\n");
- return false;
- }
-
- eglGetPlatformDisplayEXT =
- (void *)eglGetProcAddress("eglGetPlatformDisplayEXT");
- if (eglGetPlatformDisplayEXT == NULL) {
- fprintf(stderr, "Failed to get eglGetPlatformDisplayEXT\n");
- return false;
- }
-
- eglCreatePlatformWindowSurfaceEXT =
- (void *)eglGetProcAddress("eglCreatePlatformWindowSurfaceEXT");
- if (eglCreatePlatformWindowSurfaceEXT == NULL) {
- fprintf(stderr, "Failed to get eglCreatePlatformWindowSurfaceEXT\n");
- return false;
- }
-
- egl_display =
- eglGetPlatformDisplayEXT(EGL_PLATFORM_WAYLAND_EXT,
- display, NULL);
- if (egl_display == EGL_NO_DISPLAY) {
- fprintf(stderr, "Failed to create EGL display\n");
- goto error;
- }
-
- if (eglInitialize(egl_display, NULL, NULL) == EGL_FALSE) {
- fprintf(stderr, "Failed to initialize EGL\n");
- goto error;
- }
-
- EGLint matched = 0;
- if (!eglChooseConfig(egl_display, config_attribs,
- &egl_config, 1, &matched)) {
- fprintf(stderr, "eglChooseConfig failed\n");
- goto error;
- }
- if (matched == 0) {
- fprintf(stderr, "Failed to match an EGL config\n");
- goto error;
- }
-
- egl_context =
- eglCreateContext(egl_display, egl_config,
- EGL_NO_CONTEXT, context_attribs);
- if (egl_context == EGL_NO_CONTEXT) {
- fprintf(stderr, "Failed to create EGL context\n");
- goto error;
- }
-
- return true;
-
-error:
- eglMakeCurrent(EGL_NO_DISPLAY, EGL_NO_SURFACE,
- EGL_NO_SURFACE, EGL_NO_CONTEXT);
- if (egl_display) {
- eglTerminate(egl_display);
- }
- eglReleaseThread();
- return false;
-}
-
-void egl_finish(void) {
- eglMakeCurrent(egl_display, EGL_NO_SURFACE,
- EGL_NO_SURFACE, EGL_NO_CONTEXT);
- eglDestroyContext(egl_display, egl_context);
- eglTerminate(egl_display);
- eglReleaseThread();
-}