Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / third_party / webgl / src / extensions / template / extension.xml
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/
7 -->
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")
13
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
16        function names.
17   -->
18
19   <name>template</name>
20
21   <!-- The optional alternate name strings of the extension for draft exts -->
22
23   <aliases>
24     <alias>VENDOR_EXT_NAME</alias>
25
26     <alias>VENDOR_EXT_NAME</alias>
27   </aliases>
28
29   <!-- the email address of the contact of the specification -->
30
31   <!-- prefer to 'at' instead of the '@' character to reduce spam -->
32
33   <contact> <a href="https://www.khronos.org/webgl/public-mailing-list/">WebGL
34   working group</a> (public_webgl 'at' khronos.org) </contact>
35
36   <!-- Names and email addresses of individuals who contributed to the development of
37        the specification
38   -->
39
40   <contributors>
41     <contributor>Members of the WebGL working group</contributor>
42   </contributors>
43
44   <number>k <!-- extension number in registry --></number>
45
46   <depends>
47     <api version="1.0"/>
48
49     <core version="2.0"/> <!-- Version in which the extension functionality was integrated into the core spec -->
50
51     <core version="2.0">
52       <glsl version="300 es"/> <!-- GLSL #version required to use the feature, if any -->
53       <addendum>
54         Difference in core spec from extension.
55       </addendum>
56     </core>
57
58     <removed version="2.0"/> <!-- Version as of which extension is no longer supported -->
59
60     <ext name="WEBGL_required_ext" require="true"/>
61
62     <ext name="WEBGL_base_ext"/>
63
64     <!-- api/extension with hyperlink -->
65   </depends>
66
67   <overview>
68     <!-- use mirrors if this extension wraps another -->
69
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 -->
73
74       <addendum>Optional support for <code>FLOAT</code> textures as FBO
75       attachments.</addendum>
76
77       <!-- Tags not 'addendum' replace the default text that says
78            "Consult the above extension for documentation, issues and new functions and enumerants."
79       -->
80     </mirrors>
81
82     <!-- normal free-form XHTML is allowed here -->
83
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
91       hyperlinking. </p>
92
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>
97     </div>
98
99     <features>
100       <!-- a list of features in XHTML -->
101
102       <feature>Frobs the <b>baz</b></feature>
103
104       <!-- can also specify glsl built-ins in structured format -->
105
106       <glsl extname="GL_OES_foo_bar">
107         <alias extname="GL_NV_foo_bar"/>
108
109         <alias extname="GL_ATI_foo_bar"/>
110
111         <stage type="fragment"/>
112
113         <stage type="vertex"/>
114
115         <function name="myfun" type="vec4">
116           <param type="vec4"/>
117         </function>
118       </glsl>
119     </features>
120   </overview>
121
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
129          specifications.
130     -->
131 module webgl {
132
133 interface OES_foo_bar {
134   const GLenum NEW_ENUM = 0xF00;
135
136   void doSomethingNew(GLenum state, GLuint value);
137 }; // interface OES_foo_bar
138
139 }; // module webgl
140   </idl>
141
142   <!-- new functions -->
143
144   <newfun>
145     <function name="loseContext" type="void"> XHTML description </function>
146   </newfun>
147
148   <!-- new types -->
149   <newtypes>
150     <p>These typedef signatures should include &lt;name&gt; markup because
151     C's type syntax is baroquen.</p>
152     <typedef>
153       <type>unsigned long long <name>in_pipe</name></type>
154       XHTML
155     </typedef>
156     <typedef>
157       <type>unsigned long long <name>out_pipe</name></type>
158       XHTML
159     </typedef>
160     <typedef>
161       <type>struct plumber { struct plumber (*work)(in_pipe,
162       out_pipe); } <name>plumber_t</name></type>
163       XHTML
164     </typedef>
165     <typedef>
166       <type>plumber_t (*<name>agency</name>)(uint32_t yp_sz,
167       plumber_t*)</type>
168       XHTML
169     </typedef>
170   </newtypes>
171
172   <!-- new tokens -->
173
174   <newtok>
175     <function name="getParameter" type="any"> <param name="pname"
176     type="GLenum"/> XHTML </function>
177   </newtok>
178
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.
183   -->
184
185   <!-- these take XHTML markup as contents -->
186
187   <security/>
188
189   <ipstatus/>
190
191   <additions/>
192
193   <!-- Additions to the WebGL Specification -->
194
195   <errors/>
196
197   <newstate/>
198
199   <newimplstate/>
200
201   <!-- New Implementation-Dependent State -->
202
203   <samplecode/>
204
205   <tests/>
206
207   <issues/>
208
209   <history>
210     <!-- a list of revisions in any order -->
211
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
216          for an example.
217     -->
218
219     <revision date="YYYY/MM/DD">
220       <!-- a list of changes -->
221
222       <change>Quuxed the bar</change>
223
224       <change>Fooed the frob</change>
225     </revision>
226   </history>
227 </extension>