renderer: drop android support

This commit is contained in:
Ray Strode 2016-01-12 16:53:23 -05:00 committed by Rui Matos
parent ce8aa45fa4
commit b5648dc0cb
12 changed files with 0 additions and 456 deletions

View File

@ -473,11 +473,6 @@ cogl_sources_c += \
winsys/cogl-winsys-egl-x11.c \ winsys/cogl-winsys-egl-x11.c \
winsys/cogl-winsys-egl-x11-private.h winsys/cogl-winsys-egl-x11-private.h
endif 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 if SUPPORT_EGL
cogl_experimental_h += cogl-egl.h cogl_experimental_h += cogl-egl.h
cogl_nodist_experimental_h += cogl-egl-defines.h cogl_nodist_experimental_h += cogl-egl-defines.h

View File

@ -420,56 +420,4 @@ _cogl_bitmap_from_file (CoglContext *ctx,
error); 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 #endif

View File

@ -37,10 +37,6 @@
#include "cogl-buffer.h" #include "cogl-buffer.h"
#include "cogl-bitmap.h" #include "cogl-bitmap.h"
#ifdef COGL_HAS_ANDROID_SUPPORT
#include <android/asset_manager.h>
#endif
struct _CoglBitmap struct _CoglBitmap
{ {
CoglObject _parent; CoglObject _parent;
@ -126,14 +122,6 @@ _cogl_bitmap_from_file (CoglContext *ctx,
const char *filename, const char *filename,
CoglError **error); 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 CoglBool
_cogl_bitmap_unpremult (CoglBitmap *dst_bmp, _cogl_bitmap_unpremult (CoglBitmap *dst_bmp,
CoglError **error); CoglError **error);

View File

@ -332,22 +332,6 @@ cogl_bitmap_new_with_size (CoglContext *context,
return bitmap; 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 CoglPixelFormat
cogl_bitmap_get_format (CoglBitmap *bitmap) cogl_bitmap_get_format (CoglBitmap *bitmap)
{ {

View File

@ -48,10 +48,6 @@ typedef struct _CoglBitmap CoglBitmap;
#include <glib-object.h> #include <glib-object.h>
#endif #endif
#ifdef COGL_HAS_ANDROID_SUPPORT
#include <android/asset_manager.h>
#endif
COGL_BEGIN_DECLS COGL_BEGIN_DECLS
#ifdef COGL_HAS_GTYPE_SUPPORT #ifdef COGL_HAS_GTYPE_SUPPORT
@ -91,28 +87,6 @@ CoglBitmap *
cogl_bitmap_new_from_file (const char *filename, cogl_bitmap_new_from_file (const char *filename,
CoglError **error); 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) #if defined (COGL_ENABLE_EXPERIMENTAL_API)
/** /**

View File

@ -49,9 +49,6 @@ typedef struct _CoglContext CoglContext;
#ifdef COGL_HAS_GTYPE_SUPPORT #ifdef COGL_HAS_GTYPE_SUPPORT
#include <glib-object.h> #include <glib-object.h>
#endif #endif
#ifdef COGL_HAS_EGL_PLATFORM_ANDROID_SUPPORT
#include <android/native_window.h>
#endif
COGL_BEGIN_DECLS COGL_BEGIN_DECLS
@ -163,23 +160,6 @@ cogl_context_get_display (CoglContext *context);
CoglRenderer * CoglRenderer *
cogl_context_get_renderer (CoglContext *context); 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: * cogl_is_context:
* @object: An object or %NULL * @object: An object or %NULL

View File

@ -60,9 +60,6 @@
#ifdef COGL_HAS_EGL_PLATFORM_KMS_SUPPORT #ifdef COGL_HAS_EGL_PLATFORM_KMS_SUPPORT
#include "cogl-winsys-egl-kms-private.h" #include "cogl-winsys-egl-kms-private.h"
#endif #endif
#ifdef COGL_HAS_EGL_PLATFORM_ANDROID_SUPPORT
#include "cogl-winsys-egl-android-private.h"
#endif
#ifdef COGL_HAS_GLX_SUPPORT #ifdef COGL_HAS_GLX_SUPPORT
#include "cogl-winsys-glx-private.h" #include "cogl-winsys-glx-private.h"
#endif #endif
@ -179,9 +176,6 @@ static CoglWinsysVtableGetter _cogl_winsys_vtable_getters[] =
#endif #endif
#ifdef COGL_HAS_EGL_PLATFORM_KMS_SUPPORT #ifdef COGL_HAS_EGL_PLATFORM_KMS_SUPPORT
_cogl_winsys_egl_kms_get_vtable, _cogl_winsys_egl_kms_get_vtable,
#endif
#ifdef COGL_HAS_EGL_PLATFORM_ANDROID_SUPPORT
_cogl_winsys_egl_android_get_vtable,
#endif #endif
_cogl_winsys_stub_get_vtable, _cogl_winsys_stub_get_vtable,
}; };

View File

@ -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_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_WAYLAND: Use EGL with the Wayland window system
* @COGL_WINSYS_ID_EGL_KMS: Use EGL with the KMS platform * @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. * Identifies specific window system backends that Cogl supports.
* *
@ -178,7 +177,6 @@ typedef enum
COGL_WINSYS_ID_EGL_XLIB, COGL_WINSYS_ID_EGL_XLIB,
COGL_WINSYS_ID_EGL_WAYLAND, COGL_WINSYS_ID_EGL_WAYLAND,
COGL_WINSYS_ID_EGL_KMS, COGL_WINSYS_ID_EGL_KMS,
COGL_WINSYS_ID_EGL_ANDROID,
} CoglWinsysID; } CoglWinsysID;
/** /**

View File

@ -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 */

View File

@ -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 <robert@linux.intel.com>
* Neil Roberts <neil@linux.intel.com>
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <android/native_window.h>
#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;
}

View File

@ -915,29 +915,6 @@ AS_IF([test "x$enable_wayland_egl_server" = "xyes"],
AM_CONDITIONAL(SUPPORT_WAYLAND_EGL_SERVER, AM_CONDITIONAL(SUPPORT_WAYLAND_EGL_SERVER,
[test "x$enable_wayland_egl_server" = "xyes"]) [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 This should go last, since it's the default fallback and we need
dnl to check the value of $EGL_PLATFORM_COUNT here. dnl to check the value of $EGL_PLATFORM_COUNT here.
AC_ARG_ENABLE( AC_ARG_ENABLE(

View File

@ -141,8 +141,6 @@ get_winsys_name_for_id (CoglWinsysID winsys_id)
return "EGL + Wayland platform"; return "EGL + Wayland platform";
case COGL_WINSYS_ID_EGL_KMS: case COGL_WINSYS_ID_EGL_KMS:
return "EGL + KMS platform"; return "EGL + KMS platform";
case COGL_WINSYS_ID_EGL_ANDROID:
return "EGL + Android platform";
} }
g_return_val_if_reached ("Unknown"); g_return_val_if_reached ("Unknown");
} }