package net.trippedout.android.shadercamerasamples;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentTransaction;
import android.widget.SeekBar;
import net.trippedout.android.shadercamera.fragments.CameraFragment;
import net.trippedout.android.shadercamera.gl.CameraRenderer;
import net.trippedout.android.shadercamera.view.AutoFitTextureView;
import net.trippedout.android.shadercamerasamples.gl.DepthBlurRenderer;
import net.trippedout.android.shadercamerasamples.gl.LipServiceRenderer;
import butterknife.ButterKnife;
import butterknife.InjectView;
import butterknife.OnClick;
/**
* Depth blurrrrrr
*/
public class DepthBlurActivity extends FragmentActivity implements CameraFragment.CameraTextureListener.OnRendererCreatedListener {
private static final String TAG_CAMERA_FRAGMENT = "camera_fragment";
@InjectView(R.id.texture) AutoFitTextureView mAutoFitTextureView;
@InjectView(R.id.seekbar) SeekBar mSeekBar;
private CameraFragment mCameraFragment;
private CameraFragment.CameraTextureListener mCameraTextureListener;
private DepthBlurRenderer mRenderer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_depth_blur);
ButterKnife.inject(this);
mSeekBar.setOnSeekBarChangeListener(mSeekBarChangeListener);
setupCameraFragment();
}
private void setupCameraFragment()
{
mCameraFragment = CameraFragment.newInstance();
mCameraFragment.setTextureView(mAutoFitTextureView);
mCameraFragment.setCameraToUse(CameraFragment.CAMERA_FORWARD);
//pass a reference to the renderer u want to use. we will use a listener to get
//a reference to that renderer once it is created
mCameraTextureListener = new CameraFragment.CameraTextureListener(this, mCameraFragment, DepthBlurRenderer.class);
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.add(mCameraFragment, TAG_CAMERA_FRAGMENT);
transaction.commit();
}
@Override
public void onRendererCreated(CameraRenderer renderer)
{
mRenderer = (DepthBlurRenderer)renderer;
}
private SeekBar.OnSeekBarChangeListener mSeekBarChangeListener = new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
mRenderer.setBlurSize(progress * .1f);
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
};
@OnClick(R.id.btn_record)
public void onRecordClicked()
{
mCameraFragment.toggleRecording();
}
}