From: Sylvain Beucler Date: Sat, 17 Mar 2012 10:30:31 +0000 (+0000) Subject: EGL: make more code reusable - less Android-specific X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=commitdiff_plain;h=be0851a736f7a14a550e113c17634c93df90677b;p=freeglut EGL: make more code reusable - less Android-specific git-svn-id: svn+ssh://svn.code.sf.net/p/freeglut/code/trunk/freeglut/freeglut@1174 7f0cb862-5218-0410-a997-914c9d46530a --- diff --git a/CMakeLists.txt b/CMakeLists.txt index ba5a7f7..05ee255 100644 --- a/CMakeLists.txt +++ b/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/src/android/fg_init_android.c b/src/android/fg_init_android.c new file mode 100644 index 0000000..70b276c --- /dev/null +++ b/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/src/egl/fg_init_egl.c b/src/egl/fg_init_egl.c index c6ceb63..0cd53fe 100644 --- a/src/egl/fg_init_egl.c +++ b/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/src/egl/fg_structure_egl.c b/src/egl/fg_structure_egl.c index adc3cea..55893d8 100644 --- a/src/egl/fg_structure_egl.c +++ b/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/src/egl/fg_window_egl.h b/src/egl/fg_window_egl.h index 23a74aa..a4beb69 100644 --- a/src/egl/fg_window_egl.h +++ b/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 );