summaryrefslogtreecommitdiffstats
path: root/chromium/gpu/GLES2/extensions/CHROMIUM/CHROMIUM_image.txt
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/gpu/GLES2/extensions/CHROMIUM/CHROMIUM_image.txt')
-rw-r--r--chromium/gpu/GLES2/extensions/CHROMIUM/CHROMIUM_image.txt117
1 files changed, 117 insertions, 0 deletions
diff --git a/chromium/gpu/GLES2/extensions/CHROMIUM/CHROMIUM_image.txt b/chromium/gpu/GLES2/extensions/CHROMIUM/CHROMIUM_image.txt
new file mode 100644
index 00000000000..154f91e210d
--- /dev/null
+++ b/chromium/gpu/GLES2/extensions/CHROMIUM/CHROMIUM_image.txt
@@ -0,0 +1,117 @@
+Name
+
+ CHROMIUM_image
+
+Name Strings
+
+ GL_CHROMIUM_image
+
+Version
+
+ Last Modifed Date: Apr 30, 2014
+
+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 as well as enable hardware overlay
+ support by providing ability to create buffers capable of being scanned out
+ directly by the display controller.
+
+ 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
+
+ Accepted by the <pname> parameter of GetImageParameterivCHROMIUM:
+
+ IMAGE_ROWBYTES_CHROMIUM 0x78F0
+
+ Accepted by the <usage> parameter of CreateImageCHROMIUM:
+
+ IMAGE_MAP_CHROMIUM 0x78F1
+ IMAGE_SCANOUT_CHROMIUM 0x78F2
+
+New Procedures and Functions
+
+ GLuint CreateImageCHROMIUM(GLsizei width, GLsizei height,
+ GLenum internalformat, GLenum usage)
+
+ 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.
+
+ INVALID_ENUM is generated if <usage> is not one of
+ IMAGE_MAP_CHROMIUM and IMAGE_SCANOUT_CHROMIUM.
+
+ 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)
+
+ Returns a pointer to in the user memory for the application to modify
+ the image. It is illegal to call this function on an image not created
+ with IMAGE_MAP_CHROMIUM usage.
+
+ 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.
+
+ 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
+ 4/30/2014 Moved usage flag to creation function.