73 lines
2.3 KiB
Java
Executable File
73 lines
2.3 KiB
Java
Executable File
// Copyright 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.gl;
|
|
|
|
import android.graphics.SurfaceTexture;
|
|
import android.os.Build;
|
|
import android.util.Log;
|
|
|
|
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 SurfaceTexturePlatformWrapper {
|
|
|
|
private static final String TAG = "SurfaceTexturePlatformWrapper";
|
|
|
|
@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,
|
|
long nativeSurfaceTextureListener) {
|
|
surfaceTexture.setOnFrameAvailableListener(
|
|
new SurfaceTextureListener(nativeSurfaceTextureListener));
|
|
}
|
|
|
|
@CalledByNative
|
|
private static void updateTexImage(SurfaceTexture surfaceTexture) {
|
|
try {
|
|
surfaceTexture.updateTexImage();
|
|
} catch (RuntimeException e) {
|
|
Log.e(TAG, "Error calling updateTexImage", e);
|
|
}
|
|
}
|
|
|
|
@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();
|
|
}
|
|
}
|