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

Side by Side Diff: src/gpu/GrLayerCache.h

Issue 842323003: Switch to a more complete method of filtering hoisted layers (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Fix oversight w.r.t. SkPictureImageFilters Created 5 years, 11 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
« no previous file with comments | « no previous file | src/gpu/GrLayerHoister.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2014 Google Inc. 2 * Copyright 2014 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 #ifndef GrLayerCache_DEFINED 8 #ifndef GrLayerCache_DEFINED
9 #define GrLayerCache_DEFINED 9 #define GrLayerCache_DEFINED
10 10
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after
157 , fPaint(paint ? SkNEW_ARGS(SkPaint, (*paint)) : NULL) 157 , fPaint(paint ? SkNEW_ARGS(SkPaint, (*paint)) : NULL)
158 , fFilter(NULL) 158 , fFilter(NULL)
159 , fTexture(NULL) 159 , fTexture(NULL)
160 , fRect(SkIRect::MakeEmpty()) 160 , fRect(SkIRect::MakeEmpty())
161 , fPlot(NULL) 161 , fPlot(NULL)
162 , fUses(0) 162 , fUses(0)
163 , fLocked(false) { 163 , fLocked(false) {
164 SkASSERT(SK_InvalidGenID != pictureID); 164 SkASSERT(SK_InvalidGenID != pictureID);
165 165
166 if (fPaint) { 166 if (fPaint) {
167 if (fPaint->getImageFilter() && fPaint->getImageFilter()->canFilterI mageGPU()) { 167 if (fPaint->getImageFilter()) {
168 fFilter = SkSafeRef(fPaint->getImageFilter()); 168 fFilter = SkSafeRef(fPaint->getImageFilter());
169 fPaint->setImageFilter(NULL); 169 fPaint->setImageFilter(NULL);
170 } 170 }
171 } 171 }
172 } 172 }
173 173
174 ~GrCachedLayer() { 174 ~GrCachedLayer() {
175 SkSafeUnref(fTexture); 175 SkSafeUnref(fTexture);
176 SkSafeUnref(fFilter); 176 SkSafeUnref(fFilter);
177 SkDELETE(fPaint); 177 SkDELETE(fPaint);
178 } 178 }
179 179
180 uint32_t pictureID() const { return fKey.pictureID(); } 180 uint32_t pictureID() const { return fKey.pictureID(); }
181 // TODO: remove these when GrCachedLayer & ReplacementInfo fuse 181 // TODO: remove these when GrCachedLayer & ReplacementInfo fuse
182 const unsigned* key() const { return fKey.key(); } 182 const unsigned* key() const { return fKey.key(); }
183 int keySize() const { return fKey.keySize(); } 183 int keySize() const { return fKey.keySize(); }
184 184
185 unsigned start() const { return fStart; } 185 unsigned start() const { return fStart; }
186 // TODO: make bound debug only 186 // TODO: make bound debug only
187 const SkIRect& srcIR() const { return fSrcIR; } 187 const SkIRect& srcIR() const { return fSrcIR; }
188 const SkIRect& dstIR() const { return fDstIR; } 188 const SkIRect& dstIR() const { return fDstIR; }
189 unsigned stop() const { return fStop; } 189 unsigned stop() const { return fStop; }
190 void setTexture(GrTexture* texture, const SkIRect& rect) { 190 void setTexture(GrTexture* texture, const SkIRect& rect) {
191 SkRefCnt_SafeAssign(fTexture, texture); 191 SkRefCnt_SafeAssign(fTexture, texture);
192 fRect = rect; 192 fRect = rect;
193 if (!fTexture) {
194 fLocked = false;
195 }
193 } 196 }
194 GrTexture* texture() { return fTexture; } 197 GrTexture* texture() { return fTexture; }
195 const SkPaint* paint() const { return fPaint; } 198 const SkPaint* paint() const { return fPaint; }
196 const SkImageFilter* filter() const { return fFilter; } 199 const SkImageFilter* filter() const { return fFilter; }
197 const SkIRect& rect() const { return fRect; } 200 const SkIRect& rect() const { return fRect; }
198 201
199 void setOffset(const SkIPoint& offset) { fOffset = offset; } 202 void setOffset(const SkIPoint& offset) { fOffset = offset; }
200 const SkIPoint& offset() const { return fOffset; } 203 const SkIPoint& offset() const { return fOffset; }
201 204
202 void setPlot(GrPlot* plot) { 205 void setPlot(GrPlot* plot) {
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after
395 SkASSERT(fPlotLocks[plotIdx] > 0); 398 SkASSERT(fPlotLocks[plotIdx] > 0);
396 --fPlotLocks[plotIdx]; 399 --fPlotLocks[plotIdx];
397 } 400 }
398 401
399 // for testing 402 // for testing
400 friend class TestingAccess; 403 friend class TestingAccess;
401 int numLayers() const { return fLayerHash.count(); } 404 int numLayers() const { return fLayerHash.count(); }
402 }; 405 };
403 406
404 #endif 407 #endif
OLDNEW
« no previous file with comments | « no previous file | src/gpu/GrLayerHoister.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698