Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 780f1ba4 authored by Leon Scroggins's avatar Leon Scroggins Committed by Android (Google) Code Review
Browse files

Merge "Add LayerCommand.blockingRegion"

parents 962deadf 536f04e3
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -54,4 +54,5 @@ parcelable LayerCommand {
  @nullable android.hardware.graphics.composer3.Luminance whitePointNits;
  @nullable android.hardware.graphics.composer3.PerFrameMetadata[] perFrameMetadata;
  @nullable android.hardware.graphics.composer3.PerFrameMetadataBlob[] perFrameMetadataBlob;
  @nullable android.hardware.graphics.common.Rect[] blockingRegion;
}
+11 −0
Original line number Diff line number Diff line
@@ -264,4 +264,15 @@ parcelable LayerCommand {
     * This command may be called every frame.
     */
    @nullable PerFrameMetadataBlob[] perFrameMetadataBlob;

    /**
     * Specifies a region of the layer that is transparent and may be skipped
     * by the DPU, e.g. using a blocking region, in order to save power. This
     * is only a hint, so the composition of the layer must look the same
     * whether or not this region is skipped.
     *
     * The region is in screen space and must not exceed the dimensions of
     * the screen.
     */
    @nullable Rect[] blockingRegion;
}
+4 −0
Original line number Diff line number Diff line
@@ -218,6 +218,10 @@ class ComposerClientWriter {
        getLayerCommand(display, layer).whitePointNits.emplace(Luminance{.nits = whitePointNits});
    }

    void setLayerBlockingRegion(int64_t display, int64_t layer, const std::vector<Rect>& blocking) {
        getLayerCommand(display, layer).blockingRegion.emplace(blocking.begin(), blocking.end());
    }

    const std::vector<DisplayCommand>& getPendingCommands() {
        flushLayerCommand();
        flushDisplayCommand();