aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkDeferredDisplayListRecorder.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/SkDeferredDisplayListRecorder.cpp')
-rw-r--r--src/core/SkDeferredDisplayListRecorder.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/core/SkDeferredDisplayListRecorder.cpp b/src/core/SkDeferredDisplayListRecorder.cpp
index 1114a26751..8a89068f4f 100644
--- a/src/core/SkDeferredDisplayListRecorder.cpp
+++ b/src/core/SkDeferredDisplayListRecorder.cpp
@@ -93,6 +93,14 @@ bool SkDeferredDisplayListRecorder::init() {
// proxy, when instantiated, will use the GrRenderTarget that backs the SkSurface that the
// DDL is being replayed into.
+ GrInternalSurfaceFlags surfaceFlags = GrInternalSurfaceFlags::kNone;
+ if (fContext->caps()->usesMixedSamples() && desc.fSampleCnt > 1) {
+ surfaceFlags |= GrInternalSurfaceFlags::kMixedSampled;
+ }
+ if (fContext->caps()->maxWindowRectangles() > 0) {
+ surfaceFlags |= GrInternalSurfaceFlags::kWindowRectsSupport;
+ }
+
sk_sp<GrRenderTargetProxy> proxy = proxyProvider->createLazyRenderTargetProxy(
[lazyProxyData](GrResourceProvider* resourceProvider) {
if (!resourceProvider) {
@@ -106,7 +114,7 @@ bool SkDeferredDisplayListRecorder::init() {
},
desc,
fCharacterization.origin(),
- GrInternalSurfaceFlags::kNone,
+ surfaceFlags,
GrProxyProvider::Textureable(fCharacterization.isTextureable()),
GrMipMapped::kNo,
SkBackingFit::kExact,