41 lines
1.3 KiB
Java
Executable File
41 lines
1.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 org.chromium.base.JNINamespace;
|
|
|
|
/**
|
|
* Listener to an android SurfaceTexture object for frame availability.
|
|
*/
|
|
@JNINamespace("gfx")
|
|
class SurfaceTextureListener implements SurfaceTexture.OnFrameAvailableListener {
|
|
// Used to determine the class instance to dispatch the native call to.
|
|
private final long mNativeSurfaceTextureListener;
|
|
|
|
SurfaceTextureListener(long nativeSurfaceTextureListener) {
|
|
assert nativeSurfaceTextureListener != 0;
|
|
mNativeSurfaceTextureListener = nativeSurfaceTextureListener;
|
|
}
|
|
|
|
@Override
|
|
public void onFrameAvailable(SurfaceTexture surfaceTexture) {
|
|
nativeFrameAvailable(mNativeSurfaceTextureListener);
|
|
}
|
|
|
|
@Override
|
|
protected void finalize() throws Throwable {
|
|
try {
|
|
nativeDestroy(mNativeSurfaceTextureListener);
|
|
} finally {
|
|
super.finalize();
|
|
}
|
|
}
|
|
|
|
private native void nativeFrameAvailable(long nativeSurfaceTextureListener);
|
|
private native void nativeDestroy(long nativeSurfaceTextureListener);
|
|
}
|