diff options
| author | 2023-02-01 06:04:55 +0000 | |
|---|---|---|
| committer | 2023-02-01 06:04:55 +0000 | |
| commit | dded51fc97be995c2dbd71816779b828b3f3b82d (patch) | |
| tree | 19f4028f6ef2d32f9a8a945e0c1f2c8b4f88930e /libs/hwui/Tonemapper.cpp | |
| parent | 5432e532386e59c90744235963224dea9c312ee2 (diff) | |
Revert "Revert "Tonemap in RecordingCanvas""
This reverts commit 5432e532386e59c90744235963224dea9c312ee2.
Reason for revert: HardwareBufferRenderer relanded
Change-Id: I07c0bcc6ec019eb41baba43eb887532a4333e063
Diffstat (limited to 'libs/hwui/Tonemapper.cpp')
| -rw-r--r-- | libs/hwui/Tonemapper.cpp | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/libs/hwui/Tonemapper.cpp b/libs/hwui/Tonemapper.cpp index a7e76b631140..0d39f0e33298 100644 --- a/libs/hwui/Tonemapper.cpp +++ b/libs/hwui/Tonemapper.cpp @@ -18,7 +18,10 @@ #include <SkRuntimeEffect.h> #include <log/log.h> +// libshaders only exists on Android devices +#ifdef __ANDROID__ #include <shaders/shaders.h> +#endif #include "utils/Color.h" @@ -26,6 +29,8 @@ namespace android::uirenderer { namespace { +// custom tonemapping only exists on Android devices +#ifdef __ANDROID__ class ColorFilterRuntimeEffectBuilder : public SkRuntimeEffectBuilder { public: explicit ColorFilterRuntimeEffectBuilder(sk_sp<SkRuntimeEffect> effect) @@ -59,20 +64,21 @@ static sk_sp<SkColorFilter> createLinearEffectColorFilter(const shaders::LinearE return effectBuilder.makeColorFilter(); } -static bool extractTransfer(ui::Dataspace dataspace) { - return dataspace & HAL_DATASPACE_TRANSFER_MASK; +static ui::Dataspace extractTransfer(ui::Dataspace dataspace) { + return static_cast<ui::Dataspace>(dataspace & HAL_DATASPACE_TRANSFER_MASK); } static bool isHdrDataspace(ui::Dataspace dataspace) { const auto transfer = extractTransfer(dataspace); - return transfer == HAL_DATASPACE_TRANSFER_ST2084 || transfer == HAL_DATASPACE_TRANSFER_HLG; + return transfer == ui::Dataspace::TRANSFER_ST2084 || transfer == ui::Dataspace::TRANSFER_HLG; } static ui::Dataspace getDataspace(const SkImageInfo& image) { return static_cast<ui::Dataspace>( ColorSpaceToADataSpace(image.colorSpace(), image.colorType())); } +#endif } // namespace @@ -80,6 +86,8 @@ static ui::Dataspace getDataspace(const SkImageInfo& image) { // shader and tag it on the supplied paint. void tonemapPaint(const SkImageInfo& source, const SkImageInfo& destination, float maxLuminanceNits, SkPaint& paint) { +// custom tonemapping only exists on Android devices +#ifdef __ANDROID__ const auto sourceDataspace = getDataspace(source); const auto destinationDataspace = getDataspace(destination); @@ -102,6 +110,9 @@ void tonemapPaint(const SkImageInfo& source, const SkImageInfo& destination, flo paint.setColorFilter(colorFilter); } } +#else + return; +#endif } } // namespace android::uirenderer |