summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
author Devin Cody <devincody@google.com> 2023-01-31 20:22:09 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2023-01-31 20:22:09 +0000
commit51d58191e6f91e5779abb103d64c6e044ffea1ef (patch)
treeda8b38f40a1d1a37e09a259ea583dd25ccf849fc /libs
parente6f9171f5a8c1e580f67025d20ee86fab9b61b50 (diff)
parent5432e532386e59c90744235963224dea9c312ee2 (diff)
Merge "Revert "Tonemap in RecordingCanvas""
Diffstat (limited to 'libs')
-rw-r--r--libs/hwui/Android.bp2
-rw-r--r--libs/hwui/CanvasTransform.h2
-rw-r--r--libs/hwui/RecordingCanvas.cpp15
-rw-r--r--libs/hwui/Tonemapper.cpp17
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