@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.
@@ -0,0 +1,6 @@
1
+ export * from './cubeTexture';
2
+ export * from './renderTexture';
3
+ export * from './sampler';
4
+ export * from './texture';
5
+ export * from './videoTexture';
6
+ //# sourceMappingURL=contract.d.ts.map
@@ -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"}
@@ -0,0 +1,6 @@
1
+ export * from './cubeTexture';
2
+ export * from './renderTexture';
3
+ export * from './sampler';
4
+ export * from './texture';
5
+ export * from './videoTexture';
6
+ //# sourceMappingURL=contract.js.map
@@ -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"}
@@ -1,9 +1,9 @@
1
- import type { CubeTexture, CubeTextureLike, ImageResource } from '@flighthq/types';
2
- export declare function cloneCubeTexture(source: Readonly<CubeTextureLike>): CubeTexture;
3
- export declare function copyCubeTexture(out: CubeTextureLike, source: Readonly<CubeTextureLike>): void;
4
- export declare function createCubeTexture(opts?: Readonly<Partial<CubeTextureLike>>): CubeTexture;
5
- export declare function equalsCubeTexture(a: Readonly<CubeTextureLike> | null | undefined, b: Readonly<CubeTextureLike> | null | undefined): boolean;
6
- export declare function getCubeTextureFaceSize(cube: Readonly<CubeTextureLike>): number;
7
- export declare function isCubeTextureComplete(cube: Readonly<CubeTextureLike>): boolean;
8
- export declare function setCubeTextureFace(cube: CubeTextureLike, faceIndex: number, image: ImageResource | null): void;
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":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAOnF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,WAAW,CAM/E;AAKD,wBAAgB,eAAe,CAAC,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,IAAI,CAiB7F;AAKD,wBAAgB,iBAAiB,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,GAAG,WAAW,CAMxF;AAID,wBAAgB,iBAAiB,CAC/B,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,IAAI,GAAG,SAAS,EAC/C,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,IAAI,GAAG,SAAS,GAC9C,OAAO,CAST;AAID,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,MAAM,CAM9E;AAID,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,OAAO,CAE9E;AAMD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI,GAAG,IAAI,CAE9G"}
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"}
@@ -1,83 +1,46 @@
1
- import { createEntity } from '@flighthq/entity';
2
- import { cloneSampler, copySampler, createSampler, equalsSampler } from './sampler';
3
- // Allocates an independent CubeTexture over the SAME six face pixels: each ImageResource reference
4
- // is shared (the faces array itself is a fresh copy, so reassigning a face on the clone does not
5
- // touch the source), while the Sampler is deep-cloned so the cubes sample independently.
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 createEntity({
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
- const colorSpace = source.colorSpace;
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 createEntity({
13
+ return createTexture({
39
14
  colorSpace: opts?.colorSpace ?? 'srgb',
40
- faces: opts?.faces ? opts.faces.slice() : [null, null, null, null, null, null],
41
- sampler: opts?.sampler ? cloneSampler(opts.sampler) : createSampler(),
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
- if (a === b)
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 = cube.faces[i];
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.faces.every((face) => face !== null);
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
- cube.faces[faceIndex] = image;
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
@@ -1 +1 @@
1
- {"version":3,"file":"cubeTexture.js","sourceRoot":"","sources":["../src/cubeTexture.ts"],"names":[],"mappings":"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"}
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 * from './cubeTexture';
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
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC"}
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 * from './cubeTexture';
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,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC"}
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,3 @@
1
+ import type { CreateRenderTextureOptions, RenderTexture } from '@flighthq/types/contract';
2
+ export declare function createRenderTexture(options: Readonly<CreateRenderTextureOptions>): RenderTexture;
3
+ //# sourceMappingURL=renderTexture.d.ts.map
@@ -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;
@@ -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,iBAAiB,CAAC;AAI5D,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"}
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) {
@@ -1 +1 @@
1
- {"version":3,"file":"sampler.js","sourceRoot":"","sources":["../src/sampler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD,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"}
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 { ImageResource, Matrix3Like, Texture, TextureLike, TextureUvTransform, Vector2Like } from '@flighthq/types';
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<Partial<TextureLike>>): Texture;
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: ImageResource | null): void;
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;
@@ -1 +1 @@
1
- {"version":3,"file":"texture.d.ts","sourceRoot":"","sources":["../src/texture.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,aAAa,EACb,WAAW,EACX,OAAO,EACP,WAAW,EACX,kBAAkB,EAClB,WAAW,EACZ,MAAM,iBAAiB,CAAC;AAOzB,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,CAgBjF;AAKD,wBAAgB,aAAa,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,OAAO,CAY5E;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,CAeT;AAGD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,MAAM,CAEvE;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,CAEtE;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,aAAa,GAAG,IAAI,GAAG,IAAI,CAEvF;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"}
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
- // Allocates an independent Texture over the SAME image pixels: the ImageResource reference is
5
- // shared (clone the resource separately to upload into a second render state), while the Sampler
6
- // and the uv-transform vectors are deep-cloned so the two textures can be sampled independently.
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 entities (their identities are
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 image = source.image;
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
- out.image = image;
37
- out.resource = resource;
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
- return createEntity({
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.image === b.image &&
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 pixel height of the texture's bound image, or -1 when no image is bound.
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
- return texture.image !== null ? texture.image.height : -1;
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 pixel width of the texture's bound image, or -1 when no image is bound.
169
+ // Returns the width declared by the CPU image or render target backing, or -1 when unbound.
122
170
  export function getTextureWidth(texture) {
123
- return texture.image !== null ? texture.image.width : -1;
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 with a null image is treated as an
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.image !== null;
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 the image, color space, and sampler untouched.
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. Does not touch sampling state
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.image = image;
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.
@@ -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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"}