diff options
author | Robert Phillips <robertphillips@google.com> | 2018-02-23 12:09:22 -0500 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-02-26 14:56:17 +0000 |
commit | 96165ebeaa36a2aae0eedaf12d81f53d3caf999a (patch) | |
tree | f40174bb314aa1e17dea2c62af7851a2e2a59a57 /src/gpu/GrDeferredUpload.h | |
parent | 08c96b830ee9a94ededc5129d66148fb404c83f4 (diff) |
Separate creation time & flush time behavior in GrDrawOpAtlas (take 2)
This CL clarifies what is going on in the GrDrawOpAtlas and GrAtlasGlyphCache.
For the GrDrawOpAtlas:
At creation time all the allowed pages are created (with their backing GrTextureProxies) but they aren't instantiated.
The GrDrawOpAtlas::instantiate call is called in preFlushCB and allocates any pages known to be needed at the start of flush
GrDrawOpAtlas::addToAtlas is called at flush time and, if a new page is activated, will instantiated it at that time.
During compaction, an unused page will be deInstantiated but its Plots and backing GrTextureProxy will remain alive.
The GrAtlasGlyphCache reflects the changes to the GrDrawOpAtlas
It now carries a GrProxyProvider for when it needs to create an atlas
It passes in a GrResourceProvider* at flush time to allow instantiation.
It does not, yet, allocate that GrDrawOpAtlases it might ever require.
Change-Id: Ie9b64b13e261b01ee14be09fbf7e17841b7781dc
Reviewed-on: https://skia-review.googlesource.com/109749
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Diffstat (limited to 'src/gpu/GrDeferredUpload.h')
-rw-r--r-- | src/gpu/GrDeferredUpload.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/gpu/GrDeferredUpload.h b/src/gpu/GrDeferredUpload.h index fad5e930a1..d78363136d 100644 --- a/src/gpu/GrDeferredUpload.h +++ b/src/gpu/GrDeferredUpload.h @@ -96,9 +96,10 @@ public: GrDeferredUploadToken nextDrawToken() const { return fLastIssuedToken.next(); } private: - // Only these two classes get to increment the token counters + // Only these three classes get to increment the token counters friend class SkInternalAtlasTextContext; friend class GrOpFlushState; + friend class TestingUploadTarget; /** Issues the next token for a draw. */ GrDeferredUploadToken issueDrawToken() { return ++fLastIssuedToken; } |