From 179b374c397ce0e2d1c09189f9f0ffd78d764b7e Mon Sep 17 00:00:00 2001
From: Themaister <maister@archlinux.us>
Date: Sun, 12 May 2013 03:39:25 +0200
Subject: [PATCH] Add JNI target to libretro-test-gl.

Fixup GLES build.
---
 gfx/gl.c                            |  6 +-----
 libretro-test-gl/jni/Android.mk     | 25 +++++++++++++++++++++++++
 libretro-test-gl/jni/Application.mk |  3 +++
 libretro-test-gl/libretro-test.c    | 23 ++++++++++++++++++++++-
 4 files changed, 51 insertions(+), 6 deletions(-)
 create mode 100644 libretro-test-gl/jni/Android.mk
 create mode 100644 libretro-test-gl/jni/Application.mk

diff --git a/gfx/gl.c b/gfx/gl.c
index b0285fa303..e6e120f75f 100644
--- a/gfx/gl.c
+++ b/gfx/gl.c
@@ -650,10 +650,6 @@ void gl_init_fbo(void *data, unsigned width, unsigned height)
 #ifndef HAVE_RGL
 bool gl_init_hw_render(gl_t *gl, unsigned width, unsigned height)
 {
-#if defined(__QNX__) || defined(ANDROID)
-   width = 512;
-   height = 512;
-#endif
    RARCH_LOG("[GL]: Initializing HW render (%u x %u).\n", width, height);
 
    if (!load_fbo_proc(gl))
@@ -662,7 +658,7 @@ bool gl_init_hw_render(gl_t *gl, unsigned width, unsigned height)
    glBindTexture(GL_TEXTURE_2D, 0);
    pglGenFramebuffers(TEXTURES, gl->hw_render_fbo);
 
-   bool depth   = g_extern.system.hw_render_callback.depth;
+   bool depth = g_extern.system.hw_render_callback.depth;
 
    if (depth)
    {
diff --git a/libretro-test-gl/jni/Android.mk b/libretro-test-gl/jni/Android.mk
new file mode 100644
index 0000000000..2f776bb533
--- /dev/null
+++ b/libretro-test-gl/jni/Android.mk
@@ -0,0 +1,25 @@
+LOCAL_PATH := $(call my-dir)
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := retro-test-gl
+
+ifeq ($(TARGET_ARCH),arm)
+LOCAL_CFLAGS += -DANDROID_ARM
+LOCAL_ARM_MODE := arm
+endif
+
+ifeq ($(TARGET_ARCH),x86)
+LOCAL_CFLAGS += -DANDROID_X86
+endif
+
+ifeq ($(TARGET_ARCH),mips)
+LOCAL_CFLAGS += -DANDROID_MIPS
+endif
+
+LOCAL_SRC_FILES += $(wildcard ../*.c)
+LOCAL_CFLAGS += -O2 -Wall -std=gnu99 -ffast-math -DGLES
+LOCAL_LDLIBS += -lGLESv2
+
+include $(BUILD_SHARED_LIBRARY)
+
diff --git a/libretro-test-gl/jni/Application.mk b/libretro-test-gl/jni/Application.mk
new file mode 100644
index 0000000000..2b3a608fa0
--- /dev/null
+++ b/libretro-test-gl/jni/Application.mk
@@ -0,0 +1,3 @@
+APP_ABI := all
+APP_PLATFORM := android-9
+
diff --git a/libretro-test-gl/libretro-test.c b/libretro-test-gl/libretro-test.c
index 84ac4b1a46..170bb154fc 100644
--- a/libretro-test-gl/libretro-test.c
+++ b/libretro-test-gl/libretro-test.c
@@ -9,13 +9,33 @@
 static struct retro_hw_render_callback hw_render;
 
 #define GL_GLEXT_PROTOTYPES
-#if defined(GLES) && 0
+#if defined(GLES)
 #include <GLES2/gl2.h>
 #else
 #include <GL/gl.h>
 #include <GL/glext.h>
 #endif
 
+#ifdef GLES
+#define pglCreateProgram glCreateProgram
+#define pglCreateShader glCreateShader
+#define pglCompileShader glCompileShader
+#define pglUseProgram glUseProgram
+#define pglShaderSource glShaderSource
+#define pglAttachShader glAttachShader
+#define pglLinkProgram glLinkProgram
+#define pglBindFramebuffer glBindFramebuffer
+#define pglGetUniformLocation glGetUniformLocation
+#define pglUniformMatrix4fv glUniformMatrix4fv
+#define pglGetAttribLocation glGetAttribLocation
+#define pglVertexAttribPointer glVertexAttribPointer
+#define pglEnableVertexAttribArray glEnableVertexAttribArray
+#define pglDisableVertexAttribArray glDisableVertexAttribArray
+#define pglGenBuffers glGenBuffers
+#define pglBufferData glBufferData
+#define pglBindBuffer glBindBuffer
+#define init_gl_proc()
+#else
 static PFNGLCREATEPROGRAMPROC pglCreateProgram;
 static PFNGLCREATESHADERPROC pglCreateShader;
 static PFNGLCREATESHADERPROC pglCompileShader;
@@ -71,6 +91,7 @@ static void init_gl_proc(void)
       memcpy(proc_map[i].proc, &proc, sizeof(proc));
    }
 }
+#endif
 
 static GLuint prog;
 static GLuint vbo;