diff options
author | Chris Dalton <csmartdalton@google.com> | 2018-06-16 17:22:59 -0600 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-06-18 15:32:48 +0000 |
commit | 4c458b12f68d8704a297c1ec252127c77bdee595 (patch) | |
tree | 588efa8ae1870e6d20107c371cc1077662c5ff15 /src/gpu/GrProxyProvider.cpp | |
parent | 3567c14a41cd55860fcc836af32d8748c1e3c856 (diff) |
ccpr: Use lazy proxies with GrCCAtlas
Bug: skia:
Change-Id: I576d9303d451352778de0425e3ecbc561331cd09
Reviewed-on: https://skia-review.googlesource.com/135362
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Diffstat (limited to 'src/gpu/GrProxyProvider.cpp')
-rw-r--r-- | src/gpu/GrProxyProvider.cpp | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/src/gpu/GrProxyProvider.cpp b/src/gpu/GrProxyProvider.cpp index a1f14df3e9..5814c7627a 100644 --- a/src/gpu/GrProxyProvider.cpp +++ b/src/gpu/GrProxyProvider.cpp @@ -603,15 +603,16 @@ sk_sp<GrRenderTargetProxy> GrProxyProvider::createLazyRenderTargetProxy( std::move(callback), lazyType, desc, origin, fit, budgeted, surfaceFlags)); } -sk_sp<GrTextureProxy> GrProxyProvider::createFullyLazyProxy(LazyInstantiateCallback&& callback, - Renderable renderable, - GrSurfaceOrigin origin, - GrPixelConfig config) { +sk_sp<GrTextureProxy> GrProxyProvider::MakeFullyLazyProxy(LazyInstantiateCallback&& callback, + Renderable renderable, + GrSurfaceOrigin origin, + GrPixelConfig config, + const GrCaps& caps) { GrSurfaceDesc desc; GrInternalSurfaceFlags surfaceFlags = GrInternalSurfaceFlags::kNoPendingIO; if (Renderable::kYes == renderable) { desc.fFlags = kRenderTarget_GrSurfaceFlag; - if (fCaps->maxWindowRectangles() > 0) { + if (caps.maxWindowRectangles() > 0) { surfaceFlags |= GrInternalSurfaceFlags::kWindowRectsSupport; } } @@ -620,8 +621,16 @@ sk_sp<GrTextureProxy> GrProxyProvider::createFullyLazyProxy(LazyInstantiateCallb desc.fConfig = config; desc.fSampleCnt = 1; - return this->createLazyProxy(std::move(callback), desc, origin, GrMipMapped::kNo, - surfaceFlags, SkBackingFit::kApprox, SkBudgeted::kYes); + return sk_sp<GrTextureProxy>( + (Renderable::kYes == renderable) + ? new GrTextureRenderTargetProxy(std::move(callback), + LazyInstantiationType::kSingleUse, desc, + origin, GrMipMapped::kNo, + SkBackingFit::kApprox, SkBudgeted::kYes, + surfaceFlags) + : new GrTextureProxy(std::move(callback), LazyInstantiationType::kSingleUse, + desc, origin, GrMipMapped::kNo, SkBackingFit::kApprox, + SkBudgeted::kYes, surfaceFlags)); } bool GrProxyProvider::IsFunctionallyExact(GrSurfaceProxy* proxy) { |