aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/GrProxyProvider.cpp
diff options
context:
space:
mode:
authorGravatar Chris Dalton <csmartdalton@google.com>2018-06-16 17:22:59 -0600
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-06-18 15:32:48 +0000
commit4c458b12f68d8704a297c1ec252127c77bdee595 (patch)
tree588efa8ae1870e6d20107c371cc1077662c5ff15 /src/gpu/GrProxyProvider.cpp
parent3567c14a41cd55860fcc836af32d8748c1e3c856 (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.cpp23
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) {