diff options
author | 2018-03-07 13:01:25 -0500 | |
---|---|---|
committer | 2018-03-07 18:22:40 +0000 | |
commit | 58389b90cd387533021c109eb28da40c08e0ead5 (patch) | |
tree | 7744ee9c23c74c61aa00a3cc01eff74cedb8f541 /src/gpu/GrProxyProvider.cpp | |
parent | ab6fd7ef91aeca8a3fbbc6c6670cb89a5a7b6d53 (diff) |
Initial texture data is never flipped when uploaded.
The first bytes of the data always refer to the pixel accessed by texture coord (0, 0).
Change-Id: I708702d90f35b3bc896a48c3c3fd6a0be73f505a
Reviewed-on: https://skia-review.googlesource.com/112261
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Diffstat (limited to 'src/gpu/GrProxyProvider.cpp')
-rw-r--r-- | src/gpu/GrProxyProvider.cpp | 26 |
1 files changed, 11 insertions, 15 deletions
diff --git a/src/gpu/GrProxyProvider.cpp b/src/gpu/GrProxyProvider.cpp index 5b91dd1a0b..536cd137bd 100644 --- a/src/gpu/GrProxyProvider.cpp +++ b/src/gpu/GrProxyProvider.cpp @@ -176,7 +176,6 @@ sk_sp<GrTextureProxy> GrProxyProvider::createInstantiatedProxy(const GrSurfaceDe } sk_sp<GrTextureProxy> GrProxyProvider::createTextureProxy(const GrSurfaceDesc& desc, - GrSurfaceOrigin origin, SkBudgeted budgeted, const void* srcData, size_t rowBytes) { ASSERT_SINGLE_OWNER @@ -188,21 +187,20 @@ sk_sp<GrTextureProxy> GrProxyProvider::createTextureProxy(const GrSurfaceDesc& d if (srcData) { GrMipLevel mipLevel = { srcData, rowBytes }; - sk_sp<GrTexture> tex = fResourceProvider->createTexture( - desc, budgeted, SkBackingFit::kExact, origin, mipLevel); + sk_sp<GrTexture> tex = + fResourceProvider->createTexture(desc, budgeted, SkBackingFit::kExact, mipLevel); if (!tex) { return nullptr; } - return this->createWrapped(std::move(tex), origin); + return this->createWrapped(std::move(tex), kTopLeft_GrSurfaceOrigin); } - return this->createProxy(desc, origin, SkBackingFit::kExact, budgeted); + return this->createProxy(desc, kTopLeft_GrSurfaceOrigin, SkBackingFit::kExact, budgeted); } sk_sp<GrTextureProxy> GrProxyProvider::createTextureProxy(sk_sp<SkImage> srcImage, GrSurfaceFlags flags, - GrSurfaceOrigin origin, int sampleCnt, SkBudgeted budgeted, SkBackingFit fit) { @@ -245,7 +243,7 @@ sk_sp<GrTextureProxy> GrProxyProvider::createTextureProxy(sk_sp<SkImage> srcImag desc.fConfig = config; sk_sp<GrTextureProxy> proxy = this->createLazyProxy( - [desc, origin, budgeted, srcImage, fit](GrResourceProvider* resourceProvider) { + [desc, budgeted, srcImage, fit](GrResourceProvider* resourceProvider) { if (!resourceProvider) { // Nothing to clean up here. Once the proxy (and thus lambda) is deleted the ref // on srcImage will be released. @@ -255,9 +253,9 @@ sk_sp<GrTextureProxy> GrProxyProvider::createTextureProxy(sk_sp<SkImage> srcImag SkAssertResult(srcImage->peekPixels(&pixMap)); GrMipLevel mipLevel = { pixMap.addr(), pixMap.rowBytes() }; - return resourceProvider->createTexture(desc, budgeted, fit, origin, mipLevel); + return resourceProvider->createTexture(desc, budgeted, fit, mipLevel); }, - desc, origin, GrMipMapped::kNo, renderTargetFlags, fit, budgeted); + desc, kTopLeft_GrSurfaceOrigin, GrMipMapped::kNo, renderTargetFlags, fit, budgeted); if (fResourceProvider) { // In order to reuse code we always create a lazy proxy. When we aren't in DDL mode however @@ -320,9 +318,8 @@ sk_sp<GrTextureProxy> GrProxyProvider::createMipMapProxyFromBitmap(const SkBitma GrSurfaceDesc desc = GrImageInfoToSurfaceDesc(pixmap.info(), *this->caps()); if (0 == mipmaps->countLevels()) { - return this->createTextureProxy(baseLevel, kNone_GrSurfaceFlags, kTopLeft_GrSurfaceOrigin, - 1, SkBudgeted::kYes, SkBackingFit::kExact); - + return this->createTextureProxy(baseLevel, kNone_GrSurfaceFlags, 1, SkBudgeted::kYes, + SkBackingFit::kExact); } sk_sp<GrTextureProxy> proxy = this->createLazyProxy( @@ -350,8 +347,7 @@ sk_sp<GrTextureProxy> GrProxyProvider::createMipMapProxyFromBitmap(const SkBitma SkASSERT(texels[i].fPixels); } - return resourceProvider->createTexture(desc, SkBudgeted::kYes, - kTopLeft_GrSurfaceOrigin, texels.get(), + return resourceProvider->createTexture(desc, SkBudgeted::kYes, texels.get(), mipLevelCount, mipColorMode); }, desc, kTopLeft_GrSurfaceOrigin, GrMipMapped::kYes, SkBackingFit::kExact, @@ -400,7 +396,7 @@ sk_sp<GrTextureProxy> GrProxyProvider::createProxy(const GrSurfaceDesc& desc, } return sk_sp<GrTextureProxy>( - new GrTextureProxy(copyDesc, origin, mipMapped, fit, budgeted, nullptr, 0, flags)); + new GrTextureProxy(copyDesc, origin, mipMapped, fit, budgeted, flags)); } sk_sp<GrTextureProxy> GrProxyProvider::createWrappedTextureProxy( |