2 <!-- This document is intended to be both HTML5 and XML ("polyglot") -->
3 <html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
5 <meta charset="UTF-8" />
6 <title>WebGL Extension Registry</title>
7 <link rel="alternate" type="text/xml" href="registry.xml" />
8 <link rel="alternate" type="application/atom+xml" href="index.atom" />
9 <link rel="stylesheet" type="text/css" href="../resources/default.css" />
10 <style type="text/css">
11 /* Override some styles in the default style sheet */
23 <script src="../resources/jquery-1.3.2.min.js" type="text/javascript"></script>
24 <script src="../resources/generateTOC.js" type="text/javascript"></script>
30 <a href="http://khronos.org/">
31 <img alt=Khronos height=60 src="../resources/KhronosGroup-3D.png" width=220>
37 <a href="http://webgl.org/">
38 <img alt=WebGL height=72 src="../resources/WebGL-Logo.png" width=156>
44 <h1>WebGL Extension Registry</h1>
46 <h2 class="no-toc">Overview</h2>
48 The WebGL extension registry contains specifications for extensions to the
49 core <a href="../specs/latest/">WebGL API</a>. Most of these extensions are incorporated
50 directly from the <a href="http://www.khronos.org/registry/gles/">OpenGL ES</a>
51 or <a href="http://www.opengl.org/registry/">OpenGL</a> extension registries, and refer to
52 those extensions for their behavioral definition. Because WebGL extensions are specified as
53 Web IDL interfaces, each specification also includes the IDL to which each implementation
57 An <a href="template/">extension template</a> is available for the submission of
58 new proposed extensions. New extension proposals should be emailed to the
59 <a href="https://www.khronos.org/webgl/public-mailing-list/">public WebGL mailing list</a>.
60 When writing a new extension specification, it is recommended to check out
61 the <a href="http://github.com/KhronosGroup/WebGL">public WebGL repository</a>. See the
62 WebGL wiki page <a href="http://www.khronos.org/webgl/wiki/Using_Github_To_Contribute">Using
63 Github to contribute</a>. The extension registry files are located
64 under <code>extensions/</code>.
67 Each extension object is fetched from
68 the <a href="../specs/latest/1.0/#WEBGLRENDERINGCONTEXT">WebGLRenderingContextBase</a> by passing
69 the name of the extension to the <code>getExtension</code> method,
70 i.e.: <code>context.getExtension("OES_texture_float")</code>.
74 Extensions which are marked as promoted to core or removed in a certain version of the WebGL
75 API must not be supported in an implementation of that or newer version of the WebGL API.
78 <h2 class="no-toc">Naming conventions</h2>
81 WebGL API extensions may derive from many sources, and the naming of each extension reflects
82 its origin and intent.
86 <li><code>ARB</code>, <code>OES</code> and <code>KHR</code> tags should be used for
87 mirroring functionality from OpenGL ES or OpenGL API extensions approved by the respective
88 architecture review boards. <code>EXT_</code> and GPU vendor tags should be used for
89 mirroring other OpenGL ES or OpenGL API extensions. If only small differences in behavior
90 compared to OpenGL ES or OpenGL are specified for a given extension, the original tag should
93 <li>The <code>WEBGL</code> tag should be used for WebGL-specific extensions which are
94 intended to be compatible with multiple web browsers. It should also be used for extensions
95 which originated with the OpenGL ES or OpenGL APIs, but whose behavior has been
96 significantly altered.
98 <li>Browser vendor specific tags should be used for WebGL-specific extensions that are
99 intended to run only on a particular browser. It is recommended to avoid such extensions,
100 and instead specify them with the <code>WEBGL</code> tag.
104 <h2 class="no-toc">Extension Development Process</h2>
107 Extensions move through four states during their
108 development: <em>proposed</em>, <em>draft</em>, <em>community approved</em>, and <em>Khronos
112 <li> <em>Proposed</em> extensions are intended for discussion on the public WebGL mailing
113 list, in order to move to <em>draft</em> status; they should not be implemented, even under
114 a vendor prefix. If consensus is reached in the community, the extension can be moved
115 to <em>draft</em> status.
117 <li> <em>Draft</em> extensions may be implemented under a vendor prefix for experimentation
118 purposes, in order to gain experience with the extension before finalizing it. Once
119 consensus is reached in the community, the extension can be moved to <em>community approved</em>
122 <li> <em>Community approved</em> extensions should be implemented without a vendor
123 prefix. When a draft extension moves to community approved status, any existing
124 implementation should immediately remove support for the vendor-prefixed extension
125 name. Once implemented by a vendor, support should not be removed unless there is a serious
126 issue with the extension, such as a security flaw.
128 <li> <em>Khronos ratified</em> extensions are those community approved extensions which have
129 been voted upon by the Khronos Board of Promoters.
133 <h2 class="no-toc">Khronos ratified WebGL Extensions</h2>
135 <table style="border: 2px; width: 100%;">
137 <td class="list"><h3>By Number</h3>
138 <td class="list"><h3>By Name</h3>
141 <td class="list"><ol id="ratified-by-number"></ol>
142 <td class="list"><ol id="ratified-by-name"></ol>
146 <h2 class="no-toc">Community approved WebGL Extensions</h2>
148 <table style="border: 2px; width: 100%;">
150 <td class="list"><h3>By Number</h3>
151 <td class="list"><h3>By Name</h3>
154 <td class="list"><ol id="community-approved-by-number"></ol>
155 <td class="list"><ol id="community-approved-by-name"></ol>
159 <h2 class="no-toc">Draft WebGL Extensions</h2>
161 <table style="border: 2px; width: 100%;">
163 <td class="list"><h3>By Number</h3>
164 <td class="list"><h3>By Name</h3>
167 <td class="list"><ol id="draft-by-number"></ol>
168 <td class="list"><ol id="draft-by-name"></ol>
172 <h2 class="no-toc">Proposed WebGL Extensions (do not implement!)</h2>
174 <table style="border: 2px; width: 100%;">
176 <td class="list"><h3>By Name</h3>
179 <td class="list"><ul class="indexlist" id="proposed-by-name"></ul>
183 <h2 class="no-toc">Recent WebGL Extension Revisions</h2>
184 <ol id="recent-revisions"></ol>
185 <a href="index.atom"><img src="../resources/feed-icon-14x14.png"
186 width="14" height="14" alt="Atom feed"> Recent Revisions</a>