@flighthq/render-wgpu 0.2.0 → 0.2.1-next.423.3350e53
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/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/wgpuDraw.d.ts +3 -2
- package/dist/wgpuDraw.d.ts.map +1 -1
- package/dist/wgpuDraw.js +88 -1
- package/dist/wgpuDraw.js.map +1 -1
- package/dist/wgpuFullscreenPass.js +1 -1
- package/dist/wgpuFullscreenPass.js.map +1 -1
- package/dist/wgpuMipmap.d.ts +4 -0
- package/dist/wgpuMipmap.d.ts.map +1 -0
- package/dist/wgpuMipmap.js +92 -0
- package/dist/wgpuMipmap.js.map +1 -0
- package/dist/wgpuRenderState.d.ts +3 -2
- package/dist/wgpuRenderState.d.ts.map +1 -1
- package/dist/wgpuRenderState.js +33 -0
- package/dist/wgpuRenderState.js.map +1 -1
- package/dist/wgpuRenderTarget.d.ts +4 -3
- package/dist/wgpuRenderTarget.d.ts.map +1 -1
- package/dist/wgpuRenderTarget.js +61 -11
- package/dist/wgpuRenderTarget.js.map +1 -1
- package/dist/wgpuShader.d.ts.map +1 -1
- package/dist/wgpuShader.js +6 -15
- package/dist/wgpuShader.js.map +1 -1
- package/dist/wgpuTextureUpload.d.ts +5 -0
- package/dist/wgpuTextureUpload.d.ts.map +1 -0
- package/dist/wgpuTextureUpload.js +25 -0
- package/dist/wgpuTextureUpload.js.map +1 -0
- package/package.json +6 -6
- package/src/wgpuDraw.test.ts +75 -0
- package/src/wgpuMipmap.test.ts +73 -0
- package/src/wgpuRenderState.test.ts +46 -0
- package/src/wgpuRenderTarget.test.ts +32 -14
- package/src/wgpuShader.test.ts +3 -6
- package/src/wgpuTextureUpload.test.ts +60 -0
package/dist/index.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export * from './wgpuDraw';
|
|
|
4
4
|
export * from './wgpuElement';
|
|
5
5
|
export * from './wgpuFullscreenPass';
|
|
6
6
|
export * from './wgpuMaterialRegistry';
|
|
7
|
+
export * from './wgpuMipmap';
|
|
7
8
|
export * from './wgpuRenderState';
|
|
8
9
|
export * from './wgpuRenderTarget';
|
|
9
10
|
export * from './wgpuRenderTargetPool';
|
|
@@ -12,6 +13,7 @@ export * from './wgpuShader';
|
|
|
12
13
|
export * from './wgpuShaderBinding';
|
|
13
14
|
export * from './wgpuShaderRegistry';
|
|
14
15
|
export * from './wgpuSurface';
|
|
16
|
+
export * from './wgpuTextureUpload';
|
|
15
17
|
export { createWgpuRenderStateForTest, installWgpuMock } from './wgpuTestHelper';
|
|
16
18
|
export type { WgpuRenderTarget, WgpuRenderTargetPool } from '@flighthq/types';
|
|
17
19
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,4BAA4B,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACjF,YAAY,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,4BAA4B,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACjF,YAAY,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -4,6 +4,7 @@ export * from './wgpuDraw';
|
|
|
4
4
|
export * from './wgpuElement';
|
|
5
5
|
export * from './wgpuFullscreenPass';
|
|
6
6
|
export * from './wgpuMaterialRegistry';
|
|
7
|
+
export * from './wgpuMipmap';
|
|
7
8
|
export * from './wgpuRenderState';
|
|
8
9
|
export * from './wgpuRenderTarget';
|
|
9
10
|
export * from './wgpuRenderTargetPool';
|
|
@@ -12,5 +13,6 @@ export * from './wgpuShader';
|
|
|
12
13
|
export * from './wgpuShaderBinding';
|
|
13
14
|
export * from './wgpuShaderRegistry';
|
|
14
15
|
export * from './wgpuSurface';
|
|
16
|
+
export * from './wgpuTextureUpload';
|
|
15
17
|
export { createWgpuRenderStateForTest, installWgpuMock } from './wgpuTestHelper';
|
|
16
18
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,4BAA4B,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,4BAA4B,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dist/wgpuDraw.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import type { ColorTransform, RenderProxy, RenderProxy2D, WgpuRenderState, WgpuTextureEntry } from '@flighthq/types';
|
|
1
|
+
import type { ColorTransform, ImageResource, RenderProxy, RenderProxy2D, WgpuRenderState, WgpuTextureEntry } from '@flighthq/types';
|
|
2
2
|
import { BlendMode } from '@flighthq/types';
|
|
3
3
|
export declare function applyWgpuBlendMode(state: WgpuRenderState, blendMode: BlendMode | null): void;
|
|
4
|
-
export declare function
|
|
4
|
+
export declare function bindWgpuImageResourceTexture(state: WgpuRenderState, image: Readonly<ImageResource>, generateMips?: boolean): WgpuTextureEntry;
|
|
5
|
+
export declare function bindWgpuTexture(state: WgpuRenderState, imageSource: CanvasImageSource, generateMips?: boolean): WgpuTextureEntry;
|
|
5
6
|
export declare function buildWgpuRenderTargetBindGroup(state: WgpuRenderState, view: GPUTextureView): GPUBindGroup;
|
|
6
7
|
export declare function createWgpuTextureEntry(state: WgpuRenderState, width: number, height: number, canvas: HTMLCanvasElement): WgpuTextureEntry;
|
|
7
8
|
export declare function drawWgpuQuad(state: WgpuRenderState, renderProxy: RenderProxy2D, textureEntry: WgpuTextureEntry, x0: number, y0: number, x1: number, y1: number, u0: number, v0: number, u1: number, v1: number): void;
|
package/dist/wgpuDraw.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuDraw.d.ts","sourceRoot":"","sources":["../src/wgpuDraw.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EAEd,WAAW,EACX,aAAa,
|
|
1
|
+
{"version":3,"file":"wgpuDraw.d.ts","sourceRoot":"","sources":["../src/wgpuDraw.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EAEd,aAAa,EACb,WAAW,EACX,aAAa,EAEb,eAAe,EACf,gBAAgB,EACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAM5C,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI,CAE5F;AASD,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,eAAe,EACtB,KAAK,EAAE,QAAQ,CAAC,aAAa,CAAC,EAC9B,YAAY,UAAQ,GACnB,gBAAgB,CAiBlB;AAQD,wBAAgB,eAAe,CAC7B,KAAK,EAAE,eAAe,EACtB,WAAW,EAAE,iBAAiB,EAC9B,YAAY,UAAQ,GACnB,gBAAgB,CAkElB;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,GAAG,YAAY,CAUzG;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,eAAe,EACtB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,iBAAiB,GACxB,gBAAgB,CA+BlB;AAED,wBAAgB,YAAY,CAC1B,KAAK,EAAE,eAAe,EACtB,WAAW,EAAE,aAAa,EAC1B,YAAY,EAAE,gBAAgB,EAC9B,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,GACT,IAAI,CAmBN;AAED,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,eAAe,EACtB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,EACjF,YAAY,EAAE,gBAAgB,EAC9B,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,GACT,IAAI,CAkBN;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAEvE;AAID,wBAAgB,gCAAgC,CAAC,WAAW,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,cAAc,GAAG,IAAI,CAE1G;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,eAAe,EACtB,aAAa,EAAE,MAAM,EACrB,gBAAgB,EAAE,YAAY,GAC7B,IAAI,CAUN;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,eAAe,EACtB,KAAK,EAAE,gBAAgB,EACvB,MAAM,EAAE,iBAAiB,GACxB,IAAI,CAUN;AAGD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAG9D"}
|
package/dist/wgpuDraw.js
CHANGED
|
@@ -1,10 +1,42 @@
|
|
|
1
1
|
import { BlendMode } from '@flighthq/types';
|
|
2
|
+
import { generateWgpuMipmaps, getWgpuMipLevelCount } from './wgpuMipmap';
|
|
2
3
|
import { getWgpuRenderStateRuntime } from './wgpuRenderState';
|
|
3
4
|
import { getActiveWgpuPipeline, getWgpuPipeline, writeWgpuQuadUniforms } from './wgpuShader';
|
|
4
5
|
export function applyWgpuBlendMode(state, blendMode) {
|
|
5
6
|
getWgpuRenderStateRuntime(state).currentBlendMode = blendMode;
|
|
6
7
|
}
|
|
7
|
-
|
|
8
|
+
// The resource-level sibling of bindWgpuTexture: uploads and caches the GPU texture for an ImageResource
|
|
9
|
+
// — a bitmap, sprite atlas, or material map — accepting an element-backed OR a data-only generated Surface.
|
|
10
|
+
// Keyed by the resource entity in imageResourceTextureCache with the uploaded content version, so an
|
|
11
|
+
// in-place Surface edit (which bumps version) re-uploads (recreating the GPU texture). Textures are stored
|
|
12
|
+
// premultiplied to match the premultiplied (ONE, ONE_MINUS_SRC_ALPHA) blend: an element copies with
|
|
13
|
+
// premultipliedAlpha, and straight-alpha `data` is premultiplied on the CPU (writeTexture does no alpha
|
|
14
|
+
// conversion). Returns the texture, view, and 2D bind group.
|
|
15
|
+
export function bindWgpuImageResourceTexture(state, image, generateMips = false) {
|
|
16
|
+
const cache = getWgpuRenderStateRuntime(state).imageResourceTextureCache;
|
|
17
|
+
const cached = cache.get(image);
|
|
18
|
+
if (cached !== undefined && cached.version === image.version)
|
|
19
|
+
return cached;
|
|
20
|
+
const built = uploadWgpuImageResourceEntry(state, image, generateMips);
|
|
21
|
+
if (cached !== undefined) {
|
|
22
|
+
cached.texture.destroy();
|
|
23
|
+
cached.texture = built.texture;
|
|
24
|
+
cached.view = built.view;
|
|
25
|
+
cached.bindGroup = built.bindGroup;
|
|
26
|
+
cached.version = image.version;
|
|
27
|
+
return cached;
|
|
28
|
+
}
|
|
29
|
+
const entry = { ...built, version: image.version };
|
|
30
|
+
cache.set(image, entry);
|
|
31
|
+
return entry;
|
|
32
|
+
}
|
|
33
|
+
// Uploads (and caches per image source) the GPU texture for an image, returning its texture, full view,
|
|
34
|
+
// and a 2D bind group. With generateMips the texture is allocated with a full mip chain and its lower
|
|
35
|
+
// levels are rendered via generateWgpuMipmaps — the material path opts in for its trilinear/anisotropic
|
|
36
|
+
// samplers; the 2D bitmap path leaves it false for a single-level texture. Because WebGPU fixes
|
|
37
|
+
// mipLevelCount at creation and the cache is keyed by source, the first caller decides whether a shared
|
|
38
|
+
// image gets a chain; a mip sampler on a chainless texture simply samples the base level.
|
|
39
|
+
export function bindWgpuTexture(state, imageSource, generateMips = false) {
|
|
8
40
|
const runtime = getWgpuRenderStateRuntime(state);
|
|
9
41
|
const cached = runtime.textureCache.get(imageSource);
|
|
10
42
|
if (cached !== undefined)
|
|
@@ -34,9 +66,11 @@ export function bindWgpuTexture(state, imageSource) {
|
|
|
34
66
|
width = imageSource.width || 1;
|
|
35
67
|
height = imageSource.height || 1;
|
|
36
68
|
}
|
|
69
|
+
const mipLevelCount = generateMips ? getWgpuMipLevelCount(width, height) : 1;
|
|
37
70
|
const texture = device.createTexture({
|
|
38
71
|
size: [width, height, 1],
|
|
39
72
|
format: 'rgba8unorm',
|
|
73
|
+
mipLevelCount,
|
|
40
74
|
usage: GPUTextureUsage.TEXTURE_BINDING | GPUTextureUsage.COPY_DST | GPUTextureUsage.RENDER_ATTACHMENT,
|
|
41
75
|
});
|
|
42
76
|
// Store every uploaded texture premultiplied, matching the premultiplied (ONE, ONE_MINUS_SRC_ALPHA)
|
|
@@ -46,6 +80,10 @@ export function bindWgpuTexture(state, imageSource) {
|
|
|
46
80
|
// straight alpha and get premultiplied on copy. (A straight-alpha texture under premultiplied
|
|
47
81
|
// blend blows RGB out — it turned the semi-transparent shape panel opaque white.)
|
|
48
82
|
device.queue.copyExternalImageToTexture({ source: imageSource, flipY: false }, { texture, premultipliedAlpha: true }, [width, height]);
|
|
83
|
+
// The copy fills level 0 only; render the remaining levels by downsampling (WebGPU has no
|
|
84
|
+
// generateMipmap). Skipped for a single-level texture (mipLevelCount === 1).
|
|
85
|
+
if (mipLevelCount > 1)
|
|
86
|
+
generateWgpuMipmaps(state, texture, width, height, 'rgba8unorm');
|
|
49
87
|
const view = texture.createView();
|
|
50
88
|
const sampler = state.allowSmoothing ? runtime.linearSampler : runtime.nearestSampler;
|
|
51
89
|
const bindGroup = device.createBindGroup({
|
|
@@ -140,4 +178,53 @@ export function warmWgpuPipelines(state) {
|
|
|
140
178
|
getWgpuPipeline(state, BlendMode.Normal, 'normal');
|
|
141
179
|
getWgpuPipeline(state, BlendMode.Add, 'normal');
|
|
142
180
|
}
|
|
181
|
+
// Returns a new premultiplied rgba8 buffer from a straight-alpha one (rgb *= a/255). Allocates, but runs
|
|
182
|
+
// only on a texture upload (cache miss or content change), never in the per-frame draw path.
|
|
183
|
+
function premultiplyStraightRgba8(data) {
|
|
184
|
+
const out = new Uint8ClampedArray(data.length);
|
|
185
|
+
for (let i = 0; i < data.length; i += 4) {
|
|
186
|
+
const a = data[i + 3];
|
|
187
|
+
out[i] = (data[i] * a) / 255;
|
|
188
|
+
out[i + 1] = (data[i + 1] * a) / 255;
|
|
189
|
+
out[i + 2] = (data[i + 2] * a) / 255;
|
|
190
|
+
out[i + 3] = a;
|
|
191
|
+
}
|
|
192
|
+
return out;
|
|
193
|
+
}
|
|
194
|
+
// Allocates a GPU texture for an ImageResource and uploads its pixels through whichever representation it
|
|
195
|
+
// carries — an element via copyExternalImageToTexture (premultipliedAlpha) or data via writeTexture (CPU
|
|
196
|
+
// premultiply for straight alpha) — then builds the view + 2D bind group. The per-upload half of
|
|
197
|
+
// bindWgpuImageResourceTexture, split out so the cache/version bracket stays legible.
|
|
198
|
+
function uploadWgpuImageResourceEntry(state, image, generateMips) {
|
|
199
|
+
const runtime = getWgpuRenderStateRuntime(state);
|
|
200
|
+
const { device } = state;
|
|
201
|
+
const width = image.width || 1;
|
|
202
|
+
const height = image.height || 1;
|
|
203
|
+
const mipLevelCount = generateMips ? getWgpuMipLevelCount(width, height) : 1;
|
|
204
|
+
const texture = device.createTexture({
|
|
205
|
+
size: [width, height, 1],
|
|
206
|
+
format: 'rgba8unorm',
|
|
207
|
+
mipLevelCount,
|
|
208
|
+
usage: GPUTextureUsage.TEXTURE_BINDING | GPUTextureUsage.COPY_DST | GPUTextureUsage.RENDER_ATTACHMENT,
|
|
209
|
+
});
|
|
210
|
+
if (image.source !== null) {
|
|
211
|
+
device.queue.copyExternalImageToTexture({ source: image.source, flipY: false }, { texture, premultipliedAlpha: true }, [width, height]);
|
|
212
|
+
}
|
|
213
|
+
else {
|
|
214
|
+
const data = image.alphaType === 'straight' ? premultiplyStraightRgba8(image.data) : image.data;
|
|
215
|
+
device.queue.writeTexture({ texture }, data, { bytesPerRow: width * 4, rowsPerImage: height }, [width, height, 1]);
|
|
216
|
+
}
|
|
217
|
+
if (mipLevelCount > 1)
|
|
218
|
+
generateWgpuMipmaps(state, texture, width, height, 'rgba8unorm');
|
|
219
|
+
const view = texture.createView();
|
|
220
|
+
const sampler = state.allowSmoothing ? runtime.linearSampler : runtime.nearestSampler;
|
|
221
|
+
const bindGroup = device.createBindGroup({
|
|
222
|
+
layout: runtime.textureBindGroupLayout,
|
|
223
|
+
entries: [
|
|
224
|
+
{ binding: 0, resource: view },
|
|
225
|
+
{ binding: 1, resource: sampler },
|
|
226
|
+
],
|
|
227
|
+
});
|
|
228
|
+
return { texture, view, bindGroup };
|
|
229
|
+
}
|
|
143
230
|
//# sourceMappingURL=wgpuDraw.js.map
|
package/dist/wgpuDraw.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuDraw.js","sourceRoot":"","sources":["../src/wgpuDraw.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wgpuDraw.js","sourceRoot":"","sources":["../src/wgpuDraw.ts"],"names":[],"mappings":"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"}
|
|
@@ -52,7 +52,7 @@ export function destroyWgpuFullscreenPipeline(_state, _pipeline) {
|
|
|
52
52
|
// Binds `inputs[i]` as texture @group(1+i) @binding(0), calls `setUniforms` for per-pass
|
|
53
53
|
// uploads (pass null if the shader declares no uniforms), then draws 3 vertices.
|
|
54
54
|
//
|
|
55
|
-
// Requires an open render pass (renderWgpuBackground or
|
|
55
|
+
// Requires an open render pass (renderWgpuBackground or beginWgpuRenderPass must have been
|
|
56
56
|
// called first). When `dest` is null the current open pass is used as-is; when `dest` is
|
|
57
57
|
// provided, its bind group is set via the caller's render pass.
|
|
58
58
|
export function drawWgpuFullscreenPass(state, wgpuPipeline, inputs, dest, setUniforms) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuFullscreenPass.js","sourceRoot":"","sources":["../src/wgpuFullscreenPass.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAE9D,2FAA2F;AAC3F,wBAAwB;AACxB,gFAAgF;AAChF,4FAA4F;AAC5F,oFAAoF;AACpF,MAAM,UAAU,4BAA4B,CAC1C,KAAsB,EACtB,YAAoB,EACpB,iBAAiB,GAAG,CAAC,EACrB,SAA2B,KAAK,CAAC,MAAM;IAEvC,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IACzB,MAAM,sBAAsB,GAAG,MAAM,CAAC,qBAAqB,CAAC;QAC1D,OAAO,EAAE;YACP;gBACE,OAAO,EAAE,CAAC;gBACV,UAAU,EAAE,cAAc,CAAC,QAAQ;gBACnC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;aAC5B;SACF;KACF,CAAC,CAAC;IACH,MAAM,uBAAuB,GAAyB,EAAE,CAAC;IACzD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,uBAAuB,CAAC,IAAI,CAC1B,MAAM,CAAC,qBAAqB,CAAC;YAC3B,OAAO,EAAE;gBACP,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE;gBACrF,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE;aACpF;SACF,CAAC,CACH,CAAC;IACJ,CAAC;IACD,MAAM,cAAc,GAAG,MAAM,CAAC,oBAAoB,CAAC;QACjD,gBAAgB,EAAE,CAAC,sBAAsB,EAAE,GAAG,uBAAuB,CAAC;KACvE,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,MAAM,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC,CAAC;IAC7E,MAAM,QAAQ,GAAG,MAAM,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;IACnE,MAAM,QAAQ,GAAG,MAAM,CAAC,oBAAoB,CAAC;QAC3C,MAAM,EAAE,cAAc;QACtB,MAAM,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE;QACnD,QAAQ,EAAE;YACR,MAAM,EAAE,QAAQ;YAChB,UAAU,EAAE,SAAS;YACrB,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;SACtB;QACD,SAAS,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE;KACzC,CAAC,CAAC;IACH,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,CAAC;AACvF,CAAC;AAED,6FAA6F;AAC7F,iGAAiG;AACjG,wFAAwF;AACxF,MAAM,UAAU,6BAA6B,CAAC,MAAuB,EAAE,SAAiC;IACtG,2FAA2F;IAC3F,4CAA4C;AAC9C,CAAC;AAED,0FAA0F;AAC1F,yFAAyF;AACzF,iFAAiF;AACjF,EAAE;AACF,
|
|
1
|
+
{"version":3,"file":"wgpuFullscreenPass.js","sourceRoot":"","sources":["../src/wgpuFullscreenPass.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { WgpuRenderState } from '@flighthq/types';
|
|
2
|
+
export declare function generateWgpuMipmaps(state: WgpuRenderState, texture: GPUTexture, width: number, height: number, format: GPUTextureFormat): void;
|
|
3
|
+
export declare function getWgpuMipLevelCount(width: number, height: number): number;
|
|
4
|
+
//# sourceMappingURL=wgpuMipmap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wgpuMipmap.d.ts","sourceRoot":"","sources":["../src/wgpuMipmap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AASvD,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,eAAe,EACtB,OAAO,EAAE,UAAU,EACnB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,gBAAgB,GACvB,IAAI,CA2BN;AAID,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAE1E"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { getWgpuRenderStateRuntime } from './wgpuRenderState';
|
|
2
|
+
// Generates the mip chain for an already-uploaded texture by downsampling each level into the next
|
|
3
|
+
// through a cached fullscreen pipeline. WebGPU has no generateMipmap, so lower levels are rendered:
|
|
4
|
+
// level i samples level i-1 (a single-level view) with a linear clamp sampler and draws a fullscreen
|
|
5
|
+
// triangle into level i. The texture must have been created with the matching mipLevelCount (see
|
|
6
|
+
// getWgpuMipLevelCount) and RENDER_ATTACHMENT usage. A single-level (1x1) texture is a no-op.
|
|
7
|
+
export function generateWgpuMipmaps(state, texture, width, height, format) {
|
|
8
|
+
const levelCount = getWgpuMipLevelCount(width, height);
|
|
9
|
+
if (levelCount <= 1)
|
|
10
|
+
return;
|
|
11
|
+
const { device } = state;
|
|
12
|
+
const runtime = getWgpuRenderStateRuntime(state);
|
|
13
|
+
const pipeline = ensureWgpuMipmapPipeline(state, format);
|
|
14
|
+
const layout = runtime.mipmapBindGroupLayout;
|
|
15
|
+
const encoder = device.createCommandEncoder();
|
|
16
|
+
for (let level = 1; level < levelCount; level++) {
|
|
17
|
+
const srcView = texture.createView({ baseMipLevel: level - 1, mipLevelCount: 1 });
|
|
18
|
+
const dstView = texture.createView({ baseMipLevel: level, mipLevelCount: 1 });
|
|
19
|
+
const bindGroup = device.createBindGroup({
|
|
20
|
+
layout,
|
|
21
|
+
entries: [
|
|
22
|
+
{ binding: 0, resource: srcView },
|
|
23
|
+
{ binding: 1, resource: runtime.linearSampler },
|
|
24
|
+
],
|
|
25
|
+
});
|
|
26
|
+
const pass = encoder.beginRenderPass({
|
|
27
|
+
colorAttachments: [{ view: dstView, loadOp: 'clear', storeOp: 'store', clearValue: { r: 0, g: 0, b: 0, a: 0 } }],
|
|
28
|
+
});
|
|
29
|
+
pass.setPipeline(pipeline);
|
|
30
|
+
pass.setBindGroup(0, bindGroup);
|
|
31
|
+
pass.draw(3);
|
|
32
|
+
pass.end();
|
|
33
|
+
}
|
|
34
|
+
device.queue.submit([encoder.finish()]);
|
|
35
|
+
}
|
|
36
|
+
// The number of mip levels in a full chain down to 1x1 for the given base dimensions. A 1x1 (or
|
|
37
|
+
// smaller) base has a single level, so generateWgpuMipmaps has nothing to render.
|
|
38
|
+
export function getWgpuMipLevelCount(width, height) {
|
|
39
|
+
return 1 + Math.floor(Math.log2(Math.max(1, width, height)));
|
|
40
|
+
}
|
|
41
|
+
// Lazily builds and caches the downsample pipeline (fullscreen triangle → sample the source level →
|
|
42
|
+
// write the destination level) and its texture+sampler bind-group layout on the runtime, reused across
|
|
43
|
+
// every mip generation on this state. The target format matches the material texture format
|
|
44
|
+
// (rgba8unorm); material uploads are the only mip consumer, so one cached pipeline suffices.
|
|
45
|
+
function ensureWgpuMipmapPipeline(state, format) {
|
|
46
|
+
const runtime = getWgpuRenderStateRuntime(state);
|
|
47
|
+
if (runtime.mipmapPipeline != null)
|
|
48
|
+
return runtime.mipmapPipeline;
|
|
49
|
+
const { device } = state;
|
|
50
|
+
const bindGroupLayout = device.createBindGroupLayout({
|
|
51
|
+
entries: [
|
|
52
|
+
{ binding: 0, visibility: GPUShaderStage.FRAGMENT, texture: { sampleType: 'float' } },
|
|
53
|
+
{ binding: 1, visibility: GPUShaderStage.FRAGMENT, sampler: { type: 'filtering' } },
|
|
54
|
+
],
|
|
55
|
+
});
|
|
56
|
+
const module = device.createShaderModule({ code: MIPMAP_WGSL });
|
|
57
|
+
const pipeline = device.createRenderPipeline({
|
|
58
|
+
layout: device.createPipelineLayout({ bindGroupLayouts: [bindGroupLayout] }),
|
|
59
|
+
vertex: { module, entryPoint: 'vs_main' },
|
|
60
|
+
fragment: { module, entryPoint: 'fs_main', targets: [{ format }] },
|
|
61
|
+
primitive: { topology: 'triangle-list' },
|
|
62
|
+
});
|
|
63
|
+
runtime.mipmapBindGroupLayout = bindGroupLayout;
|
|
64
|
+
runtime.mipmapPipeline = pipeline;
|
|
65
|
+
return pipeline;
|
|
66
|
+
}
|
|
67
|
+
const MIPMAP_WGSL = /* wgsl */ `
|
|
68
|
+
struct VsOut {
|
|
69
|
+
@builtin(position) pos : vec4f,
|
|
70
|
+
@location(0) uv : vec2f,
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
@vertex
|
|
74
|
+
fn vs_main(@builtin(vertex_index) vi : u32) -> VsOut {
|
|
75
|
+
// Full-screen triangle covering the clip rect; uv in [0,1] with v flipped into texture space.
|
|
76
|
+
let x = f32((vi & 1u) << 2u) - 1.0;
|
|
77
|
+
let y = f32((vi & 2u) << 1u) - 1.0;
|
|
78
|
+
var out : VsOut;
|
|
79
|
+
out.pos = vec4f(x, y, 0.0, 1.0);
|
|
80
|
+
out.uv = vec2f((x + 1.0) * 0.5, (1.0 - y) * 0.5);
|
|
81
|
+
return out;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
@group(0) @binding(0) var srcTexture : texture_2d<f32>;
|
|
85
|
+
@group(0) @binding(1) var srcSampler : sampler;
|
|
86
|
+
|
|
87
|
+
@fragment
|
|
88
|
+
fn fs_main(@location(0) uv : vec2f) -> @location(0) vec4f {
|
|
89
|
+
return textureSample(srcTexture, srcSampler, uv);
|
|
90
|
+
}
|
|
91
|
+
`;
|
|
92
|
+
//# sourceMappingURL=wgpuMipmap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wgpuMipmap.js","sourceRoot":"","sources":["../src/wgpuMipmap.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import type { WgpuRenderOptions, WgpuRenderState, WgpuRenderStateRuntime } from '@flighthq/types';
|
|
2
|
-
export declare function createWgpuRenderState(canvas: HTMLCanvasElement, options?:
|
|
1
|
+
import type { TextureWrap, WgpuRenderOptions, WgpuRenderState, WgpuRenderStateRuntime } from '@flighthq/types';
|
|
2
|
+
export declare function createWgpuRenderState(canvas: HTMLCanvasElement, options?: WgpuRenderOptions): Promise<WgpuRenderState>;
|
|
3
3
|
export declare function createWgpuRenderStateRuntime(): WgpuRenderStateRuntime;
|
|
4
4
|
export declare function destroyWgpuRenderState(state: WgpuRenderState): void;
|
|
5
5
|
export declare function getWgpuRenderStateRuntime(state: WgpuRenderState): WgpuRenderStateRuntime;
|
|
6
|
+
export declare function getWgpuSampler(state: WgpuRenderState, filter: GPUFilterMode, wrapU: TextureWrap, wrapV: TextureWrap, mipmapFilter?: GPUMipmapFilterMode, maxAnisotropy?: number): GPUSampler;
|
|
6
7
|
export declare function isWgpuSupported(): boolean;
|
|
7
8
|
//# sourceMappingURL=wgpuRenderState.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuRenderState.d.ts","sourceRoot":"","sources":["../src/wgpuRenderState.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuRenderState.d.ts","sourceRoot":"","sources":["../src/wgpuRenderState.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAS/G,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,iBAAiB,EACzB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,eAAe,CAAC,CAiJ1B;AAMD,wBAAgB,4BAA4B,IAAI,sBAAsB,CAErE;AAWD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CASnE;AAID,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,eAAe,GAAG,sBAAsB,CAExF;AAUD,wBAAgB,cAAc,CAC5B,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,WAAW,EAClB,YAAY,CAAC,EAAE,mBAAmB,EAClC,aAAa,SAAI,GAChB,UAAU,CAoBZ;AAED,wBAAgB,eAAe,IAAI,OAAO,CAEzC"}
|
package/dist/wgpuRenderState.js
CHANGED
|
@@ -88,7 +88,9 @@ export async function createWgpuRenderState(canvas, options = {}) {
|
|
|
88
88
|
runtime.pipelineCache = new Map();
|
|
89
89
|
runtime.linearSampler = linearSampler;
|
|
90
90
|
runtime.nearestSampler = nearestSampler;
|
|
91
|
+
runtime.samplerCache = new Map();
|
|
91
92
|
runtime.textureCache = new WeakMap();
|
|
93
|
+
runtime.imageResourceTextureCache = new WeakMap();
|
|
92
94
|
runtime.defaultBitmapShader = null;
|
|
93
95
|
runtime.particleInstanceBuffer = null;
|
|
94
96
|
runtime.particleInstanceData = null;
|
|
@@ -157,6 +159,37 @@ export function destroyWgpuRenderState(state) {
|
|
|
157
159
|
export function getWgpuRenderStateRuntime(state) {
|
|
158
160
|
return state[EntityRuntimeKey];
|
|
159
161
|
}
|
|
162
|
+
// Returns a cached GPUSampler for a filter + wrap + mip-filter + anisotropy combination, creating it on
|
|
163
|
+
// first use. A GPUSampler's address mode, mip filter, and anisotropy are all immutable, so a tiling or
|
|
164
|
+
// mipmapped material selects the matching sampler at bind-group creation rather than mutating the shared
|
|
165
|
+
// clamp sampler. TextureWrap values ('clamp-to-edge'/'repeat'/'mirror-repeat') are exactly the
|
|
166
|
+
// GPUAddressMode strings, so they pass through untranslated. mipmapFilter undefined means no mip
|
|
167
|
+
// sampling (the historical wrap-only behavior). WebGPU requires linear min/mag/mip filtering whenever
|
|
168
|
+
// maxAnisotropy > 1, so an anisotropy request forces all three to linear. The clamp-to-edge defaults
|
|
169
|
+
// keep their own pre-created linear/nearest samplers; this backs every non-default combination.
|
|
170
|
+
export function getWgpuSampler(state, filter, wrapU, wrapV, mipmapFilter, maxAnisotropy = 1) {
|
|
171
|
+
const runtime = getWgpuRenderStateRuntime(state);
|
|
172
|
+
const anisotropy = Math.max(1, Math.floor(maxAnisotropy));
|
|
173
|
+
const effectiveFilter = anisotropy > 1 ? 'linear' : filter;
|
|
174
|
+
const effectiveMipmapFilter = anisotropy > 1 ? 'linear' : mipmapFilter;
|
|
175
|
+
const key = `${effectiveFilter}|${wrapU}|${wrapV}|${effectiveMipmapFilter ?? 'none'}|${anisotropy}`;
|
|
176
|
+
let sampler = runtime.samplerCache.get(key);
|
|
177
|
+
if (sampler === undefined) {
|
|
178
|
+
const descriptor = {
|
|
179
|
+
minFilter: effectiveFilter,
|
|
180
|
+
magFilter: effectiveFilter,
|
|
181
|
+
addressModeU: wrapU,
|
|
182
|
+
addressModeV: wrapV,
|
|
183
|
+
};
|
|
184
|
+
if (effectiveMipmapFilter !== undefined)
|
|
185
|
+
descriptor.mipmapFilter = effectiveMipmapFilter;
|
|
186
|
+
if (anisotropy > 1)
|
|
187
|
+
descriptor.maxAnisotropy = anisotropy;
|
|
188
|
+
sampler = state.device.createSampler(descriptor);
|
|
189
|
+
runtime.samplerCache.set(key, sampler);
|
|
190
|
+
}
|
|
191
|
+
return sampler;
|
|
192
|
+
}
|
|
160
193
|
export function isWgpuSupported() {
|
|
161
194
|
return typeof navigator !== 'undefined' && 'gpu' in navigator && navigator.gpu !== null;
|
|
162
195
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuRenderState.js","sourceRoot":"","sources":["../src/wgpuRenderState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EACL,iBAAiB,IAAI,kBAAkB,EACvC,wBAAwB,EACxB,6BAA6B,GAC9B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAE7E,yFAAyF;AACzF,MAAM,eAAe,GAAG,IAAI,CAAC;AAE7B,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAAyB,EACzB,
|
|
1
|
+
{"version":3,"file":"wgpuRenderState.js","sourceRoot":"","sources":["../src/wgpuRenderState.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { Material, Matrix, WgpuRenderState, WgpuRenderTarget } from '@flighthq/types';
|
|
2
|
-
export declare function
|
|
1
|
+
import type { Material, Matrix, RenderPassPreserve, WgpuRenderState, WgpuRenderTarget } from '@flighthq/types';
|
|
2
|
+
export declare function beginWgpuRenderPass(state: WgpuRenderState, target: WgpuRenderTarget, preserve?: Readonly<RenderPassPreserve>): void;
|
|
3
3
|
export declare function createWgpuRenderTarget(state: WgpuRenderState, width: number, height: number, format?: GPUTextureFormat): WgpuRenderTarget;
|
|
4
4
|
export declare function destroyWgpuRenderTarget(_state: WgpuRenderState, target: WgpuRenderTarget): void;
|
|
5
5
|
export declare function drawWgpuRenderTargetResult(state: WgpuRenderState, renderProxy: {
|
|
@@ -14,6 +14,7 @@ export declare function drawWgpuRenderTargetResult(state: WgpuRenderState, rende
|
|
|
14
14
|
ty: number;
|
|
15
15
|
};
|
|
16
16
|
}, target: Readonly<WgpuRenderTarget>, transform: Readonly<Matrix>): void;
|
|
17
|
-
export declare function
|
|
17
|
+
export declare function endWgpuRenderPass(state: WgpuRenderState): void;
|
|
18
18
|
export declare function resizeWgpuRenderTarget(state: WgpuRenderState, target: WgpuRenderTarget, width: number, height: number): void;
|
|
19
|
+
export declare function setWgpuRenderTransform2D(state: WgpuRenderState, transform: Readonly<Matrix>): void;
|
|
19
20
|
//# sourceMappingURL=wgpuRenderTarget.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuRenderTarget.d.ts","sourceRoot":"","sources":["../src/wgpuRenderTarget.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuRenderTarget.d.ts","sourceRoot":"","sources":["../src/wgpuRenderTarget.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,kBAAkB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAuC/G,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,gBAAgB,EACxB,QAAQ,CAAC,EAAE,QAAQ,CAAC,kBAAkB,CAAC,GACtC,IAAI,CAyCN;AAID,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,eAAe,EACtB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,gBAA+B,GACtC,gBAAgB,CAgClB;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAG/F;AAED,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,eAAe,EACtB,WAAW,EAAE;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;CACrF,EACD,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,GAC1B,IAAI,CAiCN;AAMD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAiC9D;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,gBAAgB,EACxB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,IAAI,CA2BN;AA2BD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,CAIlG"}
|