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