Loading libs/ui/HdrCapabilities.cpp +3 −3 Original line number Original line Diff line number Diff line Loading @@ -33,7 +33,7 @@ size_t HdrCapabilities::getFlattenedSize() const { sizeof(mMaxAverageLuminance) + sizeof(mMaxAverageLuminance) + sizeof(mMinLuminance) + sizeof(mMinLuminance) + sizeof(int32_t) + sizeof(int32_t) + mSupportedHdrTypes.size() * sizeof(int32_t); mSupportedHdrTypes.size() * sizeof(ui::Hdr); } } status_t HdrCapabilities::flatten(void* buffer, size_t size) const { status_t HdrCapabilities::flatten(void* buffer, size_t size) const { Loading @@ -48,7 +48,7 @@ status_t HdrCapabilities::flatten(void* buffer, size_t size) const { reinterpret_cast<float&>(buf[2]) = mMinLuminance; reinterpret_cast<float&>(buf[2]) = mMinLuminance; buf[3] = static_cast<int32_t>(mSupportedHdrTypes.size()); buf[3] = static_cast<int32_t>(mSupportedHdrTypes.size()); for (size_t i = 0, c = mSupportedHdrTypes.size(); i < c; ++i) { for (size_t i = 0, c = mSupportedHdrTypes.size(); i < c; ++i) { buf[4 + i] = mSupportedHdrTypes[i]; buf[4 + i] = static_cast<int32_t>(mSupportedHdrTypes[i]); } } return NO_ERROR; return NO_ERROR; } } Loading Loading @@ -78,7 +78,7 @@ status_t HdrCapabilities::unflatten(void const* buffer, size_t size) { if (itemCount) { if (itemCount) { mSupportedHdrTypes.resize(itemCount); mSupportedHdrTypes.resize(itemCount); for (size_t i = 0; i < itemCount; ++i) { for (size_t i = 0; i < itemCount; ++i) { mSupportedHdrTypes[i] = buf[4 + i]; mSupportedHdrTypes[i] = static_cast<ui::Hdr>(buf[4 + i]); } } } } return NO_ERROR; return NO_ERROR; Loading libs/ui/include/ui/GraphicTypes.h +1 −0 Original line number Original line Diff line number Diff line Loading @@ -24,6 +24,7 @@ namespace android { namespace android { namespace ui { namespace ui { using android::hardware::graphics::common::V1_0::Hdr; using android::hardware::graphics::common::V1_1::ColorMode; using android::hardware::graphics::common::V1_1::ColorMode; using android::hardware::graphics::common::V1_1::Dataspace; using android::hardware::graphics::common::V1_1::Dataspace; using android::hardware::graphics::common::V1_1::PixelFormat; using android::hardware::graphics::common::V1_1::PixelFormat; Loading libs/ui/include/ui/HdrCapabilities.h +4 −3 Original line number Original line Diff line number Diff line Loading @@ -21,6 +21,7 @@ #include <vector> #include <vector> #include <ui/GraphicTypes.h> #include <utils/Flattenable.h> #include <utils/Flattenable.h> namespace android { namespace android { Loading @@ -28,7 +29,7 @@ namespace android { class HdrCapabilities : public LightFlattenable<HdrCapabilities> class HdrCapabilities : public LightFlattenable<HdrCapabilities> { { public: public: HdrCapabilities(const std::vector<int32_t /*android_hdr_t*/>& types, HdrCapabilities(const std::vector<ui::Hdr>& types, float maxLuminance, float maxAverageLuminance, float minLuminance) float maxLuminance, float maxAverageLuminance, float minLuminance) : mSupportedHdrTypes(types), : mSupportedHdrTypes(types), mMaxLuminance(maxLuminance), mMaxLuminance(maxLuminance), Loading @@ -47,7 +48,7 @@ public: ~HdrCapabilities(); ~HdrCapabilities(); const std::vector<int32_t /*android_hdr_t*/>& getSupportedHdrTypes() const { const std::vector<ui::Hdr>& getSupportedHdrTypes() const { return mSupportedHdrTypes; return mSupportedHdrTypes; } } float getDesiredMaxLuminance() const { return mMaxLuminance; } float getDesiredMaxLuminance() const { return mMaxLuminance; } Loading @@ -61,7 +62,7 @@ public: status_t unflatten(void const* buffer, size_t size); status_t unflatten(void const* buffer, size_t size); private: private: std::vector<int32_t /*android_hdr_t*/> mSupportedHdrTypes; std::vector<ui::Hdr> mSupportedHdrTypes; float mMaxLuminance; float mMaxLuminance; float mMaxAverageLuminance; float mMaxAverageLuminance; float mMinLuminance; float mMinLuminance; Loading services/surfaceflinger/DisplayDevice.cpp +20 −2 Original line number Original line Diff line number Diff line Loading @@ -55,6 +55,7 @@ namespace android { using namespace android::hardware::configstore; using namespace android::hardware::configstore; using namespace android::hardware::configstore::V1_0; using namespace android::hardware::configstore::V1_0; using android::ui::ColorMode; using android::ui::ColorMode; using android::ui::Hdr; using android::ui::RenderIntent; using android::ui::RenderIntent; /* /* Loading @@ -77,7 +78,7 @@ DisplayDevice::DisplayDevice( int displayWidth, int displayWidth, int displayHeight, int displayHeight, bool hasWideColorGamut, bool hasWideColorGamut, bool hasHdr10, const HdrCapabilities& hdrCapabilities, int initialPowerMode) int initialPowerMode) : lastCompositionHadVisibleLayers(false), : lastCompositionHadVisibleLayers(false), mFlinger(flinger), mFlinger(flinger), Loading @@ -100,9 +101,26 @@ DisplayDevice::DisplayDevice( mActiveColorMode(ColorMode::NATIVE), mActiveColorMode(ColorMode::NATIVE), mColorTransform(HAL_COLOR_TRANSFORM_IDENTITY), mColorTransform(HAL_COLOR_TRANSFORM_IDENTITY), mHasWideColorGamut(hasWideColorGamut), mHasWideColorGamut(hasWideColorGamut), mHasHdr10(hasHdr10) mHasHdr10(false), mHasHLG(false), mHasDolbyVision(false) { { // clang-format on // clang-format on for (Hdr hdrType : hdrCapabilities.getSupportedHdrTypes()) { switch (hdrType) { case Hdr::HDR10: mHasHdr10 = true; break; case Hdr::HLG: mHasHLG = true; break; case Hdr::DOLBY_VISION: mHasDolbyVision = true; break; default: ALOGE("UNKNOWN HDR capability: %d", static_cast<int32_t>(hdrType)); } } // initialize the display orientation transform. // initialize the display orientation transform. setProjection(DisplayState::eOrientationDefault, mViewport, mFrame); setProjection(DisplayState::eOrientationDefault, mViewport, mFrame); Loading services/surfaceflinger/DisplayDevice.h +6 −2 Original line number Original line Diff line number Diff line Loading @@ -85,7 +85,7 @@ public: int displayWidth, int displayWidth, int displayHeight, int displayHeight, bool hasWideColorGamut, bool hasWideColorGamut, bool hasHdr10, const HdrCapabilities& hdrCapabilities, int initialPowerMode); int initialPowerMode); // clang-format on // clang-format on Loading Loading @@ -136,7 +136,9 @@ public: status_t beginFrame(bool mustRecompose) const; status_t beginFrame(bool mustRecompose) const; status_t prepareFrame(HWComposer& hwc); status_t prepareFrame(HWComposer& hwc); bool hasWideColorGamut() const { return mHasWideColorGamut; } bool hasWideColorGamut() const { return mHasWideColorGamut; } bool hasHdr10() const { return mHasHdr10; } bool hasHDR10Support() const { return mHasHdr10; } bool hasHLGSupport() const { return mHasHLG; } bool hasDolbyVisionSupport() const { return mHasDolbyVision; } void swapBuffers(HWComposer& hwc) const; void swapBuffers(HWComposer& hwc) const; Loading Loading @@ -255,6 +257,8 @@ private: // Fed to RenderEngine during composition. // Fed to RenderEngine during composition. bool mHasWideColorGamut; bool mHasWideColorGamut; bool mHasHdr10; bool mHasHdr10; bool mHasHLG; bool mHasDolbyVision; }; }; struct DisplayDeviceState { struct DisplayDeviceState { Loading Loading
libs/ui/HdrCapabilities.cpp +3 −3 Original line number Original line Diff line number Diff line Loading @@ -33,7 +33,7 @@ size_t HdrCapabilities::getFlattenedSize() const { sizeof(mMaxAverageLuminance) + sizeof(mMaxAverageLuminance) + sizeof(mMinLuminance) + sizeof(mMinLuminance) + sizeof(int32_t) + sizeof(int32_t) + mSupportedHdrTypes.size() * sizeof(int32_t); mSupportedHdrTypes.size() * sizeof(ui::Hdr); } } status_t HdrCapabilities::flatten(void* buffer, size_t size) const { status_t HdrCapabilities::flatten(void* buffer, size_t size) const { Loading @@ -48,7 +48,7 @@ status_t HdrCapabilities::flatten(void* buffer, size_t size) const { reinterpret_cast<float&>(buf[2]) = mMinLuminance; reinterpret_cast<float&>(buf[2]) = mMinLuminance; buf[3] = static_cast<int32_t>(mSupportedHdrTypes.size()); buf[3] = static_cast<int32_t>(mSupportedHdrTypes.size()); for (size_t i = 0, c = mSupportedHdrTypes.size(); i < c; ++i) { for (size_t i = 0, c = mSupportedHdrTypes.size(); i < c; ++i) { buf[4 + i] = mSupportedHdrTypes[i]; buf[4 + i] = static_cast<int32_t>(mSupportedHdrTypes[i]); } } return NO_ERROR; return NO_ERROR; } } Loading Loading @@ -78,7 +78,7 @@ status_t HdrCapabilities::unflatten(void const* buffer, size_t size) { if (itemCount) { if (itemCount) { mSupportedHdrTypes.resize(itemCount); mSupportedHdrTypes.resize(itemCount); for (size_t i = 0; i < itemCount; ++i) { for (size_t i = 0; i < itemCount; ++i) { mSupportedHdrTypes[i] = buf[4 + i]; mSupportedHdrTypes[i] = static_cast<ui::Hdr>(buf[4 + i]); } } } } return NO_ERROR; return NO_ERROR; Loading
libs/ui/include/ui/GraphicTypes.h +1 −0 Original line number Original line Diff line number Diff line Loading @@ -24,6 +24,7 @@ namespace android { namespace android { namespace ui { namespace ui { using android::hardware::graphics::common::V1_0::Hdr; using android::hardware::graphics::common::V1_1::ColorMode; using android::hardware::graphics::common::V1_1::ColorMode; using android::hardware::graphics::common::V1_1::Dataspace; using android::hardware::graphics::common::V1_1::Dataspace; using android::hardware::graphics::common::V1_1::PixelFormat; using android::hardware::graphics::common::V1_1::PixelFormat; Loading
libs/ui/include/ui/HdrCapabilities.h +4 −3 Original line number Original line Diff line number Diff line Loading @@ -21,6 +21,7 @@ #include <vector> #include <vector> #include <ui/GraphicTypes.h> #include <utils/Flattenable.h> #include <utils/Flattenable.h> namespace android { namespace android { Loading @@ -28,7 +29,7 @@ namespace android { class HdrCapabilities : public LightFlattenable<HdrCapabilities> class HdrCapabilities : public LightFlattenable<HdrCapabilities> { { public: public: HdrCapabilities(const std::vector<int32_t /*android_hdr_t*/>& types, HdrCapabilities(const std::vector<ui::Hdr>& types, float maxLuminance, float maxAverageLuminance, float minLuminance) float maxLuminance, float maxAverageLuminance, float minLuminance) : mSupportedHdrTypes(types), : mSupportedHdrTypes(types), mMaxLuminance(maxLuminance), mMaxLuminance(maxLuminance), Loading @@ -47,7 +48,7 @@ public: ~HdrCapabilities(); ~HdrCapabilities(); const std::vector<int32_t /*android_hdr_t*/>& getSupportedHdrTypes() const { const std::vector<ui::Hdr>& getSupportedHdrTypes() const { return mSupportedHdrTypes; return mSupportedHdrTypes; } } float getDesiredMaxLuminance() const { return mMaxLuminance; } float getDesiredMaxLuminance() const { return mMaxLuminance; } Loading @@ -61,7 +62,7 @@ public: status_t unflatten(void const* buffer, size_t size); status_t unflatten(void const* buffer, size_t size); private: private: std::vector<int32_t /*android_hdr_t*/> mSupportedHdrTypes; std::vector<ui::Hdr> mSupportedHdrTypes; float mMaxLuminance; float mMaxLuminance; float mMaxAverageLuminance; float mMaxAverageLuminance; float mMinLuminance; float mMinLuminance; Loading
services/surfaceflinger/DisplayDevice.cpp +20 −2 Original line number Original line Diff line number Diff line Loading @@ -55,6 +55,7 @@ namespace android { using namespace android::hardware::configstore; using namespace android::hardware::configstore; using namespace android::hardware::configstore::V1_0; using namespace android::hardware::configstore::V1_0; using android::ui::ColorMode; using android::ui::ColorMode; using android::ui::Hdr; using android::ui::RenderIntent; using android::ui::RenderIntent; /* /* Loading @@ -77,7 +78,7 @@ DisplayDevice::DisplayDevice( int displayWidth, int displayWidth, int displayHeight, int displayHeight, bool hasWideColorGamut, bool hasWideColorGamut, bool hasHdr10, const HdrCapabilities& hdrCapabilities, int initialPowerMode) int initialPowerMode) : lastCompositionHadVisibleLayers(false), : lastCompositionHadVisibleLayers(false), mFlinger(flinger), mFlinger(flinger), Loading @@ -100,9 +101,26 @@ DisplayDevice::DisplayDevice( mActiveColorMode(ColorMode::NATIVE), mActiveColorMode(ColorMode::NATIVE), mColorTransform(HAL_COLOR_TRANSFORM_IDENTITY), mColorTransform(HAL_COLOR_TRANSFORM_IDENTITY), mHasWideColorGamut(hasWideColorGamut), mHasWideColorGamut(hasWideColorGamut), mHasHdr10(hasHdr10) mHasHdr10(false), mHasHLG(false), mHasDolbyVision(false) { { // clang-format on // clang-format on for (Hdr hdrType : hdrCapabilities.getSupportedHdrTypes()) { switch (hdrType) { case Hdr::HDR10: mHasHdr10 = true; break; case Hdr::HLG: mHasHLG = true; break; case Hdr::DOLBY_VISION: mHasDolbyVision = true; break; default: ALOGE("UNKNOWN HDR capability: %d", static_cast<int32_t>(hdrType)); } } // initialize the display orientation transform. // initialize the display orientation transform. setProjection(DisplayState::eOrientationDefault, mViewport, mFrame); setProjection(DisplayState::eOrientationDefault, mViewport, mFrame); Loading
services/surfaceflinger/DisplayDevice.h +6 −2 Original line number Original line Diff line number Diff line Loading @@ -85,7 +85,7 @@ public: int displayWidth, int displayWidth, int displayHeight, int displayHeight, bool hasWideColorGamut, bool hasWideColorGamut, bool hasHdr10, const HdrCapabilities& hdrCapabilities, int initialPowerMode); int initialPowerMode); // clang-format on // clang-format on Loading Loading @@ -136,7 +136,9 @@ public: status_t beginFrame(bool mustRecompose) const; status_t beginFrame(bool mustRecompose) const; status_t prepareFrame(HWComposer& hwc); status_t prepareFrame(HWComposer& hwc); bool hasWideColorGamut() const { return mHasWideColorGamut; } bool hasWideColorGamut() const { return mHasWideColorGamut; } bool hasHdr10() const { return mHasHdr10; } bool hasHDR10Support() const { return mHasHdr10; } bool hasHLGSupport() const { return mHasHLG; } bool hasDolbyVisionSupport() const { return mHasDolbyVision; } void swapBuffers(HWComposer& hwc) const; void swapBuffers(HWComposer& hwc) const; Loading Loading @@ -255,6 +257,8 @@ private: // Fed to RenderEngine during composition. // Fed to RenderEngine during composition. bool mHasWideColorGamut; bool mHasWideColorGamut; bool mHasHdr10; bool mHasHdr10; bool mHasHLG; bool mHasDolbyVision; }; }; struct DisplayDeviceState { struct DisplayDeviceState { Loading