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