From 9246c9a505ada6f77b147e3400e43fceaac352b8 Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Tue, 12 Jan 2016 16:25:47 -0500 Subject: [PATCH] renderer: drop PowerVR winsys --- cogl/Makefile.am | 5 - cogl/cogl-renderer.c | 6 - cogl/cogl-renderer.h | 2 - cogl/winsys/cogl-winsys-egl-null-private.h | 39 ---- cogl/winsys/cogl-winsys-egl-null.c | 246 --------------------- configure.ac | 17 -- examples/cogl-info.c | 2 - 7 files changed, 317 deletions(-) delete mode 100644 cogl/winsys/cogl-winsys-egl-null-private.h delete mode 100644 cogl/winsys/cogl-winsys-egl-null.c diff --git a/cogl/Makefile.am b/cogl/Makefile.am index 7de750c13..1c3971297 100644 --- a/cogl/Makefile.am +++ b/cogl/Makefile.am @@ -482,11 +482,6 @@ cogl_sources_c += \ winsys/cogl-winsys-egl-x11.c \ winsys/cogl-winsys-egl-x11-private.h endif -if SUPPORT_EGL_PLATFORM_POWERVR_NULL -cogl_sources_c += \ - winsys/cogl-winsys-egl-null.c \ - winsys/cogl-winsys-egl-null-private.h -endif if SUPPORT_EGL_PLATFORM_GDL cogl_sources_c += \ winsys/cogl-winsys-egl-gdl.c \ diff --git a/cogl/cogl-renderer.c b/cogl/cogl-renderer.c index b11c62a0c..a518a188a 100644 --- a/cogl/cogl-renderer.c +++ b/cogl/cogl-renderer.c @@ -69,9 +69,6 @@ #ifdef COGL_HAS_EGL_PLATFORM_MIR_SUPPORT #include "cogl-winsys-egl-mir-private.h" #endif -#ifdef COGL_HAS_EGL_PLATFORM_POWERVR_NULL_SUPPORT -#include "cogl-winsys-egl-null-private.h" -#endif #ifdef COGL_HAS_GLX_SUPPORT #include "cogl-winsys-glx-private.h" #endif @@ -219,9 +216,6 @@ static CoglWinsysVtableGetter _cogl_winsys_vtable_getters[] = #ifdef COGL_HAS_EGL_PLATFORM_MIR_SUPPORT _cogl_winsys_egl_mir_get_vtable, #endif -#ifdef COGL_HAS_EGL_PLATFORM_POWERVR_NULL_SUPPORT - _cogl_winsys_egl_null_get_vtable, -#endif #ifdef COGL_HAS_WGL_SUPPORT _cogl_winsys_wgl_get_vtable, #endif diff --git a/cogl/cogl-renderer.h b/cogl/cogl-renderer.h index 5db2173f5..fdc65d541 100644 --- a/cogl/cogl-renderer.h +++ b/cogl/cogl-renderer.h @@ -163,7 +163,6 @@ cogl_renderer_new (void); * @COGL_WINSYS_ID_STUB: Use the no-op stub backend * @COGL_WINSYS_ID_GLX: Use the GLX window system binding API * @COGL_WINSYS_ID_EGL_XLIB: Use EGL with the X window system via XLib - * @COGL_WINSYS_ID_EGL_NULL: Use EGL with the PowerVR NULL window system * @COGL_WINSYS_ID_EGL_GDL: Use EGL with the GDL platform * @COGL_WINSYS_ID_EGL_WAYLAND: Use EGL with the Wayland window system * @COGL_WINSYS_ID_EGL_KMS: Use EGL with the KMS platform @@ -183,7 +182,6 @@ typedef enum COGL_WINSYS_ID_STUB, COGL_WINSYS_ID_GLX, COGL_WINSYS_ID_EGL_XLIB, - COGL_WINSYS_ID_EGL_NULL, COGL_WINSYS_ID_EGL_GDL, COGL_WINSYS_ID_EGL_WAYLAND, COGL_WINSYS_ID_EGL_KMS, diff --git a/cogl/winsys/cogl-winsys-egl-null-private.h b/cogl/winsys/cogl-winsys-egl-null-private.h deleted file mode 100644 index aa1119f67..000000000 --- a/cogl/winsys/cogl-winsys-egl-null-private.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Cogl - * - * A Low Level GPU Graphics and Utilities API - * - * Copyright (C) 2011 Intel Corporation. - * - * Permission is hereby granted, free of charge, to any person - * obtaining a copy of this software and associated documentation - * files (the "Software"), to deal in the Software without - * restriction, including without limitation the rights to use, copy, - * modify, merge, publish, distribute, sublicense, and/or sell copies - * of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be - * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS - * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - * - */ - -#ifndef __COGL_WINSYS_EGL_NULL_PRIVATE_H -#define __COGL_WINSYS_EGL_NULL_PRIVATE_H - -#include "cogl-winsys-private.h" - -const CoglWinsysVtable * -_cogl_winsys_egl_null_get_vtable (void); - -#endif /* __COGL_WINSYS_EGL_NULL_PRIVATE_H */ diff --git a/cogl/winsys/cogl-winsys-egl-null.c b/cogl/winsys/cogl-winsys-egl-null.c deleted file mode 100644 index 962d6d1eb..000000000 --- a/cogl/winsys/cogl-winsys-egl-null.c +++ /dev/null @@ -1,246 +0,0 @@ -/* - * Cogl - * - * A Low Level GPU Graphics and Utilities API - * - * Copyright (C) 2011 Intel Corporation. - * - * Permission is hereby granted, free of charge, to any person - * obtaining a copy of this software and associated documentation - * files (the "Software"), to deal in the Software without - * restriction, including without limitation the rights to use, copy, - * modify, merge, publish, distribute, sublicense, and/or sell copies - * of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be - * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS - * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - * - * Authors: - * Robert Bragg - * Neil Roberts - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include "cogl-winsys-egl-null-private.h" -#include "cogl-winsys-egl-private.h" -#include "cogl-renderer-private.h" -#include "cogl-framebuffer-private.h" -#include "cogl-onscreen-private.h" - -static const CoglWinsysEGLVtable _cogl_winsys_egl_vtable; - -typedef struct _CoglDisplayNull -{ - int egl_surface_width; - int egl_surface_height; - CoglBool have_onscreen; -} CoglDisplayNull; - -static void -_cogl_winsys_renderer_disconnect (CoglRenderer *renderer) -{ - CoglRendererEGL *egl_renderer = renderer->winsys; - - eglTerminate (egl_renderer->edpy); - - g_slice_free (CoglRendererEGL, egl_renderer); -} - -static CoglBool -_cogl_winsys_renderer_connect (CoglRenderer *renderer, - CoglError **error) -{ - CoglRendererEGL *egl_renderer; - - renderer->winsys = g_slice_new0 (CoglRendererEGL); - egl_renderer = renderer->winsys; - - egl_renderer->platform_vtable = &_cogl_winsys_egl_vtable; - - egl_renderer->edpy = eglGetDisplay (EGL_DEFAULT_DISPLAY); - - if (!_cogl_winsys_egl_renderer_connect_common (renderer, error)) - goto error; - - return TRUE; - -error: - _cogl_winsys_renderer_disconnect (renderer); - return FALSE; -} - -static CoglBool -_cogl_winsys_egl_context_created (CoglDisplay *display, - CoglError **error) -{ - CoglRenderer *renderer = display->renderer; - CoglRendererEGL *egl_renderer = renderer->winsys; - CoglDisplayEGL *egl_display = display->winsys; - CoglDisplayNull *null_display = egl_display->platform; - const char *error_message; - - egl_display->egl_surface = - eglCreateWindowSurface (egl_renderer->edpy, - egl_display->egl_config, - (EGLNativeWindowType) NULL, - NULL); - if (egl_display->egl_surface == EGL_NO_SURFACE) - { - error_message = "Unable to create EGL window surface"; - goto fail; - } - - if (!_cogl_winsys_egl_make_current (display, - egl_display->egl_surface, - egl_display->egl_surface, - egl_display->egl_context)) - { - error_message = "Unable to eglMakeCurrent with egl surface"; - goto fail; - } - - eglQuerySurface (egl_renderer->edpy, - egl_display->egl_surface, - EGL_WIDTH, - &null_display->egl_surface_width); - - eglQuerySurface (egl_renderer->edpy, - egl_display->egl_surface, - EGL_HEIGHT, - &null_display->egl_surface_height); - - return TRUE; - - fail: - _cogl_set_error (error, COGL_WINSYS_ERROR, - COGL_WINSYS_ERROR_CREATE_CONTEXT, - "%s", error_message); - return FALSE; -} - -static CoglBool -_cogl_winsys_egl_display_setup (CoglDisplay *display, - CoglError **error) -{ - CoglDisplayEGL *egl_display = display->winsys; - CoglDisplayNull *null_display; - - null_display = g_slice_new0 (CoglDisplayNull); - egl_display->platform = null_display; - - return TRUE; -} - -static void -_cogl_winsys_egl_display_destroy (CoglDisplay *display) -{ - CoglDisplayEGL *egl_display = display->winsys; - - g_slice_free (CoglDisplayNull, egl_display->platform); -} - -static void -_cogl_winsys_egl_cleanup_context (CoglDisplay *display) -{ - CoglRenderer *renderer = display->renderer; - CoglRendererEGL *egl_renderer = renderer->winsys; - CoglDisplayEGL *egl_display = display->winsys; - - if (egl_display->egl_surface != EGL_NO_SURFACE) - { - eglDestroySurface (egl_renderer->edpy, egl_display->egl_surface); - egl_display->egl_surface = EGL_NO_SURFACE; - } -} - -static CoglBool -_cogl_winsys_egl_onscreen_init (CoglOnscreen *onscreen, - EGLConfig egl_config, - CoglError **error) -{ - CoglFramebuffer *framebuffer = COGL_FRAMEBUFFER (onscreen); - CoglContext *context = framebuffer->context; - CoglDisplay *display = context->display; - CoglDisplayEGL *egl_display = display->winsys; - CoglDisplayNull *null_display = egl_display->platform; - CoglOnscreenEGL *egl_onscreen = onscreen->winsys; - - if (null_display->have_onscreen) - { - _cogl_set_error (error, COGL_WINSYS_ERROR, - COGL_WINSYS_ERROR_CREATE_ONSCREEN, - "EGL platform only supports a single onscreen window"); - return FALSE; - } - - egl_onscreen->egl_surface = egl_display->egl_surface; - - _cogl_framebuffer_winsys_update_size (framebuffer, - null_display->egl_surface_width, - null_display->egl_surface_height); - null_display->have_onscreen = TRUE; - - return TRUE; -} - -static void -_cogl_winsys_egl_onscreen_deinit (CoglOnscreen *onscreen) -{ - CoglFramebuffer *framebuffer = COGL_FRAMEBUFFER (onscreen); - CoglContext *context = framebuffer->context; - CoglDisplay *display = context->display; - CoglDisplayEGL *egl_display = display->winsys; - CoglDisplayNull *null_display = egl_display->platform; - - null_display->have_onscreen = FALSE; -} - -static const CoglWinsysEGLVtable -_cogl_winsys_egl_vtable = - { - .display_setup = _cogl_winsys_egl_display_setup, - .display_destroy = _cogl_winsys_egl_display_destroy, - .context_created = _cogl_winsys_egl_context_created, - .cleanup_context = _cogl_winsys_egl_cleanup_context, - .onscreen_init = _cogl_winsys_egl_onscreen_init, - .onscreen_deinit = _cogl_winsys_egl_onscreen_deinit - }; - -const CoglWinsysVtable * -_cogl_winsys_egl_null_get_vtable (void) -{ - static CoglBool vtable_inited = FALSE; - static CoglWinsysVtable vtable; - - if (!vtable_inited) - { - /* The EGL_NULL winsys is a subclass of the EGL winsys so we - start by copying its vtable */ - - vtable = *_cogl_winsys_egl_get_vtable (); - - vtable.id = COGL_WINSYS_ID_EGL_NULL; - vtable.name = "EGL_NULL"; - - vtable.renderer_connect = _cogl_winsys_renderer_connect; - vtable.renderer_disconnect = _cogl_winsys_renderer_disconnect; - - vtable_inited = TRUE; - } - - return &vtable; -} diff --git a/configure.ac b/configure.ac index e9d24d467..8d226d7b2 100644 --- a/configure.ac +++ b/configure.ac @@ -1008,23 +1008,6 @@ AS_IF([test "x$SUPPORT_SDL2" = "xyes" -a "x$SUPPORT_SDL" = "xyes"], EGL_PLATFORM_COUNT=0 -AC_ARG_ENABLE( - [null-egl-platform], - [AC_HELP_STRING([--enable-null-egl-platform=@<:@no/yes@:>@], [Enable support for the NULL egl platform @<:@default=no@:>@])], - [], - enable_null_egl_platform=no -) -AS_IF([test "x$enable_null_egl_platform" = "xyes"], - [ - EGL_PLATFORM_COUNT=$((EGL_PLATFORM_COUNT+1)) - NEED_EGL=yes - EGL_PLATFORMS="$EGL_PLATFORMS null" - - COGL_DEFINES_SYMBOLS="$COGL_DEFINES_SYMBOLS COGL_HAS_EGL_PLATFORM_POWERVR_NULL_SUPPORT" - ]) -AM_CONDITIONAL(SUPPORT_EGL_PLATFORM_POWERVR_NULL, - [test "x$enable_null_egl_platform" = "xyes"]) - AC_ARG_ENABLE( [gdl-egl-platform], [AC_HELP_STRING([--enable-gdl-egl-platform=@<:@no/yes@:>@], [Enable support for the GDL egl platform @<:@default=no@:>@])], diff --git a/examples/cogl-info.c b/examples/cogl-info.c index 0d0089dfe..4b837665c 100644 --- a/examples/cogl-info.c +++ b/examples/cogl-info.c @@ -137,8 +137,6 @@ get_winsys_name_for_id (CoglWinsysID winsys_id) return "GLX"; case COGL_WINSYS_ID_EGL_XLIB: return "EGL + Xlib platform"; - case COGL_WINSYS_ID_EGL_NULL: - return "EGL + NULL window system platform"; case COGL_WINSYS_ID_EGL_GDL: return "EGL + GDL platform"; case COGL_WINSYS_ID_EGL_WAYLAND: