mirror of
https://github.com/opencv/opencv.git
synced 2024-11-25 19:50:38 +08:00
8e088d38a5
a simple sample will look like: ```java public class MainActivity extends Activity implements CameraGLSurfaceView.CameraTextureListener { CameraGLSurfaceView mView; ByteBuffer buf; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); mView = new CameraGLSurfaceView(this, null); mView.setCameraTextureListener(this); setContentView(mView); buf = ByteBuffer.allocateDirect(1920*1080*4); } @Override protected void onPause() { mView.onPause(); super.onPause(); } @Override protected void onResume() { super.onResume(); mView.onResume(); } @Override public void onCameraViewStarted(int width, int height) { // TODO Auto-generated method stub } @Override public void onCameraViewStopped() { // TODO Auto-generated method stub } @Override public boolean onCameraFrame(int texIn, int texOut, int width, int height) { Log.i("MAIN", "onCameraFrame"); int w=width, h=height; /* // option 1: // just return 'false' to display texIn on screen retutn false; */ /* // option 2: // fast copy texIn to texOut GLES20.glActiveTexture(GLES20.GL_TEXTURE0); GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, texOut); GLES20.glCopyTexImage2D(GLES20.GL_TEXTURE_2D, 0, GLES20.GL_RGBA, 0, 0, w, h, 0); return true; */ // option 3: // read, modify and write back pixels GLES20.glReadPixels(0, 0, w, h, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, buf); buf.rewind(); // red line for(int i=0; i<h; i++) { buf.position(w*4*i+i*4); buf.put((byte) -1); buf.position(w*4*i+i*4+4); buf.put((byte) -1); } buf.rewind(); GLES20.glActiveTexture(GLES20.GL_TEXTURE0); GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, texOut); GLES20.glTexSubImage2D(GLES20.GL_TEXTURE_2D, 0, 0, 0, w, h, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, buf); return true; } } ``` |
||
---|---|---|
.. | ||
android_lib | ||
android_test | ||
common_test | ||
generator | ||
pure_test | ||
build.xml.in | ||
check-tests.py | ||
CMakeLists.txt |