diff options
| author | 2023-01-31 20:22:09 +0000 | |
|---|---|---|
| committer | 2023-01-31 20:22:09 +0000 | |
| commit | 51d58191e6f91e5779abb103d64c6e044ffea1ef (patch) | |
| tree | da8b38f40a1d1a37e09a259ea583dd25ccf849fc /libs | |
| parent | e6f9171f5a8c1e580f67025d20ee86fab9b61b50 (diff) | |
| parent | 5432e532386e59c90744235963224dea9c312ee2 (diff) | |
Merge "Revert "Tonemap in RecordingCanvas""
Diffstat (limited to 'libs')
| -rw-r--r-- | libs/hwui/Android.bp | 2 | ||||
| -rw-r--r-- | libs/hwui/CanvasTransform.h | 2 | ||||
| -rw-r--r-- | libs/hwui/RecordingCanvas.cpp | 15 | ||||
| -rw-r--r-- | libs/hwui/Tonemapper.cpp | 17 |
4 files changed, 9 insertions, 27 deletions
diff --git a/libs/hwui/Android.bp b/libs/hwui/Android.bp index 20334b7e831f..d116ed828527 100644 --- a/libs/hwui/Android.bp +++ b/libs/hwui/Android.bp @@ -551,7 +551,6 @@ cc_defaults { "RootRenderNode.cpp", "SkiaCanvas.cpp", "SkiaInterpolator.cpp", - "Tonemapper.cpp", "VectorDrawable.cpp", ], @@ -610,6 +609,7 @@ cc_defaults { "ProfileData.cpp", "ProfileDataContainer.cpp", "Readback.cpp", + "Tonemapper.cpp", "TreeInfo.cpp", "WebViewFunctorManager.cpp", "protos/graphicsstats.proto", diff --git a/libs/hwui/CanvasTransform.h b/libs/hwui/CanvasTransform.h index 291f4cf7193b..c46a2d369974 100644 --- a/libs/hwui/CanvasTransform.h +++ b/libs/hwui/CanvasTransform.h @@ -45,4 +45,4 @@ bool transformPaint(ColorTransform transform, SkPaint* paint, BitmapPalette pale SkColor transformColor(ColorTransform transform, SkColor color); SkColor transformColorInverse(ColorTransform transform, SkColor color); -} // namespace android::uirenderer +} // namespace android::uirenderer;
\ No newline at end of file diff --git a/libs/hwui/RecordingCanvas.cpp b/libs/hwui/RecordingCanvas.cpp index 430e69e1ed3f..3f7c4f005f7c 100644 --- a/libs/hwui/RecordingCanvas.cpp +++ b/libs/hwui/RecordingCanvas.cpp @@ -43,7 +43,6 @@ #include "SkRegion.h" #include "SkTextBlob.h" #include "SkVertices.h" -#include "Tonemapper.h" #include "VectorDrawable.h" #include "include/gpu/GpuTypes.h" // from Skia #include "include/gpu/GrDirectContext.h" @@ -345,9 +344,7 @@ struct DrawImage final : Op { SkPaint paint; BitmapPalette palette; void draw(SkCanvas* c, const SkMatrix&) const { - SkPaint newPaint = paint; - tonemapPaint(image->imageInfo(), c->imageInfo(), -1, newPaint); - c->drawImage(image.get(), x, y, sampling, &newPaint); + c->drawImage(image.get(), x, y, sampling, &paint); } }; struct DrawImageRect final : Op { @@ -369,9 +366,7 @@ struct DrawImageRect final : Op { SkCanvas::SrcRectConstraint constraint; BitmapPalette palette; void draw(SkCanvas* c, const SkMatrix&) const { - SkPaint newPaint = paint; - tonemapPaint(image->imageInfo(), c->imageInfo(), -1, newPaint); - c->drawImageRect(image.get(), src, dst, sampling, &newPaint, constraint); + c->drawImageRect(image.get(), src, dst, sampling, &paint, constraint); } }; struct DrawImageLattice final : Op { @@ -404,10 +399,8 @@ struct DrawImageLattice final : Op { auto flags = (0 == fs) ? nullptr : pod<SkCanvas::Lattice::RectType>( this, (xs + ys) * sizeof(int) + fs * sizeof(SkColor)); - SkPaint newPaint = paint; - tonemapPaint(image->imageInfo(), c->imageInfo(), -1, newPaint); - c->drawImageLattice(image.get(), {xdivs, ydivs, flags, xs, ys, &src, colors}, dst, filter, - &newPaint); + c->drawImageLattice(image.get(), {xdivs, ydivs, flags, xs, ys, &src, colors}, dst, + filter, &paint); } }; diff --git a/libs/hwui/Tonemapper.cpp b/libs/hwui/Tonemapper.cpp index 0d39f0e33298..a7e76b631140 100644 --- a/libs/hwui/Tonemapper.cpp +++ b/libs/hwui/Tonemapper.cpp @@ -18,10 +18,7 @@ #include <SkRuntimeEffect.h> #include <log/log.h> -// libshaders only exists on Android devices -#ifdef __ANDROID__ #include <shaders/shaders.h> -#endif #include "utils/Color.h" @@ -29,8 +26,6 @@ namespace android::uirenderer { namespace { -// custom tonemapping only exists on Android devices -#ifdef __ANDROID__ class ColorFilterRuntimeEffectBuilder : public SkRuntimeEffectBuilder { public: explicit ColorFilterRuntimeEffectBuilder(sk_sp<SkRuntimeEffect> effect) @@ -64,21 +59,20 @@ static sk_sp<SkColorFilter> createLinearEffectColorFilter(const shaders::LinearE return effectBuilder.makeColorFilter(); } -static ui::Dataspace extractTransfer(ui::Dataspace dataspace) { - return static_cast<ui::Dataspace>(dataspace & HAL_DATASPACE_TRANSFER_MASK); +static bool extractTransfer(ui::Dataspace dataspace) { + return dataspace & HAL_DATASPACE_TRANSFER_MASK; } static bool isHdrDataspace(ui::Dataspace dataspace) { const auto transfer = extractTransfer(dataspace); - return transfer == ui::Dataspace::TRANSFER_ST2084 || transfer == ui::Dataspace::TRANSFER_HLG; + return transfer == HAL_DATASPACE_TRANSFER_ST2084 || transfer == HAL_DATASPACE_TRANSFER_HLG; } static ui::Dataspace getDataspace(const SkImageInfo& image) { return static_cast<ui::Dataspace>( ColorSpaceToADataSpace(image.colorSpace(), image.colorType())); } -#endif } // namespace @@ -86,8 +80,6 @@ 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); @@ -110,9 +102,6 @@ void tonemapPaint(const SkImageInfo& source, const SkImageInfo& destination, flo paint.setColorFilter(colorFilter); } } -#else - return; -#endif } } // namespace android::uirenderer |