Revert "Remove GrCaps::SupportedRead::fSwizzle and supporting code"
This reverts commit 1cec69ae5cdc2c183f6a2115d60ebdf796a89a92.
Reason for revert: Causing Valgrind failures
Original change's description:
> Remove GrCaps::SupportedRead::fSwizzle and supporting code
>
> Add weird color types that handle the swizzling.
>
> Change-Id: Ie37a00eb877fe5e519f7498bf749e02a2f1dc204
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/230135
> Reviewed-by: Greg Daniel <egdaniel@google.com>
> Commit-Queue: Brian Salomon <bsalomon@google.com>
TBR=egdaniel@google.com,bsalomon@google.com
Change-Id: I710e1952f2cef1a1e6e7ccf408b8a71ce721c002
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/231262
Reviewed-by: Ben Wagner aka dogben <benjaminwagner@google.com>
Commit-Queue: Ben Wagner aka dogben <benjaminwagner@google.com>
diff --git a/src/gpu/GrDataUtils.cpp b/src/gpu/GrDataUtils.cpp
index 45d2ff8..a36a271 100644
--- a/src/gpu/GrDataUtils.cpp
+++ b/src/gpu/GrDataUtils.cpp
@@ -390,15 +390,6 @@
case GrColorType::kRGBA_F32: *load = SkRasterPipeline::load_f32;
*isNormalized = false;
break;
- case GrColorType::kAlpha_8xxx: *load = SkRasterPipeline::load_8888;
- swizzle = GrSwizzle("000r");
- break;
- case GrColorType::kAlpha_F32xxx: *load = SkRasterPipeline::load_f32;
- swizzle = GrSwizzle("000r");
- break;
- case GrColorType::kGray_8xxx: *load = SkRasterPipeline::load_8888;
- swizzle = GrSwizzle("rrr1");
- break;
case GrColorType::kR_16: *load = SkRasterPipeline::load_a16;
swizzle = GrSwizzle("a001");
break;
@@ -449,12 +440,6 @@
case GrColorType::kRGBA_F32: *store = SkRasterPipeline::store_f32;
*isNormalized = false;
break;
- case GrColorType::kAlpha_8xxx: *store = SkRasterPipeline::store_8888;
- swizzle = GrSwizzle("a000");
- break;
- case GrColorType::kAlpha_F32xxx: *store = SkRasterPipeline::store_f32;
- swizzle = GrSwizzle("a000");
- break;
case GrColorType::kR_16: swizzle = GrSwizzle("000r");
*store = SkRasterPipeline::store_a16;
break;
@@ -466,7 +451,6 @@
break;
case GrColorType::kGray_8: // not currently supported as output
- case GrColorType::kGray_8xxx: // not currently supported as output
case GrColorType::kUnknown:
SK_ABORT("unexpected CT");
}
@@ -482,7 +466,7 @@
bool GrConvertPixels(const GrPixelInfo& dstInfo, void* dst, size_t dstRB,
const GrPixelInfo& srcInfo, const void* src, size_t srcRB,
- bool flipY) {
+ bool flipY, GrSwizzle swizzle) {
TRACE_EVENT0("skia.gpu", TRACE_FUNC);
if (!srcInfo.isValid() || !dstInfo.isValid()) {
return false;
@@ -513,6 +497,7 @@
bool srcIsSRGB;
auto loadSwizzle = get_load_and_get_swizzle(srcInfo.colorType(), &load, &srcIsNormalized,
&srcIsSRGB);
+ loadSwizzle = GrSwizzle::Concat(loadSwizzle, swizzle);
SkRasterPipeline::StockStage store;
bool dstIsNormalized;
@@ -598,6 +583,7 @@
return true;
}
+
GrColorType SkColorTypeAndFormatToGrColorType(const GrCaps* caps,
SkColorType skCT,
const GrBackendFormat& format) {