• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1Name
2
3    OES_single_precision
4
5Name Strings
6
7    GL_OES_single_precision
8
9Contact
10
11    David Blythe (blythe 'at' bluevoid.com)
12
13Notice
14
15    Copyright (c) 2003-2013 The Khronos Group Inc. Copyright terms at
16        http://www.khronos.org/registry/speccopyright.html
17
18Specification Update Policy
19
20    Khronos-approved extension specifications are updated in response to
21    issues and bugs prioritized by the Khronos OpenGL ES Working Group. For
22    extensions which have been promoted to a core Specification, fixes will
23    first appear in the latest version of that core Specification, and will
24    eventually be backported to the extension document. This policy is
25    described in more detail at
26        https://www.khronos.org/registry/OpenGL/docs/update_policy.php
27
28Status
29
30    Ratified by the Khronos BOP, July 23, 2003.
31    Ratified by the Khronos BOP, Aug 5, 2004.
32
33Version
34
35    Version 1, September 18, 2014
36
37Number
38
39    OpenGL ES Extension #18 (formerly OpenGL Extension #293)
40
41Dependencies
42
43    None
44    The extension is written against the OpenGL 1.3 Specification.
45
46Overview
47
48    This extension adds commands with single-precision floating-point
49    parameters corresponding to the commands that only variants that
50    accept double-precision floating-point input.  This allows an
51    application to avoid using double-precision floating-point
52    data types.  New commands are added with an 'f' prefix.
53
54
55IP Status
56
57    None
58
59Issues
60
61*   An alternative is to suggest platforms define GLfloat and
62    GLdouble to be the same type, since it is unlikely that both
63    single- and double-precision are required at the same time.
64
65    Resolved: This might create additional confusion, so it is
66    better to define new commands.
67
68New Procedures and Functions
69
70    void DepthRangefOES(clampf n, clampf f);
71    void FrustumfOES(float l, float r, float b, float t, float n, float f);
72    void OrthofOES(float l, float r, float b, float t, float n, float f);
73
74    void ClipPlanefOES(enum plane, const float* equation);
75    void GetClipPlanefOES(enum plane, float* equation);
76
77    void glClearDepthfOES(clampf depth);
78
79New Tokens
80
81    None
82
83Additions to Chapter 2 of the OpenGL 1.3 Specification (OpenGL Operation)
84
85    Section 2.10 Coordinate Transformations
86
87      Revise to include 'f' suffix.
88      Add alternate suffixed versions of DepthRange (2.10.1).
89      Add alternate suffixed versions of Ortho and Frustum (2.10.2).
90
91    Section 2.11 Clipping
92
93      Add alternate suffixed version of ClipPlane.
94
95Additions to Chapter 3 of the OpenGL 1.3 Specification (Rasterization)
96
97    None
98
99Additions to Chapter 4 of the OpenGL 1.3 Specification (Per-Fragment
100Operations and the Frame Buffer)
101
102    Section 4.2.3 Clearing the Buffers
103
104      Add alternate suffixed version of ClearDepth.
105
106Additions to Chapter 5 of the OpenGL 1.3 Specification (Special Functions)
107
108    None
109
110Additions to Chapter 6 of the OpenGL 1.3 Specification (State and
111State Requests)
112
113    None
114
115Additions to Appendix A of the OpenGL 1.3 Specification (Invariance)
116
117    None
118
119Additions to the AGL/GLX/WGL Specifications
120
121    None
122
123Additions to the WGL Specification
124
125    None
126
127Additions to the AGL Specification
128
129    None
130
131Additions to Chapter 2 of the GLX 1.3 Specification (GLX Operation)
132
133    The data representation is client-side only.  The GLX layer
134    performs translation between float and double representations.
135
136Additions to Chapter 3 of the GLX 1.3 Specification (Functions and Errors)
137
138Additions to Chapter 4 of the GLX 1.3 Specification (Encoding on the X
139Byte Stream)
140
141Additions to Chapter 5 of the GLX 1.3 Specification (Extending OpenGL)
142
143Additions to Chapter 6 of the GLX 1.3 Specification (GLX Versions)
144
145GLX Protocol
146
147    Five new GL rendering commands are added. The following commands
148    are sent to the server as part of a glXRender request:
149
150        ClearDepthfOES
151            2           8               rendering command length
152            2           4308            rendering command opcode
153            4           FLOAT32         z
154
155        DepthRangefOES
156            2           12              rendering command length
157            2           4309            rendering command opcode
158            4           FLOAT32         n
159            4           FLOAT32         f
160
161        FrustumfOES
162            2           28              rendering command length
163            2           4310            rendering command opcode
164            4           FLOAT32         l
165            4           FLOAT32         r
166            4           FLOAT32         b
167            4           FLOAT32         t
168            4           FLOAT32         n
169            4           FLOAT32         f
170
171        OrthofOES
172            2           28              rendering command length
173            2           4311            rendering command opcode
174            4           FLOAT32         l
175            4           FLOAT32         r
176            4           FLOAT32         b
177            4           FLOAT32         t
178            4           FLOAT32         n
179            4           FLOAT32         f
180
181        ClipPlanefOES
182            2           24              rendering command length
183            2           4312            rendering command opcode
184            4           ENUM            plane
185            4           FLOAT32         v[0]
186            4           FLOAT32         v[1]
187            4           FLOAT32         v[2]
188            4           FLOAT32         v[3]
189
190
191    The remaining commands are non-rendering commands.  These commands are
192    sent separately (i.e., not as part of a glXRender or glXRenderLarge
193    request), using the glXVendorPrivateWithReply request:
194
195        GetClipPlanefOES
196            1           CARD8           opcode (X assigned)
197            1           17              GLX opcode (glXVendorPrivateWithReply)
198            2           4               request length
199            4           1421            vendor specific opcode
200            4           GLX_CONTEXT_TAG context tag
201            4           ENUM            plane
202          =>
203            1           1               reply
204            1                           unused
205            2           CARD16          sequence number
206            4           0               reply length
207            4           FLOAT32         v[0]
208            4           FLOAT32         v[1]
209            4           FLOAT32         v[2]
210            4           FLOAT32         v[3]
211            8                           unused
212
213Errors
214
215    None
216
217New State
218
219    None
220
221New Implementation Dependent State
222
223    None
224
225Revision History
226
227    03/27/2003    0.1
228        - First draft created.
229
230    07/08/2003    0.2
231        - Delete unused Dependencies on section
232        - Added extension number
233
234    07/09/2003    0.3
235        - Added missing ClearDepthfOES
236        - Removed '_'s from names.
237
238    07/22/2003    0.4
239        - Added GLX protocol (Thomas Roell)
240
241    06/28/2004    0.5
242        - Added ClipPlanef function (Aaftab Munshi)
243
244    04/22/2007    0.6
245        - Fixed 'void void' typo (Jon Leech)
246
247    09/18/2014    1
248        - Fixed 'clampd' type to 'clampf' in ClearDepthfOES (Bug 12656).
249