diff options
Diffstat (limited to 'services/surfaceflinger/CompositionEngine/include/compositionengine/impl/OutputCompositionState.h')
-rw-r--r-- | services/surfaceflinger/CompositionEngine/include/compositionengine/impl/OutputCompositionState.h | 55 |
1 files changed, 21 insertions, 34 deletions
diff --git a/services/surfaceflinger/CompositionEngine/include/compositionengine/impl/OutputCompositionState.h b/services/surfaceflinger/CompositionEngine/include/compositionengine/impl/OutputCompositionState.h index f34cb94079..66ed2b6d25 100644 --- a/services/surfaceflinger/CompositionEngine/include/compositionengine/impl/OutputCompositionState.h +++ b/services/surfaceflinger/CompositionEngine/include/compositionengine/impl/OutputCompositionState.h @@ -19,19 +19,16 @@ #include <cstdint> #include <math/mat4.h> -#include <ui/FenceTime.h> // 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 <ui/GraphicTypes.h> // TODO(b/129481165): remove the #pragma below and fix conversion issues -#pragma clang diagnostic pop // ignored "-Wconversion -Wextra" +#pragma clang diagnostic pop // ignored "-Wconversion" -#include <compositionengine/ProjectionSpace.h> #include <ui/Rect.h> #include <ui/Region.h> #include <ui/Transform.h> @@ -41,7 +38,7 @@ namespace android { namespace compositionengine::impl { struct OutputCompositionState { - // If false, composition will not be performed for this display + // If false, composition will not per performed for this display bool isEnabled{false}; // If false, this output is not considered secure @@ -53,7 +50,8 @@ struct OutputCompositionState { // If true, the current frame on this output uses device composition bool usesDeviceComposition{false}; - // If true, the client target should be flipped when performing client composition + // If true, the client target should be flipped when performing client + // composition bool flipClientTarget{false}; // If true, the current frame reused the buffer from a previous client composition @@ -65,25 +63,27 @@ struct OutputCompositionState { // The layer stack to display on this display uint32_t layerStackId{~0u}; - // The common space for all layers in the layer stack. layerStackSpace.content is the Rect - // which gets projected on the display. The orientation of this space is always ROTATION_0. - ProjectionSpace layerStackSpace; + // The physical space screen bounds + Rect bounds; - // Oriented physical display space. It will have the same size as displaySpace oriented to - // match the orientation of layerStackSpace. The orientation of this space is always ROTATION_0. - ProjectionSpace orientedDisplaySpace; + // The logical to physical transformation to use + ui::Transform transform; - // The space of the framebuffer. Its bounds match the size of the framebuffer and its - // orientation matches the orientation of the display. Typically the framebuffer space will - // be identical to the physical display space. - ProjectionSpace framebufferSpace; + // The physical orientation of the display, expressed as ui::Transform + // orientation flags. + uint32_t orientation{0}; - // The space of the physical display. It is as big as the currently active display mode. The - // content in this space can be rotated. - ProjectionSpace displaySpace; + // The logical space user visible bounds + Rect frame; - // Transformation from layerStackSpace to displaySpace - ui::Transform transform; + // The logical space user viewport rectangle + Rect viewport; + + // The physical space source clip rectangle + Rect sourceClip; + + // The physical space destination clip rectangle + Rect destinationClip; // If true, RenderEngine filtering should be enabled bool needsFiltering{false}; @@ -116,19 +116,6 @@ struct OutputCompositionState { // Current target dataspace ui::Dataspace targetDataspace{ui::Dataspace::UNKNOWN}; - // The earliest time to send the present command to the HAL - std::chrono::steady_clock::time_point earliestPresentTime; - - // The previous present fence. Used together with earliestPresentTime - // to prevent an early presentation of a frame. - std::shared_ptr<FenceTime> previousPresentFence; - - // Current display brightness - float displayBrightnessNits{-1.f}; - - // SDR white point - float sdrWhitePointNits{-1.f}; - // Debugging void dump(std::string& result) const; }; |