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
This commit is contained in:
beuc 2012-03-17 10:30:31 +00:00
parent 40db28bb94
commit 5149d43941
6 changed files with 47 additions and 8 deletions

1
.gitattributes vendored
View File

@ -53,6 +53,7 @@ freeglut/freeglut/progs/demos/spaceball/vmath.inl -text
freeglut/freeglut/progs/demos/subwin/subwin.c -text freeglut/freeglut/progs/demos/subwin/subwin.c -text
freeglut/freeglut/progs/demos/timer/timer.c -text freeglut/freeglut/progs/demos/timer/timer.c -text
freeglut/freeglut/src/android/fg_gamemode_android.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_input_devices_android.c -text
freeglut/freeglut/src/android/fg_internal_android.h -text freeglut/freeglut/src/android/fg_internal_android.h -text
freeglut/freeglut/src/android/fg_joystick_android.c -text freeglut/freeglut/src/android/fg_joystick_android.c -text

View File

@ -105,6 +105,7 @@ ELSEIF(ANDROID)
src/android/native_app_glue/android_native_app_glue.h src/android/native_app_glue/android_native_app_glue.h
src/android/fg_runtime_android.c src/android/fg_runtime_android.c
src/android/fg_gamemode_android.c src/android/fg_gamemode_android.c
src/android/fg_init_android.c
src/android/fg_input_devices_android.c src/android/fg_input_devices_android.c
src/android/fg_joystick_android.c src/android/fg_joystick_android.c
src/android/fg_main_android.c src/android/fg_main_android.c

View File

@ -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 <GL/freeglut.h>
#include "fg_internal.h"
void fgPlatformInitialize()
{
fghPlatformInitializeEGL();
fgState.Initialised = GL_TRUE;
}
void fgPlatformCloseDisplay()
{
fghPlatformCloseDisplayEGL();
}

View File

@ -1,5 +1,5 @@
/* /*
* freeglut_init_android.c * freeglut_init_egl.c
* *
* Various freeglut initialization functions. * Various freeglut initialization functions.
* *
@ -27,16 +27,11 @@
#include <GL/freeglut.h> #include <GL/freeglut.h>
#include "fg_internal.h" #include "fg_internal.h"
#include <android/native_app_glue/android_native_app_glue.h>
/* /*
* A call to this function should initialize all the display stuff... * 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 */ /* CreateDisplay */
/* Using EGL_DEFAULT_DISPLAY, or a specific native display */ /* Using EGL_DEFAULT_DISPLAY, or a specific native display */
EGLNativeDisplayType nativeDisplay = EGL_DEFAULT_DISPLAY; EGLNativeDisplayType nativeDisplay = EGL_DEFAULT_DISPLAY;
@ -59,7 +54,7 @@ void fgPlatformInitialize( const char* displayName )
// fgDisplay.ScreenHeightMM = ...; // fgDisplay.ScreenHeightMM = ...;
} }
void fgPlatformCloseDisplay ( void ) void fghPlatformCloseDisplayEGL()
{ {
if (fgDisplay.pDisplay.egl.Display != EGL_NO_DISPLAY) { if (fgDisplay.pDisplay.egl.Display != EGL_NO_DISPLAY) {
eglTerminate(fgDisplay.pDisplay.egl.Display); eglTerminate(fgDisplay.pDisplay.egl.Display);

View File

@ -28,6 +28,9 @@
extern SFG_Structure fgStructure; extern SFG_Structure fgStructure;
/**
* Initialize default platform-specific fields in SFG_Window
*/
void fgPlatformCreateWindow ( SFG_Window *window ) void fgPlatformCreateWindow ( SFG_Window *window )
{ {
window->Window.pContext.egl.Surface = EGL_NO_SURFACE; window->Window.pContext.egl.Surface = EGL_NO_SURFACE;

View File

@ -26,6 +26,7 @@
#ifndef __FG_WINDOW_EGL_H__ #ifndef __FG_WINDOW_EGL_H__
#define __FG_WINDOW_EGL_H__ #define __FG_WINDOW_EGL_H__
extern void fghChooseConfigEGL(EGLConfig* config);
extern void fghPlatformOpenWindowEGL( SFG_Window* window ); extern void fghPlatformOpenWindowEGL( SFG_Window* window );
extern void fghCreateNewContextEGL( SFG_Window* window ); extern void fghCreateNewContextEGL( SFG_Window* window );
extern void fghPlatformCloseWindowEGL( SFG_Window* window ); extern void fghPlatformCloseWindowEGL( SFG_Window* window );