aboutsummaryrefslogtreecommitdiffhomepage
path: root/include/core/SkSurface.h
diff options
context:
space:
mode:
authorGravatar joshualitt <joshualitt@chromium.org>2015-07-08 12:54:04 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2015-07-08 12:54:04 -0700
commit81793410a80b1bb147e765caccdd7fb36e34edf8 (patch)
tree29884476878efc63b5302f5ddda666d9d75fde23 /include/core/SkSurface.h
parent3c06511e910524bf9456c532fe20d1b2956e7d97 (diff)
add ability to get FBO ID to Surface
Diffstat (limited to 'include/core/SkSurface.h')
-rw-r--r--include/core/SkSurface.h30
1 files changed, 25 insertions, 5 deletions
diff --git a/include/core/SkSurface.h b/include/core/SkSurface.h
index 5860cf2279..57527ed33a 100644
--- a/include/core/SkSurface.h
+++ b/include/core/SkSurface.h
@@ -159,11 +159,23 @@ public:
*/
void notifyContentWillChange(ContentChangeMode mode);
- enum TextureHandleAccess {
- kFlushRead_TextureHandleAccess, //!< caller may read from the texture
- kFlushWrite_TextureHandleAccess, //!< caller may write to the texture
- kDiscardWrite_TextureHandleAccess, //!< caller must over-write the entire texture
+ enum BackendHandleAccess {
+ kFlushRead_BackendHandleAccess, //!< caller may read from the backend object
+ kFlushWrite_BackendHandleAccess, //!< caller may write to the backend object
+ kDiscardWrite_BackendHandleAccess, //!< caller must over-write the entire backend object
};
+
+ /*
+ * These are legacy aliases which will be removed soon
+ */
+ static const BackendHandleAccess kFlushRead_TextureHandleAccess =
+ kFlushRead_BackendHandleAccess;
+ static const BackendHandleAccess kFlushWrite_TextureHandleAccess =
+ kFlushWrite_BackendHandleAccess;
+ static const BackendHandleAccess kDiscardWrite_TextureHandleAccess =
+ kDiscardWrite_BackendHandleAccess;
+
+
/**
* Retrieves the backend API handle of the texture used by this surface, or 0 if the surface
* is not backed by a GPU texture.
@@ -171,7 +183,15 @@ public:
* The returned texture-handle is only valid until the next draw-call into the surface,
* or the surface is deleted.
*/
- GrBackendObject getTextureHandle(TextureHandleAccess);
+ GrBackendObject getTextureHandle(BackendHandleAccess);
+
+ /**
+ * Retrieves the backend API handle of the RenderTarget backing this surface. Callers must
+ * ensure this function returns 'true' or else the GrBackendObject will be invalid
+ *
+ * In OpenGL this will return the FramebufferObject ID.
+ */
+ bool getRenderTargetHandle(GrBackendObject*, BackendHandleAccess);
/**
* Return a canvas that will draw into this surface. This will always