diff options
author | Jonny Lamb <jonny.lamb@collabora.co.uk> | 2015-03-23 16:44:58 +0100 |
---|---|---|
committer | Jonny Lamb <jonny.lamb@collabora.co.uk> | 2015-03-24 12:09:33 +0100 |
commit | 56e24a1b471db1ec7ae944e7e525df503f6e2a0a (patch) | |
tree | cfbf6840b806ad5847b5fb9a189377b311362754 /src | |
parent | 24662df51431c4eae8ec2eb19dbc3d5ab6282219 (diff) |
gl-renderer: provide platform_base fallbacks and remove ifdefs
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Diffstat (limited to 'src')
-rw-r--r-- | src/gl-renderer.c | 16 | ||||
-rw-r--r-- | src/gl-renderer.h | 6 |
2 files changed, 9 insertions, 13 deletions
diff --git a/src/gl-renderer.c b/src/gl-renderer.c index 2c36a8dd..b3b2364b 100644 --- a/src/gl-renderer.c +++ b/src/gl-renderer.c @@ -37,7 +37,6 @@ #include "gl-renderer.h" #include "vertex-clipping.h" -#include <EGL/eglext.h> #include "weston-egl-ext.h" struct gl_shader { @@ -140,9 +139,7 @@ struct gl_renderer { PFNEGLSWAPBUFFERSWITHDAMAGEEXTPROC swap_buffers_with_damage; #endif -#ifdef EGL_EXT_platform_base PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC create_platform_window; -#endif int has_unpack_subimage; @@ -170,9 +167,7 @@ struct gl_renderer { struct wl_signal destroy_signal; }; -#ifdef EGL_EXT_platform_base static PFNEGLGETPLATFORMDISPLAYEXTPROC get_platform_display = NULL; -#endif static inline struct gl_output_state * get_output_state(struct weston_output *output) @@ -2006,19 +2001,18 @@ gl_renderer_output_create(struct weston_output *output, if (go == NULL) return -1; -#ifdef EGL_EXT_platform_base if (gr->create_platform_window) { go->egl_surface = gr->create_platform_window(gr->egl_display, egl_config, window_for_platform, NULL); - } else -#endif + } else { go->egl_surface = eglCreateWindowSurface(gr->egl_display, egl_config, window_for_legacy, NULL); + } if (go->egl_surface == EGL_NO_SURFACE) { weston_log("failed to create egl surface\n"); @@ -2138,7 +2132,6 @@ gl_renderer_setup_egl_extensions(struct weston_compositor *ec) "supported. Performance could be affected.\n"); #endif -#ifdef EGL_EXT_platform_base extensions = (const char *) eglQueryString(EGL_NO_DISPLAY, EGL_EXTENSIONS); if (!extensions) { @@ -2151,7 +2144,6 @@ gl_renderer_setup_egl_extensions(struct weston_compositor *ec) (void *) eglGetProcAddress("eglCreatePlatformWindowSurfaceEXT"); else weston_log("warning: EGL_EXT_platform_base not supported.\n"); -#endif #ifdef EGL_MESA_configless_context if (strstr(extensions, "EGL_MESA_configless_context")) @@ -2286,8 +2278,7 @@ gl_renderer_create(struct weston_compositor *ec, EGLenum platform, gr->base.surface_copy_content = gl_renderer_surface_copy_content; gr->egl_display = NULL; -#ifdef EGL_EXT_platform_base - /* the platform extension is supported */ + /* extension_suffix is supported */ if (supports) { if (!get_platform_display) { get_platform_display = (void *) eglGetProcAddress( @@ -2304,7 +2295,6 @@ gl_renderer_create(struct weston_compositor *ec, EGLenum platform, NULL); } } -#endif if (!gr->egl_display) { weston_log("warning: either no EGL_EXT_platform_base " diff --git a/src/gl-renderer.h b/src/gl-renderer.h index 4208bf12..ebc139f8 100644 --- a/src/gl-renderer.h +++ b/src/gl-renderer.h @@ -35,12 +35,18 @@ typedef int EGLint; typedef int EGLenum; typedef void *EGLDisplay; typedef void *EGLSurface; +typedef void *EGLConfig; typedef intptr_t EGLNativeDisplayType; typedef intptr_t EGLNativeWindowType; #define EGL_DEFAULT_DISPLAY ((EGLNativeDisplayType)0) #endif /* ENABLE_EGL */ +#ifndef EGL_EXT_platform_base +typedef EGLDisplay (*PFNEGLGETPLATFORMDISPLAYEXTPROC) (EGLenum platform, void *native_display, const EGLint *attrib_list); +typedef EGLSurface (*PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC) (EGLDisplay dpy, EGLConfig config, void *native_window, const EGLint *attrib_list); +#endif + #ifndef EGL_PLATFORM_GBM_KHR #define EGL_PLATFORM_GBM_KHR 0x31D7 #endif |