GrCachedLayer* GrLayerCache::createLayer(const SkPicture* picture, int layerID) { SkASSERT(picture->uniqueID() != SK_InvalidGenID); GrCachedLayer* layer = SkNEW_ARGS(GrCachedLayer, (picture->uniqueID(), layerID)); fLayerHash.insert(PictureLayerKey(picture->uniqueID(), layerID), layer); return layer; }
GrCachedLayer* GrLayerCache::findLayerOrCreate(const SkPicture* picture, int layerID) { SkASSERT(picture->uniqueID() != SK_InvalidGenID); GrCachedLayer* layer = fLayerHash.find(PictureLayerKey(picture->uniqueID(), layerID)); if (NULL == layer) { layer = this->createLayer(picture, layerID); } return layer; }
GrCachedLayer* GrLayerCache::createLayer(const SkPicture* picture, int layerID) { GrCachedLayer* layer = fLayerPool.alloc(); SkASSERT(picture->uniqueID() != SK_InvalidGenID); layer->init(picture->uniqueID(), layerID); fLayerHash.insert(PictureLayerKey(picture->uniqueID(), layerID), layer); return layer; }
GrCachedLayer* GrLayerCache::findLayer(const SkPicture* picture, int layerID) { SkASSERT(picture->uniqueID() != SK_InvalidGenID); return fLayerHash.find(PictureLayerKey(picture->uniqueID(), layerID)); }