98 : baseColorSpace->makeLinearGamma();
120 if (baseImageIsHdr) {
126 return baseImage->makeShader(baseSamplingOptions, &baseRectToDstRect);
131 auto colorXformSdrToGainmap =
136 auto colorXformGainmapToDst =
140 auto baseImageShader = baseImage->makeRawShader(baseSamplingOptions, &baseRectToDstRect)
141 ->makeWithColorFilter(colorXformSdrToGainmap);
144 auto gainmapImageShader =
145 gainmapImage->makeRawShader(gainmapSamplingOptions, &gainmapRectToDstRect);
176 builder.child(
"base") = baseImageShader;
177 builder.child(
"gainmap") = gainmapImageShader;
178 builder.uniform(
"logRatioMin") = logRatioMin;
179 builder.uniform(
"logRatioMax") = logRatioMax;
181 builder.uniform(
"epsilonBase") = epsilonBase;
182 builder.uniform(
"epsilonOther") = epsilonOther;
183 builder.uniform(
"noGamma") = noGamma;
184 builder.uniform(
"singleChannel") = singleChannel;
185 builder.uniform(
"gainmapIsAlpha") = gainmapIsAlpha;
186 builder.uniform(
"gainmapIsRed") = gainmapIsRed;
187 builder.uniform(
"W") =
W;
188 gainmapMathShader = builder.makeShader();
193 return gainmapMathShader->makeWithColorFilter(colorXformGainmapToDst);
static sk_sp< SkShader > Make(const sk_sp< const SkImage > &baseImage, const SkRect &baseRect, const SkSamplingOptions &baseSamplingOptions, const sk_sp< const SkImage > &gainmapImage, const SkRect &gainmapRect, const SkSamplingOptions &gainmapSamplingOptions, const SkGainmapInfo &gainmapInfo, const SkRect &dstRect, float dstHdrRatio, sk_sp< SkColorSpace > dstColorSpace)