Index: include/gpu/GrContext.h |
diff --git a/include/gpu/GrContext.h b/include/gpu/GrContext.h |
index 6d67d3ebb3acc2b57094fb3fc858c246d5816fab..d59b2a28f0c7c98be5029f1cca0ab02f8183d8b9 100644 |
--- a/include/gpu/GrContext.h |
+++ b/include/gpu/GrContext.h |
@@ -93,21 +93,29 @@ public: |
} |
/** |
- * Abandons all GPU resources and assumes the underlying backend 3D API |
- * context is not longer usable. Call this if you have lost the associated |
- * GPU context, and thus internal texture, buffer, etc. references/IDs are |
- * now invalid. Should be called even when GrContext is no longer going to |
- * be used for two reasons: |
- * 1) ~GrContext will not try to free the objects in the 3D API. |
- * 2) Any GrGpuResources created by this GrContext that outlive |
- * will be marked as invalid (GrGpuResource::wasDestroyed()) and |
- * when they're destroyed no 3D API calls will be made. |
- * Content drawn since the last GrContext::flush() may be lost. After this |
- * function is called the only valid action on the GrContext or |
- * GrGpuResources it created is to destroy them. |
+ * Abandons all GPU resources and assumes the underlying backend 3D API context is not longer |
+ * usable. Call this if you have lost the associated GPU context, and thus internal texture, |
+ * buffer, etc. references/IDs are now invalid. Calling this ensures that the destructors of the |
+ * GrContext and any of its created resource objects will not make backend 3D API calls. Content |
+ * rendered but not previously flushed may be lost. After this function is called all subsequent |
+ * calls on the GrContext will fail or be no-ops. |
+ * |
+ * The typical use case for this function is that the underlying 3D context was lost and further |
+ * API calls may crash. |
*/ |
void abandonContext(); |
+ /** |
+ * This is similar to abandonContext() however the underlying 3D context is not yet lost and |
+ * the GrContext will cleanup all allocated resources before returning. After returning it will |
+ * assume that the underlying context may no longer be valid. |
+ * |
+ * The typical use case for this function is that the client is going to destroy the 3D context |
+ * 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(); |
+ |
/////////////////////////////////////////////////////////////////////////// |
// Resource Cache |