1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- The root element should be <draft href="~~"> for draft extensions -->
3 <!-- The root element should be <proposal href="~~"> for proposed extensions -->
4 <!-- The root element should be <ratified href="~~"> for ratified extensions -->
5 <!-- @href should be a URI relative to the WebGL extension registry at
6 http://www.khronos.org/registry/webgl/extensions/
8 <extension href="template/">
9 <!-- The name of the extension. This is also the string which is passed to the
10 WebGLRenderingContext getExtension API to enable the extension. For example, if
11 the extension were OES_texture_float, then the extension would be fetched and
12 enabled with a call to getExtension("OES_texture_float")
14 Per WebGL convention, the 'GL_' prefix is dropped from all extension and enum
15 names, and the 'gl' prefix dropped from, and capitalization adjusted of, all
21 <!-- The optional alternate name strings of the extension for draft exts -->
24 <alias>VENDOR_EXT_NAME</alias>
26 <alias>VENDOR_EXT_NAME</alias>
29 <!-- the email address of the contact of the specification -->
31 <!-- prefer to 'at' instead of the '@' character to reduce spam -->
33 <contact> <a href="https://www.khronos.org/webgl/public-mailing-list/">WebGL
34 working group</a> (public_webgl 'at' khronos.org) </contact>
36 <!-- Names and email addresses of individuals who contributed to the development of
41 <contributor>Members of the WebGL working group</contributor>
44 <number>k <!-- extension number in registry --></number>
49 <core version="2.0"/> <!-- Version in which the extension functionality was integrated into the core spec -->
52 <glsl version="300 es"/> <!-- GLSL #version required to use the feature, if any -->
54 Difference in core spec from extension.
58 <removed version="2.0"/> <!-- Version as of which extension is no longer supported -->
60 <ext name="WEBGL_required_ext" require="true"/>
62 <ext name="WEBGL_base_ext"/>
64 <!-- api/extension with hyperlink -->
68 <!-- use mirrors if this extension wraps another -->
70 <mirrors href="http://www.khronos.org/registry/gles/extensions/OES/OES_texture_float.txt"
71 name="OES_texture_float">
72 <!-- list the deviations here if there are any -->
74 <addendum>Optional support for <code>FLOAT</code> textures as FBO
75 attachments.</addendum>
77 <!-- Tags not 'addendum' replace the default text that says
78 "Consult the above extension for documentation, issues and new functions and enumerants."
82 <!-- normal free-form XHTML is allowed here -->
84 <div class="nonnormative">
85 <p> This template for WebGL extensions is derived from the <a
86 href="http://www.opengl.org/registry/doc/template/txt">OpenGL extension
87 template</a>. Refer to the OpenGL extension template for full
88 documentation of the content that should be contained in the sections
89 below. Because WebGL is fundamentally a Web API, its extensions are
90 specified in XML transformed with XSLT into HTML for easier
93 <p> Because most WebGL extensions are expected to simply mirror existing
94 OpenGL and OpenGL ES extensions, it is desirable to keep the WebGL
95 extension specifications as small as possible and simply refer to the
96 other specifications for the behavioral definitions. </p>
100 <!-- a list of features in XHTML -->
102 <feature>Frobs the <b>baz</b></feature>
104 <!-- can also specify glsl built-ins in structured format -->
106 <glsl extname="GL_OES_foo_bar">
107 <alias extname="GL_NV_foo_bar"/>
109 <alias extname="GL_ATI_foo_bar"/>
111 <stage type="fragment"/>
113 <stage type="vertex"/>
115 <function name="myfun" type="vec4">
122 <idl xml:space="preserve"> <!-- copied literally into a <pre> -->
123 <!-- Enums and functions introduced by the extension should be specified as
124 'const GLenum' and methods on the extension object. The extension IDL should
125 be written assuming that the typedefs in
126 <a href="../../specs/latest/webgl.idl">webgl.idl</a> and
127 <a href="../../typedarray/specs/latest/typedarrays.idl">typedarrays.idl</a>
128 have already been defined, and may implicitly reference other web platform
133 interface OES_foo_bar {
134 const GLenum NEW_ENUM = 0xF00;
136 void doSomethingNew(GLenum state, GLuint value);
137 }; // interface OES_foo_bar
142 <!-- new functions -->
145 <function name="loseContext" type="void"> XHTML description </function>
150 <p>These typedef signatures should include <name> markup because
151 C's type syntax is baroquen.</p>
153 <type>unsigned long long <name>in_pipe</name></type>
157 <type>unsigned long long <name>out_pipe</name></type>
161 <type>struct plumber { struct plumber (*work)(in_pipe,
162 out_pipe); } <name>plumber_t</name></type>
166 <type>plumber_t (*<name>agency</name>)(uint32_t yp_sz,
175 <function name="getParameter" type="any"> <param name="pname"
176 type="GLenum"/> XHTML </function>
179 <!-- Refer to the <http://www.opengl.org/registry/doc/template.txt> OpenGL
180 extension template for a description of these sections. These sections
181 should be eliminated for WebGL extensions simply mirroring OpenGL or
182 OpenGL ES extensions.
185 <!-- these take XHTML markup as contents -->
193 <!-- Additions to the WebGL Specification -->
201 <!-- New Implementation-Dependent State -->
210 <!-- a list of revisions in any order -->
212 <!-- Include important changes in the evolution of the extension. It's
213 especially important to include this section if the extension is modified
214 after a version has been shipped. Consult the
215 <http://www.opengl.org/registry/doc/template.txt> OpenGL extension template
219 <revision date="YYYY/MM/DD">
220 <!-- a list of changes -->
222 <change>Quuxed the bar</change>
224 <change>Fooed the frob</change>