From b6af8b0e925287814d152d337535501540537e4d Mon Sep 17 00:00:00 2001 From: ToadKing Date: Tue, 19 Nov 2013 15:13:23 -0500 Subject: [PATCH] more camera changes, still no image --- .../src/com/retroarch/browser/RetroActivity.java | 11 +++++++++-- camera/android.c | 7 ++++++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/android/phoenix/src/com/retroarch/browser/RetroActivity.java b/android/phoenix/src/com/retroarch/browser/RetroActivity.java index 88c7672e85..ca3b394964 100644 --- a/android/phoenix/src/com/retroarch/browser/RetroActivity.java +++ b/android/phoenix/src/com/retroarch/browser/RetroActivity.java @@ -26,6 +26,7 @@ public final class RetroActivity extends NativeActivity public void onCameraStart() { + Log.i("RetroActivity", "onCameraStart"); mCamera.startPreview(); } @@ -43,7 +44,12 @@ public final class RetroActivity extends NativeActivity public boolean onCameraPoll() { boolean ret; - if (texture != null && Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) + if (texture == null) + { + Log.i("RetroActivity", "no texture"); + ret = false; + } + else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) { long newTimestamp = texture.getTimestamp(); if (newTimestamp != lastTimestamp) @@ -72,9 +78,10 @@ public final class RetroActivity extends NativeActivity @SuppressLint("NewApi") public void onCameraSetTexture(int gl_texid) throws IOException { + Log.i("RetroActivity", "onCameraSetTexture: " + gl_texid); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { - texture = new SurfaceTexture(gl_texid); + texture = new SurfaceTexture(gl_texid); mCamera.setPreviewTexture(texture); } else diff --git a/camera/android.c b/camera/android.c index a3a6d45a0e..0fedf7011e 100644 --- a/camera/android.c +++ b/camera/android.c @@ -115,6 +115,11 @@ static bool android_camera_start(void *data) (void)androidcamera; glGenTextures(1, &androidcamera->tex); + glBindTexture(GL_TEXTURE_EXTERNAL_OES, androidcamera->tex); + glTexParameteri(GL_TEXTURE_EXTERNAL_OES, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_EXTERNAL_OES, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_EXTERNAL_OES, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + glTexParameteri(GL_TEXTURE_EXTERNAL_OES, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); CALL_VOID_METHOD_PARAM(androidcamera->env, android_app->activity->clazz, androidcamera->onCameraSetTexture, (int) androidcamera->tex); @@ -159,7 +164,7 @@ static bool android_camera_poll(void *data, retro_camera_frame_raw_framebuffer_t if (frame_gl_cb) frame_gl_cb(androidcamera->tex, - GL_TEXTURE_2D, // TODO: This is likely GL_TEXTURE_EXTERNAL_OES. + GL_TEXTURE_EXTERNAL_OES, affine); return true; }