aboutsummaryrefslogtreecommitdiffhomepage
path: root/include/private/GrTypesPriv.h
diff options
context:
space:
mode:
authorGravatar Chris Dalton <csmartdalton@google.com>2017-11-15 18:27:09 -0700
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-11-16 19:29:56 +0000
commit47c8ed3c064f5176750f370b88119735163c0e8a (patch)
tree576fa3f0d64463f1d5c3b3b5e4872438c70688fc /include/private/GrTypesPriv.h
parent3bc00fe8100948e99deb3dea3f833fd026d39bd5 (diff)
Reland "Fix precision caps and rrect/ellipse effect precisions"
This is a reland of e42180022720f2fcfd3c634cad855506a7940591 Original change's description: > Fix precision caps and rrect/ellipse effect precisions > > Replaces all the complex precision caps with a single flag that says > whether "float" == fp32. Updates the ellipse and rrect effects to > use float coords, and use the scale workaround when float != fp32. > > Bug: skia:7190 > Change-Id: Ieccff9f38acd05e5cec78fe90d01a5da901a9307 > Reviewed-on: https://skia-review.googlesource.com/70961 > Commit-Queue: Chris Dalton <csmartdalton@google.com> > Reviewed-by: Ethan Nicholas <ethannicholas@google.com> > Reviewed-by: Brian Salomon <bsalomon@google.com> TBR=bsalomon@google.com Bug: skia:7190 Change-Id: I7ced37a64164b83d86f6a957c35e10ce9085aba0 Reviewed-on: https://skia-review.googlesource.com/72760 Reviewed-by: Chris Dalton <csmartdalton@google.com> Commit-Queue: Chris Dalton <csmartdalton@google.com>
Diffstat (limited to 'include/private/GrTypesPriv.h')
-rw-r--r--include/private/GrTypesPriv.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/include/private/GrTypesPriv.h b/include/private/GrTypesPriv.h
index a90944064f..cd1c0d4483 100644
--- a/include/private/GrTypesPriv.h
+++ b/include/private/GrTypesPriv.h
@@ -909,6 +909,33 @@ static inline bool GrPixelConfigIsUnorm(GrPixelConfig config) {
return false;
}
+/**
+ * Precision qualifier that should be used with a sampler.
+ */
+static inline GrSLPrecision GrSLSamplerPrecision(GrPixelConfig config) {
+ switch (config) {
+ case kUnknown_GrPixelConfig:
+ case kAlpha_8_GrPixelConfig:
+ case kGray_8_GrPixelConfig:
+ case kRGB_565_GrPixelConfig:
+ case kRGBA_4444_GrPixelConfig:
+ case kRGBA_8888_GrPixelConfig:
+ case kBGRA_8888_GrPixelConfig:
+ case kSRGBA_8888_GrPixelConfig:
+ case kSBGRA_8888_GrPixelConfig:
+ case kRGBA_8888_sint_GrPixelConfig:
+ return kLow_GrSLPrecision;
+ case kRGBA_float_GrPixelConfig:
+ case kRG_float_GrPixelConfig:
+ return kHigh_GrSLPrecision;
+ case kAlpha_half_GrPixelConfig:
+ case kRGBA_half_GrPixelConfig:
+ return kMedium_GrSLPrecision;
+ }
+ SK_ABORT("Unexpected type");
+ return kHigh_GrSLPrecision;
+}
+
static inline GrPixelConfigIsClamped GrGetPixelConfigIsClamped(GrPixelConfig config) {
return GrPixelConfigIsFloatingPoint(config) ? GrPixelConfigIsClamped::kNo
: GrPixelConfigIsClamped::kYes;