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