gl-renderer: provide platform_base fallbacks and remove ifdefs
authorJonny Lamb <jonny.lamb@collabora.co.uk>
Tue, 24 Mar 2015 12:12:05 +0000 (13:12 +0100)
committerPekka Paalanen <pekka.paalanen@collabora.co.uk>
Thu, 26 Mar 2015 07:54:49 +0000 (09:54 +0200)
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
src/gl-renderer.c
src/gl-renderer.h

index 2c36a8dd6cfad2f3fb944e3a8df3251fc177e138..b3b2364b7231db41da51f8fa3d88c147be697a7c 100644 (file)
@@ -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 "
index 4208bf12aca236ccb1ccd79e310c03ed69854409..ebc139f8f8a73367f38f3e656fe40e2fa4d874fc 100644 (file)
@@ -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