Add a sprite to the gl draw list, used by all gl draw functions * @param {number} x * @param {number} y * @param {number} sizeX * @param {number} sizeY * @param {number} [angle] * @param {number} [uv0X] * @param {number} [uv0Y] * @param {number} [uv1X] * @param {number} [uv1Y] *
(x, y, sizeX, sizeY, angle=0, uv0X=0, uv0Y=0, uv1X=1, uv1Y=1, rgba=-1, rgbaAdditive=0)
| 555 | * @param {number} [rgbaAdditive=0] - black is 0 |
| 556 | * @memberof WebGL */ |
| 557 | function glDraw(x, y, sizeX, sizeY, angle=0, uv0X=0, uv0Y=0, uv1X=1, uv1Y=1, rgba=-1, rgbaAdditive=0) |
| 558 | { |
| 559 | // flush if there is not enough room or if different blend mode |
| 560 | if (glBatchCount >= gl_MAX_INSTANCES || glBatchAdditive !== glAdditive) |
| 561 | glFlush(); |
| 562 | glSetInstancedMode(); |
| 563 | |
| 564 | let offset = glBatchCount++ * gl_INDICES_PER_INSTANCE; |
| 565 | glPositionData[offset++] = x; |
| 566 | glPositionData[offset++] = y; |
| 567 | glPositionData[offset++] = sizeX; |
| 568 | glPositionData[offset++] = sizeY; |
| 569 | glPositionData[offset++] = uv0X; |
| 570 | glPositionData[offset++] = uv0Y; |
| 571 | glPositionData[offset++] = uv1X; |
| 572 | glPositionData[offset++] = uv1Y; |
| 573 | glColorData[offset++] = rgba; |
| 574 | glColorData[offset++] = rgbaAdditive; |
| 575 | glPositionData[offset++] = angle; |
| 576 | } |
| 577 | |
| 578 | /** Add an untextured rect to the gl draw list |
| 579 | * Zeroes the uvs and rgba so the texture contribution multiplies to 0, |
no test coverage detected