unofficialxkcdviewer/chromium_webview/src/org/chromium/ui/gl/SurfaceTextureListener.java

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);
}