@quake2ts/engine 0.0.767 → 0.0.770
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/dist/browser/index.global.js +1 -1
- package/dist/browser/index.global.js.map +1 -1
- package/dist/cjs/index.cjs +4 -2
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/esm/index.js +4 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/render/particleSystem.d.ts +6 -0
- package/dist/types/render/particleSystem.d.ts.map +1 -1
- package/dist/types/render/webgpu/pipelines/particleSystem.d.ts +25 -9
- package/dist/types/render/webgpu/pipelines/particleSystem.d.ts.map +1 -1
- package/package.json +5 -5
|
@@ -17,6 +17,10 @@ export interface ParticleSpawnOptions {
|
|
|
17
17
|
* When true, fades alpha from 1 to 0 across the lifetime instead of remaining constant.
|
|
18
18
|
*/
|
|
19
19
|
readonly fade?: boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Texture index to use for the particle. If undefined, uses the default (0).
|
|
22
|
+
*/
|
|
23
|
+
readonly textureIndex?: number;
|
|
20
24
|
}
|
|
21
25
|
export interface ParticleSimulationOptions {
|
|
22
26
|
readonly floorZ?: number;
|
|
@@ -53,6 +57,7 @@ export declare class ParticleSystem {
|
|
|
53
57
|
private readonly bounce;
|
|
54
58
|
private readonly fade;
|
|
55
59
|
private readonly blendMode;
|
|
60
|
+
private readonly textureIndex;
|
|
56
61
|
constructor(maxParticles: number, rng: RandomGenerator);
|
|
57
62
|
spawn(options: ParticleSpawnOptions): number | null;
|
|
58
63
|
update(dt: number, options?: ParticleSimulationOptions): void;
|
|
@@ -66,6 +71,7 @@ export declare class ParticleSystem {
|
|
|
66
71
|
readonly color: readonly [number, number, number, number];
|
|
67
72
|
readonly size: number;
|
|
68
73
|
readonly blendMode: ParticleBlendMode;
|
|
74
|
+
readonly textureIndex: number;
|
|
69
75
|
};
|
|
70
76
|
buildMesh(viewRight: Vec3, viewUp: Vec3): ParticleMesh;
|
|
71
77
|
private findFreeSlot;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"particleSystem.d.ts","sourceRoot":"","sources":["../../../src/render/particleSystem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,UAAU,CAAC;AAErD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3D,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,iBAAiB,CAAC;IACvC;;OAEG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"particleSystem.d.ts","sourceRoot":"","sources":["../../../src/render/particleSystem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,UAAU,CAAC;AAErD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3D,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,iBAAiB,CAAC;IACvC;;OAEG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,UAAU,iBAAiB;IACzB,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,SAAS,iBAAiB,EAAE,CAAC;CAChD;AAID,qBAAa,cAAc;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,GAAG,EAAE,eAAe,CAAC;IAE9B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAe;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IACxC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAa;IACvC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAa;gBAE9B,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,eAAe;IAyBtD,KAAK,CAAC,OAAO,EAAE,oBAAoB,GAAG,MAAM,GAAG,IAAI;IAiCnD,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,yBAA8B,GAAG,IAAI;IA+BjE,OAAO,IAAI,IAAI;IAIf,UAAU,IAAI,MAAM;IAUpB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG;QACvB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;QACxB,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;QACxB,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;QACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAC1D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;QACtC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;KAC/B;IAqBD,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAG,YAAY;IAgFtD,OAAO,CAAC,YAAY;CAQrB;AAED,eAAO,MAAM,sBAAsB,+VAgBjC,CAAC;AAEH,eAAO,MAAM,wBAAwB,4QAYnC,CAAC;AAEH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;CACvB;AAED,qBAAa,gBAAgB;IAC3B,QAAQ,CAAC,EAAE,EAAE,sBAAsB,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAElC,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,aAAa,CAAK;gBAEd,EAAE,EAAE,sBAAsB,EAAE,MAAM,EAAE,cAAc;IAiB9D,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,MAAM,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI;IA6C5C,OAAO,IAAI,IAAI;CAMhB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC;CAC3B;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI,CAqCtE;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI,CAsCnE;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI,CAqB/D;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI,CAiBvE;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI,CAoBrE;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI,CAmB/D;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI,CAoBhE;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI,CAuB/D;AAMD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;CACpB;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,CA6D9D;AAED,MAAM,WAAW,aAAc,SAAQ,qBAAqB;IACxD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9D;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAwBxD;AAED,MAAM,WAAW,oBAAqB,SAAQ,qBAAqB;IAC/D,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9D;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAgCtE;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI,CAqCtE"}
|
|
@@ -1,25 +1,41 @@
|
|
|
1
1
|
import { ParticleSystem } from '../../particleSystem.js';
|
|
2
2
|
import { Vec3 } from '@quake2ts/shared';
|
|
3
|
+
import { Texture2D } from '../resources.js';
|
|
4
|
+
interface ParticleBatch {
|
|
5
|
+
textureIndex: number;
|
|
6
|
+
blendMode: number;
|
|
7
|
+
start: number;
|
|
8
|
+
count: number;
|
|
9
|
+
}
|
|
3
10
|
export declare class ParticleRenderer {
|
|
4
11
|
private readonly device;
|
|
5
12
|
private readonly pipelineAlpha;
|
|
6
13
|
private readonly pipelineAdditive;
|
|
7
14
|
private readonly uniformBuffer;
|
|
8
|
-
private readonly
|
|
15
|
+
private readonly bindGroupLayout0;
|
|
16
|
+
private readonly bindGroupLayout1;
|
|
17
|
+
private readonly bindGroup0;
|
|
18
|
+
private readonly defaultTexture;
|
|
19
|
+
private readonly defaultSampler;
|
|
20
|
+
private readonly defaultTextureBindGroup;
|
|
9
21
|
private positionBuffer;
|
|
10
22
|
private colorBuffer;
|
|
11
23
|
private sizeBuffer;
|
|
12
24
|
private capacity;
|
|
25
|
+
private textureBindGroups;
|
|
13
26
|
constructor(device: GPUDevice, format: GPUTextureFormat, depthStencilFormat?: GPUTextureFormat);
|
|
27
|
+
private createDefaultTexture;
|
|
28
|
+
private createBindGroupForTexture;
|
|
14
29
|
private resizeBuffers;
|
|
15
|
-
prepare(system: ParticleSystem
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
sizes: Float32Array<ArrayBuffer>;
|
|
30
|
+
prepare(system: ParticleSystem): {
|
|
31
|
+
batches: ParticleBatch[];
|
|
32
|
+
positions: Float32Array;
|
|
33
|
+
colors: Float32Array;
|
|
34
|
+
sizes: Float32Array;
|
|
21
35
|
sys: any;
|
|
22
|
-
};
|
|
23
|
-
render(passEncoder: GPURenderPassEncoder, viewProjection: Float32Array, viewRight: Vec3, viewUp: Vec3, system: ParticleSystem): void;
|
|
36
|
+
} | null;
|
|
37
|
+
render(passEncoder: GPURenderPassEncoder, viewProjection: Float32Array, viewRight: Vec3, viewUp: Vec3, system: ParticleSystem, textures?: Map<number, Texture2D>): void;
|
|
38
|
+
dispose(): void;
|
|
24
39
|
}
|
|
40
|
+
export {};
|
|
25
41
|
//# sourceMappingURL=particleSystem.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"particleSystem.d.ts","sourceRoot":"","sources":["../../../../../src/render/webgpu/pipelines/particleSystem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAgB,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"particleSystem.d.ts","sourceRoot":"","sources":["../../../../../src/render/webgpu/pipelines/particleSystem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAgB,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAExC,OAAO,EAAE,SAAS,EAAgC,MAAM,iBAAiB,CAAC;AAE1E,UAAU,aAAa;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;IACnC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoB;IAClD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAoB;IACrD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAY;IAC1C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAqB;IACtD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAqB;IACtD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAe;IAG1C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAY;IAC3C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAU;IACzC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAe;IAGvD,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,UAAU,CAAa;IAE/B,OAAO,CAAC,QAAQ,CAAK;IAGrB,OAAO,CAAC,iBAAiB,CAAmC;gBAEhD,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,kBAAkB,CAAC,EAAE,gBAAgB;IA+J9F,OAAO,CAAC,oBAAoB;IA6C5B,OAAO,CAAC,yBAAyB;IAUjC,OAAO,CAAC,aAAa;IAuBrB,OAAO,CAAC,MAAM,EAAE,cAAc,GAAG;QAC7B,OAAO,EAAE,aAAa,EAAE,CAAC;QACzB,SAAS,EAAE,YAAY,CAAC;QACxB,MAAM,EAAE,YAAY,CAAC;QACrB,KAAK,EAAE,YAAY,CAAC;QACpB,GAAG,EAAE,GAAG,CAAA;KACX,GAAG,IAAI;IAwER,MAAM,CAAC,WAAW,EAAE,oBAAoB,EAAE,cAAc,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,GAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAa;IAoD3K,OAAO;CAOR"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@quake2ts/engine",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.770",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/cjs/index.cjs",
|
|
6
6
|
"module": "./dist/esm/index.js",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
},
|
|
31
31
|
"peerDependencies": {
|
|
32
32
|
"gl-matrix": "^3.4.4",
|
|
33
|
-
"@quake2ts/shared": "0.0.
|
|
33
|
+
"@quake2ts/shared": "0.0.770"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
36
|
"@wasm-audio-decoders/ogg-vorbis": "^0.1.20"
|
|
@@ -47,9 +47,9 @@
|
|
|
47
47
|
"tsup": "^8.1.0",
|
|
48
48
|
"vitest": "^1.5.3",
|
|
49
49
|
"webgpu": "^0.3.8",
|
|
50
|
-
"@quake2ts/
|
|
51
|
-
"@quake2ts/
|
|
52
|
-
"@quake2ts/
|
|
50
|
+
"@quake2ts/game": "0.0.770",
|
|
51
|
+
"@quake2ts/test-utils": "^0.0.770",
|
|
52
|
+
"@quake2ts/shared": "0.0.770"
|
|
53
53
|
},
|
|
54
54
|
"scripts": {
|
|
55
55
|
"build": "pnpm run build:types && pnpm run build:bundles",
|