diff --git a/cameraview/src/androidTest/java/com/otaliastudios/cameraview/CameraViewTest.java b/cameraview/src/androidTest/java/com/otaliastudios/cameraview/CameraViewTest.java index 4ee81244..f2b160b6 100644 --- a/cameraview/src/androidTest/java/com/otaliastudios/cameraview/CameraViewTest.java +++ b/cameraview/src/androidTest/java/com/otaliastudios/cameraview/CameraViewTest.java @@ -902,6 +902,14 @@ public class CameraViewTest extends BaseTest { cameraView.setFrameProcessingExecutors(0); } + @Test + public void testDrawHardwareOverlays() { + cameraView.setDrawHardwareOverlays(true); + assertTrue(cameraView.getDrawHardwareOverlays()); + cameraView.setDrawHardwareOverlays(false); + assertFalse(cameraView.getDrawHardwareOverlays()); + } + //endregion //region Lists of listeners and processors diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/CameraView.java b/cameraview/src/main/java/com/otaliastudios/cameraview/CameraView.java index ea5a4a49..1772d94c 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/CameraView.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/CameraView.java @@ -226,7 +226,7 @@ public class CameraView extends FrameLayout implements LifecycleObserver { int frameExecutors = a.getInteger(R.styleable.CameraView_cameraFrameProcessingExecutors, DEFAULT_FRAME_PROCESSING_EXECUTORS); - boolean overlayHardwareCanvas = a.getBoolean(R.styleable.CameraView_cameraOverlayHardwareCanvas, false); + boolean overlayHardwareCanvas = a.getBoolean(R.styleable.CameraView_cameraDrawHardwareOverlays, false); // Size selectors and gestures SizeSelectorParser sizeSelectors = new SizeSelectorParser(a); @@ -261,7 +261,7 @@ public class CameraView extends FrameLayout implements LifecycleObserver { setUseDeviceOrientation(useDeviceOrientation); setGrid(controls.getGrid()); setGridColor(gridColor); - setOverlayHardwareCanvasEnabled(overlayHardwareCanvas); + setDrawHardwareOverlays(overlayHardwareCanvas); // Apply camera engine params // Adding new ones? See setEngine(). @@ -2157,7 +2157,7 @@ public class CameraView extends FrameLayout implements LifecycleObserver { * * @param on true if enabled */ - public void setOverlayHardwareCanvasEnabled(boolean on) { + public void setDrawHardwareOverlays(boolean on) { mOverlayLayout.setHardwareCanvasEnabled(on); } @@ -2167,7 +2167,7 @@ public class CameraView extends FrameLayout implements LifecycleObserver { * * @return boolean indicating hardware canvas capture is enabled */ - public boolean getOverlayHardwareCanvasEnabled() { + public boolean getDrawHardwareOverlays() { return mOverlayLayout.getHardwareCanvasEnabled(); } //endregion diff --git a/cameraview/src/main/res/values/attrs.xml b/cameraview/src/main/res/values/attrs.xml index 50b388c2..1b4418da 100644 --- a/cameraview/src/main/res/values/attrs.xml +++ b/cameraview/src/main/res/values/attrs.xml @@ -169,7 +169,7 @@ - + diff --git a/docs/_docs/watermarks-and-overlays.md b/docs/_docs/watermarks-and-overlays.md index a770c699..751dc65b 100644 --- a/docs/_docs/watermarks-and-overlays.md +++ b/docs/_docs/watermarks-and-overlays.md @@ -82,3 +82,19 @@ params.drawOnVideoSnapshot = false; // do not draw on video snapshots // When done, apply overlay.setLayoutParams(params); ``` + +To capture a hardware rendered View such as a video rendered to a TextureView, enable the +`cameraDrawHardwareOverlays` flag: + +```xml + +``` + +Alternatively you can enable it in code with `setDrawHardwareOverlays()`: + +```java +cameraView.setDrawHardwareOverlays(true); +``` \ No newline at end of file