diff options
Diffstat (limited to 'services/surfaceflinger/CompositionEngine/include/compositionengine/OutputLayer.h')
-rw-r--r-- | services/surfaceflinger/CompositionEngine/include/compositionengine/OutputLayer.h | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/services/surfaceflinger/CompositionEngine/include/compositionengine/OutputLayer.h b/services/surfaceflinger/CompositionEngine/include/compositionengine/OutputLayer.h index aa70ef836d..ead941d1f9 100644 --- a/services/surfaceflinger/CompositionEngine/include/compositionengine/OutputLayer.h +++ b/services/surfaceflinger/CompositionEngine/include/compositionengine/OutputLayer.h @@ -16,6 +16,7 @@ #pragma once +#include <cstdint> #include <optional> #include <string> @@ -25,12 +26,15 @@ // TODO(b/129481165): remove the #pragma below and fix conversion issues #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wconversion" +#pragma clang diagnostic ignored "-Wextra" #include "DisplayHardware/ComposerHal.h" #include "DisplayHardware/DisplayIdentification.h" +#include "LayerFE.h" + // TODO(b/129481165): remove the #pragma below and fix conversion issues -#pragma clang diagnostic pop // ignored "-Wconversion" +#pragma clang diagnostic pop // ignored "-Wconversion -Wextra" namespace android { @@ -42,7 +46,6 @@ namespace compositionengine { class CompositionEngine; class Output; -class LayerFE; namespace impl { struct OutputLayerCompositionState; @@ -87,8 +90,14 @@ public: // Writes the geometry state to the HWC, or does nothing if this layer does // not use the HWC. If includeGeometry is false, the geometry state can be - // skipped. - virtual void writeStateToHWC(bool includeGeometry) = 0; + // skipped. If skipLayer is true, then the alpha of the layer is forced to + // 0 so that HWC will ignore it. z specifies the order to draw the layer in + // (starting with 0 for the back layer, and increasing for each following + // layer). zIsOverridden specifies whether the layer has been reordered. + // isPeekingThrough specifies whether this layer will be shown through a + // hole punch in a layer above it. + virtual void writeStateToHWC(bool includeGeometry, bool skipLayer, uint32_t z, + bool zIsOverridden, bool isPeekingThrough) = 0; // Updates the cursor position with the HWC virtual void writeCursorPositionToHWC() const = 0; @@ -114,6 +123,10 @@ public: // Returns true if the composition settings scale pixels virtual bool needsFiltering() const = 0; + // Returns a composition list to be used by RenderEngine if the layer has been overridden + // during the composition process + virtual std::vector<LayerFE::LayerSettings> getOverrideCompositionList() const = 0; + // Debugging virtual void dump(std::string& result) const = 0; }; |