Index: ui/android/java/src/org/chromium/ui/gfx/SurfaceTextureBridge.java |
diff --git a/ui/android/java/src/org/chromium/ui/gfx/SurfaceTextureBridge.java b/ui/android/java/src/org/chromium/ui/gfx/SurfaceTextureBridge.java |
new file mode 100644 |
index 0000000000000000000000000000000000000000..831830f8e7770a681f12909227eb07bbfd6121b7 |
--- /dev/null |
+++ b/ui/android/java/src/org/chromium/ui/gfx/SurfaceTextureBridge.java |
@@ -0,0 +1,64 @@ |
+// Copyright (c) 2013 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+package org.chromium.ui.gfx; |
+ |
+import android.graphics.SurfaceTexture; |
+import android.os.Build; |
+ |
+import org.chromium.base.CalledByNative; |
+import org.chromium.base.JNINamespace; |
+ |
+/** |
+ * Wrapper class for the underlying platform's SurfaceTexture in order to |
+ * provide a stable JNI API. |
+ */ |
+@JNINamespace("gfx") |
+class SurfaceTextureBridge { |
+ @CalledByNative |
+ private static SurfaceTexture create(int textureId) { |
+ return new SurfaceTexture(textureId); |
+ } |
+ |
+ @CalledByNative |
+ private static void destroy(SurfaceTexture surfaceTexture) { |
+ surfaceTexture.setOnFrameAvailableListener(null); |
+ surfaceTexture.release(); |
+ } |
+ |
+ @CalledByNative |
+ private static void setFrameAvailableCallback(SurfaceTexture surfaceTexture, |
+ int nativeSurfaceTextureListener) { |
+ surfaceTexture.setOnFrameAvailableListener( |
+ new SurfaceTextureListener(nativeSurfaceTextureListener)); |
+ } |
+ |
+ @CalledByNative |
+ private static void updateTexImage(SurfaceTexture surfaceTexture) { |
+ surfaceTexture.updateTexImage(); |
+ } |
+ |
+ @CalledByNative |
+ private static void setDefaultBufferSize(SurfaceTexture surfaceTexture, int width, |
+ int height) { |
+ surfaceTexture.setDefaultBufferSize(width, height); |
+ } |
+ |
+ @CalledByNative |
+ private static void getTransformMatrix(SurfaceTexture surfaceTexture, float[] matrix) { |
+ surfaceTexture.getTransformMatrix(matrix); |
+ } |
+ |
+ @CalledByNative |
+ private static void attachToGLContext(SurfaceTexture surfaceTexture, int texName) { |
+ assert Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN; |
+ surfaceTexture.attachToGLContext(texName); |
+ } |
+ |
+ @CalledByNative |
+ private static void detachFromGLContext(SurfaceTexture surfaceTexture) { |
+ assert Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN; |
+ surfaceTexture.detachFromGLContext(); |
+ } |
+} |