Index: gpu/GLES2/extensions/CHROMIUM/CHROMIUM_map_image.txt |
diff --git a/gpu/GLES2/extensions/CHROMIUM/CHROMIUM_map_image.txt b/gpu/GLES2/extensions/CHROMIUM/CHROMIUM_map_image.txt |
new file mode 100644 |
index 0000000000000000000000000000000000000000..6304fdace0feeb68efe850ed3187722a73ec4ead |
--- /dev/null |
+++ b/gpu/GLES2/extensions/CHROMIUM/CHROMIUM_map_image.txt |
@@ -0,0 +1,107 @@ |
+Name |
+ |
+ CHROMIUM_map_image |
+ |
+Name Strings |
+ |
+ GL_CHROMIUM_map_image |
+ |
+Version |
+ |
+ Last Modifed Date: May 9, 2013 |
+ |
+Dependencies |
+ |
+ OpenGL ES 2.0 is required. |
+ |
+Overview |
+ |
+ This extension allows for more efficient uploading of texture data through |
+ Chromium's OpenGL ES 2.0 implementation. |
+ |
+ For security reasons Chromium accesses the GPU from a separate process. User |
+ processes are not allowed to access the GPU directly. This multi-process |
+ architechure has the advantage that GPU operations can be secured and |
+ pipelined but it has the disadvantage that all data that is going to be |
+ passed to GPU must first be made available to the separate GPU process. |
+ |
+ This extension helps the application directly allocate and access texture |
+ memory. |
+ |
+Issues |
+ |
+ None |
+ |
+New Tokens |
+ |
+ None |
+ |
+New Procedures and Functions |
+ |
+ GLuint CreateImageCHROMIUM (GLsizei width, GLsizei height, |
+ GLenum internalformat) |
+ |
+ Allocate an image with width equal to <width> and height equal |
+ to <height> stored in format <internalformat>. |
+ |
+ Returns a unique identifier for the allocated image that could be used |
+ in subsequent operations. |
+ |
+ INVALID_VALUE is generated if <width> or <height> is nonpositive. |
+ |
+ void DestroyImageCHROMIUM (GLuint image_id) |
+ |
+ Frees the image previously allocated by a call to CreateImageCHROMIUM. |
+ |
+ INVALID_OPERATION is generated if <image_id> is not a valid image id. |
+ |
+ void* MapImageCHROMIUM (GLuint image_id, GLenum access) |
+ |
+ Returns a pointer to in the user memory for the application to modify |
+ the image. <access> parameter defines if the user will read or write the |
+ pixels. |
+ |
+ INVALID_OPERATION is generated if <image_id> is not a valid image id. |
+ |
+ INVALID_OPERATION is generated if the image was already mapped by a previous |
+ call to this method. |
+ |
+ INVALID_ENUM is generated if <access> is not one of WRITE_ONLY, READ_ONLY |
+ and READ_WRITE. |
+ |
+ void UnmapImageCHROMIUM (GLuint image_id) |
+ |
+ Removes the mapping created by a call to MapImageCHROMIUM. |
+ |
+ Note that after calling UnmapImageCHROMIUM the application should assume |
+ that the memory returned by MapImageCHROMIUM is off limits and is no longer |
+ accessible by the application. Accessing it after calling |
+ UnmapImageCHROMIUM will produce undefined results. |
+ |
+ INVALID_OPERATION is generated if <image_id> is not a valid image id. |
+ |
+ INVALID_OPERATION is generated if the image was not already mapped by a |
+ previous call to MapImageCHROMIUM. |
+ |
+ void GetImageParameterivCHROMIUM(GLuint image_id, GLenum pname, |
+ GLint* params) |
+ |
+ Sets <params> to the integer value of the parameter specified by <pname> |
+ for the image specified by <image_id>. <params> is expected to be |
+ properly allocated before calling this method. |
+ |
+ INVALID_OPERATION is generated if <image_id> is not a valid image id. |
+ |
+ INVALID_ENUM is generated if <pname> is not IMAGE_ROWBYTES_CHROMIUM. |
+ |
+Errors |
+ |
+ None. |
+ |
+New State |
+ |
+ None. |
+ |
+Revision History |
+ |
+ 5/9/2013 Documented the extension |