Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d84b3da7 authored by Nolan Scobie's avatar Nolan Scobie
Browse files

Fix some usage of removed private Skia functions & transitive dep

Attempting to fix broken roll.

sk_float_* functions map directly to <cmath> functions now, see
https://skia-review.googlesource.com/c/skia/+/842498

SkiaInterpolator requires <cstring> for memcpy. It seems this was
previously being pulled in through a transitive Skia inclusion which
is no longer present.

Bug: none
Change-Id: I155ead6c68eab066fb4d5588f35523aff2c4a050
Test: builds
Flag: EXEMPT build fix
parent 697bd2a1
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@
#include "include/core/SkTypes.h"

#include <cstdlib>
#include <cstring>
#include <log/log.h>

typedef int Dot14;
+12 −10
Original line number Diff line number Diff line
@@ -32,6 +32,8 @@
#include "src/core/SkColorFilterPriv.h"
#include "src/core/SkImageInfoPriv.h"
#include "src/core/SkRuntimeEffectPriv.h"

#include <cmath>
#endif

namespace android::uirenderer {
@@ -206,12 +208,12 @@ private:

    void setupGenericUniforms(const sk_sp<const SkImage>& gainmapImage,
                              const SkGainmapInfo& gainmapInfo) {
        const SkColor4f logRatioMin({sk_float_log(gainmapInfo.fGainmapRatioMin.fR),
                                     sk_float_log(gainmapInfo.fGainmapRatioMin.fG),
                                     sk_float_log(gainmapInfo.fGainmapRatioMin.fB), 1.f});
        const SkColor4f logRatioMax({sk_float_log(gainmapInfo.fGainmapRatioMax.fR),
                                     sk_float_log(gainmapInfo.fGainmapRatioMax.fG),
                                     sk_float_log(gainmapInfo.fGainmapRatioMax.fB), 1.f});
        const SkColor4f logRatioMin({std::log(gainmapInfo.fGainmapRatioMin.fR),
                                     std::log(gainmapInfo.fGainmapRatioMin.fG),
                                     std::log(gainmapInfo.fGainmapRatioMin.fB), 1.f});
        const SkColor4f logRatioMax({std::log(gainmapInfo.fGainmapRatioMax.fR),
                                     std::log(gainmapInfo.fGainmapRatioMax.fG),
                                     std::log(gainmapInfo.fGainmapRatioMax.fB), 1.f});
        const int noGamma = gainmapInfo.fGainmapGamma.fR == 1.f &&
                            gainmapInfo.fGainmapGamma.fG == 1.f &&
                            gainmapInfo.fGainmapGamma.fB == 1.f;
@@ -248,10 +250,10 @@ private:
            float W = 0.f;
            if (targetHdrSdrRatio > mGainmapInfo.fDisplayRatioSdr) {
                if (targetHdrSdrRatio < mGainmapInfo.fDisplayRatioHdr) {
                    W = (sk_float_log(targetHdrSdrRatio) -
                         sk_float_log(mGainmapInfo.fDisplayRatioSdr)) /
                        (sk_float_log(mGainmapInfo.fDisplayRatioHdr) -
                         sk_float_log(mGainmapInfo.fDisplayRatioSdr));
                    W = (std::log(targetHdrSdrRatio) -
                         std::log(mGainmapInfo.fDisplayRatioSdr)) /
                        (std::log(mGainmapInfo.fDisplayRatioHdr) -
                         std::log(mGainmapInfo.fDisplayRatioSdr));
                } else {
                    W = 1.f;
                }
+1 −1
Original line number Diff line number Diff line
@@ -403,7 +403,7 @@ skcms_TransferFunction GetPQSkTransferFunction(float sdr_white_level) {
}

static skcms_TransferFunction trfn_apply_gain(const skcms_TransferFunction trfn, float gain) {
    float pow_gain_ginv = sk_float_pow(gain, 1 / trfn.g);
    float pow_gain_ginv = std::pow(gain, 1 / trfn.g);
    skcms_TransferFunction result;
    result.g = trfn.g;
    result.a = trfn.a * pow_gain_ginv;