Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(885)

Side by Side Diff: src/gpu/GrDrawingManager.cpp

Issue 1918003003: Bring sk_sp to GrDrawContext (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: update Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright 2015 Google Inc. 2 * Copyright 2015 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #include "GrDrawContext.h" 8 #include "GrDrawContext.h"
9 #include "GrDrawingManager.h" 9 #include "GrDrawingManager.h"
10 #include "GrDrawTarget.h" 10 #include "GrDrawTarget.h"
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
152 if (!pr && allowSW) { 152 if (!pr && allowSW) {
153 if (!fSoftwarePathRenderer) { 153 if (!fSoftwarePathRenderer) {
154 fSoftwarePathRenderer = new GrSoftwarePathRenderer(fContext); 154 fSoftwarePathRenderer = new GrSoftwarePathRenderer(fContext);
155 } 155 }
156 pr = fSoftwarePathRenderer; 156 pr = fSoftwarePathRenderer;
157 } 157 }
158 158
159 return pr; 159 return pr;
160 } 160 }
161 161
162 GrDrawContext* GrDrawingManager::drawContext(GrRenderTarget* rt, 162 sk_sp<GrDrawContext> GrDrawingManager::drawContext(sk_sp<GrRenderTarget> rt,
163 const SkSurfaceProps* surfaceProps) { 163 const SkSurfaceProps* surface Props) {
164 if (this->abandoned()) { 164 if (this->abandoned()) {
165 return nullptr; 165 return nullptr;
166 } 166 }
167 167
168 168
169 bool useDIF = false; 169 bool useDIF = false;
170 if (surfaceProps) { 170 if (surfaceProps) {
171 useDIF = surfaceProps->isUseDeviceIndependentFonts(); 171 useDIF = surfaceProps->isUseDeviceIndependentFonts();
172 } 172 }
173 173
174 if (useDIF && fContext->caps()->shaderCaps()->pathRenderingSupport() && 174 if (useDIF && fContext->caps()->shaderCaps()->pathRenderingSupport() &&
175 rt->isStencilBufferMultisampled()) { 175 rt->isStencilBufferMultisampled()) {
176 GrStencilAttachment* sb = fContext->resourceProvider()->attachStencilAtt achment(rt); 176 GrStencilAttachment* sb = fContext->resourceProvider()->attachStencilAtt achment(rt.get());
177 if (sb) { 177 if (sb) {
178 return new GrPathRenderingDrawContext(fContext, this, rt, surfacePro ps, 178 return sk_sp<GrDrawContext>(new GrPathRenderingDrawContext(
179 fContext->getAuditTrail(), fSi ngleOwner); 179 fContext, this, std::mov e(rt),
180 surfaceProps,
181 fContext->getAuditTrail( ), fSingleOwner));
180 } 182 }
181 } 183 }
182 184
183 return new GrDrawContext(fContext, this, rt, surfaceProps, fContext->getAudi tTrail(), 185 return sk_sp<GrDrawContext>(new GrDrawContext(fContext, this, std::move(rt), surfaceProps,
184 fSingleOwner); 186 fContext->getAuditTrail(),
187 fSingleOwner));
185 } 188 }
OLDNEW
« gm/beziereffects.cpp ('K') | « src/gpu/GrDrawingManager.h ('k') | src/gpu/GrLayerCache.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698