@quake2ts/engine 0.0.1
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 +617 -0
- package/dist/browser/index.global.js.map +1 -0
- package/dist/cjs/index.cjs +17604 -0
- package/dist/cjs/index.cjs.map +1 -0
- package/dist/esm/index.js +17373 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/types/assets/animation.d.ts +33 -0
- package/dist/types/assets/animation.d.ts.map +1 -0
- package/dist/types/assets/audio.d.ts +27 -0
- package/dist/types/assets/audio.d.ts.map +1 -0
- package/dist/types/assets/audio.worker.d.ts +2 -0
- package/dist/types/assets/audio.worker.d.ts.map +1 -0
- package/dist/types/assets/browserIngestion.d.ts +7 -0
- package/dist/types/assets/browserIngestion.d.ts.map +1 -0
- package/dist/types/assets/bsp.d.ts +197 -0
- package/dist/types/assets/bsp.d.ts.map +1 -0
- package/dist/types/assets/bsp.worker.d.ts +2 -0
- package/dist/types/assets/bsp.worker.d.ts.map +1 -0
- package/dist/types/assets/cache.d.ts +26 -0
- package/dist/types/assets/cache.d.ts.map +1 -0
- package/dist/types/assets/crossReference.d.ts +35 -0
- package/dist/types/assets/crossReference.d.ts.map +1 -0
- package/dist/types/assets/ent.d.ts +31 -0
- package/dist/types/assets/ent.d.ts.map +1 -0
- package/dist/types/assets/fileType.d.ts +18 -0
- package/dist/types/assets/fileType.d.ts.map +1 -0
- package/dist/types/assets/headlessLoader.d.ts +11 -0
- package/dist/types/assets/headlessLoader.d.ts.map +1 -0
- package/dist/types/assets/index.d.ts +30 -0
- package/dist/types/assets/index.d.ts.map +1 -0
- package/dist/types/assets/ingestion.d.ts +62 -0
- package/dist/types/assets/ingestion.d.ts.map +1 -0
- package/dist/types/assets/interactionGraph.d.ts +21 -0
- package/dist/types/assets/interactionGraph.d.ts.map +1 -0
- package/dist/types/assets/manager.d.ts +97 -0
- package/dist/types/assets/manager.d.ts.map +1 -0
- package/dist/types/assets/mapStatistics.d.ts +20 -0
- package/dist/types/assets/mapStatistics.d.ts.map +1 -0
- package/dist/types/assets/md2.d.ts +82 -0
- package/dist/types/assets/md2.d.ts.map +1 -0
- package/dist/types/assets/md3.d.ts +72 -0
- package/dist/types/assets/md3.d.ts.map +1 -0
- package/dist/types/assets/ogg.d.ts +12 -0
- package/dist/types/assets/ogg.d.ts.map +1 -0
- package/dist/types/assets/pak.d.ts +32 -0
- package/dist/types/assets/pak.d.ts.map +1 -0
- package/dist/types/assets/pakIndexStore.d.ts +19 -0
- package/dist/types/assets/pakIndexStore.d.ts.map +1 -0
- package/dist/types/assets/pakValidation.d.ts +28 -0
- package/dist/types/assets/pakValidation.d.ts.map +1 -0
- package/dist/types/assets/pakWriter.d.ts +27 -0
- package/dist/types/assets/pakWriter.d.ts.map +1 -0
- package/dist/types/assets/pcx.d.ts +13 -0
- package/dist/types/assets/pcx.d.ts.map +1 -0
- package/dist/types/assets/preview.d.ts +15 -0
- package/dist/types/assets/preview.d.ts.map +1 -0
- package/dist/types/assets/resourceTracker.d.ts +33 -0
- package/dist/types/assets/resourceTracker.d.ts.map +1 -0
- package/dist/types/assets/sprite.d.ts +23 -0
- package/dist/types/assets/sprite.d.ts.map +1 -0
- package/dist/types/assets/streamer.d.ts +17 -0
- package/dist/types/assets/streamer.d.ts.map +1 -0
- package/dist/types/assets/streamingPak.d.ts +28 -0
- package/dist/types/assets/streamingPak.d.ts.map +1 -0
- package/dist/types/assets/texture.d.ts +37 -0
- package/dist/types/assets/texture.d.ts.map +1 -0
- package/dist/types/assets/tga.d.ts +15 -0
- package/dist/types/assets/tga.d.ts.map +1 -0
- package/dist/types/assets/vfs.d.ts +57 -0
- package/dist/types/assets/vfs.d.ts.map +1 -0
- package/dist/types/assets/visibilityAnalyzer.d.ts +28 -0
- package/dist/types/assets/visibilityAnalyzer.d.ts.map +1 -0
- package/dist/types/assets/wal.d.ts +21 -0
- package/dist/types/assets/wal.d.ts.map +1 -0
- package/dist/types/assets/wav.d.ts +11 -0
- package/dist/types/assets/wav.d.ts.map +1 -0
- package/dist/types/audio/ambient.d.ts +22 -0
- package/dist/types/audio/ambient.d.ts.map +1 -0
- package/dist/types/audio/api.d.ts +37 -0
- package/dist/types/audio/api.d.ts.map +1 -0
- package/dist/types/audio/channels.d.ts +15 -0
- package/dist/types/audio/channels.d.ts.map +1 -0
- package/dist/types/audio/constants.d.ts +2 -0
- package/dist/types/audio/constants.d.ts.map +1 -0
- package/dist/types/audio/context.d.ts +79 -0
- package/dist/types/audio/context.d.ts.map +1 -0
- package/dist/types/audio/music.d.ts +49 -0
- package/dist/types/audio/music.d.ts.map +1 -0
- package/dist/types/audio/occlusion.d.ts +15 -0
- package/dist/types/audio/occlusion.d.ts.map +1 -0
- package/dist/types/audio/precache.d.ts +28 -0
- package/dist/types/audio/precache.d.ts.map +1 -0
- package/dist/types/audio/registry.d.ts +14 -0
- package/dist/types/audio/registry.d.ts.map +1 -0
- package/dist/types/audio/reverb.d.ts +17 -0
- package/dist/types/audio/reverb.d.ts.map +1 -0
- package/dist/types/audio/room.d.ts +5 -0
- package/dist/types/audio/room.d.ts.map +1 -0
- package/dist/types/audio/system.d.ts +112 -0
- package/dist/types/audio/system.d.ts.map +1 -0
- package/dist/types/cli/demoOptimizer.d.ts +10 -0
- package/dist/types/cli/demoOptimizer.d.ts.map +1 -0
- package/dist/types/commands.d.ts +27 -0
- package/dist/types/commands.d.ts.map +1 -0
- package/dist/types/configstrings.d.ts +36 -0
- package/dist/types/configstrings.d.ts.map +1 -0
- package/dist/types/cvars.d.ts +58 -0
- package/dist/types/cvars.d.ts.map +1 -0
- package/dist/types/demo/analysis.d.ts +83 -0
- package/dist/types/demo/analysis.d.ts.map +1 -0
- package/dist/types/demo/analyzer.d.ts +33 -0
- package/dist/types/demo/analyzer.d.ts.map +1 -0
- package/dist/types/demo/api.d.ts +40 -0
- package/dist/types/demo/api.d.ts.map +1 -0
- package/dist/types/demo/asyncParser.d.ts +15 -0
- package/dist/types/demo/asyncParser.d.ts.map +1 -0
- package/dist/types/demo/camera.d.ts +17 -0
- package/dist/types/demo/camera.d.ts.map +1 -0
- package/dist/types/demo/clipper.d.ts +34 -0
- package/dist/types/demo/clipper.d.ts.map +1 -0
- package/dist/types/demo/delta.d.ts +3 -0
- package/dist/types/demo/delta.d.ts.map +1 -0
- package/dist/types/demo/demo.worker.d.ts +126 -0
- package/dist/types/demo/demo.worker.d.ts.map +1 -0
- package/dist/types/demo/demoReader.d.ts +62 -0
- package/dist/types/demo/demoReader.d.ts.map +1 -0
- package/dist/types/demo/demoRecorder.d.ts +15 -0
- package/dist/types/demo/demoRecorder.d.ts.map +1 -0
- package/dist/types/demo/demoStream.d.ts +39 -0
- package/dist/types/demo/demoStream.d.ts.map +1 -0
- package/dist/types/demo/demoWriter.d.ts +8 -0
- package/dist/types/demo/demoWriter.d.ts.map +1 -0
- package/dist/types/demo/index.d.ts +6 -0
- package/dist/types/demo/index.d.ts.map +1 -0
- package/dist/types/demo/message.d.ts +178 -0
- package/dist/types/demo/message.d.ts.map +1 -0
- package/dist/types/demo/optimalClipFinder.d.ts +35 -0
- package/dist/types/demo/optimalClipFinder.d.ts.map +1 -0
- package/dist/types/demo/packager.d.ts +46 -0
- package/dist/types/demo/packager.d.ts.map +1 -0
- package/dist/types/demo/parser.d.ts +222 -0
- package/dist/types/demo/parser.d.ts.map +1 -0
- package/dist/types/demo/playback.d.ts +135 -0
- package/dist/types/demo/playback.d.ts.map +1 -0
- package/dist/types/demo/reader.d.ts +15 -0
- package/dist/types/demo/reader.d.ts.map +1 -0
- package/dist/types/demo/recorder.d.ts +14 -0
- package/dist/types/demo/recorder.d.ts.map +1 -0
- package/dist/types/demo/types.d.ts +37 -0
- package/dist/types/demo/types.d.ts.map +1 -0
- package/dist/types/demo/validator.d.ts +13 -0
- package/dist/types/demo/validator.d.ts.map +1 -0
- package/dist/types/demo/worldStateOptimizer.d.ts +13 -0
- package/dist/types/demo/worldStateOptimizer.d.ts.map +1 -0
- package/dist/types/demo/writer.d.ts +28 -0
- package/dist/types/demo/writer.d.ts.map +1 -0
- package/dist/types/editor/bsp-inspector.d.ts +39 -0
- package/dist/types/editor/bsp-inspector.d.ts.map +1 -0
- package/dist/types/editor/ent.d.ts +21 -0
- package/dist/types/editor/ent.d.ts.map +1 -0
- package/dist/types/host.d.ts +52 -0
- package/dist/types/host.d.ts.map +1 -0
- package/dist/types/index.d.ts +104 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/loop.d.ts +40 -0
- package/dist/types/loop.d.ts.map +1 -0
- package/dist/types/network/clientConnection.d.ts +139 -0
- package/dist/types/network/clientConnection.d.ts.map +1 -0
- package/dist/types/render/__mocks__/frame.d.ts +31 -0
- package/dist/types/render/__mocks__/frame.d.ts.map +1 -0
- package/dist/types/render/bloom.d.ts +19 -0
- package/dist/types/render/bloom.d.ts.map +1 -0
- package/dist/types/render/bsp/generator.d.ts +25 -0
- package/dist/types/render/bsp/generator.d.ts.map +1 -0
- package/dist/types/render/bsp/geometry.d.ts +37 -0
- package/dist/types/render/bsp/geometry.d.ts.map +1 -0
- package/dist/types/render/bsp/renderer.d.ts +12 -0
- package/dist/types/render/bsp/renderer.d.ts.map +1 -0
- package/dist/types/render/bsp/surface.d.ts +4 -0
- package/dist/types/render/bsp/surface.d.ts.map +1 -0
- package/dist/types/render/bsp.d.ts +66 -0
- package/dist/types/render/bsp.d.ts.map +1 -0
- package/dist/types/render/bspPipeline.d.ts +78 -0
- package/dist/types/render/bspPipeline.d.ts.map +1 -0
- package/dist/types/render/bspTraversal.d.ts +13 -0
- package/dist/types/render/bspTraversal.d.ts.map +1 -0
- package/dist/types/render/camera.d.ts +54 -0
- package/dist/types/render/camera.d.ts.map +1 -0
- package/dist/types/render/cameraController.d.ts +28 -0
- package/dist/types/render/cameraController.d.ts.map +1 -0
- package/dist/types/render/collisionVis.d.ts +54 -0
- package/dist/types/render/collisionVis.d.ts.map +1 -0
- package/dist/types/render/colors.d.ts +6 -0
- package/dist/types/render/colors.d.ts.map +1 -0
- package/dist/types/render/context.d.ts +36 -0
- package/dist/types/render/context.d.ts.map +1 -0
- package/dist/types/render/culling.d.ts +12 -0
- package/dist/types/render/culling.d.ts.map +1 -0
- package/dist/types/render/debug.d.ts +36 -0
- package/dist/types/render/debug.d.ts.map +1 -0
- package/dist/types/render/debugMode.d.ts +10 -0
- package/dist/types/render/debugMode.d.ts.map +1 -0
- package/dist/types/render/dlight.d.ts +43 -0
- package/dist/types/render/dlight.d.ts.map +1 -0
- package/dist/types/render/frame.d.ts +78 -0
- package/dist/types/render/frame.d.ts.map +1 -0
- package/dist/types/render/geometry.d.ts +2 -0
- package/dist/types/render/geometry.d.ts.map +1 -0
- package/dist/types/render/gizmo.d.ts +32 -0
- package/dist/types/render/gizmo.d.ts.map +1 -0
- package/dist/types/render/gpuProfiler.d.ts +59 -0
- package/dist/types/render/gpuProfiler.d.ts.map +1 -0
- package/dist/types/render/instancing.d.ts +12 -0
- package/dist/types/render/instancing.d.ts.map +1 -0
- package/dist/types/render/interface.d.ts +50 -0
- package/dist/types/render/interface.d.ts.map +1 -0
- package/dist/types/render/light.d.ts +10 -0
- package/dist/types/render/light.d.ts.map +1 -0
- package/dist/types/render/lightCulling.d.ts +17 -0
- package/dist/types/render/lightCulling.d.ts.map +1 -0
- package/dist/types/render/lightStyles.d.ts +10 -0
- package/dist/types/render/lightStyles.d.ts.map +1 -0
- package/dist/types/render/materialLoader.d.ts +5 -0
- package/dist/types/render/materialLoader.d.ts.map +1 -0
- package/dist/types/render/materials.d.ts +39 -0
- package/dist/types/render/materials.d.ts.map +1 -0
- package/dist/types/render/md2Pipeline.d.ts +74 -0
- package/dist/types/render/md2Pipeline.d.ts.map +1 -0
- package/dist/types/render/md3Pipeline.d.ts +94 -0
- package/dist/types/render/md3Pipeline.d.ts.map +1 -0
- package/dist/types/render/options.d.ts +9 -0
- package/dist/types/render/options.d.ts.map +1 -0
- package/dist/types/render/particleSystem.d.ts +125 -0
- package/dist/types/render/particleSystem.d.ts.map +1 -0
- package/dist/types/render/postprocessing/pipeline.d.ts +13 -0
- package/dist/types/render/postprocessing/pipeline.d.ts.map +1 -0
- package/dist/types/render/renderer.d.ts +8 -0
- package/dist/types/render/renderer.d.ts.map +1 -0
- package/dist/types/render/resources.d.ts +69 -0
- package/dist/types/render/resources.d.ts.map +1 -0
- package/dist/types/render/scene.d.ts +31 -0
- package/dist/types/render/scene.d.ts.map +1 -0
- package/dist/types/render/shaderProgram.d.ts +19 -0
- package/dist/types/render/shaderProgram.d.ts.map +1 -0
- package/dist/types/render/skybox.d.ts +28 -0
- package/dist/types/render/skybox.d.ts.map +1 -0
- package/dist/types/render/sprite.d.ts +21 -0
- package/dist/types/render/sprite.d.ts.map +1 -0
- package/dist/types/render/types.d.ts +29 -0
- package/dist/types/render/types.d.ts.map +1 -0
- package/dist/types/render/webgpu/constants.d.ts +29 -0
- package/dist/types/render/webgpu/constants.d.ts.map +1 -0
- package/dist/types/render/webgpu/context.d.ts +41 -0
- package/dist/types/render/webgpu/context.d.ts.map +1 -0
- package/dist/types/render/webgpu/frame.d.ts +58 -0
- package/dist/types/render/webgpu/frame.d.ts.map +1 -0
- package/dist/types/render/webgpu/headless.d.ts +9 -0
- package/dist/types/render/webgpu/headless.d.ts.map +1 -0
- package/dist/types/render/webgpu/pipelines/sprite.d.ts +31 -0
- package/dist/types/render/webgpu/pipelines/sprite.d.ts.map +1 -0
- package/dist/types/render/webgpu/renderer.d.ts +30 -0
- package/dist/types/render/webgpu/renderer.d.ts.map +1 -0
- package/dist/types/render/webgpu/resources.d.ts +240 -0
- package/dist/types/render/webgpu/resources.d.ts.map +1 -0
- package/dist/types/render/webgpu/shaders/mipmapShader.d.ts +2 -0
- package/dist/types/render/webgpu/shaders/mipmapShader.d.ts.map +1 -0
- package/dist/types/render/webgpu/shaders/spriteShader.d.ts +2 -0
- package/dist/types/render/webgpu/shaders/spriteShader.d.ts.map +1 -0
- package/dist/types/runtime.d.ts +19 -0
- package/dist/types/runtime.d.ts.map +1 -0
- package/dist/types/stream/streamingBuffer.d.ts +102 -0
- package/dist/types/stream/streamingBuffer.d.ts.map +1 -0
- package/dist/types/tools/lightmapExport.d.ts +17 -0
- package/dist/types/tools/lightmapExport.d.ts.map +1 -0
- package/package.json +56 -0
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
export interface ResourceTracker {
|
|
2
|
+
trackBuffer(buffer: GPUBufferResource): void;
|
|
3
|
+
trackTexture(texture: Texture2D | TextureCubeMap): void;
|
|
4
|
+
untrackBuffer(buffer: GPUBufferResource): void;
|
|
5
|
+
untrackTexture(texture: Texture2D | TextureCubeMap): void;
|
|
6
|
+
}
|
|
7
|
+
export declare class GPUResourceTracker implements ResourceTracker {
|
|
8
|
+
private _totalBufferMemory;
|
|
9
|
+
private _totalTextureMemory;
|
|
10
|
+
private _bufferCount;
|
|
11
|
+
private _textureCount;
|
|
12
|
+
trackBuffer(buffer: GPUBufferResource): void;
|
|
13
|
+
trackTexture(texture: Texture2D | TextureCubeMap): void;
|
|
14
|
+
untrackBuffer(buffer: GPUBufferResource): void;
|
|
15
|
+
untrackTexture(texture: Texture2D | TextureCubeMap): void;
|
|
16
|
+
get totalBufferMemory(): number;
|
|
17
|
+
get totalTextureMemory(): number;
|
|
18
|
+
get bufferCount(): number;
|
|
19
|
+
get textureCount(): number;
|
|
20
|
+
reset(): void;
|
|
21
|
+
}
|
|
22
|
+
export declare function setResourceTracker(tracker: ResourceTracker): void;
|
|
23
|
+
export declare function getResourceTracker(): ResourceTracker | undefined;
|
|
24
|
+
export declare class GPUBufferResource {
|
|
25
|
+
protected readonly device: GPUDevice;
|
|
26
|
+
readonly buffer: GPUBuffer;
|
|
27
|
+
readonly size: number;
|
|
28
|
+
readonly usage: GPUBufferUsageFlags;
|
|
29
|
+
constructor(device: GPUDevice, descriptor: {
|
|
30
|
+
size: number;
|
|
31
|
+
usage: GPUBufferUsageFlags;
|
|
32
|
+
label?: string;
|
|
33
|
+
mappedAtCreation?: boolean;
|
|
34
|
+
});
|
|
35
|
+
write(data: BufferSource, offset?: number): void;
|
|
36
|
+
mapAsync(mode: GPUMapModeFlags, offset?: number, size?: number): Promise<void>;
|
|
37
|
+
getMappedRange(offset?: number, size?: number): ArrayBuffer;
|
|
38
|
+
unmap(): void;
|
|
39
|
+
destroy(): void;
|
|
40
|
+
}
|
|
41
|
+
export declare class VertexBuffer extends GPUBufferResource {
|
|
42
|
+
constructor(device: GPUDevice, descriptor: {
|
|
43
|
+
size: number;
|
|
44
|
+
label?: string;
|
|
45
|
+
usage?: GPUBufferUsageFlags;
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
export declare class IndexBuffer extends GPUBufferResource {
|
|
49
|
+
constructor(device: GPUDevice, descriptor: {
|
|
50
|
+
size: number;
|
|
51
|
+
label?: string;
|
|
52
|
+
usage?: GPUBufferUsageFlags;
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
export declare class UniformBuffer extends GPUBufferResource {
|
|
56
|
+
constructor(device: GPUDevice, descriptor: {
|
|
57
|
+
size: number;
|
|
58
|
+
label?: string;
|
|
59
|
+
usage?: GPUBufferUsageFlags;
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
export declare class StorageBuffer extends GPUBufferResource {
|
|
63
|
+
constructor(device: GPUDevice, descriptor: {
|
|
64
|
+
size: number;
|
|
65
|
+
label?: string;
|
|
66
|
+
usage?: GPUBufferUsageFlags;
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
export interface TextureUploadOptions {
|
|
70
|
+
width?: number;
|
|
71
|
+
height?: number;
|
|
72
|
+
depthOrArrayLayers?: number;
|
|
73
|
+
mipLevel?: number;
|
|
74
|
+
bytesPerRow?: number;
|
|
75
|
+
rowsPerImage?: number;
|
|
76
|
+
}
|
|
77
|
+
export declare class Texture2D {
|
|
78
|
+
protected readonly device: GPUDevice;
|
|
79
|
+
readonly texture: GPUTexture;
|
|
80
|
+
readonly width: number;
|
|
81
|
+
readonly height: number;
|
|
82
|
+
readonly format: GPUTextureFormat;
|
|
83
|
+
private static mipmapPipelines;
|
|
84
|
+
private static mipmapSamplers;
|
|
85
|
+
constructor(device: GPUDevice, descriptor: {
|
|
86
|
+
width: number;
|
|
87
|
+
height: number;
|
|
88
|
+
format: GPUTextureFormat;
|
|
89
|
+
usage?: GPUTextureUsageFlags;
|
|
90
|
+
mipLevelCount?: number;
|
|
91
|
+
label?: string;
|
|
92
|
+
});
|
|
93
|
+
upload(data: BufferSource, options?: TextureUploadOptions): void;
|
|
94
|
+
private getMipmapPipeline;
|
|
95
|
+
private getMipmapSampler;
|
|
96
|
+
generateMipmaps(commandEncoder: GPUCommandEncoder): void;
|
|
97
|
+
createView(descriptor?: GPUTextureViewDescriptor): GPUTextureView;
|
|
98
|
+
destroy(): void;
|
|
99
|
+
get memorySize(): number;
|
|
100
|
+
}
|
|
101
|
+
export declare class TextureCubeMap {
|
|
102
|
+
protected readonly device: GPUDevice;
|
|
103
|
+
readonly texture: GPUTexture;
|
|
104
|
+
readonly size: number;
|
|
105
|
+
readonly format: GPUTextureFormat;
|
|
106
|
+
constructor(device: GPUDevice, descriptor: {
|
|
107
|
+
size: number;
|
|
108
|
+
format: GPUTextureFormat;
|
|
109
|
+
usage?: GPUTextureUsageFlags;
|
|
110
|
+
mipLevelCount?: number;
|
|
111
|
+
label?: string;
|
|
112
|
+
});
|
|
113
|
+
uploadFace(face: number, data: BufferSource, mipLevel?: number): void;
|
|
114
|
+
createView(): GPUTextureView;
|
|
115
|
+
destroy(): void;
|
|
116
|
+
get memorySize(): number;
|
|
117
|
+
}
|
|
118
|
+
export interface SamplerDescriptor {
|
|
119
|
+
minFilter?: GPUFilterMode;
|
|
120
|
+
magFilter?: GPUFilterMode;
|
|
121
|
+
mipmapFilter?: GPUMipmapFilterMode;
|
|
122
|
+
addressModeU?: GPUAddressMode;
|
|
123
|
+
addressModeV?: GPUAddressMode;
|
|
124
|
+
addressModeW?: GPUAddressMode;
|
|
125
|
+
maxAnisotropy?: number;
|
|
126
|
+
compare?: GPUCompareFunction;
|
|
127
|
+
label?: string;
|
|
128
|
+
}
|
|
129
|
+
export declare class Sampler {
|
|
130
|
+
readonly sampler: GPUSampler;
|
|
131
|
+
constructor(device: GPUDevice, descriptor: SamplerDescriptor);
|
|
132
|
+
destroy(): void;
|
|
133
|
+
}
|
|
134
|
+
export declare function createLinearSampler(device: GPUDevice): Sampler;
|
|
135
|
+
export declare function createNearestSampler(device: GPUDevice): Sampler;
|
|
136
|
+
export declare function createClampSampler(device: GPUDevice): Sampler;
|
|
137
|
+
export declare function createRepeatSampler(device: GPUDevice): Sampler;
|
|
138
|
+
export declare class ShaderModule {
|
|
139
|
+
protected readonly device: GPUDevice;
|
|
140
|
+
readonly module: GPUShaderModule;
|
|
141
|
+
constructor(device: GPUDevice, descriptor: {
|
|
142
|
+
code: string;
|
|
143
|
+
label?: string;
|
|
144
|
+
});
|
|
145
|
+
get compilationInfo(): Promise<GPUCompilationInfo>;
|
|
146
|
+
}
|
|
147
|
+
export interface PipelineDescriptor {
|
|
148
|
+
vertex: {
|
|
149
|
+
module: ShaderModule;
|
|
150
|
+
entryPoint: string;
|
|
151
|
+
buffers: GPUVertexBufferLayout[];
|
|
152
|
+
};
|
|
153
|
+
fragment?: {
|
|
154
|
+
module: ShaderModule;
|
|
155
|
+
entryPoint: string;
|
|
156
|
+
targets: GPUColorTargetState[];
|
|
157
|
+
};
|
|
158
|
+
primitive?: GPUPrimitiveState;
|
|
159
|
+
depthStencil?: GPUDepthStencilState;
|
|
160
|
+
multisample?: GPUMultisampleState;
|
|
161
|
+
layout: GPUPipelineLayout | 'auto';
|
|
162
|
+
label?: string;
|
|
163
|
+
}
|
|
164
|
+
export declare class RenderPipeline {
|
|
165
|
+
protected readonly device: GPUDevice;
|
|
166
|
+
readonly pipeline: GPURenderPipeline;
|
|
167
|
+
constructor(device: GPUDevice, descriptor: PipelineDescriptor);
|
|
168
|
+
get layout(): GPUPipelineLayout;
|
|
169
|
+
destroy(): void;
|
|
170
|
+
}
|
|
171
|
+
export declare class ComputePipeline {
|
|
172
|
+
protected readonly device: GPUDevice;
|
|
173
|
+
readonly pipeline: GPUComputePipeline;
|
|
174
|
+
constructor(device: GPUDevice, descriptor: {
|
|
175
|
+
compute: {
|
|
176
|
+
module: ShaderModule;
|
|
177
|
+
entryPoint: string;
|
|
178
|
+
};
|
|
179
|
+
layout: GPUPipelineLayout | 'auto';
|
|
180
|
+
label?: string;
|
|
181
|
+
});
|
|
182
|
+
get layout(): GPUPipelineLayout;
|
|
183
|
+
destroy(): void;
|
|
184
|
+
}
|
|
185
|
+
export interface BindGroupLayoutDescriptor {
|
|
186
|
+
entries: {
|
|
187
|
+
binding: number;
|
|
188
|
+
visibility: GPUShaderStageFlags;
|
|
189
|
+
buffer?: GPUBufferBindingLayout;
|
|
190
|
+
texture?: GPUTextureBindingLayout;
|
|
191
|
+
sampler?: GPUSamplerBindingLayout;
|
|
192
|
+
storageTexture?: GPUStorageTextureBindingLayout;
|
|
193
|
+
}[];
|
|
194
|
+
label?: string;
|
|
195
|
+
}
|
|
196
|
+
export declare class BindGroupLayout {
|
|
197
|
+
protected readonly device: GPUDevice;
|
|
198
|
+
readonly layout: GPUBindGroupLayout;
|
|
199
|
+
constructor(device: GPUDevice, descriptor: BindGroupLayoutDescriptor);
|
|
200
|
+
}
|
|
201
|
+
export interface BindGroupEntry {
|
|
202
|
+
binding: number;
|
|
203
|
+
resource: GPUBufferResource | GPUTextureView | Sampler | GPUBindingResource;
|
|
204
|
+
}
|
|
205
|
+
export declare class BindGroup {
|
|
206
|
+
protected readonly device: GPUDevice;
|
|
207
|
+
readonly bindGroup: GPUBindGroup;
|
|
208
|
+
constructor(device: GPUDevice, layout: BindGroupLayout, entries: BindGroupEntry[], label?: string);
|
|
209
|
+
destroy(): void;
|
|
210
|
+
}
|
|
211
|
+
export declare class BindGroupBuilder {
|
|
212
|
+
private label?;
|
|
213
|
+
private entries;
|
|
214
|
+
constructor(label?: string | undefined);
|
|
215
|
+
addUniformBuffer(binding: number, visibility: GPUShaderStageFlags): this;
|
|
216
|
+
addStorageBuffer(binding: number, visibility: GPUShaderStageFlags, type?: GPUBufferBindingType): this;
|
|
217
|
+
addTexture(binding: number, visibility: GPUShaderStageFlags, sampleType?: GPUTextureSampleType, viewDimension?: GPUTextureViewDimension): this;
|
|
218
|
+
addSampler(binding: number, visibility: GPUShaderStageFlags, type?: GPUSamplerBindingType): this;
|
|
219
|
+
build(device: GPUDevice): BindGroupLayout;
|
|
220
|
+
}
|
|
221
|
+
export declare class RenderPassDescriptorBuilder {
|
|
222
|
+
private descriptor;
|
|
223
|
+
constructor();
|
|
224
|
+
setColorAttachment(index: number, view: GPUTextureView, options?: {
|
|
225
|
+
loadOp?: GPULoadOp;
|
|
226
|
+
storeOp?: GPUStoreOp;
|
|
227
|
+
clearValue?: GPUColor;
|
|
228
|
+
}): this;
|
|
229
|
+
setDepthStencilAttachment(view: GPUTextureView, options?: {
|
|
230
|
+
depthLoadOp?: GPULoadOp;
|
|
231
|
+
depthStoreOp?: GPUStoreOp;
|
|
232
|
+
depthClearValue?: number;
|
|
233
|
+
stencilLoadOp?: GPULoadOp;
|
|
234
|
+
stencilStoreOp?: GPUStoreOp;
|
|
235
|
+
stencilClearValue?: number;
|
|
236
|
+
}): this;
|
|
237
|
+
build(): GPURenderPassDescriptor;
|
|
238
|
+
}
|
|
239
|
+
export declare function createRenderPassDescriptor(): RenderPassDescriptorBuilder;
|
|
240
|
+
//# sourceMappingURL=resources.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../../../src/render/webgpu/resources.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export declare const MIPMAP_SHADER = "\nstruct VSOutput {\n @builtin(position) position: vec4f,\n @location(0) texcoord: vec2f,\n};\n\n@vertex\nfn vs_main(@builtin(vertex_index) vertexIndex : u32) -> VSOutput {\n var pos = array<vec2f, 6>(\n vec2f(-1.0, -1.0), vec2f(1.0, -1.0), vec2f(-1.0, 1.0),\n vec2f(-1.0, 1.0), vec2f(1.0, -1.0), vec2f(1.0, 1.0)\n );\n\n var output: VSOutput;\n output.position = vec4f(pos[vertexIndex], 0.0, 1.0);\n // Remap from [-1, 1] to [0, 1] for texcoord, Y is flipped in WebGPU clip space vs texture UV\n // Clip space: (-1,-1) is bottom-left. UV: (0,0) is top-left usually?\n // Wait, WebGPU clip space Y is up. UV (0,0) is top-left.\n // Quad vertices are full screen.\n output.texcoord = pos[vertexIndex] * vec2f(0.5, -0.5) + vec2f(0.5, 0.5);\n return output;\n}\n\n@group(0) @binding(0) var imgSampler: sampler;\n@group(0) @binding(1) var img: texture_2d<f32>;\n\n@fragment\nfn fs_main(in: VSOutput) -> @location(0) vec4f {\n return textureSample(img, imgSampler, in.texcoord);\n}\n";
|
|
2
|
+
//# sourceMappingURL=mipmapShader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mipmapShader.d.ts","sourceRoot":"","sources":["../../../../../src/render/webgpu/shaders/mipmapShader.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,0+BA8BzB,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export declare const SPRITE_SHADER = "\n// Sprite Rendering Shader (WGSL)\n\nstruct VertexInput {\n @location(0) position: vec2f,\n @location(1) texcoord: vec2f,\n @location(2) color: vec4f,\n}\n\nstruct VertexOutput {\n @builtin(position) position: vec4f,\n @location(0) texcoord: vec2f,\n @location(1) color: vec4f,\n}\n\nstruct Uniforms {\n projection: mat4x4f,\n}\n\n@group(0) @binding(0) var<uniform> uniforms: Uniforms;\n\n@vertex\nfn vs_main(input: VertexInput) -> VertexOutput {\n var output: VertexOutput;\n // Orthographic projection: Input is screen coords (pixels), Z is 0.0, W is 1.0\n output.position = uniforms.projection * vec4f(input.position, 0.0, 1.0);\n output.texcoord = input.texcoord;\n output.color = input.color;\n return output;\n}\n\n@group(1) @binding(0) var texSampler: sampler;\n@group(1) @binding(1) var tex: texture_2d<f32>;\n\n@fragment\nfn fs_main(input: VertexOutput) -> @location(0) vec4f {\n let texColor = textureSample(tex, texSampler, input.texcoord);\n return texColor * input.color;\n}\n\n@fragment\nfn fs_solid(input: VertexOutput) -> @location(0) vec4f {\n return input.color;\n}\n";
|
|
2
|
+
//# sourceMappingURL=spriteShader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spriteShader.d.ts","sourceRoot":"","sources":["../../../../../src/render/webgpu/shaders/spriteShader.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,olCA4CzB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { EngineExports } from './index.js';
|
|
2
|
+
import { EngineHost, type ClientRenderer, type EngineHostOptions, type GameFrameResult, type GameSimulation } from './host.js';
|
|
3
|
+
export declare class EngineRuntime<FrameState = unknown> {
|
|
4
|
+
private readonly engine;
|
|
5
|
+
private readonly host;
|
|
6
|
+
private started;
|
|
7
|
+
constructor(engine: EngineExports, host: EngineHost<FrameState>);
|
|
8
|
+
start(): void;
|
|
9
|
+
stop(): void;
|
|
10
|
+
pump(elapsedMs: number): void;
|
|
11
|
+
getLatestFrame(): GameFrameResult<FrameState> | undefined;
|
|
12
|
+
isRunning(): boolean;
|
|
13
|
+
}
|
|
14
|
+
import { AudioApi, AudioApiOptions, SubtitleClient } from './audio/api.js';
|
|
15
|
+
export declare function createEngineRuntime<FrameState = unknown>(engine: EngineExports, game: GameSimulation<FrameState>, client: ClientRenderer<FrameState> & SubtitleClient, audioOptions: AudioApiOptions, options?: EngineHostOptions): {
|
|
16
|
+
runtime: EngineRuntime<FrameState>;
|
|
17
|
+
audio: AudioApi;
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,KAAK,cAAc,EAAE,KAAK,iBAAiB,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,WAAW,CAAC;AAE/H,qBAAa,aAAa,CAAC,UAAU,GAAG,OAAO;IAGjC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAAiB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFzE,OAAO,CAAC,OAAO,CAAS;gBAEK,MAAM,EAAE,aAAa,EAAmB,IAAI,EAAE,UAAU,CAAC,UAAU,CAAC;IAEjG,KAAK,IAAI,IAAI;IAOb,IAAI,IAAI,IAAI;IAOZ,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAI7B,cAAc,IAAI,eAAe,CAAC,UAAU,CAAC,GAAG,SAAS;IAIzD,SAAS,IAAI,OAAO;CAGrB;AAED,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAE3E,wBAAgB,mBAAmB,CAAC,UAAU,GAAG,OAAO,EACtD,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC,EAChC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,GAAG,cAAc,EACnD,YAAY,EAAE,eAAe,EAC7B,OAAO,CAAC,EAAE,iBAAiB,GAC1B;IAAE,OAAO,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAAC,KAAK,EAAE,QAAQ,CAAA;CAAE,CAKzD"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* StreamingBuffer - Continuous buffer for network message parsing
|
|
3
|
+
*
|
|
4
|
+
* Matches vanilla Quake 2's net_message buffer architecture from:
|
|
5
|
+
* - /home/user/quake2/full/qcommon/msg.c (MSG_Read* functions)
|
|
6
|
+
* - /home/user/quake2/full/client/cl_main.c:1798-1799 (buffer initialization)
|
|
7
|
+
*
|
|
8
|
+
* Maintains a continuous stream buffer that can be incrementally filled with
|
|
9
|
+
* data from demo blocks or network packets, while preserving read position
|
|
10
|
+
* for stateful parsing.
|
|
11
|
+
*/
|
|
12
|
+
export declare class StreamingBuffer {
|
|
13
|
+
private buffer;
|
|
14
|
+
private readOffset;
|
|
15
|
+
private writeOffset;
|
|
16
|
+
private static readonly INITIAL_SIZE;
|
|
17
|
+
private static readonly MAX_STRING_LENGTH;
|
|
18
|
+
constructor(initialCapacity?: number);
|
|
19
|
+
/**
|
|
20
|
+
* Append new data to the buffer (for demos: append blocks; for network: append packets)
|
|
21
|
+
* Grows buffer if needed to accommodate new data.
|
|
22
|
+
*/
|
|
23
|
+
append(data: ArrayBuffer | Uint8Array): void;
|
|
24
|
+
/**
|
|
25
|
+
* Check if we have N bytes available from current read position
|
|
26
|
+
*/
|
|
27
|
+
hasBytes(count: number): boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Get number of bytes available for reading
|
|
30
|
+
*/
|
|
31
|
+
available(): number;
|
|
32
|
+
/**
|
|
33
|
+
* Read one byte and advance position
|
|
34
|
+
* Reference: MSG_ReadByte() in /home/user/quake2/full/qcommon/msg.c
|
|
35
|
+
*/
|
|
36
|
+
readByte(): number;
|
|
37
|
+
/**
|
|
38
|
+
* Read 2-byte short (little-endian) and advance position
|
|
39
|
+
* Reference: MSG_ReadShort() in /home/user/quake2/full/qcommon/msg.c
|
|
40
|
+
*/
|
|
41
|
+
readShort(): number;
|
|
42
|
+
/**
|
|
43
|
+
* Read 4-byte long (little-endian) and advance position
|
|
44
|
+
* Reference: MSG_ReadLong() in /home/user/quake2/full/qcommon/msg.c
|
|
45
|
+
*/
|
|
46
|
+
readLong(): number;
|
|
47
|
+
/**
|
|
48
|
+
* Read 4-byte float (little-endian) and advance position
|
|
49
|
+
*/
|
|
50
|
+
readFloat(): number;
|
|
51
|
+
/**
|
|
52
|
+
* Read null-terminated string and advance position
|
|
53
|
+
* Reference: MSG_ReadString() in /home/user/quake2/full/qcommon/msg.c
|
|
54
|
+
*/
|
|
55
|
+
readString(): string;
|
|
56
|
+
/**
|
|
57
|
+
* Read raw bytes without advancing position (peek)
|
|
58
|
+
*/
|
|
59
|
+
peekBytes(count: number): Uint8Array;
|
|
60
|
+
/**
|
|
61
|
+
* Read raw bytes and advance position
|
|
62
|
+
*/
|
|
63
|
+
readBytes(count: number): Uint8Array;
|
|
64
|
+
/**
|
|
65
|
+
* Alias for readBytes to match tests
|
|
66
|
+
*/
|
|
67
|
+
readData(count: number): Uint8Array;
|
|
68
|
+
/**
|
|
69
|
+
* Get current read position (for debugging/state tracking)
|
|
70
|
+
*/
|
|
71
|
+
getReadPosition(): number;
|
|
72
|
+
/**
|
|
73
|
+
* Get current write position (for debugging/state tracking)
|
|
74
|
+
*/
|
|
75
|
+
getWritePosition(): number;
|
|
76
|
+
/**
|
|
77
|
+
* Set read position (use with caution - mainly for testing)
|
|
78
|
+
*/
|
|
79
|
+
setReadPosition(position: number): void;
|
|
80
|
+
/**
|
|
81
|
+
* Grow buffer to accommodate more data
|
|
82
|
+
* Doubles current size or grows to required size, whichever is larger
|
|
83
|
+
*/
|
|
84
|
+
private grow;
|
|
85
|
+
/**
|
|
86
|
+
* Compact buffer - remove consumed data to free memory
|
|
87
|
+
* Copies unread data to beginning of buffer and resets offsets
|
|
88
|
+
*
|
|
89
|
+
* Call this periodically when processing large streams to prevent
|
|
90
|
+
* unbounded memory growth.
|
|
91
|
+
*/
|
|
92
|
+
compact(): void;
|
|
93
|
+
/**
|
|
94
|
+
* Get total buffer capacity
|
|
95
|
+
*/
|
|
96
|
+
getCapacity(): number;
|
|
97
|
+
/**
|
|
98
|
+
* Reset buffer to initial state (clear all data)
|
|
99
|
+
*/
|
|
100
|
+
reset(): void;
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=streamingBuffer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streamingBuffer.d.ts","sourceRoot":"","sources":["../../../src/stream/streamingBuffer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,qBAAa,eAAe;IACxB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAa;IACjD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAQ;gBAErC,eAAe,GAAE,MAAqC;IAMlE;;;OAGG;IACH,MAAM,CAAC,IAAI,EAAE,WAAW,GAAG,UAAU,GAAG,IAAI;IAc5C;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAIhC;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;;OAGG;IACH,QAAQ,IAAI,MAAM;IAOlB;;;OAGG;IACH,SAAS,IAAI,MAAM;IAWnB;;;OAGG;IACH,QAAQ,IAAI,MAAM;IAalB;;OAEG;IACH,SAAS,IAAI,MAAM;IAUnB;;;OAGG;IACH,UAAU,IAAI,MAAM;IA4BpB;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU;IAOpC;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU;IASpC;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU;IAInC;;OAEG;IACH,eAAe,IAAI,MAAM;IAIzB;;OAEG;IACH,gBAAgB,IAAI,MAAM;IAI1B;;OAEG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAOvC;;;OAGG;IACH,OAAO,CAAC,IAAI;IAUZ;;;;;;OAMG;IACH,OAAO,IAAI,IAAI;IAuBf;;OAEG;IACH,WAAW,IAAI,MAAM;IAIrB;;OAEG;IACH,KAAK,IAAI,IAAI;CAIhB"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { BspMap } from '../assets/bsp.js';
|
|
2
|
+
export interface LightmapExport {
|
|
3
|
+
readonly width: number;
|
|
4
|
+
readonly height: number;
|
|
5
|
+
readonly data: Uint8Array;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Extracts all valid lightmaps from a BSP map and packs them into a series of atlases.
|
|
9
|
+
* This function does not require a WebGL context.
|
|
10
|
+
*
|
|
11
|
+
* @param map The parsed BSP map.
|
|
12
|
+
* @param atlasSize The width/height of the generated atlases (default 1024).
|
|
13
|
+
* @param padding Padding between packed lightmaps (default 1).
|
|
14
|
+
* @returns An array of atlases, each containing width, height, and raw RGBA pixel data.
|
|
15
|
+
*/
|
|
16
|
+
export declare function exportLightmaps(map: BspMap, atlasSize?: number, padding?: number): LightmapExport[];
|
|
17
|
+
//# sourceMappingURL=lightmapExport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lightmapExport.d.ts","sourceRoot":"","sources":["../../../src/tools/lightmapExport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAsB,MAAM,kBAAkB,CAAC;AAE9D,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;CAC3B;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,SAAO,EAAE,OAAO,SAAI,GAAG,cAAc,EAAE,CAmB5F"}
|
package/package.json
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@quake2ts/engine",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"main": "./dist/cjs/index.cjs",
|
|
6
|
+
"module": "./dist/esm/index.js",
|
|
7
|
+
"types": "./dist/types/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/types/index.d.ts",
|
|
11
|
+
"import": "./dist/esm/index.js",
|
|
12
|
+
"require": "./dist/cjs/index.cjs",
|
|
13
|
+
"default": "./dist/esm/index.js"
|
|
14
|
+
},
|
|
15
|
+
"./browser": {
|
|
16
|
+
"types": "./dist/types/index.d.ts",
|
|
17
|
+
"default": "./dist/browser/index.js"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"unpkg": "./dist/browser/index.js",
|
|
21
|
+
"jsdelivr": "./dist/browser/index.js",
|
|
22
|
+
"files": [
|
|
23
|
+
"dist"
|
|
24
|
+
],
|
|
25
|
+
"sideEffects": false,
|
|
26
|
+
"dependencies": {
|
|
27
|
+
"@wasm-audio-decoders/ogg-vorbis": "^0.1.20",
|
|
28
|
+
"gl-matrix": "^3.4.4",
|
|
29
|
+
"@quake2ts/shared": "0.0.1"
|
|
30
|
+
},
|
|
31
|
+
"devDependencies": {
|
|
32
|
+
"@napi-rs/canvas": "^0.1.52",
|
|
33
|
+
"@types/node": "^25.0.3",
|
|
34
|
+
"@webgpu/types": "^0.1.68",
|
|
35
|
+
"fake-indexeddb": "^6.0.0",
|
|
36
|
+
"pixelmatch": "^7.1.0",
|
|
37
|
+
"pngjs": "^7.0.0",
|
|
38
|
+
"tsup": "^8.1.0",
|
|
39
|
+
"vitest": "^1.5.3",
|
|
40
|
+
"webgpu": "^0.3.8",
|
|
41
|
+
"@quake2ts/game": "0.0.1",
|
|
42
|
+
"@quake2ts/test-utils": "^0.0.1"
|
|
43
|
+
},
|
|
44
|
+
"scripts": {
|
|
45
|
+
"build": "pnpm run build:types && pnpm run build:bundles",
|
|
46
|
+
"build:types": "tsc -b",
|
|
47
|
+
"build:bundles": "tsup",
|
|
48
|
+
"test": "pnpm run test:unit",
|
|
49
|
+
"test:unit": "TEST_TYPE=unit vitest run --passWithNoTests",
|
|
50
|
+
"test:integration": "TEST_TYPE=integration vitest run --passWithNoTests",
|
|
51
|
+
"test:webgpu": "cross-env TEST_TYPE=webgpu vitest run",
|
|
52
|
+
"test:visual": "vitest run tests/integration/visual",
|
|
53
|
+
"test:visual:update": "vitest run tests/integration/visual --update-snapshots",
|
|
54
|
+
"test:visual:watch": "vitest tests/integration/visual"
|
|
55
|
+
}
|
|
56
|
+
}
|