Index: include/gpu/GrContext.h |
diff --git a/include/gpu/GrContext.h b/include/gpu/GrContext.h |
index 195ab72a7f377f71174ec7c092851e10077cad8a..73a01b20982509b74fc55fd0bc12ba3dfe5bca24 100644 |
--- a/include/gpu/GrContext.h |
+++ b/include/gpu/GrContext.h |
@@ -102,6 +102,62 @@ public: |
*/ |
void contextDestroyed(); |
+ /////////////////////////////////////////////////////////////////////////// |
+ // Resource Cache |
+ |
+ /** |
+ * Return the current GPU resource cache limits. |
+ * |
+ * @param maxResources If non-null, returns maximum number of resources that |
+ * can be held in the cache. |
+ * @param maxResourceBytes If non-null, returns maximum number of bytes of |
+ * video memory that can be held in the cache. |
+ */ |
+ void getResourceCacheLimits(int* maxResources, size_t* maxResourceBytes) const; |
+ SK_ATTR_DEPRECATED("This function has been renamed to getResourceCacheLimits().") |
+ void getTextureCacheLimits(int* maxTextures, size_t* maxTextureBytes) const { |
+ this->getResourceCacheLimits(maxTextures, maxTextureBytes); |
+ } |
+ |
+ /** |
+ * Gets the current GPU resource cache usage. |
+ * |
+ * @param resourceCount If non-null, returns the number of resources that are held in the |
+ * cache. |
+ * @param maxResourceBytes If non-null, returns the total number of bytes of video memory held |
+ * in the cache. |
+ */ |
+ void getResourceCacheUsage(int* resourceCount, size_t* resourceBytes) const; |
+ |
+ SK_ATTR_DEPRECATED("Use getResourceCacheUsage().") |
+ size_t getGpuTextureCacheBytes() const { |
+ size_t bytes; |
+ this->getResourceCacheUsage(NULL, &bytes); |
+ return bytes; |
+ } |
+ |
+ SK_ATTR_DEPRECATED("Use getResourceCacheUsage().") |
+ int getGpuTextureCacheResourceCount() const { |
+ int count; |
+ this->getResourceCacheUsage(&count, NULL); |
+ return count; |
+ } |
+ |
+ /** |
+ * Specify the GPU resource cache limits. If the current cache exceeds either |
+ * of these, it will be purged (LRU) to keep the cache within these limits. |
+ * |
+ * @param maxResources The maximum number of resources that can be held in |
+ * the cache. |
+ * @param maxResourceBytes The maximum number of bytes of video memory |
+ * that can be held in the cache. |
+ */ |
+ void setResourceCacheLimits(int maxResources, size_t maxResourceBytes); |
+ SK_ATTR_DEPRECATED("This function has been renamed to setResourceCacheLimits().") |
+ void setTextureCacheLimits(int maxTextures, size_t maxTextureBytes) { |
+ this->setResourceCacheLimits(maxTextures, maxTextureBytes); |
+ } |
+ |
/** |
* Frees GPU created by the context. Can be called to reduce GPU memory |
* pressure. |
@@ -109,14 +165,32 @@ public: |
void freeGpuResources(); |
/** |
- * Returns the number of bytes of GPU memory hosted by the texture cache. |
+ * This method should be called whenever a GrResource is unreffed or |
+ * switched from exclusive to non-exclusive. This |
+ * gives the resource cache a chance to discard unneeded resources. |
+ * Note: this entry point will be removed once totally ref-driven |
+ * cache maintenance is implemented. |
*/ |
- size_t getGpuTextureCacheBytes() const; |
+ void purgeCache(); |
/** |
- * Returns the number of resources hosted by the texture cache. |
+ * Purge all the unlocked resources from the cache. |
+ * This entry point is mainly meant for timing texture uploads |
+ * and is not defined in normal builds of Skia. |
+ */ |
+ void purgeAllUnlockedResources(); |
+ |
+ /** |
+ * Stores a custom resource in the cache, based on the specified key. |
+ */ |
+ void addResourceToCache(const GrResourceKey&, GrCacheable*); |
+ |
+ /** |
+ * Finds a resource in the cache, based on the specified key. This is intended for use in |
+ * conjunction with addResourceToCache(). The return value will be NULL if not found. The |
+ * caller must balance with a call to unref(). |
*/ |
- int getGpuTextureCacheResourceCount() const; |
+ GrCacheable* findAndRefCachedResource(const GrResourceKey&); |
/////////////////////////////////////////////////////////////////////////// |
// Textures |
@@ -208,22 +282,6 @@ public: |
void unlockScratchTexture(GrTexture* texture); |
/** |
- * This method should be called whenever a GrTexture is unreffed or |
- * switched from exclusive to non-exclusive. This |
- * gives the resource cache a chance to discard unneeded textures. |
- * Note: this entry point will be removed once totally ref-driven |
- * cache maintenance is implemented |
- */ |
- void purgeCache(); |
- |
- /** |
- * Purge all the unlocked resources from the cache. |
- * This entry point is mainly meant for timing texture uploads |
- * and is not defined in normal builds of Skia. |
- */ |
- void purgeAllUnlockedResources(); |
- |
- /** |
* Creates a texture that is outside the cache. Does not count against |
* cache's budget. |
*/ |
@@ -242,27 +300,6 @@ public: |
int height) const; |
/** |
- * Return the current texture cache limits. |
- * |
- * @param maxTextures If non-null, returns maximum number of textures that |
- * can be held in the cache. |
- * @param maxTextureBytes If non-null, returns maximum number of bytes of |
- * texture memory that can be held in the cache. |
- */ |
- void getTextureCacheLimits(int* maxTextures, size_t* maxTextureBytes) const; |
- |
- /** |
- * Specify the texture cache limits. If the current cache exceeds either |
- * of these, it will be purged (LRU) to keep the cache within these limits. |
- * |
- * @param maxTextures The maximum number of textures that can be held in |
- * the cache. |
- * @param maxTextureBytes The maximum number of bytes of texture memory |
- * that can be held in the cache. |
- */ |
- void setTextureCacheLimits(int maxTextures, size_t maxTextureBytes); |
- |
- /** |
* Return the max width or height of a texture supported by the current GPU. |
*/ |
int getMaxTextureSize() const; |
@@ -294,8 +331,6 @@ public: |
const GrRenderTarget* getRenderTarget() const { return fRenderTarget.get(); } |
GrRenderTarget* getRenderTarget() { return fRenderTarget.get(); } |
- GrAARectRenderer* getAARectRenderer() { return fAARectRenderer; } |
- |
/** |
* Can the provided configuration act as a color render target? |
*/ |
@@ -642,7 +677,6 @@ public: |
size_t rowBytes, |
uint32_t pixelOpsFlags = 0); |
- |
/** |
* Copies a rectangle of texels from src to dst. The size of dst is the size of the rectangle |
* copied and topLeft is the position of the rect in src. The rectangle is clipped to src's |
@@ -875,6 +909,7 @@ public: |
GrLayerCache* getLayerCache() { return fLayerCache.get(); } |
GrDrawTarget* getTextTarget(); |
const GrIndexBuffer* getQuadIndexBuffer() const; |
+ GrAARectRenderer* getAARectRenderer() { return fAARectRenderer; } |
// Called by tests that draw directly to the context via GrDrawTarget |
void getTestTarget(GrTestTarget*); |
@@ -899,18 +934,6 @@ public: |
GrPathRendererChain::DrawType drawType = GrPathRendererChain::kColor_DrawType, |
GrPathRendererChain::StencilSupport* stencilSupport = NULL); |
- /** |
- * Stores a custom resource in the cache, based on the specified key. |
- */ |
- void addResourceToCache(const GrResourceKey&, GrCacheable*); |
- |
- /** |
- * Finds a resource in the cache, based on the specified key. This is intended for use in |
- * conjunction with addResourceToCache(). The return value will be NULL if not found. The |
- * caller must balance with a call to unref(). |
- */ |
- GrCacheable* findAndRefCachedResource(const GrResourceKey&); |
- |
#if GR_CACHE_STATS |
void printCacheStats() const; |
#endif |
@@ -929,7 +952,7 @@ private: |
const GrClipData* fClip; // TODO: make this ref counted |
GrDrawState* fDrawState; |
- GrResourceCache* fTextureCache; |
+ GrResourceCache* fResourceCache; |
GrFontCache* fFontCache; |
SkAutoTDelete<GrLayerCache> fLayerCache; |