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