From 5149d439413beb0d935a1b1c72bd47f2db1fc193 Mon Sep 17 00:00:00 2001 From: beuc Date: Sat, 17 Mar 2012 10:30:31 +0000 Subject: [PATCH] EGL: make more code reusable - less Android-specific git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1174 7f0cb862-5218-0410-a997-914c9d46530a --- .gitattributes | 1 + freeglut/freeglut/CMakeLists.txt | 1 + .../freeglut/src/android/fg_init_android.c | 38 +++++++++++++++++++ freeglut/freeglut/src/egl/fg_init_egl.c | 11 ++---- freeglut/freeglut/src/egl/fg_structure_egl.c | 3 ++ freeglut/freeglut/src/egl/fg_window_egl.h | 1 + 6 files changed, 47 insertions(+), 8 deletions(-) create mode 100644 freeglut/freeglut/src/android/fg_init_android.c diff --git a/.gitattributes b/.gitattributes index 3072061..044d626 100644 --- a/.gitattributes +++ b/.gitattributes @@ -53,6 +53,7 @@ freeglut/freeglut/progs/demos/spaceball/vmath.inl -text freeglut/freeglut/progs/demos/subwin/subwin.c -text freeglut/freeglut/progs/demos/timer/timer.c -text freeglut/freeglut/src/android/fg_gamemode_android.c -text +freeglut/freeglut/src/android/fg_init_android.c -text freeglut/freeglut/src/android/fg_input_devices_android.c -text freeglut/freeglut/src/android/fg_internal_android.h -text freeglut/freeglut/src/android/fg_joystick_android.c -text diff --git a/freeglut/freeglut/CMakeLists.txt b/freeglut/freeglut/CMakeLists.txt index ba5a7f7..05ee255 100644 --- a/freeglut/freeglut/CMakeLists.txt +++ b/freeglut/freeglut/CMakeLists.txt @@ -105,6 +105,7 @@ ELSEIF(ANDROID) src/android/native_app_glue/android_native_app_glue.h src/android/fg_runtime_android.c src/android/fg_gamemode_android.c + src/android/fg_init_android.c src/android/fg_input_devices_android.c src/android/fg_joystick_android.c src/android/fg_main_android.c diff --git a/freeglut/freeglut/src/android/fg_init_android.c b/freeglut/freeglut/src/android/fg_init_android.c new file mode 100644 index 0000000..70b276c --- /dev/null +++ b/freeglut/freeglut/src/android/fg_init_android.c @@ -0,0 +1,38 @@ +/* + * freeglut_init_android.c + * + * Various freeglut initialization functions. + * + * Copyright (C) 2012 Sylvain Beucler + * + * 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 + * PAWEL W. OLSZTA 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. + */ + +#include +#include "fg_internal.h" + +void fgPlatformInitialize() +{ + fghPlatformInitializeEGL(); + fgState.Initialised = GL_TRUE; +} + +void fgPlatformCloseDisplay() +{ + fghPlatformCloseDisplayEGL(); +} diff --git a/freeglut/freeglut/src/egl/fg_init_egl.c b/freeglut/freeglut/src/egl/fg_init_egl.c index c6ceb63..0cd53fe 100644 --- a/freeglut/freeglut/src/egl/fg_init_egl.c +++ b/freeglut/freeglut/src/egl/fg_init_egl.c @@ -1,5 +1,5 @@ /* - * freeglut_init_android.c + * freeglut_init_egl.c * * Various freeglut initialization functions. * @@ -27,16 +27,11 @@ #include #include "fg_internal.h" -#include - /* * A call to this function should initialize all the display stuff... */ -void fgPlatformInitialize( const char* displayName ) +void fghPlatformInitializeEGL() { - fprintf(stderr, "fgPlatformInitialize\n"); - fgState.Initialised = GL_TRUE; - /* CreateDisplay */ /* Using EGL_DEFAULT_DISPLAY, or a specific native display */ EGLNativeDisplayType nativeDisplay = EGL_DEFAULT_DISPLAY; @@ -59,7 +54,7 @@ void fgPlatformInitialize( const char* displayName ) // fgDisplay.ScreenHeightMM = ...; } -void fgPlatformCloseDisplay ( void ) +void fghPlatformCloseDisplayEGL() { if (fgDisplay.pDisplay.egl.Display != EGL_NO_DISPLAY) { eglTerminate(fgDisplay.pDisplay.egl.Display); diff --git a/freeglut/freeglut/src/egl/fg_structure_egl.c b/freeglut/freeglut/src/egl/fg_structure_egl.c index adc3cea..55893d8 100644 --- a/freeglut/freeglut/src/egl/fg_structure_egl.c +++ b/freeglut/freeglut/src/egl/fg_structure_egl.c @@ -28,6 +28,9 @@ extern SFG_Structure fgStructure; +/** + * Initialize default platform-specific fields in SFG_Window + */ void fgPlatformCreateWindow ( SFG_Window *window ) { window->Window.pContext.egl.Surface = EGL_NO_SURFACE; diff --git a/freeglut/freeglut/src/egl/fg_window_egl.h b/freeglut/freeglut/src/egl/fg_window_egl.h index 23a74aa..a4beb69 100644 --- a/freeglut/freeglut/src/egl/fg_window_egl.h +++ b/freeglut/freeglut/src/egl/fg_window_egl.h @@ -26,6 +26,7 @@ #ifndef __FG_WINDOW_EGL_H__ #define __FG_WINDOW_EGL_H__ +extern void fghChooseConfigEGL(EGLConfig* config); extern void fghPlatformOpenWindowEGL( SFG_Window* window ); extern void fghCreateNewContextEGL( SFG_Window* window ); extern void fghPlatformCloseWindowEGL( SFG_Window* window );