(vertices, *, mode=gl.GL_TRIANGLE_FAN, pos=0, size=1, color=1, alpha=1)
| 307 | #---------------------------------------------------------------------------- |
| 308 | |
| 309 | def draw_shape(vertices, *, mode=gl.GL_TRIANGLE_FAN, pos=0, size=1, color=1, alpha=1): |
| 310 | assert vertices.ndim == 2 and vertices.shape[1] == 2 |
| 311 | pos = np.broadcast_to(np.asarray(pos, dtype='float32'), [2]) |
| 312 | size = np.broadcast_to(np.asarray(size, dtype='float32'), [2]) |
| 313 | color = np.broadcast_to(np.asarray(color, dtype='float32'), [3]) |
| 314 | alpha = np.clip(np.broadcast_to(np.asarray(alpha, dtype='float32'), []), 0, 1) |
| 315 | |
| 316 | gl.glPushClientAttrib(gl.GL_CLIENT_VERTEX_ARRAY_BIT) |
| 317 | gl.glPushAttrib(gl.GL_CURRENT_BIT | gl.GL_TRANSFORM_BIT) |
| 318 | gl.glMatrixMode(gl.GL_MODELVIEW) |
| 319 | gl.glPushMatrix() |
| 320 | |
| 321 | gl.glEnableClientState(gl.GL_VERTEX_ARRAY) |
| 322 | gl.glEnableClientState(gl.GL_TEXTURE_COORD_ARRAY) |
| 323 | gl.glVertexPointer(2, gl.GL_FLOAT, 0, vertices) |
| 324 | gl.glTexCoordPointer(2, gl.GL_FLOAT, 0, vertices) |
| 325 | gl.glTranslate(pos[0], pos[1], 0) |
| 326 | gl.glScale(size[0], size[1], 1) |
| 327 | gl.glColor4f(color[0] * alpha, color[1] * alpha, color[2] * alpha, alpha) |
| 328 | gl.glDrawArrays(mode, 0, vertices.shape[0]) |
| 329 | |
| 330 | gl.glPopMatrix() |
| 331 | gl.glPopAttrib() |
| 332 | gl.glPopClientAttrib() |
| 333 | |
| 334 | #---------------------------------------------------------------------------- |
| 335 |
no outgoing calls
no test coverage detected