Loading services/surfaceflinger/CompositionEngine/tests/MockHWC2.h +1 −0 Original line number Diff line number Diff line Loading @@ -75,6 +75,7 @@ public: MOCK_METHOD3(setLayerGenericMetadata, Error(const std::string&, bool, const std::vector<uint8_t>&)); MOCK_METHOD1(setWhitePointNits, Error(float)); MOCK_METHOD1(setBlockingRegion, Error(const android::Region&)); }; } // namespace mock Loading services/surfaceflinger/DisplayHardware/AidlComposerHal.cpp +6 −0 Original line number Diff line number Diff line Loading @@ -1037,5 +1037,11 @@ Error AidlComposer::setLayerWhitePointNits(Display display, Layer layer, float w return Error::NONE; } Error AidlComposer::setLayerBlockingRegion(Display display, Layer layer, const std::vector<IComposerClient::Rect>& blocking) { mWriter.setLayerBlockingRegion(translate<int64_t>(display), translate<int64_t>(layer), translate<AidlRect>(blocking)); return Error::NONE; } } // namespace Hwc2 } // namespace android services/surfaceflinger/DisplayHardware/AidlComposerHal.h +4 −0 Original line number Diff line number Diff line Loading @@ -208,7 +208,11 @@ public: Error getClientTargetProperty(Display display, IComposerClient::ClientTargetProperty* outClientTargetProperty, float* outClientTargetWhitePointNits) override; // AIDL Composer HAL Error setLayerWhitePointNits(Display display, Layer layer, float whitePointNits) override; Error setLayerBlockingRegion(Display display, Layer layer, const std::vector<IComposerClient::Rect>& blocking) override; private: // Many public functions above simply write a command into the command Loading services/surfaceflinger/DisplayHardware/ComposerHal.h +2 −0 Original line number Diff line number Diff line Loading @@ -252,6 +252,8 @@ public: // AIDL Composer virtual Error setLayerWhitePointNits(Display display, Layer layer, float whitePointNits) = 0; virtual Error setLayerBlockingRegion(Display display, Layer layer, const std::vector<IComposerClient::Rect>& blocking) = 0; }; } // namespace android::Hwc2 services/surfaceflinger/DisplayHardware/HWC2.cpp +15 −0 Original line number Diff line number Diff line Loading @@ -931,6 +931,21 @@ Error Layer::setWhitePointNits(float whitePointNits) { return static_cast<Error>(intError); } Error Layer::setBlockingRegion(const Region& region) { if (CC_UNLIKELY(!mDisplay)) { return Error::BAD_DISPLAY; } if (region.isRect() && mBlockingRegion.isRect() && (region.getBounds() == mBlockingRegion.getBounds())) { return Error::NONE; } mBlockingRegion = region; const auto hwcRects = convertRegionToHwcRects(region); const auto intError = mComposer.setLayerBlockingRegion(mDisplay->getId(), mId, hwcRects); return static_cast<Error>(intError); } } // namespace impl } // namespace HWC2 } // namespace android Loading Loading
services/surfaceflinger/CompositionEngine/tests/MockHWC2.h +1 −0 Original line number Diff line number Diff line Loading @@ -75,6 +75,7 @@ public: MOCK_METHOD3(setLayerGenericMetadata, Error(const std::string&, bool, const std::vector<uint8_t>&)); MOCK_METHOD1(setWhitePointNits, Error(float)); MOCK_METHOD1(setBlockingRegion, Error(const android::Region&)); }; } // namespace mock Loading
services/surfaceflinger/DisplayHardware/AidlComposerHal.cpp +6 −0 Original line number Diff line number Diff line Loading @@ -1037,5 +1037,11 @@ Error AidlComposer::setLayerWhitePointNits(Display display, Layer layer, float w return Error::NONE; } Error AidlComposer::setLayerBlockingRegion(Display display, Layer layer, const std::vector<IComposerClient::Rect>& blocking) { mWriter.setLayerBlockingRegion(translate<int64_t>(display), translate<int64_t>(layer), translate<AidlRect>(blocking)); return Error::NONE; } } // namespace Hwc2 } // namespace android
services/surfaceflinger/DisplayHardware/AidlComposerHal.h +4 −0 Original line number Diff line number Diff line Loading @@ -208,7 +208,11 @@ public: Error getClientTargetProperty(Display display, IComposerClient::ClientTargetProperty* outClientTargetProperty, float* outClientTargetWhitePointNits) override; // AIDL Composer HAL Error setLayerWhitePointNits(Display display, Layer layer, float whitePointNits) override; Error setLayerBlockingRegion(Display display, Layer layer, const std::vector<IComposerClient::Rect>& blocking) override; private: // Many public functions above simply write a command into the command Loading
services/surfaceflinger/DisplayHardware/ComposerHal.h +2 −0 Original line number Diff line number Diff line Loading @@ -252,6 +252,8 @@ public: // AIDL Composer virtual Error setLayerWhitePointNits(Display display, Layer layer, float whitePointNits) = 0; virtual Error setLayerBlockingRegion(Display display, Layer layer, const std::vector<IComposerClient::Rect>& blocking) = 0; }; } // namespace android::Hwc2
services/surfaceflinger/DisplayHardware/HWC2.cpp +15 −0 Original line number Diff line number Diff line Loading @@ -931,6 +931,21 @@ Error Layer::setWhitePointNits(float whitePointNits) { return static_cast<Error>(intError); } Error Layer::setBlockingRegion(const Region& region) { if (CC_UNLIKELY(!mDisplay)) { return Error::BAD_DISPLAY; } if (region.isRect() && mBlockingRegion.isRect() && (region.getBounds() == mBlockingRegion.getBounds())) { return Error::NONE; } mBlockingRegion = region; const auto hwcRects = convertRegionToHwcRects(region); const auto intError = mComposer.setLayerBlockingRegion(mDisplay->getId(), mId, hwcRects); return static_cast<Error>(intError); } } // namespace impl } // namespace HWC2 } // namespace android Loading