diff options
author | Greg Daniel <egdaniel@google.com> | 2018-03-13 16:44:48 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-03-14 14:12:42 +0000 |
commit | 7d2b16ad13fd3262c776ae75ae35da4ad69df690 (patch) | |
tree | 768403578659fe038f155a8a78bd0244faa3b51a /src/image/SkImage_Gpu.cpp | |
parent | b78dd5d01eb16ae3cb9104ce8c0fa7e861431259 (diff) |
Improve handling of GrPixelConfig in GrBackendTex/RT ctors
Make sure that no client facing code was relying on what we set as the
default value for fConfig by making in kUnkown.
Bug: skia:
Change-Id: Ie52ff08ba8deeacc16fe06eb0dd0c7292b2edf91
Reviewed-on: https://skia-review.googlesource.com/114261
Reviewed-by: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
Diffstat (limited to 'src/image/SkImage_Gpu.cpp')
-rw-r--r-- | src/image/SkImage_Gpu.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/image/SkImage_Gpu.cpp b/src/image/SkImage_Gpu.cpp index 7c842f69c0..45906009f8 100644 --- a/src/image/SkImage_Gpu.cpp +++ b/src/image/SkImage_Gpu.cpp @@ -589,7 +589,7 @@ public: this->resetReleaseHelper(); } - sk_sp<GrTexture> getTexture(GrResourceProvider* resourceProvider) { + sk_sp<GrTexture> getTexture(GrResourceProvider* resourceProvider, GrPixelConfig config) { // Releases the promise helper if there are no outstanding hard refs. This means that we // don't have any ReleaseProcs waiting to be called so we will need to do a fulfill. if (fReleaseHelper && fReleaseHelper->weak_expired()) { @@ -599,6 +599,7 @@ public: sk_sp<GrTexture> tex; if (!fReleaseHelper) { fFulfillProc(fContext, &fBackendTex); + fBackendTex.fConfig = config; if (!fBackendTex.isValid()) { // Even though the GrBackendTexture is not valid, we must call the release // proc to keep our contract of always calling Fulfill and Release in pairs. @@ -700,13 +701,13 @@ sk_sp<SkImage> SkImage_Gpu::MakePromiseTexture(GrContext* context, PromiseImageHelper promiseHelper(textureFulfillProc, textureReleaseProc, textureContext); sk_sp<GrTextureProxy> proxy = proxyProvider->createLazyProxy( - [promiseHelper] (GrResourceProvider* resourceProvider) mutable { + [promiseHelper, config] (GrResourceProvider* resourceProvider) mutable { if (!resourceProvider) { promiseHelper.reset(); return sk_sp<GrTexture>(); } - return promiseHelper.getTexture(resourceProvider); + return promiseHelper.getTexture(resourceProvider, config); }, desc, origin, mipMapped, GrRenderTargetFlags::kNone, SkBackingFit::kExact, SkBudgeted::kNo, GrSurfaceProxy::LazyInstantiationType::kUninstantiate); |