Index: src/gpu/GrBatchAtlas.cpp |
diff --git a/src/gpu/GrBatchAtlas.cpp b/src/gpu/GrBatchAtlas.cpp |
index 4b242820e33699c07a2d97e6e6a91193fbdc9163..5f5e333feb1dea8e11740c7b8632f10900fc2331 100644 |
--- a/src/gpu/GrBatchAtlas.cpp |
+++ b/src/gpu/GrBatchAtlas.cpp |
@@ -227,7 +227,8 @@ GrBatchAtlas::GrBatchAtlas(GrTexture* texture, int numPlotsX, int numPlotsY) |
, fNumPlotsX(numPlotsX) |
, fNumPlotsY(numPlotsY) |
, fPlotWidth(texture->width() / numPlotsX) |
- , fPlotHeight(texture->height() / numPlotsY) { |
+ , fPlotHeight(texture->height() / numPlotsY) |
+ , fAtlasGeneration(kInvalidAtlasGeneration + 1) { |
SkASSERT(fPlotWidth * fNumPlotsX == texture->width()); |
SkASSERT(fPlotHeight * fNumPlotsY == texture->height()); |
@@ -243,7 +244,9 @@ GrBatchAtlas::GrBatchAtlas(GrTexture* texture, int numPlotsX, int numPlotsY) |
for (int x = fNumPlotsX - 1, c = 0; x >= 0; --x, ++c) { |
int id = r * fNumPlotsX + c; |
currPlot->reset(SkNEW(BatchPlot)); |
- (*currPlot)->init(this, texture, id, 0, x, y, fPlotWidth, fPlotHeight, fBPP); |
+ // We initialize the new plots with a generation starts of 1 so we can use |
+ // AtlasGeneration 0 for kInvalidAtlasGeneration |
+ (*currPlot)->init(this, texture, id, 1, x, y, fPlotWidth, fPlotHeight, fBPP); |
jvanverth1
2015/03/23 20:37:39
Use kInvalidAtlasGeneration + 1 instead of 1?
joshualitt
2015/03/24 14:33:56
Acknowledged.
|
// build LRU list |
fPlotList.addToHead(currPlot->get()); |
@@ -318,6 +321,7 @@ bool GrBatchAtlas::addToAtlas(AtlasID* id, GrBatchTarget* batchTarget, |
SkDEBUGCODE(bool verify = )plot->addSubImage(width, height, image, loc, fBPP * width); |
SkASSERT(verify); |
this->updatePlot(batchTarget, id, plot); |
+ fAtlasGeneration++; |
return true; |
} |
@@ -352,6 +356,7 @@ bool GrBatchAtlas::addToAtlas(AtlasID* id, GrBatchTarget* batchTarget, |
batchTarget->upload(uploader); |
*id = newPlot->id(); |
plot->unref(); |
+ fAtlasGeneration++; |
return true; |
} |