| Index: src/gpu/GrBatchAtlas.h
|
| diff --git a/src/gpu/GrBatchAtlas.h b/src/gpu/GrBatchAtlas.h
|
| index 83ef5ec732e345eafa5b2bb91d0700fc7038823a..4d21394c00d22f2eb2c81d63a51505e89b985d73 100644
|
| --- a/src/gpu/GrBatchAtlas.h
|
| +++ b/src/gpu/GrBatchAtlas.h
|
| @@ -24,7 +24,7 @@ public:
|
| typedef uint64_t BatchToken;
|
| // An AtlasID is an opaque handle which callers can use to determine if the atlas contains
|
| // a specific piece of data
|
| - typedef uint32_t AtlasID;
|
| + typedef uint64_t AtlasID;
|
| static const uint32_t kInvalidAtlasID = 0;
|
| static const uint64_t kInvalidAtlasGeneration = 0;
|
|
|
| @@ -67,6 +67,11 @@ public:
|
| class BulkUseTokenUpdater {
|
| public:
|
| BulkUseTokenUpdater() : fPlotAlreadyUpdated(0) {}
|
| + BulkUseTokenUpdater(const BulkUseTokenUpdater& that)
|
| + : fPlotsToUpdate(that.fPlotsToUpdate)
|
| + , fPlotAlreadyUpdated(that.fPlotAlreadyUpdated) {
|
| + }
|
| +
|
| void add(AtlasID id) {
|
| int index = GrBatchAtlas::GetIndexFromID(id);
|
| if (!this->find(index)) {
|
| @@ -107,12 +112,13 @@ public:
|
| }
|
|
|
| private:
|
| - static int GetIndexFromID(AtlasID id) {
|
| + static uint32_t GetIndexFromID(AtlasID id) {
|
| return id & 0xffff;
|
| }
|
|
|
| - static int GetGenerationFromID(AtlasID id) {
|
| - return (id >> 16) & 0xffff;
|
| + // top 48 bits are reserved for the generation ID
|
| + static uint64_t GetGenerationFromID(AtlasID id) {
|
| + return (id >> 16) & 0xffffffffffff;
|
| }
|
|
|
| inline void updatePlot(GrBatchTarget*, AtlasID*, BatchPlot*);
|
| @@ -122,10 +128,10 @@ private:
|
| inline void processEviction(AtlasID);
|
|
|
| GrTexture* fTexture;
|
| - int fNumPlotsX;
|
| - int fNumPlotsY;
|
| - int fPlotWidth;
|
| - int fPlotHeight;
|
| + uint32_t fNumPlotsX;
|
| + uint32_t fNumPlotsY;
|
| + uint32_t fPlotWidth;
|
| + uint32_t fPlotHeight;
|
| size_t fBPP;
|
| uint64_t fAtlasGeneration;
|
|
|
|
|