@flighthq/texture 0.2.1-next.841.373388f → 0.3.0-next.1032.e2b99fc
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/contract.d.ts +6 -0
- package/dist/contract.d.ts.map +1 -0
- package/dist/contract.js +6 -0
- package/dist/contract.js.map +1 -0
- package/dist/cubeTexture.d.ts +8 -8
- package/dist/cubeTexture.d.ts.map +1 -1
- package/dist/cubeTexture.js +22 -59
- package/dist/cubeTexture.js.map +1 -1
- package/dist/index.d.ts +1 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -4
- package/dist/index.js.map +1 -1
- package/dist/renderTexture.d.ts +3 -0
- package/dist/renderTexture.d.ts.map +1 -0
- package/dist/renderTexture.js +44 -0
- package/dist/renderTexture.js.map +1 -0
- package/dist/sampler.d.ts +1 -1
- package/dist/sampler.d.ts.map +1 -1
- package/dist/sampler.js +1 -1
- package/dist/sampler.js.map +1 -1
- package/dist/texture.d.ts +6 -3
- package/dist/texture.d.ts.map +1 -1
- package/dist/texture.js +120 -28
- package/dist/texture.js.map +1 -1
- package/dist/videoTexture.d.ts +12 -12
- package/dist/videoTexture.d.ts.map +1 -1
- package/dist/videoTexture.js +77 -92
- package/dist/videoTexture.js.map +1 -1
- package/package.json +8 -4
- package/src/cubeTexture.test.ts +31 -30
- package/src/renderTexture.test.ts +48 -0
- package/src/texture.test.ts +142 -22
- package/src/videoTexture.test.ts +21 -19
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC"}
|
package/dist/contract.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC"}
|
package/dist/cubeTexture.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare function cloneCubeTexture(source: Readonly<
|
|
3
|
-
export declare function copyCubeTexture(out:
|
|
4
|
-
export declare function createCubeTexture(opts?: Readonly<
|
|
5
|
-
export declare function equalsCubeTexture(a: Readonly<
|
|
6
|
-
export declare function getCubeTextureFaceSize(cube: Readonly<
|
|
7
|
-
export declare function isCubeTextureComplete(cube: Readonly<
|
|
8
|
-
export declare function setCubeTextureFace(cube:
|
|
1
|
+
import type { CreateCubeTextureOptions, CubeTexture, ImageBacking } from '@flighthq/types/contract';
|
|
2
|
+
export declare function cloneCubeTexture(source: Readonly<CubeTexture>): CubeTexture;
|
|
3
|
+
export declare function copyCubeTexture(out: CubeTexture, source: Readonly<CubeTexture>): void;
|
|
4
|
+
export declare function createCubeTexture(opts?: Readonly<CreateCubeTextureOptions>): CubeTexture;
|
|
5
|
+
export declare function equalsCubeTexture(a: Readonly<CubeTexture> | null | undefined, b: Readonly<CubeTexture> | null | undefined): boolean;
|
|
6
|
+
export declare function getCubeTextureFaceSize(cube: Readonly<CubeTexture>): number;
|
|
7
|
+
export declare function isCubeTextureComplete(cube: Readonly<CubeTexture>): boolean;
|
|
8
|
+
export declare function setCubeTextureFace(cube: CubeTexture, faceIndex: number, image: ImageBacking | null): void;
|
|
9
9
|
//# sourceMappingURL=cubeTexture.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cubeTexture.d.ts","sourceRoot":"","sources":["../src/cubeTexture.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cubeTexture.d.ts","sourceRoot":"","sources":["../src/cubeTexture.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,WAAW,EAAE,YAAY,EAAqB,MAAM,0BAA0B,CAAC;AASvH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,WAAW,CAE3E;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI,CAErF;AAED,wBAAgB,iBAAiB,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,wBAAwB,CAAC,GAAG,WAAW,CASxF;AAED,wBAAgB,iBAAiB,CAC/B,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI,GAAG,SAAS,EAC3C,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI,GAAG,SAAS,GAC1C,OAAO,CAGT;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,MAAM,CAO1E;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,OAAO,CAE1E;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,GAAG,IAAI,CAKzG"}
|
package/dist/cubeTexture.js
CHANGED
|
@@ -1,83 +1,46 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { cloneSampler } from './sampler';
|
|
2
|
+
import { cloneTexture, copyTexture, createTexture, equalsTexture } from './texture';
|
|
3
|
+
function getCubeImages(texture) {
|
|
4
|
+
return texture.storage.images;
|
|
5
|
+
}
|
|
6
6
|
export function cloneCubeTexture(source) {
|
|
7
|
-
return
|
|
8
|
-
colorSpace: source.colorSpace,
|
|
9
|
-
faces: source.faces.slice(),
|
|
10
|
-
sampler: cloneSampler(source.sampler),
|
|
11
|
-
});
|
|
7
|
+
return cloneTexture(source);
|
|
12
8
|
}
|
|
13
|
-
// Copies every CubeTexture field from source into out in place. Each face reference is shared;
|
|
14
|
-
// the Sampler is copied into out's existing Sampler entity (its identity is preserved). Safe when
|
|
15
|
-
// out aliases source: all input values are read into locals before any writes.
|
|
16
9
|
export function copyCubeTexture(out, source) {
|
|
17
|
-
|
|
18
|
-
const f0 = source.faces[0];
|
|
19
|
-
const f1 = source.faces[1];
|
|
20
|
-
const f2 = source.faces[2];
|
|
21
|
-
const f3 = source.faces[3];
|
|
22
|
-
const f4 = source.faces[4];
|
|
23
|
-
const f5 = source.faces[5];
|
|
24
|
-
copySampler(out.sampler, source.sampler);
|
|
25
|
-
out.colorSpace = colorSpace;
|
|
26
|
-
const faces = out.faces;
|
|
27
|
-
faces[0] = f0;
|
|
28
|
-
faces[1] = f1;
|
|
29
|
-
faces[2] = f2;
|
|
30
|
-
faces[3] = f3;
|
|
31
|
-
faces[4] = f4;
|
|
32
|
-
faces[5] = f5;
|
|
10
|
+
copyTexture(out, source);
|
|
33
11
|
}
|
|
34
|
-
// Builds a CubeTexture: six unbound faces (all null, in the canonical +X, -X, +Y, -Y, +Z, -Z
|
|
35
|
-
// order), a default Sampler, and 'srgb' color space (the environment-radiance default). Pass
|
|
36
|
-
// CubeTextureLike fields to override any of these; a supplied `faces` array is copied.
|
|
37
12
|
export function createCubeTexture(opts) {
|
|
38
|
-
return
|
|
13
|
+
return createTexture({
|
|
39
14
|
colorSpace: opts?.colorSpace ?? 'srgb',
|
|
40
|
-
|
|
41
|
-
|
|
15
|
+
sampler: opts?.sampler ? cloneSampler(opts.sampler) : undefined,
|
|
16
|
+
storage: {
|
|
17
|
+
dimension: 'cube',
|
|
18
|
+
images: opts?.images ?? [null, null, null, null, null, null],
|
|
19
|
+
},
|
|
42
20
|
});
|
|
43
21
|
}
|
|
44
|
-
// True when both cube textures describe identical state: same color space, same sampler state, and
|
|
45
|
-
// the same face references in every slot. Returns false for null/undefined operands.
|
|
46
22
|
export function equalsCubeTexture(a, b) {
|
|
47
23
|
if (!a || !b)
|
|
48
24
|
return false;
|
|
49
|
-
|
|
50
|
-
return true;
|
|
51
|
-
if (a.colorSpace !== b.colorSpace)
|
|
52
|
-
return false;
|
|
53
|
-
if (!equalsSampler(a.sampler, b.sampler))
|
|
54
|
-
return false;
|
|
55
|
-
for (let i = 0; i < 6; i++) {
|
|
56
|
-
if (a.faces[i] !== b.faces[i])
|
|
57
|
-
return false;
|
|
58
|
-
}
|
|
59
|
-
return true;
|
|
25
|
+
return equalsTexture(a, b);
|
|
60
26
|
}
|
|
61
|
-
// Returns the pixel size (width = height for a cube face) of the first non-null face, or -1 when
|
|
62
|
-
// no face is bound. Cube faces are assumed square; width is used as the canonical face size.
|
|
63
27
|
export function getCubeTextureFaceSize(cube) {
|
|
28
|
+
const images = getCubeImages(cube);
|
|
64
29
|
for (let i = 0; i < 6; i++) {
|
|
65
|
-
const face =
|
|
30
|
+
const face = images[i];
|
|
66
31
|
if (face !== null)
|
|
67
32
|
return face.width;
|
|
68
33
|
}
|
|
69
34
|
return -1;
|
|
70
35
|
}
|
|
71
|
-
// True when all six faces are non-null. Materials and IBL pipelines (skybox, reflections) gate
|
|
72
|
-
// sampling behind this; an incomplete cube is treated as absent.
|
|
73
36
|
export function isCubeTextureComplete(cube) {
|
|
74
|
-
return cube.
|
|
37
|
+
return getCubeImages(cube).every((face) => face !== null);
|
|
75
38
|
}
|
|
76
|
-
// Assigns a single face image in place. Use the CubeFace* constants from @flighthq/types
|
|
77
|
-
// (CubeFacePositiveX = 0, CubeFaceNegativeX = 1, CubeFacePositiveY = 2, CubeFaceNegativeY = 3,
|
|
78
|
-
// CubeFacePositiveZ = 4, CubeFaceNegativeZ = 5) instead of magic-number indices.
|
|
79
|
-
// Pass null to unbind the face.
|
|
80
39
|
export function setCubeTextureFace(cube, faceIndex, image) {
|
|
81
|
-
|
|
40
|
+
const images = getCubeImages(cube);
|
|
41
|
+
if (images[faceIndex] === image)
|
|
42
|
+
return;
|
|
43
|
+
images[faceIndex] = image;
|
|
44
|
+
cube.version = (cube.version + 1) >>> 0;
|
|
82
45
|
}
|
|
83
46
|
//# sourceMappingURL=cubeTexture.js.map
|
package/dist/cubeTexture.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cubeTexture.js","sourceRoot":"","sources":["../src/cubeTexture.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cubeTexture.js","sourceRoot":"","sources":["../src/cubeTexture.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAEpF,SAAS,aAAa,CAAC,OAA8B;IACnD,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAA6B;IAC5D,OAAO,YAAY,CAAC,MAAM,CAAgB,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,GAAgB,EAAE,MAA6B;IAC7E,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAyC;IACzE,OAAO,aAAa,CAAC;QACnB,UAAU,EAAE,IAAI,EAAE,UAAU,IAAI,MAAM;QACtC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;QAC/D,OAAO,EAAE;YACP,SAAS,EAAE,MAAM;YACjB,MAAM,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;SAC7D;KACF,CAAgB,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,CAA2C,EAC3C,CAA2C;IAE3C,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3B,OAAO,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAA2B;IAChE,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACvB,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC;IACvC,CAAC;IACD,OAAO,CAAC,CAAC,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAA2B;IAC/D,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAiB,EAAE,SAAiB,EAAE,KAA0B;IACjG,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,KAAK;QAAE,OAAO;IACvC,MAA6C,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;IAClE,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;AAC1C,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,2 @@
|
|
|
1
|
-
export
|
|
2
|
-
export * from './sampler';
|
|
3
|
-
export * from './texture';
|
|
4
|
-
export * from './videoTexture';
|
|
1
|
+
export { advanceVideoTexture, cloneCubeTexture, cloneSampler, cloneTexture, cloneVideoTexture, copyCubeTexture, copySampler, copyTexture, copyVideoTexture, createAnisotropicSampler, createClampLinearSampler, createCubeTexture, createPixelArtSampler, createRenderTexture, createSampler, createTexture, createTilingSampler, createVideoTexture, equalsCubeTexture, equalsSampler, equalsTexture, getCubeTextureFaceSize, getTextureBackingKind, getTextureHeight, getTextureInverseUvMatrix, getTextureUvMatrix, getTextureWidth, getVideoTextureHeight, getVideoTextureInverseUvMatrix, getVideoTextureUvMatrix, getVideoTextureWidth, hasTextureBacking, hasTextureUvTransform, isCubeTextureComplete, isTextureReady, isVideoTextureFrameReady, resetTextureUvTransform, resetVideoTextureFrame, setCubeTextureFace, setTextureFlip, setTextureImage, setTextureUvOffset, setTextureUvFromPixelRect, setTextureUvRotation, setTextureUvScale, setVideoTextureSource, transformTextureUv, } from './contract';
|
|
5
2
|
//# 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,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,wBAAwB,EACxB,wBAAwB,EACxB,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,sBAAsB,EACtB,qBAAqB,EACrB,gBAAgB,EAChB,yBAAyB,EACzB,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,8BAA8B,EAC9B,uBAAuB,EACvB,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,cAAc,EACd,wBAAwB,EACxB,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,yBAAyB,EACzB,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,2 @@
|
|
|
1
|
-
export
|
|
2
|
-
export * from './sampler';
|
|
3
|
-
export * from './texture';
|
|
4
|
-
export * from './videoTexture';
|
|
1
|
+
export { advanceVideoTexture, cloneCubeTexture, cloneSampler, cloneTexture, cloneVideoTexture, copyCubeTexture, copySampler, copyTexture, copyVideoTexture, createAnisotropicSampler, createClampLinearSampler, createCubeTexture, createPixelArtSampler, createRenderTexture, createSampler, createTexture, createTilingSampler, createVideoTexture, equalsCubeTexture, equalsSampler, equalsTexture, getCubeTextureFaceSize, getTextureBackingKind, getTextureHeight, getTextureInverseUvMatrix, getTextureUvMatrix, getTextureWidth, getVideoTextureHeight, getVideoTextureInverseUvMatrix, getVideoTextureUvMatrix, getVideoTextureWidth, hasTextureBacking, hasTextureUvTransform, isCubeTextureComplete, isTextureReady, isVideoTextureFrameReady, resetTextureUvTransform, resetVideoTextureFrame, setCubeTextureFace, setTextureFlip, setTextureImage, setTextureUvOffset, setTextureUvFromPixelRect, setTextureUvRotation, setTextureUvScale, setVideoTextureSource, transformTextureUv, } from './contract';
|
|
5
2
|
//# 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,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,wBAAwB,EACxB,wBAAwB,EACxB,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,sBAAsB,EACtB,qBAAqB,EACrB,gBAAgB,EAChB,yBAAyB,EACzB,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,8BAA8B,EAC9B,uBAAuB,EACvB,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,cAAc,EACd,wBAAwB,EACxB,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,yBAAyB,EACzB,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderTexture.d.ts","sourceRoot":"","sources":["../src/renderTexture.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAS1F,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,0BAA0B,CAAC,GAAG,aAAa,CAmChG"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { RenderTextureBackingKind } from '@flighthq/types/contract';
|
|
2
|
+
import { copySampler } from './sampler';
|
|
3
|
+
import { createTexture } from './texture';
|
|
4
|
+
// Creates a universal Texture with a GPU-origin render-target backing. Backend allocation stays lazy;
|
|
5
|
+
// renderIntoGlRenderTexture realizes the target in one state and resolveGlTexture later returns its
|
|
6
|
+
// color attachment without a CPU upload.
|
|
7
|
+
export function createRenderTexture(options) {
|
|
8
|
+
const colorSpace = options.colorSpace ?? 'linear';
|
|
9
|
+
const texture = createTexture({
|
|
10
|
+
colorSpace: options.colorSpace ?? 'linear',
|
|
11
|
+
flipX: options.flipX ?? false,
|
|
12
|
+
flipY: options.flipY ?? false,
|
|
13
|
+
storage: {
|
|
14
|
+
dimension: '2d',
|
|
15
|
+
image: null,
|
|
16
|
+
target: {
|
|
17
|
+
colorAttachments: options.colorAttachments,
|
|
18
|
+
colorFormats: options.colorFormats,
|
|
19
|
+
colorSpace,
|
|
20
|
+
clearColors: options.clearColors,
|
|
21
|
+
clearDepth: options.clearDepth,
|
|
22
|
+
depth: options.depth,
|
|
23
|
+
format: options.format,
|
|
24
|
+
height: options.height,
|
|
25
|
+
kind: RenderTextureBackingKind,
|
|
26
|
+
sampleCount: options.sampleCount,
|
|
27
|
+
width: options.width,
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
uvRotation: options.uvRotation,
|
|
31
|
+
});
|
|
32
|
+
if (options.sampler !== undefined)
|
|
33
|
+
copySampler(texture.sampler, options.sampler);
|
|
34
|
+
if (options.uvOffset !== undefined) {
|
|
35
|
+
texture.uvOffset.x = options.uvOffset.x;
|
|
36
|
+
texture.uvOffset.y = options.uvOffset.y;
|
|
37
|
+
}
|
|
38
|
+
if (options.uvScale !== undefined) {
|
|
39
|
+
texture.uvScale.x = options.uvScale.x;
|
|
40
|
+
texture.uvScale.y = options.uvScale.y;
|
|
41
|
+
}
|
|
42
|
+
return texture;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=renderTexture.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderTexture.js","sourceRoot":"","sources":["../src/renderTexture.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAEpE,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,sGAAsG;AACtG,oGAAoG;AACpG,yCAAyC;AACzC,MAAM,UAAU,mBAAmB,CAAC,OAA6C;IAC/E,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,QAAQ,CAAC;IAClD,MAAM,OAAO,GAAG,aAAa,CAAC;QAC5B,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,QAAQ;QAC1C,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,KAAK;QAC7B,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,KAAK;QAC7B,OAAO,EAAE;YACP,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,IAAI;YACX,MAAM,EAAE;gBACN,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;gBAC1C,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,UAAU;gBACV,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,IAAI,EAAE,wBAAwB;gBAC9B,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,KAAK,EAAE,OAAO,CAAC,KAAK;aACrB;SACF;QACD,UAAU,EAAE,OAAO,CAAC,UAAU;KAC/B,CAAkB,CAAC;IACpB,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS;QAAE,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACjF,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACnC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QACxC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC1C,CAAC;IACD,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAClC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QACtC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
package/dist/sampler.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Sampler, SamplerLike } from '@flighthq/types';
|
|
1
|
+
import type { Sampler, SamplerLike } from '@flighthq/types/contract';
|
|
2
2
|
export declare function cloneSampler(source: Readonly<SamplerLike>): Sampler;
|
|
3
3
|
export declare function copySampler(out: SamplerLike, source: Readonly<SamplerLike>): void;
|
|
4
4
|
export declare function createAnisotropicSampler(level: number): Sampler;
|
package/dist/sampler.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sampler.d.ts","sourceRoot":"","sources":["../src/sampler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"sampler.d.ts","sourceRoot":"","sources":["../src/sampler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAIrE,wBAAgB,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,OAAO,CASnE;AAID,wBAAgB,WAAW,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI,CAOjF;AAKD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE/D;AAID,wBAAgB,wBAAwB,IAAI,OAAO,CAElD;AAID,wBAAgB,qBAAqB,IAAI,OAAO,CAE/C;AAKD,wBAAgB,aAAa,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,OAAO,CAS5E;AAID,wBAAgB,mBAAmB,IAAI,OAAO,CAE7C;AAID,wBAAgB,aAAa,CAC3B,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI,GAAG,SAAS,EAC3C,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI,GAAG,SAAS,GAC1C,OAAO,CAWT"}
|
package/dist/sampler.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createEntity } from '@flighthq/entity';
|
|
1
|
+
import { createEntity } from '@flighthq/entity/contract';
|
|
2
2
|
// Allocates an independent Sampler with the same sampling state. Sampler holds only plain values,
|
|
3
3
|
// so the clone shares nothing mutable with its source.
|
|
4
4
|
export function cloneSampler(source) {
|
package/dist/sampler.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sampler.js","sourceRoot":"","sources":["../src/sampler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"sampler.js","sourceRoot":"","sources":["../src/sampler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,kGAAkG;AAClG,uDAAuD;AACvD,MAAM,UAAU,YAAY,CAAC,MAA6B;IACxD,OAAO,YAAY,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,KAAK,EAAE,MAAM,CAAC,KAAK;KACpB,CAAC,CAAC;AACL,CAAC;AAED,+FAA+F;AAC/F,4FAA4F;AAC5F,MAAM,UAAU,WAAW,CAAC,GAAgB,EAAE,MAA6B;IACzE,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;IACnC,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;IACjC,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;IACjC,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC7B,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IACzB,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;AAC3B,CAAC;AAED,mGAAmG;AACnG,yFAAyF;AACzF,6EAA6E;AAC7E,MAAM,UAAU,wBAAwB,CAAC,KAAa;IACpD,OAAO,aAAa,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;AAC9C,CAAC;AAED,gGAAgG;AAChG,yFAAyF;AACzF,MAAM,UAAU,wBAAwB;IACtC,OAAO,aAAa,EAAE,CAAC;AACzB,CAAC;AAED,kGAAkG;AAClG,4DAA4D;AAC5D,MAAM,UAAU,qBAAqB;IACnC,OAAO,aAAa,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;AACvF,CAAC;AAED,2FAA2F;AAC3F,kGAAkG;AAClG,+CAA+C;AAC/C,MAAM,UAAU,aAAa,CAAC,IAAqC;IACjE,OAAO,YAAY,CAAC;QAClB,UAAU,EAAE,IAAI,EAAE,UAAU,IAAI,CAAC;QACjC,SAAS,EAAE,IAAI,EAAE,SAAS,IAAI,QAAQ;QACtC,SAAS,EAAE,IAAI,EAAE,SAAS,IAAI,sBAAsB;QACpD,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,IAAI;QAC9B,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,eAAe;QACrC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,eAAe;KACtC,CAAC,CAAC;AACL,CAAC;AAED,0FAA0F;AAC1F,iFAAiF;AACjF,MAAM,UAAU,mBAAmB;IACjC,OAAO,aAAa,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC7D,CAAC;AAED,8FAA8F;AAC9F,gEAAgE;AAChE,MAAM,UAAU,aAAa,CAC3B,CAA2C,EAC3C,CAA2C;IAE3C,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3B,OAAO,CACL,CAAC,KAAK,CAAC;QACP,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,UAAU;YAC5B,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,SAAS;YAC3B,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,SAAS;YAC3B,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO;YACvB,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK;YACnB,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,CAAC,CACvB,CAAC;AACJ,CAAC"}
|
package/dist/texture.d.ts
CHANGED
|
@@ -1,17 +1,20 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { CreateTextureOptions, ImageBacking, Matrix3Like, Texture, TextureBackingKind, TextureLike, TextureUvTransform, Vector2Like } from '@flighthq/types/contract';
|
|
2
2
|
export declare function cloneTexture(source: Readonly<TextureLike>): Texture;
|
|
3
3
|
export declare function copyTexture(out: TextureLike, source: Readonly<TextureLike>): void;
|
|
4
|
-
export declare function createTexture(opts?: Readonly<
|
|
4
|
+
export declare function createTexture(opts?: Readonly<CreateTextureOptions>): Texture;
|
|
5
5
|
export declare function equalsTexture(a: Readonly<TextureLike> | null | undefined, b: Readonly<TextureLike> | null | undefined): boolean;
|
|
6
|
+
export declare function getTextureBackingKind(texture: Readonly<TextureLike>): TextureBackingKind | null;
|
|
6
7
|
export declare function getTextureHeight(texture: Readonly<TextureLike>): number;
|
|
7
8
|
export declare function getTextureInverseUvMatrix(out: Matrix3Like, texture: Readonly<TextureLike>): void;
|
|
8
9
|
export declare function getTextureUvMatrix(out: Matrix3Like, texture: Readonly<TextureUvTransform>): void;
|
|
9
10
|
export declare function getTextureWidth(texture: Readonly<TextureLike>): number;
|
|
11
|
+
export declare function hasTextureBacking(texture: Readonly<TextureLike>): boolean;
|
|
10
12
|
export declare function hasTextureUvTransform(texture: Readonly<TextureUvTransform>): boolean;
|
|
11
13
|
export declare function isTextureReady(texture: Readonly<TextureLike>): boolean;
|
|
12
14
|
export declare function resetTextureUvTransform(texture: TextureLike): void;
|
|
13
15
|
export declare function setTextureFlip(texture: TextureLike, flipX: boolean, flipY: boolean): void;
|
|
14
|
-
export declare function setTextureImage(texture: TextureLike, image:
|
|
16
|
+
export declare function setTextureImage(texture: TextureLike, image: ImageBacking | null): void;
|
|
17
|
+
export declare function setTextureUvFromPixelRect(texture: TextureLike, x: number, y: number, width: number, height: number): void;
|
|
15
18
|
export declare function setTextureUvOffset(texture: TextureLike, x: number, y: number): void;
|
|
16
19
|
export declare function setTextureUvRotation(texture: TextureLike, radians: number): void;
|
|
17
20
|
export declare function setTextureUvScale(texture: TextureLike, x: number, y: number): void;
|
package/dist/texture.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"texture.d.ts","sourceRoot":"","sources":["../src/texture.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,
|
|
1
|
+
{"version":3,"file":"texture.d.ts","sourceRoot":"","sources":["../src/texture.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,oBAAoB,EACpB,YAAY,EACZ,WAAW,EACX,OAAO,EACP,kBAAkB,EAElB,WAAW,EAEX,kBAAkB,EAClB,WAAW,EACZ,MAAM,0BAA0B,CAAC;AAoClC,wBAAgB,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,OAAO,CAYnE;AAKD,wBAAgB,WAAW,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI,CAkBjF;AAKD,wBAAgB,aAAa,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,oBAAoB,CAAC,GAAG,OAAO,CAiB5E;AAID,wBAAgB,aAAa,CAC3B,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI,GAAG,SAAS,EAC3C,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI,GAAG,SAAS,GAC1C,OAAO,CAgBT;AAKD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,kBAAkB,GAAG,IAAI,CAI/F;AAGD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,MAAM,CAIvE;AAQD,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI,CAGhG;AASD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAyBhG;AAGD,wBAAgB,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,MAAM,CAItE;AAGD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,OAAO,CAEzE;AAMD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,QAAQ,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAUpF;AAID,wBAAgB,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,OAAO,CAEtE;AAID,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAQlE;AAKD,wBAAgB,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAGzF;AAID,wBAAgB,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,GAAG,IAAI,CAKtF;AAqBD,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,WAAW,EACpB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,IAAI,CAcN;AAID,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAGnF;AAGD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAEhF;AAGD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAGlF;AAMD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAa/G"}
|
package/dist/texture.js
CHANGED
|
@@ -1,57 +1,92 @@
|
|
|
1
|
-
import { createEntity } from '@flighthq/entity';
|
|
2
|
-
import { cloneVector2, copyVector2, createVector2, inverseMatrix3 } from '@flighthq/geometry';
|
|
1
|
+
import { createEntity } from '@flighthq/entity/contract';
|
|
2
|
+
import { cloneVector2, copyVector2, createVector2, inverseMatrix3 } from '@flighthq/geometry/contract';
|
|
3
3
|
import { cloneSampler, copySampler, createSampler, equalsSampler } from './sampler';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
function cloneTextureStorage(storage) {
|
|
5
|
+
switch (storage.dimension) {
|
|
6
|
+
case '2d':
|
|
7
|
+
return { dimension: '2d', image: storage.image, target: storage.target };
|
|
8
|
+
case '2d-array':
|
|
9
|
+
return { dimension: '2d-array', images: storage.images.slice(), target: storage.target };
|
|
10
|
+
case '3d':
|
|
11
|
+
return { dimension: '3d', target: storage.target, volume: storage.volume };
|
|
12
|
+
case 'cube':
|
|
13
|
+
return {
|
|
14
|
+
dimension: 'cube',
|
|
15
|
+
images: storage.images.slice(),
|
|
16
|
+
target: storage.target,
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
function getTextureStorageImage(storage) {
|
|
21
|
+
switch (storage.dimension) {
|
|
22
|
+
case '2d':
|
|
23
|
+
return storage.image;
|
|
24
|
+
case '2d-array':
|
|
25
|
+
case 'cube':
|
|
26
|
+
return storage.images.find((image) => image !== null) ?? null;
|
|
27
|
+
case '3d':
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
// Allocates an independent Texture over the SAME image pixels: the ImageResource reference is shared
|
|
32
|
+
// through a fresh storage record (clone the resource separately to duplicate its content identity),
|
|
33
|
+
// while the Sampler and uv-transform vectors are deep-cloned for independent sampling.
|
|
7
34
|
export function cloneTexture(source) {
|
|
8
35
|
return createEntity({
|
|
9
36
|
colorSpace: source.colorSpace,
|
|
10
37
|
flipX: source.flipX,
|
|
11
38
|
flipY: source.flipY,
|
|
12
|
-
image: source.image,
|
|
13
|
-
resource: source.resource ?? null,
|
|
14
39
|
sampler: cloneSampler(source.sampler),
|
|
40
|
+
storage: cloneTextureStorage(source.storage),
|
|
15
41
|
uvOffset: cloneVector2(source.uvOffset),
|
|
16
42
|
uvRotation: source.uvRotation,
|
|
17
43
|
uvScale: cloneVector2(source.uvScale),
|
|
44
|
+
version: source.version >>> 0,
|
|
18
45
|
});
|
|
19
46
|
}
|
|
20
47
|
// Copies every Texture field from source into out in place. The image reference is shared; the
|
|
21
|
-
// Sampler and uv-transform vectors are copied into out's existing
|
|
22
|
-
// preserved). Safe when out aliases source.
|
|
48
|
+
// storage record, Sampler, and uv-transform vectors are copied into out's existing objects (their
|
|
49
|
+
// identities are preserved). Safe when out aliases source.
|
|
23
50
|
export function copyTexture(out, source) {
|
|
24
51
|
const colorSpace = source.colorSpace;
|
|
25
52
|
const flipX = source.flipX;
|
|
26
53
|
const flipY = source.flipY;
|
|
27
|
-
const
|
|
28
|
-
const resource = source.resource ?? null;
|
|
54
|
+
const storage = cloneTextureStorage(source.storage);
|
|
29
55
|
const uvRotation = source.uvRotation;
|
|
56
|
+
const version = source.version >>> 0;
|
|
30
57
|
copySampler(out.sampler, source.sampler);
|
|
31
58
|
copyVector2(out.uvOffset, source.uvOffset);
|
|
32
59
|
copyVector2(out.uvScale, source.uvScale);
|
|
33
60
|
out.colorSpace = colorSpace;
|
|
34
61
|
out.flipX = flipX;
|
|
35
62
|
out.flipY = flipY;
|
|
36
|
-
|
|
37
|
-
|
|
63
|
+
const outStorage = out.storage;
|
|
64
|
+
for (const key of Object.keys(outStorage))
|
|
65
|
+
delete outStorage[key];
|
|
66
|
+
Object.assign(outStorage, storage);
|
|
38
67
|
out.uvRotation = uvRotation;
|
|
68
|
+
out.version = version;
|
|
39
69
|
}
|
|
40
|
-
// Builds a Texture: an unbound image slot (null), a default Sampler, 'srgb' color space (the
|
|
70
|
+
// Builds a Texture: 2D storage with an unbound image slot (null), a default Sampler, 'srgb' color space (the
|
|
41
71
|
// albedo default — data maps override to 'linear'), and an identity KHR_texture_transform
|
|
42
72
|
// (zero offset, unit scale, no rotation). Pass TextureLike fields to override any of these.
|
|
43
73
|
export function createTexture(opts) {
|
|
44
|
-
|
|
74
|
+
const texture = createEntity({
|
|
45
75
|
colorSpace: opts?.colorSpace ?? 'srgb',
|
|
46
76
|
flipX: opts?.flipX ?? false,
|
|
47
77
|
flipY: opts?.flipY ?? false,
|
|
48
|
-
image: opts?.image ?? null,
|
|
49
|
-
resource: opts?.resource ?? null,
|
|
50
78
|
sampler: opts?.sampler ? cloneSampler(opts.sampler) : createSampler(),
|
|
79
|
+
storage: opts?.storage ? cloneTextureStorage(opts.storage) : { dimension: '2d', image: null },
|
|
51
80
|
uvOffset: opts?.uvOffset ? cloneVector2(opts.uvOffset) : createVector2(0, 0),
|
|
52
81
|
uvRotation: opts?.uvRotation ?? 0,
|
|
53
82
|
uvScale: opts?.uvScale ? cloneVector2(opts.uvScale) : createVector2(1, 1),
|
|
83
|
+
version: (opts?.version ?? 0) >>> 0,
|
|
54
84
|
});
|
|
85
|
+
const resource = opts?.resource;
|
|
86
|
+
if (resource != null) {
|
|
87
|
+
(resource.textures ??= []).push(texture);
|
|
88
|
+
}
|
|
89
|
+
return texture;
|
|
55
90
|
}
|
|
56
91
|
// True when both textures describe identical state: same color space, same sampler state, the same
|
|
57
92
|
// image reference, and the same uv-transform values. Returns false for null/undefined operands.
|
|
@@ -63,17 +98,30 @@ export function equalsTexture(a, b) {
|
|
|
63
98
|
return (a.colorSpace === b.colorSpace &&
|
|
64
99
|
a.flipX === b.flipX &&
|
|
65
100
|
a.flipY === b.flipY &&
|
|
66
|
-
a.
|
|
101
|
+
equalsTextureStorage(a.storage, b.storage) &&
|
|
67
102
|
a.uvRotation === b.uvRotation &&
|
|
68
103
|
a.uvOffset.x === b.uvOffset.x &&
|
|
69
104
|
a.uvOffset.y === b.uvOffset.y &&
|
|
70
105
|
a.uvScale.x === b.uvScale.x &&
|
|
71
106
|
a.uvScale.y === b.uvScale.y &&
|
|
107
|
+
a.version === b.version &&
|
|
72
108
|
equalsSampler(a.sampler, b.sampler));
|
|
73
109
|
}
|
|
74
|
-
// Returns the
|
|
110
|
+
// Returns the open resolver key declared by the texture's one active backing, or null when unbound.
|
|
111
|
+
// CPU-origin images own their key; GPU-origin targets own theirs, so TextureStorage carries no duplicate
|
|
112
|
+
// discriminant.
|
|
113
|
+
export function getTextureBackingKind(texture) {
|
|
114
|
+
const storage = texture.storage;
|
|
115
|
+
if (storage.dimension === '3d')
|
|
116
|
+
return storage.volume?.kind ?? storage.target?.kind ?? null;
|
|
117
|
+
return getTextureStorageImage(storage)?.kind ?? storage.target?.kind ?? null;
|
|
118
|
+
}
|
|
119
|
+
// Returns the height declared by the CPU image or render target backing, or -1 when unbound.
|
|
75
120
|
export function getTextureHeight(texture) {
|
|
76
|
-
|
|
121
|
+
const storage = texture.storage;
|
|
122
|
+
if (storage.dimension === '3d')
|
|
123
|
+
return storage.volume?.height ?? storage.target?.height ?? -1;
|
|
124
|
+
return getTextureStorageImage(storage)?.height ?? storage.target?.height ?? -1;
|
|
77
125
|
}
|
|
78
126
|
// Composes the KHR_texture_transform fields and inverts the result, producing the matrix that maps
|
|
79
127
|
// already-transformed uv coordinates back to the unit-square source uv. The forward transform is
|
|
@@ -118,9 +166,16 @@ export function getTextureUvMatrix(out, texture) {
|
|
|
118
166
|
m[7] = ty; // (1,2)
|
|
119
167
|
m[8] = 1; // (2,2)
|
|
120
168
|
}
|
|
121
|
-
// Returns the
|
|
169
|
+
// Returns the width declared by the CPU image or render target backing, or -1 when unbound.
|
|
122
170
|
export function getTextureWidth(texture) {
|
|
123
|
-
|
|
171
|
+
const storage = texture.storage;
|
|
172
|
+
if (storage.dimension === '3d')
|
|
173
|
+
return storage.volume?.width ?? storage.target?.width ?? -1;
|
|
174
|
+
return getTextureStorageImage(storage)?.width ?? storage.target?.width ?? -1;
|
|
175
|
+
}
|
|
176
|
+
// True when the texture declares either a CPU-origin image or a GPU-origin target backing.
|
|
177
|
+
export function hasTextureBacking(texture) {
|
|
178
|
+
return getTextureBackingKind(texture) !== null;
|
|
124
179
|
}
|
|
125
180
|
// True when the texture carries a non-identity KHR_texture_transform — any non-unit scale, non-zero
|
|
126
181
|
// offset, or non-zero rotation. GPU material renderers gate the HAS_UV_TRANSFORM shader variant on
|
|
@@ -135,13 +190,13 @@ export function hasTextureUvTransform(texture) {
|
|
|
135
190
|
texture.uvOffset.y !== 0 ||
|
|
136
191
|
texture.uvRotation !== 0);
|
|
137
192
|
}
|
|
138
|
-
// True once the texture references a pixel source. A texture
|
|
193
|
+
// True once the texture references a pixel source. A texture whose storage has a null image is treated as an
|
|
139
194
|
// absent slot by materials, so this is the gate a material samples behind.
|
|
140
195
|
export function isTextureReady(texture) {
|
|
141
|
-
return texture
|
|
196
|
+
return hasTextureBacking(texture);
|
|
142
197
|
}
|
|
143
198
|
// Resets the KHR_texture_transform to identity in place: zero offset, no rotation, unit scale, and
|
|
144
|
-
// no flip. Leaves
|
|
199
|
+
// no flip. Leaves storage, color space, sampler, and version untouched.
|
|
145
200
|
export function resetTextureUvTransform(texture) {
|
|
146
201
|
texture.flipX = false;
|
|
147
202
|
texture.flipY = false;
|
|
@@ -158,10 +213,47 @@ export function setTextureFlip(texture, flipX, flipY) {
|
|
|
158
213
|
texture.flipX = flipX;
|
|
159
214
|
texture.flipY = flipY;
|
|
160
215
|
}
|
|
161
|
-
// Binds (or clears, with null) the texture's image source in place
|
|
162
|
-
// or the uv-transform.
|
|
216
|
+
// Binds (or clears, with null) the texture's image source in place and advances the u32 dirty-bit.
|
|
217
|
+
// Does not touch sampling state or the uv-transform.
|
|
163
218
|
export function setTextureImage(texture, image) {
|
|
164
|
-
texture.
|
|
219
|
+
if (texture.storage.dimension !== '2d')
|
|
220
|
+
throw new Error('setTextureImage requires 2d texture storage');
|
|
221
|
+
if (texture.storage.image === image)
|
|
222
|
+
return;
|
|
223
|
+
texture.storage.image = image;
|
|
224
|
+
texture.version = (texture.version + 1) >>> 0;
|
|
225
|
+
}
|
|
226
|
+
function equalsTextureStorage(a, b) {
|
|
227
|
+
if (a.dimension !== b.dimension || a.target !== b.target)
|
|
228
|
+
return false;
|
|
229
|
+
switch (a.dimension) {
|
|
230
|
+
case '2d':
|
|
231
|
+
return b.dimension === '2d' && a.image === b.image;
|
|
232
|
+
case '2d-array':
|
|
233
|
+
case 'cube':
|
|
234
|
+
return (b.dimension === a.dimension &&
|
|
235
|
+
a.images.length === b.images.length &&
|
|
236
|
+
a.images.every((image, index) => image === b.images[index]));
|
|
237
|
+
case '3d':
|
|
238
|
+
return b.dimension === '3d' && a.volume === b.volume;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
// Maps a pixel-space rectangle in the texture's backing to its normalized uv window. An unbound
|
|
242
|
+
// texture has no pixel extent, so it receives an empty window rather than dividing by a sentinel.
|
|
243
|
+
export function setTextureUvFromPixelRect(texture, x, y, width, height) {
|
|
244
|
+
const textureWidth = getTextureWidth(texture);
|
|
245
|
+
const textureHeight = getTextureHeight(texture);
|
|
246
|
+
if (textureWidth <= 0 || textureHeight <= 0) {
|
|
247
|
+
texture.uvOffset.x = 0;
|
|
248
|
+
texture.uvOffset.y = 0;
|
|
249
|
+
texture.uvScale.x = 0;
|
|
250
|
+
texture.uvScale.y = 0;
|
|
251
|
+
return;
|
|
252
|
+
}
|
|
253
|
+
texture.uvOffset.x = x / textureWidth;
|
|
254
|
+
texture.uvOffset.y = y / textureHeight;
|
|
255
|
+
texture.uvScale.x = width / textureWidth;
|
|
256
|
+
texture.uvScale.y = height / textureHeight;
|
|
165
257
|
}
|
|
166
258
|
// Sets the uv offset (scroll/translation) in place. Equivalent to assigning texture.uvOffset
|
|
167
259
|
// directly but provides a named mutator for the KHR_texture_transform model.
|
package/dist/texture.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"texture.js","sourceRoot":"","sources":["../src/texture.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"texture.js","sourceRoot":"","sources":["../src/texture.ts"],"names":[],"mappings":"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"}
|