Separate replacement creation from layer discovery
This is a simple refactoring that sets the stage for eliminating GrReplacements::ReplacementInfo and splitting up EXPERIMENTAL_drawPicture to support multi picture draw.
R=bsalomon@google.com
Author: robertphillips@google.com
Review URL: https://codereview.chromium.org/559603004
diff --git a/src/gpu/GrLayerCache.cpp b/src/gpu/GrLayerCache.cpp
index 8e61cb7..11a97e4 100644
--- a/src/gpu/GrLayerCache.cpp
+++ b/src/gpu/GrLayerCache.cpp
@@ -120,10 +120,11 @@
GrCachedLayer* GrLayerCache::createLayer(uint32_t pictureID,
int start, int stop,
const SkIPoint& offset,
- const SkMatrix& ctm) {
+ const SkMatrix& ctm,
+ const SkPaint* paint) {
SkASSERT(pictureID != SK_InvalidGenID && start > 0 && stop > 0);
- GrCachedLayer* layer = SkNEW_ARGS(GrCachedLayer, (pictureID, start, stop, offset, ctm));
+ GrCachedLayer* layer = SkNEW_ARGS(GrCachedLayer, (pictureID, start, stop, offset, ctm, paint));
fLayerHash.add(layer);
return layer;
}
@@ -139,11 +140,12 @@
GrCachedLayer* GrLayerCache::findLayerOrCreate(uint32_t pictureID,
int start, int stop,
const SkIPoint& offset,
- const SkMatrix& ctm) {
+ const SkMatrix& ctm,
+ const SkPaint* paint) {
SkASSERT(pictureID != SK_InvalidGenID && start > 0 && stop > 0);
GrCachedLayer* layer = fLayerHash.find(GrCachedLayer::Key(pictureID, start, stop, offset, ctm));
if (NULL == layer) {
- layer = this->createLayer(pictureID, start, stop, offset, ctm);
+ layer = this->createLayer(pictureID, start, stop, offset, ctm, paint);
}
return layer;