Added minimal test project
This commit is contained in:
parent
a633daa196
commit
db5022f8c4
16 changed files with 648 additions and 0 deletions
15
android/testproject/AndroidManifest.xml
Normal file
15
android/testproject/AndroidManifest.xml
Normal file
|
@ -0,0 +1,15 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="org.libsdl.android"
|
||||
android:versionCode="1"
|
||||
android:versionName="1.0">
|
||||
<application android:label="@string/app_name" android:icon="@drawable/icon">
|
||||
<activity android:name="TestActivity"
|
||||
android:label="@string/app_name">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
</application>
|
||||
</manifest>
|
17
android/testproject/build.properties
Normal file
17
android/testproject/build.properties
Normal file
|
@ -0,0 +1,17 @@
|
|||
# This file is used to override default values used by the Ant build system.
|
||||
#
|
||||
# This file must be checked in Version Control Systems, as it is
|
||||
# integral to the build system of your project.
|
||||
|
||||
# This file is only used by the Ant script.
|
||||
|
||||
# You can use this to override default values such as
|
||||
# 'source.dir' for the location of your java source folder and
|
||||
# 'out.dir' for the location of your output folder.
|
||||
|
||||
# You can also use it define how the release builds are signed by declaring
|
||||
# the following properties:
|
||||
# 'key.store' for the location of your keystore and
|
||||
# 'key.alias' for the name of the key to use.
|
||||
# The password will be asked during the build when you use the 'release' target.
|
||||
|
67
android/testproject/build.xml
Normal file
67
android/testproject/build.xml
Normal file
|
@ -0,0 +1,67 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project name="Test" default="help">
|
||||
|
||||
<!-- The local.properties file is created and updated by the 'android' tool.
|
||||
It contains the path to the SDK. It should *NOT* be checked in in Version
|
||||
Control Systems. -->
|
||||
<property file="local.properties" />
|
||||
|
||||
<!-- The build.properties file can be created by you and is never touched
|
||||
by the 'android' tool. This is the place to change some of the default property values
|
||||
used by the Ant rules.
|
||||
Here are some properties you may want to change/update:
|
||||
|
||||
application.package
|
||||
the name of your application package as defined in the manifest. Used by the
|
||||
'uninstall' rule.
|
||||
source.dir
|
||||
the name of the source directory. Default is 'src'.
|
||||
out.dir
|
||||
the name of the output directory. Default is 'bin'.
|
||||
|
||||
Properties related to the SDK location or the project target should be updated
|
||||
using the 'android' tool with the 'update' action.
|
||||
|
||||
This file is an integral part of the build system for your application and
|
||||
should be checked in in Version Control Systems.
|
||||
|
||||
-->
|
||||
<property file="build.properties" />
|
||||
|
||||
<!-- The default.properties file is created and updated by the 'android' tool, as well
|
||||
as ADT.
|
||||
This file is an integral part of the build system for your application and
|
||||
should be checked in in Version Control Systems. -->
|
||||
<property file="default.properties" />
|
||||
|
||||
<!-- Custom Android task to deal with the project target, and import the proper rules.
|
||||
This requires ant 1.6.0 or above. -->
|
||||
<path id="android.antlibs">
|
||||
<pathelement path="${sdk.dir}/tools/lib/anttasks.jar" />
|
||||
<pathelement path="${sdk.dir}/tools/lib/sdklib.jar" />
|
||||
<pathelement path="${sdk.dir}/tools/lib/androidprefs.jar" />
|
||||
<pathelement path="${sdk.dir}/tools/lib/apkbuilder.jar" />
|
||||
<pathelement path="${sdk.dir}/tools/lib/jarutils.jar" />
|
||||
</path>
|
||||
|
||||
<taskdef name="setup"
|
||||
classname="com.android.ant.SetupTask"
|
||||
classpathref="android.antlibs" />
|
||||
|
||||
<!-- Execute the Android Setup task that will setup some properties specific to the target,
|
||||
and import the build rules files.
|
||||
|
||||
The rules file is imported from
|
||||
<SDK>/platforms/<target_platform>/templates/android_rules.xml
|
||||
|
||||
To customize some build steps for your project:
|
||||
- copy the content of the main node <project> from android_rules.xml
|
||||
- paste it in this build.xml below the <setup /> task.
|
||||
- disable the import by changing the setup task below to <setup import="false" />
|
||||
|
||||
This will ensure that the properties are setup correctly but that your customized
|
||||
build steps are used.
|
||||
-->
|
||||
<setup />
|
||||
|
||||
</project>
|
11
android/testproject/default.properties
Normal file
11
android/testproject/default.properties
Normal file
|
@ -0,0 +1,11 @@
|
|||
# This file is automatically generated by Android Tools.
|
||||
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
|
||||
#
|
||||
# This file must be checked in Version Control Systems.
|
||||
#
|
||||
# To customize properties used by the Ant build system use,
|
||||
# "build.properties", and override values to adapt the script to your
|
||||
# project structure.
|
||||
|
||||
# Project target.
|
||||
target=Google Inc.:Google APIs:7
|
16
android/testproject/jni/Android.mk
Normal file
16
android/testproject/jni/Android.mk
Normal file
|
@ -0,0 +1,16 @@
|
|||
LOCAL_PATH := $(call my-dir)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
LOCAL_MODULE := sanangeles
|
||||
|
||||
LOCAL_CFLAGS := -DANDROID_NDK \
|
||||
-DDISABLE_IMPORTGL
|
||||
|
||||
LOCAL_SRC_FILES := \
|
||||
importgl.c \
|
||||
app-android.c \
|
||||
|
||||
LOCAL_LDLIBS := -lGLESv1_CM -ldl -llog
|
||||
|
||||
include $(BUILD_SHARED_LIBRARY)
|
79
android/testproject/jni/app-android.c
Normal file
79
android/testproject/jni/app-android.c
Normal file
|
@ -0,0 +1,79 @@
|
|||
/*******************************************************************************
|
||||
Headers
|
||||
*******************************************************************************/
|
||||
#include <jni.h>
|
||||
#include <sys/time.h>
|
||||
#include <time.h>
|
||||
#include <android/log.h>
|
||||
#include <stdint.h>
|
||||
|
||||
/*******************************************************************************
|
||||
Globals
|
||||
*******************************************************************************/
|
||||
int gAppAlive = 1;
|
||||
|
||||
static int sWindowWidth = 320;
|
||||
static int sWindowHeight = 480;
|
||||
static int sDemoStopped = 0;
|
||||
|
||||
static long _getTime(void){
|
||||
struct timeval now;
|
||||
gettimeofday(&now, NULL);
|
||||
return (long)(now.tv_sec*1000 + now.tv_usec/1000);
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
Initialize the graphics state
|
||||
*******************************************************************************/
|
||||
void Java_org_libsdl_android_TestRenderer_nativeInit( JNIEnv* env )
|
||||
{
|
||||
importGLInit();
|
||||
|
||||
gAppAlive = 1;
|
||||
sDemoStopped = 0;
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
Resize
|
||||
*******************************************************************************/
|
||||
void Java_org_libsdl_android_TestRenderer_nativeResize( JNIEnv* env,
|
||||
jobject thiz,
|
||||
jint w,
|
||||
jint h )
|
||||
{
|
||||
sWindowWidth = w;
|
||||
sWindowHeight = h;
|
||||
__android_log_print(ANDROID_LOG_INFO, "SDL", "resize w=%d h=%d", w, h);
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
Finalize (ie: shutdown)
|
||||
*******************************************************************************/
|
||||
void Java_org_libsdl_android_TestRenderer_nativeDone( JNIEnv* env )
|
||||
{
|
||||
|
||||
//shut down the app
|
||||
|
||||
importGLDeinit();
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
Pause (ie: stop as soon as possible)
|
||||
*******************************************************************************/
|
||||
void Java_org_libsdl_android_TestGLSurfaceView_nativePause( JNIEnv* env )
|
||||
{
|
||||
sDemoStopped = !sDemoStopped;
|
||||
if (sDemoStopped) {
|
||||
//we paused
|
||||
} else {
|
||||
//we resumed
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
Render the next frame
|
||||
*******************************************************************************/
|
||||
void Java_org_libsdl_android_TestRenderer_nativeRender( JNIEnv* env )
|
||||
{
|
||||
//TODO: Render here
|
||||
}
|
168
android/testproject/jni/importgl.c
Normal file
168
android/testproject/jni/importgl.c
Normal file
|
@ -0,0 +1,168 @@
|
|||
/* San Angeles Observation OpenGL ES version example
|
||||
* Copyright 2004-2005 Jetro Lauha
|
||||
* All rights reserved.
|
||||
* Web: http://iki.fi/jetro/
|
||||
*
|
||||
* This source is free software; you can redistribute it and/or
|
||||
* modify it under the terms of EITHER:
|
||||
* (1) The GNU Lesser General Public License as published by the Free
|
||||
* Software Foundation; either version 2.1 of the License, or (at
|
||||
* your option) any later version. The text of the GNU Lesser
|
||||
* General Public License is included with this source in the
|
||||
* file LICENSE-LGPL.txt.
|
||||
* (2) The BSD-style license that is included with this source in
|
||||
* the file LICENSE-BSD.txt.
|
||||
*
|
||||
* This source is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files
|
||||
* LICENSE-LGPL.txt and LICENSE-BSD.txt for more details.
|
||||
*
|
||||
* $Id: importgl.c,v 1.4 2005/02/08 18:42:55 tonic Exp $
|
||||
* $Revision: 1.4 $
|
||||
*/
|
||||
|
||||
#undef WIN32
|
||||
#undef LINUX
|
||||
#ifdef _MSC_VER
|
||||
// Desktop or mobile Win32 environment:
|
||||
#define WIN32
|
||||
#else
|
||||
// Linux environment:
|
||||
#define LINUX
|
||||
#endif
|
||||
|
||||
#ifndef DISABLE_IMPORTGL
|
||||
|
||||
#if defined(WIN32)
|
||||
#define WIN32_LEAN_AND_MEAN
|
||||
#include <windows.h>
|
||||
#include <tchar.h>
|
||||
static HMODULE sGLESDLL = NULL;
|
||||
#endif // WIN32
|
||||
|
||||
#ifdef LINUX
|
||||
#include <stdlib.h>
|
||||
#include <dlfcn.h>
|
||||
static void *sGLESSO = NULL;
|
||||
#endif // LINUX
|
||||
|
||||
#endif /* DISABLE_IMPORTGL */
|
||||
|
||||
#define IMPORTGL_NO_FNPTR_DEFS
|
||||
#define IMPORTGL_API
|
||||
#define IMPORTGL_FNPTRINIT = NULL
|
||||
#include "importgl.h"
|
||||
|
||||
|
||||
/* Imports function pointers to selected function calls in OpenGL ES Common
|
||||
* or Common Lite profile DLL or shared object. The function pointers are
|
||||
* stored as global symbols with equivalent function name but prefixed with
|
||||
* "funcPtr_". Standard gl/egl calls are redirected to the function pointers
|
||||
* with preprocessor macros (see importgl.h).
|
||||
*/
|
||||
int importGLInit()
|
||||
{
|
||||
int result = 1;
|
||||
|
||||
#ifndef DISABLE_IMPORTGL
|
||||
|
||||
#undef IMPORT_FUNC
|
||||
|
||||
#ifdef WIN32
|
||||
sGLESDLL = LoadLibrary(_T("libGLES_CM.dll"));
|
||||
if (sGLESDLL == NULL)
|
||||
sGLESDLL = LoadLibrary(_T("libGLES_CL.dll"));
|
||||
if (sGLESDLL == NULL)
|
||||
return 0; // Cannot find OpenGL ES Common or Common Lite DLL.
|
||||
|
||||
/* The following fetches address to each egl & gl function call
|
||||
* and stores it to the related function pointer. Casting through
|
||||
* void * results in warnings with VC warning level 4, which
|
||||
* could be fixed by casting to the true type for each fetch.
|
||||
*/
|
||||
#define IMPORT_FUNC(funcName) do { \
|
||||
void *procAddress = (void *)GetProcAddress(sGLESDLL, _T(#funcName)); \
|
||||
if (procAddress == NULL) result = 0; \
|
||||
*((void **)&FNPTR(funcName)) = procAddress; } while (0)
|
||||
#endif // WIN32
|
||||
|
||||
#ifdef LINUX
|
||||
#ifdef ANDROID_NDK
|
||||
sGLESSO = dlopen("libGLESv1_CM.so", RTLD_NOW);
|
||||
#else /* !ANDROID_NDK */
|
||||
sGLESSO = dlopen("libGLES_CM.so", RTLD_NOW);
|
||||
if (sGLESSO == NULL)
|
||||
sGLESSO = dlopen("libGLES_CL.so", RTLD_NOW);
|
||||
#endif /* !ANDROID_NDK */
|
||||
if (sGLESSO == NULL)
|
||||
return 0; // Cannot find OpenGL ES Common or Common Lite SO.
|
||||
|
||||
#define IMPORT_FUNC(funcName) do { \
|
||||
void *procAddress = (void *)dlsym(sGLESSO, #funcName); \
|
||||
if (procAddress == NULL) result = 0; \
|
||||
*((void **)&FNPTR(funcName)) = procAddress; } while (0)
|
||||
#endif // LINUX
|
||||
|
||||
#ifndef ANDROID_NDK
|
||||
IMPORT_FUNC(eglChooseConfig);
|
||||
IMPORT_FUNC(eglCreateContext);
|
||||
IMPORT_FUNC(eglCreateWindowSurface);
|
||||
IMPORT_FUNC(eglDestroyContext);
|
||||
IMPORT_FUNC(eglDestroySurface);
|
||||
IMPORT_FUNC(eglGetConfigAttrib);
|
||||
IMPORT_FUNC(eglGetConfigs);
|
||||
IMPORT_FUNC(eglGetDisplay);
|
||||
IMPORT_FUNC(eglGetError);
|
||||
IMPORT_FUNC(eglInitialize);
|
||||
IMPORT_FUNC(eglMakeCurrent);
|
||||
IMPORT_FUNC(eglSwapBuffers);
|
||||
IMPORT_FUNC(eglTerminate);
|
||||
#endif /* !ANDROID_NDK */
|
||||
|
||||
IMPORT_FUNC(glBlendFunc);
|
||||
IMPORT_FUNC(glClear);
|
||||
IMPORT_FUNC(glClearColorx);
|
||||
IMPORT_FUNC(glColor4x);
|
||||
IMPORT_FUNC(glColorPointer);
|
||||
IMPORT_FUNC(glDisable);
|
||||
IMPORT_FUNC(glDisableClientState);
|
||||
IMPORT_FUNC(glDrawArrays);
|
||||
IMPORT_FUNC(glEnable);
|
||||
IMPORT_FUNC(glEnableClientState);
|
||||
IMPORT_FUNC(glFrustumx);
|
||||
IMPORT_FUNC(glGetError);
|
||||
IMPORT_FUNC(glLightxv);
|
||||
IMPORT_FUNC(glLoadIdentity);
|
||||
IMPORT_FUNC(glMaterialx);
|
||||
IMPORT_FUNC(glMaterialxv);
|
||||
IMPORT_FUNC(glMatrixMode);
|
||||
IMPORT_FUNC(glMultMatrixx);
|
||||
IMPORT_FUNC(glNormalPointer);
|
||||
IMPORT_FUNC(glPopMatrix);
|
||||
IMPORT_FUNC(glPushMatrix);
|
||||
IMPORT_FUNC(glRotatex);
|
||||
IMPORT_FUNC(glScalex);
|
||||
IMPORT_FUNC(glShadeModel);
|
||||
IMPORT_FUNC(glTranslatex);
|
||||
IMPORT_FUNC(glVertexPointer);
|
||||
IMPORT_FUNC(glViewport);
|
||||
|
||||
#endif /* DISABLE_IMPORTGL */
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
void importGLDeinit()
|
||||
{
|
||||
#ifndef DISABLE_IMPORTGL
|
||||
#ifdef WIN32
|
||||
FreeLibrary(sGLESDLL);
|
||||
#endif
|
||||
|
||||
#ifdef LINUX
|
||||
dlclose(sGLESSO);
|
||||
#endif
|
||||
#endif /* DISABLE_IMPORTGL */
|
||||
}
|
172
android/testproject/jni/importgl.h
Normal file
172
android/testproject/jni/importgl.h
Normal file
|
@ -0,0 +1,172 @@
|
|||
/* San Angeles Observation OpenGL ES version example
|
||||
* Copyright 2004-2005 Jetro Lauha
|
||||
* All rights reserved.
|
||||
* Web: http://iki.fi/jetro/
|
||||
*
|
||||
* This source is free software; you can redistribute it and/or
|
||||
* modify it under the terms of EITHER:
|
||||
* (1) The GNU Lesser General Public License as published by the Free
|
||||
* Software Foundation; either version 2.1 of the License, or (at
|
||||
* your option) any later version. The text of the GNU Lesser
|
||||
* General Public License is included with this source in the
|
||||
* file LICENSE-LGPL.txt.
|
||||
* (2) The BSD-style license that is included with this source in
|
||||
* the file LICENSE-BSD.txt.
|
||||
*
|
||||
* This source is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files
|
||||
* LICENSE-LGPL.txt and LICENSE-BSD.txt for more details.
|
||||
*
|
||||
* $Id: importgl.h,v 1.4 2005/02/24 20:29:33 tonic Exp $
|
||||
* $Revision: 1.4 $
|
||||
*/
|
||||
|
||||
#ifndef IMPORTGL_H_INCLUDED
|
||||
#define IMPORTGL_H_INCLUDED
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
#include <GLES/gl.h>
|
||||
#ifndef ANDROID_NDK
|
||||
#include <GLES/egl.h>
|
||||
#endif /* !ANDROID_NDK */
|
||||
|
||||
/* Use DISABLE_IMPORTGL if you want to link the OpenGL ES at
|
||||
* compile/link time and not import it dynamically runtime.
|
||||
*/
|
||||
#ifndef DISABLE_IMPORTGL
|
||||
|
||||
|
||||
/* Dynamically fetches pointers to the egl & gl functions.
|
||||
* Should be called once on application initialization.
|
||||
* Returns non-zero on success and 0 on failure.
|
||||
*/
|
||||
extern int importGLInit();
|
||||
|
||||
/* Frees the handle to egl & gl functions library.
|
||||
*/
|
||||
extern void importGLDeinit();
|
||||
|
||||
|
||||
#ifndef IMPORTGL_API
|
||||
#define IMPORTGL_API extern
|
||||
#endif
|
||||
#ifndef IMPORTGL_FNPTRINIT
|
||||
#define IMPORTGL_FNPTRINIT
|
||||
#endif
|
||||
|
||||
#define FNDEF(retType, funcName, args) IMPORTGL_API retType (*funcPtr_##funcName) args IMPORTGL_FNPTRINIT
|
||||
|
||||
#ifndef ANDROID_NDK
|
||||
FNDEF(EGLBoolean, eglChooseConfig, (EGLDisplay dpy, const EGLint *attrib_list, EGLConfig *configs, EGLint config_size, EGLint *num_config));
|
||||
FNDEF(EGLContext, eglCreateContext, (EGLDisplay dpy, EGLConfig config, EGLContext share_list, const EGLint *attrib_list));
|
||||
FNDEF(EGLSurface, eglCreateWindowSurface, (EGLDisplay dpy, EGLConfig config, NativeWindowType window, const EGLint *attrib_list));
|
||||
FNDEF(EGLBoolean, eglDestroyContext, (EGLDisplay dpy, EGLContext ctx));
|
||||
FNDEF(EGLBoolean, eglDestroySurface, (EGLDisplay dpy, EGLSurface surface));
|
||||
FNDEF(EGLBoolean, eglGetConfigAttrib, (EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint *value));
|
||||
FNDEF(EGLBoolean, eglGetConfigs, (EGLDisplay dpy, EGLConfig *configs, EGLint config_size, EGLint *num_config));
|
||||
FNDEF(EGLDisplay, eglGetDisplay, (NativeDisplayType display));
|
||||
FNDEF(EGLint, eglGetError, (void));
|
||||
FNDEF(EGLBoolean, eglInitialize, (EGLDisplay dpy, EGLint *major, EGLint *minor));
|
||||
FNDEF(EGLBoolean, eglMakeCurrent, (EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx));
|
||||
FNDEF(EGLBoolean, eglSwapBuffers, (EGLDisplay dpy, EGLSurface draw));
|
||||
FNDEF(EGLBoolean, eglTerminate, (EGLDisplay dpy));
|
||||
#endif /* !ANDROID_NDK */
|
||||
|
||||
FNDEF(void, glBlendFunc, (GLenum sfactor, GLenum dfactor));
|
||||
FNDEF(void, glClear, (GLbitfield mask));
|
||||
FNDEF(void, glClearColorx, (GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha));
|
||||
FNDEF(void, glColor4x, (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha));
|
||||
FNDEF(void, glColorPointer, (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer));
|
||||
FNDEF(void, glDisable, (GLenum cap));
|
||||
FNDEF(void, glDisableClientState, (GLenum array));
|
||||
FNDEF(void, glDrawArrays, (GLenum mode, GLint first, GLsizei count));
|
||||
FNDEF(void, glEnable, (GLenum cap));
|
||||
FNDEF(void, glEnableClientState, (GLenum array));
|
||||
FNDEF(void, glFrustumx, (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar));
|
||||
FNDEF(GLenum, glGetError, (void));
|
||||
FNDEF(void, glLightxv, (GLenum light, GLenum pname, const GLfixed *params));
|
||||
FNDEF(void, glLoadIdentity, (void));
|
||||
FNDEF(void, glMaterialx, (GLenum face, GLenum pname, GLfixed param));
|
||||
FNDEF(void, glMaterialxv, (GLenum face, GLenum pname, const GLfixed *params));
|
||||
FNDEF(void, glMatrixMode, (GLenum mode));
|
||||
FNDEF(void, glMultMatrixx, (const GLfixed *m));
|
||||
FNDEF(void, glNormalPointer, (GLenum type, GLsizei stride, const GLvoid *pointer));
|
||||
FNDEF(void, glPopMatrix, (void));
|
||||
FNDEF(void, glPushMatrix, (void));
|
||||
FNDEF(void, glRotatex, (GLfixed angle, GLfixed x, GLfixed y, GLfixed z));
|
||||
FNDEF(void, glScalex, (GLfixed x, GLfixed y, GLfixed z));
|
||||
FNDEF(void, glShadeModel, (GLenum mode));
|
||||
FNDEF(void, glTranslatex, (GLfixed x, GLfixed y, GLfixed z));
|
||||
FNDEF(void, glVertexPointer, (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer));
|
||||
FNDEF(void, glViewport, (GLint x, GLint y, GLsizei width, GLsizei height));
|
||||
|
||||
|
||||
#undef FN
|
||||
#define FNPTR(name) funcPtr_##name
|
||||
|
||||
#ifndef IMPORTGL_NO_FNPTR_DEFS
|
||||
|
||||
// Redirect egl* and gl* function calls to funcPtr_egl* and funcPtr_gl*.
|
||||
|
||||
#ifndef ANDROID_NDK
|
||||
#define eglChooseConfig FNPTR(eglChooseConfig)
|
||||
#define eglCreateContext FNPTR(eglCreateContext)
|
||||
#define eglCreateWindowSurface FNPTR(eglCreateWindowSurface)
|
||||
#define eglDestroyContext FNPTR(eglDestroyContext)
|
||||
#define eglDestroySurface FNPTR(eglDestroySurface)
|
||||
#define eglGetConfigAttrib FNPTR(eglGetConfigAttrib)
|
||||
#define eglGetConfigs FNPTR(eglGetConfigs)
|
||||
#define eglGetDisplay FNPTR(eglGetDisplay)
|
||||
#define eglGetError FNPTR(eglGetError)
|
||||
#define eglInitialize FNPTR(eglInitialize)
|
||||
#define eglMakeCurrent FNPTR(eglMakeCurrent)
|
||||
#define eglSwapBuffers FNPTR(eglSwapBuffers)
|
||||
#define eglTerminate FNPTR(eglTerminate)
|
||||
#endif /* !ANDROID_NDK */
|
||||
|
||||
#define glBlendFunc FNPTR(glBlendFunc)
|
||||
#define glClear FNPTR(glClear)
|
||||
#define glClearColorx FNPTR(glClearColorx)
|
||||
#define glColor4x FNPTR(glColor4x)
|
||||
#define glColorPointer FNPTR(glColorPointer)
|
||||
#define glDisable FNPTR(glDisable)
|
||||
#define glDisableClientState FNPTR(glDisableClientState)
|
||||
#define glDrawArrays FNPTR(glDrawArrays)
|
||||
#define glEnable FNPTR(glEnable)
|
||||
#define glEnableClientState FNPTR(glEnableClientState)
|
||||
#define glFrustumx FNPTR(glFrustumx)
|
||||
#define glGetError FNPTR(glGetError)
|
||||
#define glLightxv FNPTR(glLightxv)
|
||||
#define glLoadIdentity FNPTR(glLoadIdentity)
|
||||
#define glMaterialx FNPTR(glMaterialx)
|
||||
#define glMaterialxv FNPTR(glMaterialxv)
|
||||
#define glMatrixMode FNPTR(glMatrixMode)
|
||||
#define glMultMatrixx FNPTR(glMultMatrixx)
|
||||
#define glNormalPointer FNPTR(glNormalPointer)
|
||||
#define glPopMatrix FNPTR(glPopMatrix)
|
||||
#define glPushMatrix FNPTR(glPushMatrix)
|
||||
#define glRotatex FNPTR(glRotatex)
|
||||
#define glScalex FNPTR(glScalex)
|
||||
#define glShadeModel FNPTR(glShadeModel)
|
||||
#define glTranslatex FNPTR(glTranslatex)
|
||||
#define glVertexPointer FNPTR(glVertexPointer)
|
||||
#define glViewport FNPTR(glViewport)
|
||||
|
||||
#endif // !IMPORTGL_NO_FNPTR_DEFS
|
||||
|
||||
|
||||
#endif // !DISABLE_IMPORTGL
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#endif // !IMPORTGL_H_INCLUDED
|
BIN
android/testproject/libs/armeabi/libsanangeles.so
Executable file
BIN
android/testproject/libs/armeabi/libsanangeles.so
Executable file
Binary file not shown.
10
android/testproject/local.properties
Normal file
10
android/testproject/local.properties
Normal file
|
@ -0,0 +1,10 @@
|
|||
# This file is automatically generated by Android Tools.
|
||||
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
|
||||
#
|
||||
# This file must *NOT* be checked in Version Control Systems,
|
||||
# as it contains information specific to your local configuration.
|
||||
|
||||
# location of the SDK. This is only used by Ant
|
||||
# For customization when using a Version Control System, please read the
|
||||
# header note.
|
||||
sdk.dir=/home/paul/Projects/gsoc/sdk/android-sdk-linux_86
|
BIN
android/testproject/res/drawable-hdpi/icon.png
Normal file
BIN
android/testproject/res/drawable-hdpi/icon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 4 KiB |
BIN
android/testproject/res/drawable-ldpi/icon.png
Normal file
BIN
android/testproject/res/drawable-ldpi/icon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.7 KiB |
BIN
android/testproject/res/drawable-mdpi/icon.png
Normal file
BIN
android/testproject/res/drawable-mdpi/icon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.5 KiB |
13
android/testproject/res/layout/main.xml
Normal file
13
android/testproject/res/layout/main.xml
Normal file
|
@ -0,0 +1,13 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:orientation="vertical"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent"
|
||||
>
|
||||
<TextView
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Hello World, TestActivity"
|
||||
/>
|
||||
</LinearLayout>
|
||||
|
4
android/testproject/res/values/strings.xml
Normal file
4
android/testproject/res/values/strings.xml
Normal file
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="app_name">TestActivity</string>
|
||||
</resources>
|
76
android/testproject/src/org/libsdl/android/TestActivity.java
Normal file
76
android/testproject/src/org/libsdl/android/TestActivity.java
Normal file
|
@ -0,0 +1,76 @@
|
|||
package org.libsdl.android;
|
||||
|
||||
import javax.microedition.khronos.egl.EGLConfig;
|
||||
import javax.microedition.khronos.opengles.GL10;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.opengl.GLSurfaceView;
|
||||
import android.os.Bundle;
|
||||
import android.view.MotionEvent;
|
||||
|
||||
public class TestActivity extends Activity {
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
mGLView = new TestGLSurfaceView(this);
|
||||
setContentView(mGLView);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPause() {
|
||||
super.onPause();
|
||||
mGLView.onPause();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
mGLView.onResume();
|
||||
}
|
||||
|
||||
private GLSurfaceView mGLView;
|
||||
|
||||
static {
|
||||
System.loadLibrary("sanangeles");
|
||||
}
|
||||
}
|
||||
|
||||
class TestGLSurfaceView extends GLSurfaceView {
|
||||
public TestGLSurfaceView(Context context) {
|
||||
super(context);
|
||||
mRenderer = new TestRenderer();
|
||||
setRenderer(mRenderer);
|
||||
}
|
||||
|
||||
public boolean onTouchEvent(final MotionEvent event) {
|
||||
if (event.getAction() == MotionEvent.ACTION_DOWN) {
|
||||
nativePause();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
TestRenderer mRenderer;
|
||||
|
||||
private static native void nativePause();
|
||||
}
|
||||
|
||||
class TestRenderer implements GLSurfaceView.Renderer {
|
||||
public void onSurfaceCreated(GL10 gl, EGLConfig config) {
|
||||
nativeInit();
|
||||
}
|
||||
|
||||
public void onSurfaceChanged(GL10 gl, int w, int h) {
|
||||
//gl.glViewport(0, 0, w, h);
|
||||
nativeResize(w, h);
|
||||
}
|
||||
|
||||
public void onDrawFrame(GL10 gl) {
|
||||
nativeRender();
|
||||
}
|
||||
|
||||
private static native void nativeInit();
|
||||
private static native void nativeResize(int w, int h);
|
||||
private static native void nativeRender();
|
||||
private static native void nativeDone();
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue