aboutsummaryrefslogtreecommitdiffhomepage
path: root/include
diff options
context:
space:
mode:
authorGravatar Robert Phillips <robertphillips@google.com>2018-02-27 18:00:22 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-02-28 00:20:06 +0000
commite5b7ceeac865fb8a3bab82a73d65752c78682718 (patch)
tree6cc0268dfc31e90677213b5d8cc67f8f33533b11 /include
parent23243aee3ae314aeb7438f1a36a6775c3086c416 (diff)
Move atlas manager creation to GrContext derived classes
This CL relies on: https://skia-review.googlesource.com/c/skia/+/108001 (Fission GrAtlasGlyphCache in two) TBR=bsalomon@google.com Change-Id: Ic3f91cea2238221b970f8ebbda99b10202925cd8 Reviewed-on: https://skia-review.googlesource.com/110621 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Greg Daniel <egdaniel@google.com>
Diffstat (limited to 'include')
-rw-r--r--include/gpu/GrContext.h18
1 files changed, 11 insertions, 7 deletions
diff --git a/include/gpu/GrContext.h b/include/gpu/GrContext.h
index ff4ec5f677..1b43d99f2e 100644
--- a/include/gpu/GrContext.h
+++ b/include/gpu/GrContext.h
@@ -36,6 +36,7 @@ class GrRenderTargetContext;
class GrResourceEntry;
class GrResourceCache;
class GrResourceProvider;
+class GrRestrictedAtlasManager;
class GrSamplerState;
class GrSurfaceProxy;
class GrSwizzle;
@@ -127,7 +128,7 @@ public:
* The typical use case for this function is that the underlying 3D context was lost and further
* API calls may crash.
*/
- void abandonContext();
+ virtual void abandonContext();
/**
* This is similar to abandonContext() however the underlying 3D context is not yet lost and
@@ -138,7 +139,7 @@ public:
* but can't guarantee that GrContext will be destroyed first (perhaps because it may be ref'ed
* elsewhere by either the client or Skia objects).
*/
- void releaseResourcesAndAbandonContext();
+ virtual void releaseResourcesAndAbandonContext();
///////////////////////////////////////////////////////////////////////////
// Resource Cache
@@ -183,7 +184,7 @@ public:
* Frees GPU created by the context. Can be called to reduce GPU memory
* pressure.
*/
- void freeGpuResources();
+ virtual void freeGpuResources();
/**
* Purge all the unlocked resources from the cache.
@@ -358,9 +359,15 @@ protected:
GrContext(GrContextThreadSafeProxy*);
GrContext(GrBackend);
+ virtual bool init(const GrContextOptions&); // init must be called after either constructor.
+
+ virtual GrAtlasManager* onGetFullAtlasManager() = 0;
+ virtual GrRestrictedAtlasManager* onGetRestrictedAtlasManager() = 0;
+
+ sk_sp<const GrCaps> fCaps;
+
private:
sk_sp<GrGpu> fGpu;
- sk_sp<const GrCaps> fCaps;
GrResourceCache* fResourceCache;
GrResourceProvider* fResourceProvider;
GrProxyProvider* fProxyProvider;
@@ -368,7 +375,6 @@ private:
sk_sp<GrContextThreadSafeProxy> fThreadSafeProxy;
GrGlyphCache* fGlyphCache;
- GrAtlasManager* fFullAtlasManager;
std::unique_ptr<GrTextBlobCache> fTextBlobCache;
bool fDisableGpuYUVConversion;
@@ -404,8 +410,6 @@ private:
// TODO: have the GrClipStackClip use renderTargetContexts and rm this friending
friend class GrContextPriv;
- bool init(const GrContextOptions&); // init must be called after either constructor.
-
/**
* These functions create premul <-> unpremul effects. If the second argument is 'true', they
* use the specialized round-trip effects from GrConfigConversionEffect, otherwise they