Loading libs/hwui/SkiaInterpolator.cpp +1 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ #include "include/core/SkTypes.h" #include <cstdlib> #include <cstring> #include <log/log.h> typedef int Dot14; Loading libs/hwui/effects/GainmapRenderer.cpp +12 −10 Original line number Diff line number Diff line Loading @@ -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 { Loading Loading @@ -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; Loading Loading @@ -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; } Loading libs/hwui/utils/Color.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -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; Loading Loading
libs/hwui/SkiaInterpolator.cpp +1 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ #include "include/core/SkTypes.h" #include <cstdlib> #include <cstring> #include <log/log.h> typedef int Dot14; Loading
libs/hwui/effects/GainmapRenderer.cpp +12 −10 Original line number Diff line number Diff line Loading @@ -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 { Loading Loading @@ -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; Loading Loading @@ -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; } Loading
libs/hwui/utils/Color.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -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; Loading