package com.af.experiments.FxCameraApp.ogles;
import android.graphics.SurfaceTexture;
import com.af.experiments.FxCameraApp.camera.CameraHelper;
import com.af.experiments.FxCameraApp.View.PreviewTexture;
import java.io.IOException;
import static com.af.experiments.FxCameraApp.Utils.OpenGlUtils.GL_TEXTURE_EXTERNAL_OES;
final class GlSurfaceTexture implements PreviewTexture, SurfaceTexture.OnFrameAvailableListener {
private SurfaceTexture mSurfaceTexture;
private OnFrameAvailableListener mOnFrameAvailableListener;
public GlSurfaceTexture(final int texName) {
mSurfaceTexture = new SurfaceTexture(texName);
mSurfaceTexture.setOnFrameAvailableListener(this);
}
@Override
public void setOnFrameAvailableListener(final OnFrameAvailableListener l) {
mOnFrameAvailableListener = l;
}
@Override
public int getTextureTarget() {
return GL_TEXTURE_EXTERNAL_OES;
}
@Override
public void setup(final CameraHelper camera) throws IOException {
camera.setPreviewTexture(mSurfaceTexture);
}
@Override
public void updateTexImage() {
mSurfaceTexture.updateTexImage();
}
@Override
public void getTransformMatrix(final float[] mtx) {
mSurfaceTexture.getTransformMatrix(mtx);
}
@Override
public void onFrameAvailable(final SurfaceTexture surfaceTexture) {
if (mOnFrameAvailableListener != null) {
mOnFrameAvailableListener.onFrameAvailable(this);
}
}
}