summaryrefslogtreecommitdiff
path: root/services/surfaceflinger/CompositionEngine/include/compositionengine/impl/OutputCompositionState.h
diff options
context:
space:
mode:
Diffstat (limited to 'services/surfaceflinger/CompositionEngine/include/compositionengine/impl/OutputCompositionState.h')
-rw-r--r--services/surfaceflinger/CompositionEngine/include/compositionengine/impl/OutputCompositionState.h55
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;
};