diff options
Diffstat (limited to 'hwc3/ComposerClient.cpp')
-rw-r--r-- | hwc3/ComposerClient.cpp | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/hwc3/ComposerClient.cpp b/hwc3/ComposerClient.cpp index 96d5f58..848d1f7 100644 --- a/hwc3/ComposerClient.cpp +++ b/hwc3/ComposerClient.cpp @@ -162,15 +162,6 @@ ndk::ScopedAStatus ComposerClient::getDisplayCapabilities(int64_t display, return TO_BINDER_STATUS(err); } - bool support = false; - err = mHal->getRCDLayerSupport(display, support); - if (err != ::android::OK) { - LOG(ERROR) << "failed to getRCDLayerSupport: " << err; - } - if (support) { - caps->push_back(DisplayCapability::DISPLAY_DECORATION); - } - return TO_BINDER_STATUS(err); } @@ -276,6 +267,25 @@ ndk::ScopedAStatus ComposerClient::getSupportedContentTypes(int64_t display, return TO_BINDER_STATUS(err); } +ndk::ScopedAStatus ComposerClient::getDisplayDecorationSupport( + int64_t display, std::optional<common::DisplayDecorationSupport>* supportStruct) { + DEBUG_FUNC(); + bool support = false; + auto err = mHal->getRCDLayerSupport(display, support); + if (err != ::android::OK) { + LOG(ERROR) << "failed to getRCDLayerSupport: " << err; + } + if (support) { + // TODO (b/218499393): determine from mHal instead of hard coding. + auto& s = supportStruct->emplace(); + s.format = common::PixelFormat::R_8; + s.alphaInterpretation = common::AlphaInterpretation::COVERAGE; + } else { + supportStruct->reset(); + } + return TO_BINDER_STATUS(err); +} + ndk::ScopedAStatus ComposerClient::registerCallback( const std::shared_ptr<IComposerCallback>& callback) { DEBUG_FUNC(); |