aboutsummaryrefslogtreecommitdiffhomepage
path: root/include/gpu/GrContext.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/gpu/GrContext.h')
-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