Home | History | Annotate | Download | only in CHROMIUM
      1 Name
      2 
      3     CHROMIUM_map_image
      4 
      5 Name Strings
      6 
      7     GL_CHROMIUM_map_image
      8 
      9 Version
     10 
     11     Last Modifed Date: May 9, 2013
     12 
     13 Dependencies
     14 
     15     OpenGL ES 2.0 is required.
     16 
     17 Overview
     18 
     19     This extension allows for more efficient uploading of texture data through
     20     Chromium's OpenGL ES 2.0 implementation.
     21 
     22     For security reasons Chromium accesses the GPU from a separate process. User
     23     processes are not allowed to access the GPU directly. This multi-process
     24     architechure has the advantage that GPU operations can be secured and
     25     pipelined but it has the disadvantage that all data that is going to be
     26     passed to GPU must first be made available to the separate GPU process.
     27 
     28     This extension helps the application directly allocate and access texture
     29     memory.
     30 
     31 Issues
     32 
     33     None
     34 
     35 New Tokens
     36 
     37     None
     38 
     39 New Procedures and Functions
     40 
     41     GLuint CreateImageCHROMIUM (GLsizei width, GLsizei height,
     42                                 GLenum internalformat)
     43 
     44     Allocate an image with width equal to <width> and height equal
     45     to <height> stored in format <internalformat>.
     46 
     47     Returns a unique identifier for the allocated image that could be used
     48     in subsequent operations.
     49 
     50     INVALID_VALUE is generated if <width> or <height> is nonpositive.
     51 
     52     void DestroyImageCHROMIUM (GLuint image_id)
     53 
     54     Frees the image previously allocated by a call to CreateImageCHROMIUM.
     55 
     56     INVALID_OPERATION is generated if <image_id> is not a valid image id.
     57 
     58     void* MapImageCHROMIUM (GLuint image_id, GLenum access)
     59 
     60     Returns a pointer to in the user memory for the application to modify
     61     the image. <access> parameter defines if the user will read or write the
     62     pixels.
     63 
     64     INVALID_OPERATION is generated if <image_id> is not a valid image id.
     65 
     66     INVALID_OPERATION is generated if the image was already mapped by a previous
     67     call to this method.
     68 
     69     INVALID_ENUM is generated if <access> is not one of WRITE_ONLY, READ_ONLY
     70     and READ_WRITE.
     71 
     72     void UnmapImageCHROMIUM (GLuint image_id)
     73 
     74     Removes the mapping created by a call to MapImageCHROMIUM.
     75 
     76     Note that after calling UnmapImageCHROMIUM the application should assume
     77     that the memory returned by MapImageCHROMIUM is off limits and is no longer
     78     accessible by the application. Accessing it after calling
     79     UnmapImageCHROMIUM will produce undefined results.
     80 
     81     INVALID_OPERATION is generated if <image_id> is not a valid image id.
     82 
     83     INVALID_OPERATION is generated if the image was not already mapped by a
     84     previous call to MapImageCHROMIUM.
     85 
     86     void GetImageParameterivCHROMIUM(GLuint image_id, GLenum pname,
     87                                      GLint* params)
     88 
     89     Sets <params> to the integer value of the parameter specified by <pname>
     90     for the image specified by <image_id>. <params> is expected to be
     91     properly allocated before calling this method.
     92 
     93     INVALID_OPERATION is generated if <image_id> is not a valid image id.
     94 
     95     INVALID_ENUM is generated if <pname> is not IMAGE_ROWBYTES_CHROMIUM.
     96 
     97 Errors
     98 
     99     None.
    100 
    101 New State
    102 
    103     None.
    104 
    105 Revision History
    106 
    107     5/9/2013    Documented the extension
    108