MCPcopy
hub / github.com/KilledByAPixel/LittleJS / glDraw

Function glDraw

src/engineWebGL.js:557–576  ·  view source on GitHub ↗

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)

Source from the content-addressed store, hash-verified

555 * @param {number} [rgbaAdditive=0] - black is 0
556 * @memberof WebGL */
557function 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,

Callers 3

drawTileFunction · 0.85
drawTextureWrappedFunction · 0.85
glDrawUntexturedFunction · 0.85

Calls 2

glFlushFunction · 0.85
glSetInstancedModeFunction · 0.85

Tested by

no test coverage detected