Index: src/gpu/GrBatchAtlas.h |
diff --git a/src/gpu/GrBatchAtlas.h b/src/gpu/GrBatchAtlas.h |
index ddafcaeea776ae0d7aadf1e5d4999e1c00d103fb..cd8123f140980fdb581ceb9789948098c85d7452 100644 |
--- a/src/gpu/GrBatchAtlas.h |
+++ b/src/gpu/GrBatchAtlas.h |
@@ -40,9 +40,6 @@ |
// the containing GrPlot and absolute location in the backing texture. |
// NULL is returned if the subimage cannot fit in the atlas. |
// If provided, the image data will be written to the CPU-side backing bitmap. |
- // NOTE: If the client intends to refer to the atlas, they should immediately call 'setUseToken' |
- // with the currentToken from the batch target, otherwise the next call to addToAtlas might |
- // cause an eviction |
bool addToAtlas(AtlasID*, GrBatchTarget*, int width, int height, const void* image, |
SkIPoint16* loc); |
@@ -50,61 +47,19 @@ |
uint64_t atlasGeneration() const { return fAtlasGeneration; } |
bool hasID(AtlasID id); |
- |
- // To ensure the atlas does not evict a given entry, the client must set the last use token |
- void setLastUseToken(AtlasID id, BatchToken batchToken); |
+ void setLastRefToken(AtlasID id, BatchToken batchToken); |
void registerEvictionCallback(EvictionFunc func, void* userData) { |
EvictionData* data = fEvictionCallbacks.append(); |
data->fFunc = func; |
data->fData = userData; |
} |
- /* |
- * A class which can be handed back to GrBatchAtlas for updating in bulk last use tokens. The |
- * current max number of plots the GrBatchAtlas can handle is 32, if in the future this is |
- * insufficient then we can move to a 64 bit int |
- */ |
- class BulkUseTokenUpdater { |
- public: |
- BulkUseTokenUpdater() : fPlotAlreadyUpdated(0) {} |
- void add(AtlasID id) { |
- int index = GrBatchAtlas::GetIndexFromID(id); |
- if (!this->find(index)) { |
- this->set(index); |
- } |
- } |
- |
- void reset() { |
- fPlotsToUpdate.reset(); |
- fPlotAlreadyUpdated = 0; |
- } |
- |
- private: |
- bool find(int index) const { |
- SkASSERT(index < kMaxPlots); |
- return (fPlotAlreadyUpdated >> index) & 1; |
- } |
- void set(int index) { |
- SkASSERT(!this->find(index)); |
- fPlotAlreadyUpdated = fPlotAlreadyUpdated | (1 << index); |
- fPlotsToUpdate.push_back(index); |
- } |
- |
- static const int kMaxPlots = 32; |
- uint32_t fPlotAlreadyUpdated; |
- SkSTArray<4, int, true> fPlotsToUpdate; |
- |
- friend class GrBatchAtlas; |
- }; |
- |
- void setLastUseTokenBulk(const BulkUseTokenUpdater& reffer, BatchToken); |
- |
private: |
- static int GetIndexFromID(AtlasID id) { |
+ int getIndexFromID(AtlasID id) { |
return id & 0xffff; |
} |
- static int GetGenerationFromID(AtlasID id) { |
+ int getGenerationFromID(AtlasID id) { |
return (id >> 16) & 0xffff; |
} |