bcef216ce473d8fb4936a1d9e5e05782b68e8317
[platform/framework/web/crosswalk.git] / src / third_party / webgl / src / extensions / EXT_color_buffer_half_float / extension.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <draft href="EXT_color_buffer_half_float/">
3   <name>EXT_color_buffer_half_float</name>
4
5   <contact> <a href="https://www.khronos.org/webgl/public-mailing-list">WebGL
6   working group</a> (public_webgl 'at' khronos.org) </contact>
7
8   <contributors>
9     <contributor>Mark Callow, HI Corporation</contributor>
10
11     <contributor>Members of the WebGL working group</contributor>
12   </contributors>
13
14   <number>14</number>
15
16   <depends>
17     <api version="1.0"/>
18
19     <ext name="OES_texture_half_float" require="true"/>
20   </depends>
21
22   <overview>
23     <mirrors href="http://www.khronos.org/registry/gles/extensions/EXT/EXT_color_buffer_half_float.txt"
24              name="EXT_color_buffer_half_float">
25       <addendum>
26         <p>All references to <code>R16F</code> and <code>RG16F</code> types
27         are ignored.</p>
28       </addendum>
29     </mirrors>
30
31     <features>
32       <feature>
33         <p>The 16-bit floating-point types <code>RGB16F</code> and
34         <code>RGBA16F</code> become available as color-renderable formats.
35         Renderbuffers can be created in these formats. These and textures
36         created with <code>type = HALF_FLOAT_OES</code>, which will have one
37         of these internal formats, can be attached to framebuffer object color
38         attachments for rendering.</p>
39       </feature>
40
41       <feature>
42         <p><span style="color: red">NOTE:</span> fragment shaders outputs
43         gl_FragColor and gl_FragData[0] will only be clamped and converted
44         when the color buffer is fixed-point and <code>BlendColor()</code> and
45         <code>ClearColor()</code> will no longer clamp their parameter values
46         on input. Clamping will be applied as necessary at draw time according
47         to the type of color buffer in use.</p>
48       </feature>
49
50       <feature>
51         <p>The format and type combination <code>RGBA</code> and
52         <code>FLOAT</code> becomes valid for reading from a floating-point
53         rendering buffer. Note: <code>RGBA</code> and
54         <code>UNSIGNED_BYTE</code> cannot be used for reading from a
55         floating-point rendering buffer.</p>
56       </feature>
57
58       <feature>
59         <p>The component types of framebuffer object attachments can be
60         queried.</p>
61       </feature>
62     </features>
63   </overview>
64
65   <idl xml:space="preserve">module webgl {
66   interface EXT_color_buffer_half_float {
67     const GLenum RGBA16F_EXT = 0x881A;
68     const GLenum RGB16F_EXT = 0x881B;
69     const GLenum FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT = 0x8211;
70     const GLenum UNSIGNED_NORMALIZED_EXT = 0x8C17;
71   }; // interface EXT_color_buffer_half_float
72 }; // module webgl</idl>
73
74   <additions>
75     <p>In section 5.13.12 <cite>Reading back pixels</cite>, change the allowed
76     format and types table to:</p>
77
78     <dl class="methods">
79       <dd>
80         <table>
81           <tbody>
82             <tr>
83               <th>frame buffer type</th>
84               <th>
85                 <code>format</code>
86               </th>
87               <th>
88                 <code>type</code>
89               </th>
90             </tr>
91
92             <tr>
93               <td>normalized fixed-point</td>
94               <td>RGBA</td>
95               <td>UNSIGNED_BYTE</td>
96             </tr>
97
98             <tr>
99               <td>floating-point</td>
100               <td>RGBA</td>
101               <td>FLOAT</td>
102             </tr>
103
104           </tbody>
105         </table>
106       </dd>
107     </dl>
108
109     <p>Change the paragraph beginning "If <code>pixels</code> is null ..."
110     to</p><blockquote>If frame buffer type is not that indicated in the table for
111     the <code>format</code> and <code>type</code> combination, an
112     INVALID_OPERATON error is generated. If pixels is null
113     ...</blockquote>
114   </additions>
115
116   <history>
117     <revision date="2012/11/08">
118       <change>Initial revision.</change>
119     </revision>
120
121     <revision date="2012/11/13">
122       <change>"Add reading-pixels-as-FLOAT feature to the Overview and related
123       changes to WebGL section 5.13.12.</change>
124     </revision>
125
126     <revision date="2012/11/26">
127       <change>Move to draft.</change>
128     </revision>
129   </history>
130 </draft>