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>
51 <!-- Version in which the extension functionality was integrated into the core spec -->
54 <glsl version="300 es"/>
56 <!-- GLSL #version required to use the feature, if any -->
58 <addendum> Difference in core spec from extension. </addendum>
61 <removed version="2.0"/>
63 <!-- Version as of which extension is no longer supported -->
65 <ext name="WEBGL_required_ext" require="true"/>
67 <ext name="WEBGL_base_ext"/>
69 <!-- api/extension with hyperlink -->
73 <!-- use mirrors if this extension wraps another -->
75 <mirrors href="http://www.khronos.org/registry/gles/extensions/OES/OES_texture_float.txt"
76 name="OES_texture_float">
77 <!-- list the deviations here if there are any -->
79 <addendum>Optional support for <code>FLOAT</code> textures as FBO
80 attachments.</addendum>
82 <!-- Tags not 'addendum' replace the default text that says
83 "Consult the above extension for documentation, issues and new functions and enumerants."
87 <!-- normal free-form XHTML is allowed here -->
89 <div class="nonnormative">
90 <p> This template for WebGL extensions is derived from the <a
91 href="http://www.opengl.org/registry/doc/template/txt">OpenGL extension
92 template</a>. Refer to the OpenGL extension template for full
93 documentation of the content that should be contained in the sections
94 below. Because WebGL is fundamentally a Web API, its extensions are
95 specified in XML transformed with XSLT into HTML for easier
98 <p> Because most WebGL extensions are expected to simply mirror existing
99 OpenGL and OpenGL ES extensions, it is desirable to keep the WebGL
100 extension specifications as small as possible and simply refer to the
101 other specifications for the behavioral definitions. </p>
105 <!-- a list of features in XHTML -->
107 <feature>Frobs the <b>baz</b></feature>
109 <!-- can also specify glsl built-ins in structured format -->
111 <glsl extname="GL_OES_foo_bar">
112 <alias extname="GL_NV_foo_bar"/>
114 <alias extname="GL_ATI_foo_bar"/>
116 <stage type="fragment"/>
118 <stage type="vertex"/>
120 <function name="myfun" type="vec4">
127 <idl xml:space="preserve"> <!-- copied literally into a <pre> -->
128 <!-- Enums and functions introduced by the extension should be specified as
129 'const GLenum' and methods on the extension object. The extension IDL should
130 be written assuming that the typedefs in
131 <a href="../../specs/latest/webgl.idl">webgl.idl</a> and
132 <a href="../../typedarray/specs/latest/typedarrays.idl">typedarrays.idl</a>
133 have already been defined, and may implicitly reference other web platform
138 interface OES_foo_bar {
139 const GLenum NEW_ENUM = 0xF00;
141 void doSomethingNew(GLenum state, GLuint value);
142 }; // interface OES_foo_bar
147 <!-- new functions -->
150 <function name="loseContext" type="void"> XHTML description </function>
156 <typedef name="in_pipe"> <type>unsigned long long</type> XHTML </typedef>
158 <typedef name="out_pipe"> <type>unsigned long long</type> XHTML </typedef>
160 <interface name="Plumber">
161 <member>Plumber work(in_pipe,out_pipe);</member>
163 <p>After attempting a connection, the plumber is no longer the same.</p>
166 <interface name="Agency" noobject="true"> <member>void
167 register(Plumber);</member> <member>Plumber find();</member> XHTML
174 <function name="getParameter" type="any"> <param name="pname"
175 type="GLenum"/> XHTML </function>
178 <!-- Refer to the <http://www.opengl.org/registry/doc/template.txt> OpenGL
179 extension template for a description of these sections. These sections
180 should be eliminated for WebGL extensions simply mirroring OpenGL or
181 OpenGL ES extensions.
184 <!-- these take XHTML markup as contents -->
192 <!-- Additions to the WebGL Specification -->
200 <!-- New Implementation-Dependent State -->
209 <!-- a list of revisions in any order -->
211 <!-- Include important changes in the evolution of the extension. It's
212 especially important to include this section if the extension is modified
213 after a version has been shipped. Consult the
214 <http://www.opengl.org/registry/doc/template.txt> OpenGL extension template
218 <revision date="YYYY/MM/DD">
219 <!-- a list of changes -->
221 <change>Quuxed the bar</change>
223 <change>Fooed the frob</change>