1
    2
    3
    4
    5
    6
    7
    8
    9
   10
   11
   12
   13
   14
   15
   16
   17
   18
   19
   20
   21
   22
   23
   24
   25
   26
   27
   28
   29
   30
   31
   32
   33
   34
   35
   36
   37
   38
   39
   40
   41
   42
   43
   44
   45
   46
   47
   48
   49
   50
   51
   52
   53
   54
   55
   56
   57
   58
   59
   60
   61
   62
   63
   64
   65
   66
   67
   68
   69
   70
   71
   72
   73
   74
   75
   76
   77
   78
   79
   80
   81
   82
   83
   84
   85
   86
   87
   88

gpu / GLES2 / extensions / CHROMIUM / CHROMIUM_get_multiple.txt [blame]

Name

    CHROMIUM_get_multiple

Name Strings

    GL_CHROMIUM_get_multiple

Version

    Last Modifed Date: July 22, 2011

Dependencies

    OpenGL ES 2.0 is required.

Overview

    This extension adds the ability to query multiple program information in a
    single call.

Issues


New Tokens

    None

New Procedures and Functions

    void GetProgrmaInfoCHROMIUM (GLuint program, GLsizei bufsize,
                                 GLsizei* size, void* info)

    <program> is the program to query. <bufsize> is the size of the buffer to
    hold the results. <size> is a pointer to a GLsizei to store the size needed
    to hold the results. <info> is a pointer to memory to store the result.

    To query the space needed for the results set <info> to NULL.

    The format of the data that will be stored in the memory pointed to by
    <info> is as follows.

        struct ProgramInfoHeader {
          uint32 link_status;  // same as GetProgramiv called with LINK_STATUS
          uint32 num_attribs;  // the number of active attributes
          uint32 num_uniforms;  // the number of active uniforms
          ProgramInput inputs[num_attribs + num_uniforms];
        }

        // The data for one attrib or uniform from GetProgramInfoCHROMIUM.
        struct ProgramInput {
          uint32 type;             // The type (GL_VEC3, GL_SAMPLER_2D, etc.
          int32 size;              // The size (size of array for uniforms)
          uint32 location_offset;  // offset from ProgramInfoHeader to 'size'
                                   // locations for uniforms, 1 for attribs.
          uint32 name_offset;      // offset from ProgrmaInfoHeader to start of
                                   // name.
          uint32 name_length;      // length of the name.
        };

    It is important to note that for attribs, size is the size of the attrib and
    location_offset points to a single location. For uniforms, size is the
    number of array elements and location_offset points to an array of size
    locations, one of each element of the array.

    INVALID_VALUE is generated if <bufsize> is less than 0

    INVALID_VALUE is generated if <size> is NULL

    INVALID_OPERATION is returned if <size> is less than the size needed to hold
    all the results.


    NOTE: This function is not intended to be used directly. Chromium uses it
    internally to cache data.


Errors

    None.

New State

    None.

Revision History

    7/22/2011    Documented the extension