Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(11)

Unified Diff: include/gpu/GrTypesPriv.h

Issue 1846963004: Infer sampler precision from pixel config (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: rebase, create dependency chain Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: include/gpu/GrTypesPriv.h
diff --git a/include/gpu/GrTypesPriv.h b/include/gpu/GrTypesPriv.h
index 39386f0140a7253fa0289172a5b09cfd4113b23a..0115a6bb2a62a6bb6997eba7b0688bc011d8b794 100644
--- a/include/gpu/GrTypesPriv.h
+++ b/include/gpu/GrTypesPriv.h
@@ -71,6 +71,48 @@ enum GrSLPrecision {
static const int kGrSLPrecisionCount = kLast_GrSLPrecision + 1;
+static inline GrSLPrecision GrPixelConfigPrecision(GrPixelConfig config) {
+ static const GrSLPrecision precisions[] = {
+ kLow_GrSLPrecision, // kUnknown_GrPixelConfig
+ kLow_GrSLPrecision, // kAlpha_8_GrPixelConfig
+ kLow_GrSLPrecision, // kIndex_8_GrPixelConfig
+ kLow_GrSLPrecision, // kRGB_565_GrPixelConfig
+ kLow_GrSLPrecision, // kRGBA_4444_GrPixelConfig
+ kLow_GrSLPrecision, // kRGBA_8888_GrPixelConfig
+ kLow_GrSLPrecision, // kBGRA_8888_GrPixelConfig
+ kLow_GrSLPrecision, // kSRGBA_8888_GrPixelConfig
+ kLow_GrSLPrecision, // kSBGRA_8888_GrPixelConfig
+ kLow_GrSLPrecision, // kETC1_GrPixelConfig
+ kLow_GrSLPrecision, // kLATC_GrPixelConfig
+ kLow_GrSLPrecision, // kR11_EAC_GrPixelConfig
+ kLow_GrSLPrecision, // kASTC_12x12_GrPixelConfig
+ kHigh_GrSLPrecision, // kRGBA_float_GrPixelConfig
+ kMedium_GrSLPrecision, // kAlpha_half_GrPixelConfig
+ kMedium_GrSLPrecision, // kRGBA_half_GrPixelConfig
+ };
+
+ SkASSERT(config >= 0 && config <= kLast_GrPixelConfig);
+ return precisions[config];
+
+ GR_STATIC_ASSERT(0 == kUnknown_GrPixelConfig);
+ GR_STATIC_ASSERT(1 == kAlpha_8_GrPixelConfig);
+ GR_STATIC_ASSERT(2 == kIndex_8_GrPixelConfig);
+ GR_STATIC_ASSERT(3 == kRGB_565_GrPixelConfig);
+ GR_STATIC_ASSERT(4 == kRGBA_4444_GrPixelConfig);
+ GR_STATIC_ASSERT(5 == kRGBA_8888_GrPixelConfig);
+ GR_STATIC_ASSERT(6 == kBGRA_8888_GrPixelConfig);
+ GR_STATIC_ASSERT(7 == kSRGBA_8888_GrPixelConfig);
+ GR_STATIC_ASSERT(8 == kSBGRA_8888_GrPixelConfig);
+ GR_STATIC_ASSERT(9 == kETC1_GrPixelConfig);
+ GR_STATIC_ASSERT(10 == kLATC_GrPixelConfig);
+ GR_STATIC_ASSERT(11 == kR11_EAC_GrPixelConfig);
+ GR_STATIC_ASSERT(12 == kASTC_12x12_GrPixelConfig);
+ GR_STATIC_ASSERT(13 == kRGBA_float_GrPixelConfig);
+ GR_STATIC_ASSERT(14 == kAlpha_half_GrPixelConfig);
+ GR_STATIC_ASSERT(15 == kRGBA_half_GrPixelConfig);
+ GR_STATIC_ASSERT(SK_ARRAY_COUNT(precisions) == kGrPixelConfigCnt);
+}
+
/**
* Gets the vector size of the SLType. Returns -1 for void, matrices, and samplers.
*/
« include/gpu/GrCaps.h ('K') | « include/gpu/GrTextureAccess.h ('k') | src/gpu/GrCaps.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698