littlejsengine 1.8.6 → 1.8.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -3
- package/build/littlejs.d.ts +18 -9
- package/build/littlejs.esm.js +298 -92
- package/build/littlejs.esm.min.js +1 -1
- package/build/littlejs.js +296 -92
- package/build/littlejs.min.js +1 -1
- package/build/littlejs.release.js +296 -92
- package/examples/breakout/game.js +3 -0
- package/examples/breakout/index.html +3 -3
- package/examples/breakoutTutorial/index.html +2 -2
- package/examples/electron/game.js +3 -0
- package/examples/electron/index.html +2 -2
- package/examples/js13k/index.html +13 -13
- package/examples/logo.png +0 -0
- package/examples/module/game.js +3 -0
- package/examples/module/index.html +1 -1
- package/examples/particles/index.html +1 -1
- package/examples/platformer/game.js +3 -0
- package/examples/platformer/gameEffects.js +1 -1
- package/examples/platformer/index.html +6 -6
- package/examples/puzzle/game.js +3 -0
- package/examples/puzzle/index.html +2 -2
- package/examples/starter/game.js +4 -1
- package/examples/starter/index.html +13 -13
- package/examples/starter/tiles.png +0 -0
- package/examples/stress/index.html +3 -1
- package/examples/typescript/game.js +2 -0
- package/examples/typescript/game.ts +3 -0
- package/examples/typescript/index.html +1 -1
- package/package.json +1 -1
- package/src/engine.js +189 -9
- package/src/engineAudio.js +72 -58
- package/src/engineDraw.js +1 -1
- package/src/engineExport.js +2 -0
- package/src/engineParticles.js +7 -7
- package/src/engineSettings.js +11 -0
- package/src/engineUtilities.js +4 -5
- package/src/engineWebGL.js +12 -12
package/src/engineUtilities.js
CHANGED
|
@@ -596,11 +596,10 @@ class Color
|
|
|
596
596
|
* @return {Number} */
|
|
597
597
|
rgbaInt()
|
|
598
598
|
{
|
|
599
|
-
const
|
|
600
|
-
const
|
|
601
|
-
const
|
|
602
|
-
const
|
|
603
|
-
const a = toByte(this.a)<<24;
|
|
599
|
+
const r = clamp(this.r)*255|0;
|
|
600
|
+
const g = clamp(this.g)*255<<8;
|
|
601
|
+
const b = clamp(this.b)*255<<16;
|
|
602
|
+
const a = clamp(this.a)*255<<24;
|
|
604
603
|
return r + g + b + a;
|
|
605
604
|
}
|
|
606
605
|
}
|
package/src/engineWebGL.js
CHANGED
|
@@ -23,7 +23,7 @@ let glCanvas;
|
|
|
23
23
|
let glContext;
|
|
24
24
|
|
|
25
25
|
// WebGL internal variables not exposed to documentation
|
|
26
|
-
let glActiveTexture, glShader, glArrayBuffer, glPositionData, glColorData, glBatchCount, glBatchAdditive, glAdditive;
|
|
26
|
+
let glActiveTexture, glShader, glArrayBuffer, glVertexData, glPositionData, glColorData, glBatchCount, glBatchAdditive, glAdditive;
|
|
27
27
|
|
|
28
28
|
///////////////////////////////////////////////////////////////////////////////
|
|
29
29
|
|
|
@@ -60,10 +60,10 @@ function glInit()
|
|
|
60
60
|
);
|
|
61
61
|
|
|
62
62
|
// init buffers
|
|
63
|
-
|
|
63
|
+
glVertexData = new ArrayBuffer(gl_VERTEX_BUFFER_SIZE);
|
|
64
|
+
glPositionData = new Float32Array(glVertexData);
|
|
65
|
+
glColorData = new Uint32Array(glVertexData);
|
|
64
66
|
glArrayBuffer = glContext.createBuffer();
|
|
65
|
-
glPositionData = new Float32Array(vertexData);
|
|
66
|
-
glColorData = new Uint32Array(vertexData);
|
|
67
67
|
glBatchCount = 0;
|
|
68
68
|
}
|
|
69
69
|
|
|
@@ -91,7 +91,7 @@ function glPreRender()
|
|
|
91
91
|
glContext.vertexAttribPointer(location, size, type, normalize, gl_VERTEX_BYTE_STRIDE, offset);
|
|
92
92
|
offset += size*typeSize;
|
|
93
93
|
}
|
|
94
|
-
initVertexAttribArray('p', gl_FLOAT, 4, 4); // position & texture
|
|
94
|
+
initVertexAttribArray('p', gl_FLOAT, 4, 4); // position & texture
|
|
95
95
|
initVertexAttribArray('c', gl_UNSIGNED_BYTE, 1, 4, 1); // color
|
|
96
96
|
initVertexAttribArray('a', gl_UNSIGNED_BYTE, 1, 4, 1); // additiveColor
|
|
97
97
|
|
|
@@ -179,6 +179,7 @@ function glCreateTexture(image)
|
|
|
179
179
|
glContext.texParameteri(gl_TEXTURE_2D, gl_TEXTURE_MAG_FILTER, filter);
|
|
180
180
|
glContext.texParameteri(gl_TEXTURE_2D, gl_TEXTURE_WRAP_S, gl_CLAMP_TO_EDGE);
|
|
181
181
|
glContext.texParameteri(gl_TEXTURE_2D, gl_TEXTURE_WRAP_T, gl_CLAMP_TO_EDGE);
|
|
182
|
+
|
|
182
183
|
return texture;
|
|
183
184
|
}
|
|
184
185
|
|
|
@@ -193,8 +194,7 @@ function glFlush()
|
|
|
193
194
|
glContext.enable(gl_BLEND);
|
|
194
195
|
|
|
195
196
|
// draw all the sprites in the batch and reset the buffer
|
|
196
|
-
glContext.bufferSubData(gl_ARRAY_BUFFER, 0,
|
|
197
|
-
glPositionData.subarray(0, glBatchCount * gl_INDICIES_PER_VERT));
|
|
197
|
+
glContext.bufferSubData(gl_ARRAY_BUFFER, 0, glVertexData);
|
|
198
198
|
glContext.drawArrays(gl_TRIANGLE_STRIP, 0, glBatchCount);
|
|
199
199
|
glBatchCount = 0;
|
|
200
200
|
glBatchAdditive = glAdditive;
|
|
@@ -249,11 +249,11 @@ function glDraw(x, y, sizeX, sizeY, angle, uv0X, uv0Y, uv1X, uv1Y, rgba, rgbaAdd
|
|
|
249
249
|
// setup 2 triangle strip quad
|
|
250
250
|
for(let i = vertCount, offset = glBatchCount * gl_INDICIES_PER_VERT; i--;)
|
|
251
251
|
{
|
|
252
|
-
|
|
253
|
-
glPositionData[offset++] = positionData[j
|
|
254
|
-
glPositionData[offset++] = positionData[j
|
|
255
|
-
glPositionData[offset++] = positionData[j
|
|
256
|
-
glPositionData[offset++] = positionData[j
|
|
252
|
+
const j = clamp(i-1, 0, 3)*4; // degenerate tri at ends
|
|
253
|
+
glPositionData[offset++] = positionData[j+0];
|
|
254
|
+
glPositionData[offset++] = positionData[j+1];
|
|
255
|
+
glPositionData[offset++] = positionData[j+2];
|
|
256
|
+
glPositionData[offset++] = positionData[j+3];
|
|
257
257
|
glColorData[offset++] = rgba;
|
|
258
258
|
glColorData[offset++] = rgbaAdditive;
|
|
259
259
|
}
|