Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(342)

Side by Side Diff: gpu/GLES2/extensions/CHROMIUM/CHROMIUM_consistent_uniform_locations.txt

Issue 10635011: Add glBindUniformLocationCHROMIUM (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 Name
2
3 CHROMIUM_consistent_uniform_locations
4
5 Name Strings
6
7 GL_CHROMIUM_consistent_uniform_locations
8
9 Version
10
11 Last Modifed Date: June 17, 2012
12
13 Dependencies
14
15 OpenGL ES 2.0 is required.
16
17 Overview
18
19 This extension guarantees uniforms always have the same locations.
20
21 This allows the client program to know the locations of uniforms
22 without having to wait for shaders to compile or GLSL programs to
23 link to query the locations and therefore have no blocking calls
24 when initializing programs.
25
26 To be forward compatible the locations are provided through the
27 function GetUniformLocationsCHROMIUM. LinkProgram must be called
28 before calling GetUniformLocationsCHROMIUM.
29
30 Issues
31
32 If a uniform is unused in the actual program it may be optimized out
33 by the GL driver. In this case the locations will be wrong. You
34 must provide a list of only the used uniforms.
35
36 New Tokens
37
38 None
39
40 New Procedures and Functions
41
42 void GetUniformLocationsCHROMIUM (GLuint program,
43 const GLUniformDefinitionCHROMIUM* uniform s,
44 GLsizei count, GLsizei max_locations,
45 GLint* locations);
46
47 Provides the locations of uniforms assuming the list of uniforms provided
48 matches the uniforms actually used in the corresponding program.
49
50 <uniforms> is an array of uniforms. <count> is the number of uniforms in th e
51 array. <max_locations> is the maximum number of locations to write to
52 <locations>. <locations> is an array to receive the uniform locations.
53
54 INVALID_VALUE is generated if <count> is less then or equal to 0.
55
56 INVALID_VALUE is generated if any GLUniformDefinitionHCHROMIUM's size
57 field is <= 0.
58
59 For each uniform <size> locations are provided. For example:
60
61 static const GLUniformDefinitionCHROMIUM defs[] = {
62 { GL_FLOAT_VEC2, 3, "someUniform", }, // An array of 3 vec2s
63 { GL_FLOAT_VEC4, 1, "someOtherUniform", }, // A single vec4
64 { GL_SAMPLER_2D, 2, "yetAnotherUniform", }, // An array of 2 sampler2Ds
65 };
66
67 Would return an array of locations as follows
68
69 location[0] = location for "someUniform[0]"
70 location[1] = location for "someUniform[1]"
71 location[2] = location for "someUniform[2]"
72 location[3] = location for "someOtherUniform"
73 location[4] = location for "yetAnotherUniform[0]"
74 location[5] = location for "yetAnotherUniform[1]"
75
76 Errors
77
78 None.
79
80 New State
81
82 None.
83
84 Revision History
85
86 7/17/2012 Documented the extension
87 7/19/2012 Added <program> argument.
88
OLDNEW
« no previous file with comments | « gpu/GLES2/extensions/CHROMIUM/CHROMIUM_bind_uniform_location.txt ('k') | gpu/command_buffer/build_gles2_cmd_buffer.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698