diff options
author | Marissa Wall <marissaw@google.com> | 2017-03-02 22:09:33 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2017-03-02 22:09:33 +0000 |
commit | c202c9d916e5437f12d7a91bbc644271faf89550 (patch) | |
tree | 72d7066970ca853a9e19154c23d999a89d47d851 | |
parent | d254df6fe8907e3c8e211dab5f37ab1640dc3cd3 (diff) | |
parent | 4e1146b84cea045c298d098c2a90770c03e70479 (diff) | |
download | flounder-c202c9d916e5437f12d7a91bbc644271faf89550.tar.gz |
hwc2: set layer dataspace
am: 4e1146b84c
Change-Id: I3816cb658cbf52d9d7f68314133b22d908d59eae
-rw-r--r-- | hwc2/hwc2.cpp | 8 | ||||
-rw-r--r-- | hwc2/hwc2.h | 10 | ||||
-rw-r--r-- | hwc2/hwc2_buffer.cpp | 10 | ||||
-rw-r--r-- | hwc2/hwc2_dev.cpp | 6 | ||||
-rw-r--r-- | hwc2/hwc2_display.cpp | 12 | ||||
-rw-r--r-- | hwc2/hwc2_layer.cpp | 5 |
6 files changed, 46 insertions, 5 deletions
diff --git a/hwc2/hwc2.cpp b/hwc2/hwc2.cpp index ede7200..016b636 100644 --- a/hwc2/hwc2.cpp +++ b/hwc2/hwc2.cpp @@ -286,11 +286,11 @@ hwc2_error_t set_layer_composition_type(hwc2_device_t *device, return dev->set_layer_composition_type(display, layer, type); } -hwc2_error_t set_layer_dataspace(hwc2_device_t* /*device*/, - hwc2_display_t /*display*/, hwc2_layer_t /*layer*/, - android_dataspace_t /*dataspace*/) +hwc2_error_t set_layer_dataspace(hwc2_device_t *device, hwc2_display_t display, + hwc2_layer_t layer, android_dataspace_t dataspace) { - return HWC2_ERROR_NONE; + hwc2_dev *dev = reinterpret_cast<hwc2_context *>(device)->hwc2_dev; + return dev->set_layer_dataspace(display, layer, dataspace); } hwc2_error_t set_layer_display_frame(hwc2_device_t* /*device*/, diff --git a/hwc2/hwc2.h b/hwc2/hwc2.h index 70bd51a..1d44809 100644 --- a/hwc2/hwc2.h +++ b/hwc2/hwc2.h @@ -32,9 +32,14 @@ public: hwc2_buffer(); /* Set properties */ + hwc2_error_t set_dataspace(android_dataspace_t dataspace); hwc2_error_t set_blend_mode(hwc2_blend_mode_t blend_mode); private: + /* Provides more info on how to interpret the buffer contents such as + * the encoding standard and color transformation */ + android_dataspace_t dataspace; + /* The blend mode of the buffer */ hwc2_blend_mode_t blend_mode; }; @@ -98,6 +103,7 @@ public: /* Set properties */ hwc2_error_t set_comp_type(hwc2_composition_t comp_type); + hwc2_error_t set_dataspace(android_dataspace_t dataspace); hwc2_error_t set_blend_mode(hwc2_blend_mode_t blend_mode); static hwc2_layer_t get_next_id(); @@ -155,6 +161,8 @@ public: hwc2_error_t set_layer_composition_type(hwc2_layer_t lyr_id, hwc2_composition_t comp_type); + hwc2_error_t set_layer_dataspace(hwc2_layer_t lyr_id, + android_dataspace_t dataspace); hwc2_error_t set_layer_blend_mode(hwc2_layer_t lyr_id, hwc2_blend_mode_t blend_mode); @@ -233,6 +241,8 @@ public: hwc2_error_t set_layer_composition_type(hwc2_display_t dpy_id, hwc2_layer_t lyr_id, hwc2_composition_t comp_type); + hwc2_error_t set_layer_dataspace(hwc2_display_t dpy_id, hwc2_layer_t lyr_id, + android_dataspace_t dataspace); hwc2_error_t set_layer_blend_mode(hwc2_display_t dpy_id, hwc2_layer_t lyr_id, hwc2_blend_mode_t blend_mode); diff --git a/hwc2/hwc2_buffer.cpp b/hwc2/hwc2_buffer.cpp index 3f244e6..a2952e7 100644 --- a/hwc2/hwc2_buffer.cpp +++ b/hwc2/hwc2_buffer.cpp @@ -19,7 +19,15 @@ #include "hwc2.h" hwc2_buffer::hwc2_buffer() - : blend_mode(HWC2_BLEND_MODE_NONE) { } + : dataspace(), + blend_mode(HWC2_BLEND_MODE_NONE) { } + +hwc2_error_t hwc2_buffer::set_dataspace(android_dataspace_t dataspace) +{ + this->dataspace = dataspace; + + return HWC2_ERROR_NONE; +} hwc2_error_t hwc2_buffer::set_blend_mode(hwc2_blend_mode_t blend_mode) { diff --git a/hwc2/hwc2_dev.cpp b/hwc2/hwc2_dev.cpp index e0219f9..46ca61b 100644 --- a/hwc2/hwc2_dev.cpp +++ b/hwc2/hwc2_dev.cpp @@ -187,6 +187,12 @@ hwc2_error_t hwc2_dev::set_layer_composition_type(hwc2_display_t dpy_id, comp_type); } +hwc2_error_t hwc2_dev::set_layer_dataspace(hwc2_display_t dpy_id, + hwc2_layer_t lyr_id, android_dataspace_t dataspace) +{ + return displays.find(dpy_id)->second.set_layer_dataspace(lyr_id, dataspace); +} + hwc2_error_t hwc2_dev::set_layer_blend_mode(hwc2_display_t dpy_id, hwc2_layer_t lyr_id, hwc2_blend_mode_t blend_mode) { diff --git a/hwc2/hwc2_display.cpp b/hwc2/hwc2_display.cpp index 1d540fb..9f43fa4 100644 --- a/hwc2/hwc2_display.cpp +++ b/hwc2/hwc2_display.cpp @@ -276,6 +276,18 @@ hwc2_error_t hwc2_display::set_layer_composition_type(hwc2_layer_t lyr_id, return it->second.set_comp_type(comp_type); } +hwc2_error_t hwc2_display::set_layer_dataspace(hwc2_layer_t lyr_id, + android_dataspace_t dataspace) +{ + auto it = layers.find(lyr_id); + if (it == layers.end()) { + ALOGE("dpy %" PRIu64 ": lyr %" PRIu64 ": bad layer handle", id, lyr_id); + return HWC2_ERROR_BAD_LAYER; + } + + return it->second.set_dataspace(dataspace); +} + hwc2_error_t hwc2_display::set_layer_blend_mode(hwc2_layer_t lyr_id, hwc2_blend_mode_t blend_mode) { diff --git a/hwc2/hwc2_layer.cpp b/hwc2/hwc2_layer.cpp index 8dd19ae..c448924 100644 --- a/hwc2/hwc2_layer.cpp +++ b/hwc2/hwc2_layer.cpp @@ -51,6 +51,11 @@ hwc2_error_t hwc2_layer::set_comp_type(hwc2_composition_t comp_type) return ret; } +hwc2_error_t hwc2_layer::set_dataspace(android_dataspace_t dataspace) +{ + return buffer.set_dataspace(dataspace); +} + hwc2_error_t hwc2_layer::set_blend_mode(hwc2_blend_mode_t blend_mode) { return buffer.set_blend_mode(blend_mode); |