pull/1066/head
Ryan Loebs 4 years ago
parent 28576f6569
commit 0ca600c455
  1. 8
      cameraview/src/androidTest/java/com/otaliastudios/cameraview/CameraViewTest.java
  2. 8
      cameraview/src/main/java/com/otaliastudios/cameraview/CameraView.java
  3. 2
      cameraview/src/main/res/values/attrs.xml
  4. 16
      docs/_docs/watermarks-and-overlays.md

@ -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

@ -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

@ -169,7 +169,7 @@
<attr name="cameraRequestPermissions" format="boolean|reference"/>
<attr name="cameraExperimental" format="boolean|reference" />
<attr name="cameraOverlayHardwareCanvas" format="boolean"/>
<attr name="cameraDrawHardwareOverlays" format="boolean"/>
</declare-styleable>

@ -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
<com.otaliastudios.cameraview.CameraView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:cameraDrawHardwareOverlays="true"/>
```
Alternatively you can enable it in code with `setDrawHardwareOverlays()`:
```java
cameraView.setDrawHardwareOverlays(true);
```
Loading…
Cancel
Save