diff options
Diffstat (limited to 'services/surfaceflinger/CompositionEngine/include/compositionengine/DisplayCreationArgs.h')
-rw-r--r-- | services/surfaceflinger/CompositionEngine/include/compositionengine/DisplayCreationArgs.h | 38 |
1 files changed, 27 insertions, 11 deletions
diff --git a/services/surfaceflinger/CompositionEngine/include/compositionengine/DisplayCreationArgs.h b/services/surfaceflinger/CompositionEngine/include/compositionengine/DisplayCreationArgs.h index 14eddb1861..6bc677d432 100644 --- a/services/surfaceflinger/CompositionEngine/include/compositionengine/DisplayCreationArgs.h +++ b/services/surfaceflinger/CompositionEngine/include/compositionengine/DisplayCreationArgs.h @@ -20,10 +20,11 @@ #include <optional> #include <string> -#include <ui/DisplayId.h> +#include <ui/DisplayInfo.h> +#include <ui/PixelFormat.h> #include <ui/Size.h> -#include <ui/StaticDisplayInfo.h> +#include "DisplayHardware/DisplayIdentification.h" #include "DisplayHardware/PowerAdvisor.h" namespace android::compositionengine { @@ -34,14 +35,24 @@ class CompositionEngine; * A parameter object for creating Display instances */ struct DisplayCreationArgs { - DisplayId id; + struct Physical { + DisplayId id; + DisplayConnectionType type; + }; - // Unset for virtual displays - std::optional<ui::DisplayConnectionType> connectionType; + // Required for physical displays. Gives the HWC display id for the existing + // display along with the connection type. + std::optional<Physical> physical; // Size of the display in pixels ui::Size pixels = ui::Size::INVALID; + // Pixel format of the display + ui::PixelFormat pixelFormat = static_cast<ui::PixelFormat>(PIXEL_FORMAT_UNKNOWN); + + // True if virtual displays should be created with the HWC API if possible + bool useHwcVirtualDisplays = false; + // True if this display should be considered secure bool isSecure = false; @@ -64,18 +75,23 @@ class DisplayCreationArgsBuilder { public: DisplayCreationArgs build() { return std::move(mArgs); } - DisplayCreationArgsBuilder& setId(DisplayId id) { - mArgs.id = id; + DisplayCreationArgsBuilder& setPhysical(DisplayCreationArgs::Physical physical) { + mArgs.physical = physical; return *this; } - DisplayCreationArgsBuilder& setConnectionType(ui::DisplayConnectionType connectionType) { - mArgs.connectionType = connectionType; + DisplayCreationArgsBuilder& setPixels(ui::Size pixels) { + mArgs.pixels = pixels; return *this; } - DisplayCreationArgsBuilder& setPixels(ui::Size pixels) { - mArgs.pixels = pixels; + DisplayCreationArgsBuilder& setPixelFormat(ui::PixelFormat pixelFormat) { + mArgs.pixelFormat = pixelFormat; + return *this; + } + + DisplayCreationArgsBuilder& setUseHwcVirtualDisplays(bool useHwcVirtualDisplays) { + mArgs.useHwcVirtualDisplays = useHwcVirtualDisplays; return *this; } |