Delay half-float vertex color determination until Op::finalize
Bug: skia:8871
Change-Id: I873e80e2d97a32e4524c177a9b6e07b0566a02ce
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/201682
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
diff --git a/src/gpu/SkGr.cpp b/src/gpu/SkGr.cpp
index 609a14e..43bcc6f 100644
--- a/src/gpu/SkGr.cpp
+++ b/src/gpu/SkGr.cpp
@@ -267,19 +267,10 @@
return color.premul();
}
-SkColor4f SkColor4fPrepForDst(SkColor4f color, const GrColorSpaceInfo& colorSpaceInfo,
- const GrCaps& caps) {
+SkColor4f SkColor4fPrepForDst(SkColor4f color, const GrColorSpaceInfo& colorSpaceInfo) {
if (auto* xform = colorSpaceInfo.colorSpaceXformFromSRGB()) {
color = xform->apply(color);
}
- // TODO: Should we clamp here if config is kRGBA_half_Clamped_GrPixelConfig?
- if (!GrPixelConfigIsFloatingPoint(colorSpaceInfo.config()) ||
- !caps.halfFloatVertexAttributeSupport()) {
- color = { SkTPin(color.fR, 0.0f, 1.0f),
- SkTPin(color.fG, 0.0f, 1.0f),
- SkTPin(color.fB, 0.0f, 1.0f),
- color.fA };
- }
return color;
}
@@ -384,8 +375,7 @@
SkBlendMode* primColorMode,
GrPaint* grPaint) {
// Convert SkPaint color to 4f format in the destination color space
- SkColor4f origColor = SkColor4fPrepForDst(skPaint.getColor4f(), colorSpaceInfo,
- *context->priv().caps());
+ SkColor4f origColor = SkColor4fPrepForDst(skPaint.getColor4f(), colorSpaceInfo);
const GrFPArgs fpArgs(context, &viewM, skPaint.getFilterQuality(), &colorSpaceInfo);