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

Unified Diff: src/gpu/GrTextureToYUVPlanes.cpp

Issue 2296193005: Add a makeDrawContextWithFallback that handles config fallback (Closed)
Patch Set: update Created 4 years, 3 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
« no previous file with comments | « src/gpu/GrTextureParamsAdjuster.cpp ('k') | src/gpu/SkGpuDevice.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/gpu/GrTextureToYUVPlanes.cpp
diff --git a/src/gpu/GrTextureToYUVPlanes.cpp b/src/gpu/GrTextureToYUVPlanes.cpp
index 7a8647a86756254391c297bd49f0221500bcf0cc..5e7dafecf33e279eec008d406e953821c4f9378f 100644
--- a/src/gpu/GrTextureToYUVPlanes.cpp
+++ b/src/gpu/GrTextureToYUVPlanes.cpp
@@ -58,45 +58,48 @@ bool GrTextureToYUVPlanes(GrTexture* texture, const SkISize sizes[3], void* cons
sk_sp<GrDrawContext> uDrawContext;
sk_sp<GrDrawContext> vDrawContext;
- GrPixelConfig singleChannelPixelConfig;
- if (context->caps()->isConfigRenderable(kAlpha_8_GrPixelConfig, false)) {
- singleChannelPixelConfig = kAlpha_8_GrPixelConfig;
- } else {
- singleChannelPixelConfig = kRGBA_8888_GrPixelConfig;
- }
-
// We issue draw(s) to convert from RGBA to Y, U, and V. All three planes may have different
// sizes however we optimize for two other cases - all planes are the same (1 draw to YUV),
// and U and V are the same but Y differs (2 draws, one for Y, one for UV).
if (sizes[0] == sizes[1] && sizes[1] == sizes[2]) {
- yuvDrawContext = context->makeDrawContext(SkBackingFit::kApprox,
- sizes[0].fWidth, sizes[0].fHeight,
- kRGBA_8888_GrPixelConfig, nullptr);
+ yuvDrawContext = context->makeDrawContextWithFallback(SkBackingFit::kApprox,
+ sizes[0].fWidth,
+ sizes[0].fHeight,
+ kRGBA_8888_GrPixelConfig,
+ nullptr);
if (!yuvDrawContext) {
return false;
}
} else {
- yDrawContext = context->makeDrawContext(SkBackingFit::kApprox,
- sizes[0].fWidth, sizes[0].fHeight,
- singleChannelPixelConfig, nullptr);
+ yDrawContext = context->makeDrawContextWithFallback(SkBackingFit::kApprox,
+ sizes[0].fWidth,
+ sizes[0].fHeight,
+ kAlpha_8_GrPixelConfig,
+ nullptr);
if (!yDrawContext) {
return false;
}
if (sizes[1] == sizes[2]) {
// TODO: Add support for GL_RG when available.
- uvDrawContext = context->makeDrawContext(SkBackingFit::kApprox,
- sizes[1].fWidth, sizes[1].fHeight,
- kRGBA_8888_GrPixelConfig, nullptr);
+ uvDrawContext = context->makeDrawContextWithFallback(SkBackingFit::kApprox,
+ sizes[1].fWidth,
+ sizes[1].fHeight,
+ kRGBA_8888_GrPixelConfig,
+ nullptr);
if (!uvDrawContext) {
return false;
}
} else {
- uDrawContext = context->makeDrawContext(SkBackingFit::kApprox,
- sizes[1].fWidth, sizes[1].fHeight,
- singleChannelPixelConfig, nullptr);
- vDrawContext = context->makeDrawContext(SkBackingFit::kApprox,
- sizes[2].fWidth, sizes[2].fHeight,
- singleChannelPixelConfig, nullptr);
+ uDrawContext = context->makeDrawContextWithFallback(SkBackingFit::kApprox,
+ sizes[1].fWidth,
+ sizes[1].fHeight,
+ kAlpha_8_GrPixelConfig,
+ nullptr);
+ vDrawContext = context->makeDrawContextWithFallback(SkBackingFit::kApprox,
+ sizes[2].fWidth,
+ sizes[2].fHeight,
+ kAlpha_8_GrPixelConfig,
+ nullptr);
if (!uDrawContext || !vDrawContext) {
return false;
}
« no previous file with comments | « src/gpu/GrTextureParamsAdjuster.cpp ('k') | src/gpu/SkGpuDevice.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698