From b5648dc0cbd5ce08cb41cdcbdebd89ea1485f826 Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Tue, 12 Jan 2016 16:53:23 -0500 Subject: [PATCH] renderer: drop android support --- cogl/Makefile.am | 5 - cogl/cogl-bitmap-pixbuf.c | 52 ---- cogl/cogl-bitmap-private.h | 12 - cogl/cogl-bitmap.c | 16 -- cogl/cogl-bitmap.h | 26 -- cogl/cogl-context.h | 20 -- cogl/cogl-renderer.c | 6 - cogl/cogl-renderer.h | 2 - cogl/winsys/cogl-winsys-egl-android-private.h | 39 --- cogl/winsys/cogl-winsys-egl-android.c | 253 ------------------ configure.ac | 23 -- examples/cogl-info.c | 2 - 12 files changed, 456 deletions(-) delete mode 100644 cogl/winsys/cogl-winsys-egl-android-private.h delete mode 100644 cogl/winsys/cogl-winsys-egl-android.c diff --git a/cogl/Makefile.am b/cogl/Makefile.am index aaeba7564..51353e37c 100644 --- a/cogl/Makefile.am +++ b/cogl/Makefile.am @@ -473,11 +473,6 @@ cogl_sources_c += \ winsys/cogl-winsys-egl-x11.c \ winsys/cogl-winsys-egl-x11-private.h endif -if SUPPORT_EGL_PLATFORM_ANDROID -cogl_sources_c += \ - winsys/cogl-winsys-egl-android.c \ - winsys/cogl-winsys-egl-android-private.h -endif if SUPPORT_EGL cogl_experimental_h += cogl-egl.h cogl_nodist_experimental_h += cogl-egl-defines.h diff --git a/cogl/cogl-bitmap-pixbuf.c b/cogl/cogl-bitmap-pixbuf.c index c1e99dbc4..777a523d9 100644 --- a/cogl/cogl-bitmap-pixbuf.c +++ b/cogl/cogl-bitmap-pixbuf.c @@ -420,56 +420,4 @@ _cogl_bitmap_from_file (CoglContext *ctx, error); } -#ifdef COGL_HAS_ANDROID_SUPPORT -CoglBitmap * -_cogl_android_bitmap_new_from_asset (CoglContext *ctx, - AAssetManager *manager, - const char *filename, - CoglError **error) -{ - AAsset *asset; - const void *data; - off_t len; - int stb_pixel_format; - int width; - int height; - uint8_t *pixels; - CoglBitmap *bmp; - - asset = AAssetManager_open (manager, filename, AASSET_MODE_BUFFER); - if (!asset) - { - _cogl_set_error_literal (error, - COGL_BITMAP_ERROR, - COGL_BITMAP_ERROR_FAILED, - "Failed to open asset"); - return NULL; - } - - data = AAsset_getBuffer (asset); - if (!data) - { - _cogl_set_error_literal (error, - COGL_BITMAP_ERROR, - COGL_BITMAP_ERROR_FAILED, - "Failed to ::getBuffer from asset"); - return NULL; - } - - len = AAsset_getLength (asset); - - pixels = stbi_load_from_memory (data, len, - &width, &height, - &stb_pixel_format, STBI_default); - - bmp = _cogl_bitmap_new_from_stb_pixels (ctx, pixels, stb_pixel_format, - width, height, - error); - - AAsset_close (asset); - - return bmp; -} -#endif - #endif diff --git a/cogl/cogl-bitmap-private.h b/cogl/cogl-bitmap-private.h index 8b29433e0..676729d55 100644 --- a/cogl/cogl-bitmap-private.h +++ b/cogl/cogl-bitmap-private.h @@ -37,10 +37,6 @@ #include "cogl-buffer.h" #include "cogl-bitmap.h" -#ifdef COGL_HAS_ANDROID_SUPPORT -#include -#endif - struct _CoglBitmap { CoglObject _parent; @@ -126,14 +122,6 @@ _cogl_bitmap_from_file (CoglContext *ctx, const char *filename, CoglError **error); -#ifdef COGL_HAS_ANDROID_SUPPORT -CoglBitmap * -_cogl_android_bitmap_new_from_asset (CoglContext *ctx, - AAssetManager *manager, - const char *filename, - CoglError **error); -#endif - CoglBool _cogl_bitmap_unpremult (CoglBitmap *dst_bmp, CoglError **error); diff --git a/cogl/cogl-bitmap.c b/cogl/cogl-bitmap.c index 5b2aa8ed5..fbeb2d1c6 100644 --- a/cogl/cogl-bitmap.c +++ b/cogl/cogl-bitmap.c @@ -332,22 +332,6 @@ cogl_bitmap_new_with_size (CoglContext *context, return bitmap; } -#ifdef COGL_HAS_ANDROID_SUPPORT -CoglBitmap * -cogl_android_bitmap_new_from_asset (CoglContext *ctx, - AAssetManager *manager, - const char *filename, - CoglError **error) -{ - _COGL_RETURN_VAL_IF_FAIL (ctx != NULL, NULL); - _COGL_RETURN_VAL_IF_FAIL (manager != NULL, NULL); - _COGL_RETURN_VAL_IF_FAIL (filename != NULL, NULL); - _COGL_RETURN_VAL_IF_FAIL (error == NULL || *error == NULL, NULL); - - return _cogl_android_bitmap_new_from_asset (ctx, manager, filename, error); -} -#endif - CoglPixelFormat cogl_bitmap_get_format (CoglBitmap *bitmap) { diff --git a/cogl/cogl-bitmap.h b/cogl/cogl-bitmap.h index 13b5cd2be..2ef5299c2 100644 --- a/cogl/cogl-bitmap.h +++ b/cogl/cogl-bitmap.h @@ -48,10 +48,6 @@ typedef struct _CoglBitmap CoglBitmap; #include #endif -#ifdef COGL_HAS_ANDROID_SUPPORT -#include -#endif - COGL_BEGIN_DECLS #ifdef COGL_HAS_GTYPE_SUPPORT @@ -91,28 +87,6 @@ CoglBitmap * cogl_bitmap_new_from_file (const char *filename, CoglError **error); -#ifdef COGL_HAS_ANDROID_SUPPORT -/** - * cogl_android_bitmap_new_from_asset: - * @context: A #CoglContext - * @manager: An Android Asset Manager. - * @filename: The file name for the asset - * @error: A return location for a CoglError exception. - * - * Loads an Android asset into a newly allocated #CoglBitmap. - * - * Return value: (transfer full): A newly allocated #CoglBitmap - * holding the image data of the specified asset. - * - * Since: 2.0 - */ -CoglBitmap * -cogl_android_bitmap_new_from_asset (CoglContext *context, - AAssetManager *manager, - const char *filename, - CoglError **error); -#endif - #if defined (COGL_ENABLE_EXPERIMENTAL_API) /** diff --git a/cogl/cogl-context.h b/cogl/cogl-context.h index 07badeb44..529481765 100644 --- a/cogl/cogl-context.h +++ b/cogl/cogl-context.h @@ -49,9 +49,6 @@ typedef struct _CoglContext CoglContext; #ifdef COGL_HAS_GTYPE_SUPPORT #include #endif -#ifdef COGL_HAS_EGL_PLATFORM_ANDROID_SUPPORT -#include -#endif COGL_BEGIN_DECLS @@ -163,23 +160,6 @@ cogl_context_get_display (CoglContext *context); CoglRenderer * cogl_context_get_renderer (CoglContext *context); -#ifdef COGL_HAS_EGL_PLATFORM_ANDROID_SUPPORT -/** - * cogl_android_set_native_window: - * @window: A native Android window - * - * Allows Android applications to inform Cogl of the native window - * that they have been given which Cogl can render too. On Android - * this API must be used before creating a #CoglRenderer, #CoglDisplay - * and #CoglContext. - * - * Since: 1.8 - * Stability: unstable - */ -void -cogl_android_set_native_window (ANativeWindow *window); -#endif - /** * cogl_is_context: * @object: An object or %NULL diff --git a/cogl/cogl-renderer.c b/cogl/cogl-renderer.c index 0f0390d93..5bb1eafde 100644 --- a/cogl/cogl-renderer.c +++ b/cogl/cogl-renderer.c @@ -60,9 +60,6 @@ #ifdef COGL_HAS_EGL_PLATFORM_KMS_SUPPORT #include "cogl-winsys-egl-kms-private.h" #endif -#ifdef COGL_HAS_EGL_PLATFORM_ANDROID_SUPPORT -#include "cogl-winsys-egl-android-private.h" -#endif #ifdef COGL_HAS_GLX_SUPPORT #include "cogl-winsys-glx-private.h" #endif @@ -179,9 +176,6 @@ static CoglWinsysVtableGetter _cogl_winsys_vtable_getters[] = #endif #ifdef COGL_HAS_EGL_PLATFORM_KMS_SUPPORT _cogl_winsys_egl_kms_get_vtable, -#endif -#ifdef COGL_HAS_EGL_PLATFORM_ANDROID_SUPPORT - _cogl_winsys_egl_android_get_vtable, #endif _cogl_winsys_stub_get_vtable, }; diff --git a/cogl/cogl-renderer.h b/cogl/cogl-renderer.h index af796d410..c31664ab3 100644 --- a/cogl/cogl-renderer.h +++ b/cogl/cogl-renderer.h @@ -163,7 +163,6 @@ cogl_renderer_new (void); * @COGL_WINSYS_ID_EGL_XLIB: Use EGL with the X window system via XLib * @COGL_WINSYS_ID_EGL_WAYLAND: Use EGL with the Wayland window system * @COGL_WINSYS_ID_EGL_KMS: Use EGL with the KMS platform - * @COGL_WINSYS_ID_EGL_ANDROID: Use EGL with the Android platform * * Identifies specific window system backends that Cogl supports. * @@ -178,7 +177,6 @@ typedef enum COGL_WINSYS_ID_EGL_XLIB, COGL_WINSYS_ID_EGL_WAYLAND, COGL_WINSYS_ID_EGL_KMS, - COGL_WINSYS_ID_EGL_ANDROID, } CoglWinsysID; /** diff --git a/cogl/winsys/cogl-winsys-egl-android-private.h b/cogl/winsys/cogl-winsys-egl-android-private.h deleted file mode 100644 index b866c872e..000000000 --- a/cogl/winsys/cogl-winsys-egl-android-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_ANDROID_PRIVATE_H -#define __COGL_WINSYS_EGL_ANDROID_PRIVATE_H - -#include "cogl-winsys-private.h" - -const CoglWinsysVtable * -_cogl_winsys_egl_android_get_vtable (void); - -#endif /* __COGL_WINSYS_EGL_ANDROID_PRIVATE_H */ diff --git a/cogl/winsys/cogl-winsys-egl-android.c b/cogl/winsys/cogl-winsys-egl-android.c deleted file mode 100644 index cf4a133ec..000000000 --- a/cogl/winsys/cogl-winsys-egl-android.c +++ /dev/null @@ -1,253 +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 - -#include "cogl-winsys-egl-android-private.h" -#include "cogl-winsys-egl-private.h" -#include "cogl-renderer-private.h" -#include "cogl-framebuffer-private.h" -#include "cogl-onscreen-private.h" -#include "cogl-private.h" - -static const CoglWinsysEGLVtable _cogl_winsys_egl_vtable; - -typedef struct _CoglDisplayAndroid -{ - int egl_surface_width; - int egl_surface_height; - CoglBool have_onscreen; -} CoglDisplayAndroid; - -static ANativeWindow *android_native_window; - -void -cogl_android_set_native_window (ANativeWindow *window) -{ - _cogl_init (); - - android_native_window = window; -} - -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; - CoglDisplayAndroid *android_display = egl_display->platform; - const char *error_message; - EGLint format; - - if (android_native_window == NULL) - { - error_message = "No ANativeWindow window specified with " - "cogl_android_set_native_window()"; - goto fail; - } - - /* EGL_NATIVE_VISUAL_ID is an attribute of the EGLConfig that is - * guaranteed to be accepted by ANativeWindow_setBuffersGeometry (). - * As soon as we picked a EGLConfig, we can safely reconfigure the - * ANativeWindow buffers to match, using EGL_NATIVE_VISUAL_ID. */ - eglGetConfigAttrib (egl_renderer->edpy, - egl_display->egl_config, - EGL_NATIVE_VISUAL_ID, &format); - - ANativeWindow_setBuffersGeometry (android_native_window, - 0, - 0, - format); - - egl_display->egl_surface = - eglCreateWindowSurface (egl_renderer->edpy, - egl_display->egl_config, - (EGLNativeWindowType) android_native_window, - 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, - &android_display->egl_surface_width); - - eglQuerySurface (egl_renderer->edpy, - egl_display->egl_surface, - EGL_HEIGHT, - &android_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; - CoglDisplayAndroid *android_display; - - android_display = g_slice_new0 (CoglDisplayAndroid); - egl_display->platform = android_display; - - return TRUE; -} - -static void -_cogl_winsys_egl_display_destroy (CoglDisplay *display) -{ - CoglDisplayEGL *egl_display = display->winsys; - - g_slice_free (CoglDisplayAndroid, egl_display->platform); -} - -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; - CoglDisplayAndroid *android_display = egl_display->platform; - CoglOnscreenEGL *egl_onscreen = onscreen->winsys; - - if (android_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, - android_display->egl_surface_width, - android_display->egl_surface_height); - - android_display->have_onscreen = TRUE; - - return TRUE; -} - -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, - .onscreen_init = _cogl_winsys_egl_onscreen_init, - }; - -const CoglWinsysVtable * -_cogl_winsys_egl_android_get_vtable (void) -{ - static CoglBool vtable_inited = FALSE; - static CoglWinsysVtable vtable; - - if (!vtable_inited) - { - /* The EGL_ANDROID 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_ANDROID; - vtable.name = "EGL_ANDROID"; - - 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 6b2d4d640..f8beabbf5 100644 --- a/configure.ac +++ b/configure.ac @@ -915,29 +915,6 @@ AS_IF([test "x$enable_wayland_egl_server" = "xyes"], AM_CONDITIONAL(SUPPORT_WAYLAND_EGL_SERVER, [test "x$enable_wayland_egl_server" = "xyes"]) -dnl Android EGL platform -AC_ARG_ENABLE( - [android-egl-platform], - [AC_HELP_STRING([--enable-android-egl-platform=@<:@no/yes@:>@], [Enable support for the Android egl platform @<:@default=no@:>@])], - [], - enable_android_egl_platform=no -) -AS_IF([test "x$enable_android_egl_platform" = "xyes"], - [ - EGL_PLATFORM_COUNT=$((EGL_PLATFORM_COUNT+1)) - NEED_EGL=yes - EGL_PLATFORMS="$EGL_PLATFORMS android" - - AC_CHECK_HEADER([android/native_window.h], - [], - [AC_MSG_ERROR([Unable to locate android/native_window.h])]) - - COGL_DEFINES_SYMBOLS="$COGL_DEFINES_SYMBOLS COGL_HAS_EGL_PLATFORM_ANDROID_SUPPORT" - ]) -AM_CONDITIONAL(SUPPORT_EGL_PLATFORM_ANDROID, - [test "x$enable_android_egl_platform" = "xyes"]) - - dnl This should go last, since it's the default fallback and we need dnl to check the value of $EGL_PLATFORM_COUNT here. AC_ARG_ENABLE( diff --git a/examples/cogl-info.c b/examples/cogl-info.c index f264a5ace..faa326661 100644 --- a/examples/cogl-info.c +++ b/examples/cogl-info.c @@ -141,8 +141,6 @@ get_winsys_name_for_id (CoglWinsysID winsys_id) return "EGL + Wayland platform"; case COGL_WINSYS_ID_EGL_KMS: return "EGL + KMS platform"; - case COGL_WINSYS_ID_EGL_ANDROID: - return "EGL + Android platform"; } g_return_val_if_reached ("Unknown"); }