// 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.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 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, 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(); } }