mirror of
https://github.com/brl/mutter.git
synced 2024-11-12 17:27:03 -05:00
renderer: drop PowerVR winsys
This commit is contained in:
parent
81ab4a3ee4
commit
9246c9a505
@ -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 \
|
||||
|
@ -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
|
||||
|
@ -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,
|
||||
|
@ -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 */
|
@ -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 <robert@linux.intel.com>
|
||||
* Neil Roberts <neil@linux.intel.com>
|
||||
*/
|
||||
|
||||
#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;
|
||||
}
|
17
configure.ac
17
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@:>@])],
|
||||
|
@ -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:
|
||||
|
Loading…
Reference in New Issue
Block a user