| 197 | } |
| 198 | |
| 199 | void glEnd() |
| 200 | { |
| 201 | if (beginEndMode < 0) { |
| 202 | AssertFatal(0, "glEnd(): called without a glBegin"); |
| 203 | } |
| 204 | |
| 205 | if (beginEndVertex_size > 0) { |
| 206 | glEnableClientState( GL_VERTEX_ARRAY ); |
| 207 | glVertexPointer( 4, GL_FLOAT, 4*sizeof(GL_FLOAT), beginEndVertex ); |
| 208 | } |
| 209 | if (beginEndNormal_size > 0) { |
| 210 | glEnableClientState( GL_NORMAL_ARRAY ); |
| 211 | glNormalPointer( GL_FLOAT, 3*sizeof(GL_FLOAT), beginEndNormal ); |
| 212 | } |
| 213 | if (beginEndColor_size > 0) { |
| 214 | glEnableClientState( GL_COLOR_ARRAY ); |
| 215 | glColorPointer( 4, GL_FLOAT, 4*sizeof(GL_FLOAT), beginEndColor ); |
| 216 | } |
| 217 | if (beginEndTexCoord2f_size > 0) { |
| 218 | glEnableClientState( GL_TEXTURE_COORD_ARRAY ); |
| 219 | glTexCoordPointer( 2, GL_FLOAT, 2*sizeof(GL_FLOAT), beginEndTexCoord2f ); |
| 220 | } |
| 221 | |
| 222 | switch (beginEndMode) { |
| 223 | case GL_POINTS: |
| 224 | glDrawArrays( GL_POINTS, 0, beginEndVertex_size ); |
| 225 | break; |
| 226 | case GL_LINES: |
| 227 | glDrawArrays( GL_LINES, 0, beginEndVertex_size ); |
| 228 | break; |
| 229 | case GL_LINE_STRIP: |
| 230 | glDrawArrays( GL_LINE_STRIP, 0, beginEndVertex_size ); |
| 231 | break; |
| 232 | case GL_LINE_LOOP: |
| 233 | glDrawArrays( GL_LINE_LOOP, 0, beginEndVertex_size ); |
| 234 | break; |
| 235 | case GL_TRIANGLES: |
| 236 | glDrawArrays( GL_TRIANGLES, 0, beginEndVertex_size ); |
| 237 | break; |
| 238 | case GL_TRIANGLE_STRIP: |
| 239 | glDrawArrays( GL_TRIANGLE_STRIP, 0, beginEndVertex_size ); |
| 240 | break; |
| 241 | case GL_TRIANGLE_FAN: |
| 242 | glDrawArrays( GL_TRIANGLE_FAN, 0, beginEndVertex_size ); |
| 243 | break; |
| 244 | case GL_QUADS: |
| 245 | #if 1 // %%PUAP%% TESTING |
| 246 | // for now, just draw a couple lines to indicate the edges of the quads |
| 247 | glDrawArrays( GL_LINES, 0, beginEndVertex_size ); |
| 248 | #else |
| 249 | // draw these as individual pairs of triangle_strips |
| 250 | glDrawArrays( GL_TRIANGLE_STRIP, 0, beginEndVertex_size ); |
| 251 | #endif |
| 252 | break; |
| 253 | case GL_QUAD_STRIP: |
| 254 | #if 1 // %%PUAP%% TESTING |
| 255 | glDrawArrays( GL_LINES, 0, beginEndVertex_size ); |
| 256 | #endif |
no outgoing calls