diff options
| author | 2019-03-05 20:18:10 +0000 | |
|---|---|---|
| committer | 2019-03-05 20:18:10 +0000 | |
| commit | d38d88765aca51fd08c258a395d1fc3d88fcedf5 (patch) | |
| tree | bbd2c589a902306a1d32287c752bd65fa61715c7 /services/surfaceflinger/BufferLayer.cpp | |
| parent | 7d171b0728975a14c07c6bdba09668352a599255 (diff) | |
| parent | c502cb751508dd2008ee5e0601d4aae31cbaf6ca (diff) | |
Merge "[SurfaceFlinger] Add setColorSpaceAgnostic API."
Diffstat (limited to 'services/surfaceflinger/BufferLayer.cpp')
| -rw-r--r-- | services/surfaceflinger/BufferLayer.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/services/surfaceflinger/BufferLayer.cpp b/services/surfaceflinger/BufferLayer.cpp index 756ca4273c..7884362570 100644 --- a/services/surfaceflinger/BufferLayer.cpp +++ b/services/surfaceflinger/BufferLayer.cpp @@ -239,7 +239,8 @@ bool BufferLayer::isHdrY410() const { void BufferLayer::setPerFrameData(const sp<const DisplayDevice>& displayDevice, const ui::Transform& transform, const Rect& viewport, - int32_t supportedPerFrameMetadata) { + int32_t supportedPerFrameMetadata, + const ui::Dataspace targetDataspace) { RETURN_IF_NO_HWC_LAYER(displayDevice); // Apply this display's projection's viewport to the visible region @@ -291,10 +292,10 @@ void BufferLayer::setPerFrameData(const sp<const DisplayDevice>& displayDevice, setCompositionType(displayDevice, Hwc2::IComposerClient::Composition::DEVICE); } - ALOGV("setPerFrameData: dataspace = %d", mCurrentDataSpace); - error = hwcLayer->setDataspace(mCurrentDataSpace); + ui::Dataspace dataspace = isColorSpaceAgnostic() ? targetDataspace : mCurrentDataSpace; + error = hwcLayer->setDataspace(dataspace); if (error != HWC2::Error::None) { - ALOGE("[%s] Failed to set dataspace %d: %s (%d)", mName.string(), mCurrentDataSpace, + ALOGE("[%s] Failed to set dataspace %d: %s (%d)", mName.string(), dataspace, to_string(error).c_str(), static_cast<int32_t>(error)); } |