drm_hwcomposer: Stop using HWC2 hooks for displayFrame
Add a display_frame member to LayerProperties, and set the display frame
along with other LayerCommand properties.
Change-Id: Ia3549fb9d1750f3d08896d60c7d962f1c3b085b5
Signed-off-by: Drew Davenport <ddavenport@google.com>
diff --git a/hwc3/ComposerClient.cpp b/hwc3/ComposerClient.cpp
index c344b1c..60cafad 100644
--- a/hwc3/ComposerClient.cpp
+++ b/hwc3/ComposerClient.cpp
@@ -204,6 +204,13 @@
return aidl_configuration;
}
+std::optional<hwc_rect> AidlToRect(const std::optional<common::Rect>& rect) {
+ if (!rect) {
+ return std::nullopt;
+ }
+ return hwc_rect{rect->left, rect->top, rect->right, rect->bottom};
+}
+
} // namespace
ComposerClient::ComposerClient() {
@@ -463,12 +470,9 @@
properties.color_space = AidlToColorSpace(command.dataspace);
properties.sample_range = AidlToSampleRange(command.dataspace);
properties.composition_type = AidlToCompositionType(command.composition);
+ properties.display_frame = AidlToRect(command.displayFrame);
layer->SetLayerProperties(properties);
- if (command.displayFrame) {
- ExecuteSetLayerDisplayFrame(display_id, layer_wrapper,
- *command.displayFrame);
- }
if (command.planeAlpha) {
ExecuteSetLayerPlaneAlpha(display_id, layer_wrapper, *command.planeAlpha);
}
@@ -1175,15 +1179,6 @@
}
}
-void ComposerClient::ExecuteSetLayerDisplayFrame(int64_t /*display_id*/,
- HwcLayerWrapper& layer,
- const common::Rect& rect) {
- const hwc_rect_t hwc2_rect{rect.left, rect.top, rect.right, rect.bottom};
- auto err = Hwc2toHwc3Error(layer.layer->SetLayerDisplayFrame(hwc2_rect));
- if (err != hwc3::Error::kNone) {
- cmd_result_writer_->AddError(err);
- }
-}
void ComposerClient::ExecuteSetLayerPlaneAlpha(int64_t /*display_id*/,
HwcLayerWrapper& layer,
const PlaneAlpha& plane_alpha) {