diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/OverlayLayout.java b/cameraview/src/main/java/com/otaliastudios/cameraview/OverlayLayout.java index d6d0e926..c48432cf 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/OverlayLayout.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/OverlayLayout.java @@ -25,35 +25,8 @@ public class OverlayLayout extends FrameLayout implements SurfaceDrawer { setWillNotDraw(false); } - @Override - public void draw(Canvas canvas) { -// if (outputSurface != null ) { -// // Requires a try/catch for .lockCanvas( null ) -// try { -// final Canvas surfaceCanvas = outputSurface.lockCanvas(null); -// -// float xScale = surfaceCanvas.getWidth() / (float) canvas.getWidth(); -// float yScale = surfaceCanvas.getHeight() / (float) canvas.getHeight(); -// surfaceCanvas.scale(xScale, yScale); -// surfaceCanvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR); -// super.draw(surfaceCanvas); -// -// outputSurface.unlockCanvasAndPost(surfaceCanvas); -// } catch (Surface.OutOfResourcesException e) { -// e.printStackTrace(); -// } -// } - - // draw the view as always, since we are already drawing on the preview this step can be - // skipped - super.draw(canvas); - } - @Override public void drawOnSurface(Surface outputSurface) { -// postInvalidate(); -// postInvalidateRecursive(this); - try { final Canvas surfaceCanvas = outputSurface.lockCanvas(null); diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/SnapshotPictureRecorder.java b/cameraview/src/main/java/com/otaliastudios/cameraview/SnapshotPictureRecorder.java index 3201c6d3..045939e8 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/SnapshotPictureRecorder.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/SnapshotPictureRecorder.java @@ -70,14 +70,14 @@ class SnapshotPictureRecorder extends PictureRecorder { SurfaceTexture mOverlaySurfaceTexture; float[] mTransform; float[] mOverlayTransform; - EglViewport overlayViewport; + EglViewport viewport; @RendererThread public void onRendererTextureCreated(int textureId) { mTextureId = textureId; - overlayViewport = new EglViewport(); + viewport = new EglViewport(); if (mWithOverlay) { - mOverlayTextureId = overlayViewport.createTexture(); + mOverlayTextureId = viewport.createTexture(); } mSurfaceTexture = new SurfaceTexture(mTextureId, true); if (mOverlayTextureId != 0) { @@ -127,7 +127,7 @@ class SnapshotPictureRecorder extends PictureRecorder { public void run() { EglWindowSurface surface = new EglWindowSurface(core, mSurfaceTexture); surface.makeCurrent(); - EglViewport viewport = new EglViewport(); +// EglViewport viewport = new EglViewport(); mSurfaceTexture.updateTexImage(); mSurfaceTexture.getTransformMatrix(mTransform); Surface drawOnto = new Surface(mOverlaySurfaceTexture); @@ -195,7 +195,7 @@ class SnapshotPictureRecorder extends PictureRecorder { // They are simply realScaleX and realScaleY. viewport.drawFrame(mTextureId, mTransform); if (mOverlayTransform != null) { - overlayViewport.drawFrame(mOverlayTextureId, mOverlayTransform); + viewport.drawFrame(mOverlayTextureId, mOverlayTransform); } // don't - surface.swapBuffers(); mResult.data = surface.saveFrameTo(Bitmap.CompressFormat.JPEG); @@ -205,7 +205,6 @@ class SnapshotPictureRecorder extends PictureRecorder { // EGL14.eglMakeCurrent(oldDisplay, oldSurface, oldSurface, eglContext); surface.release(); viewport.release(); - overlayViewport.release(); drawOnto.release(); mSurfaceTexture.release(); if (mOverlaySurfaceTexture != null) {