ris-framework 0.2.0-dev.14 → 0.2.0-dev.16

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.
Files changed (160) hide show
  1. package/CHANGELOG.md +39 -2
  2. package/README.md +8 -6
  3. package/dist/api/IFramework.d.ts +1 -1
  4. package/dist/api/IFramework.d.ts.map +1 -1
  5. package/dist/api/_export.d.ts +3 -0
  6. package/dist/api/_export.d.ts.map +1 -1
  7. package/dist/api/camera/CameraTransformUtilities.d.ts +65 -0
  8. package/dist/api/camera/CameraTransformUtilities.d.ts.map +1 -0
  9. package/dist/api/camera/ICamera.d.ts +36 -2
  10. package/dist/api/camera/ICamera.d.ts.map +1 -1
  11. package/dist/api/camera/OrbitCamera.d.ts +22 -14
  12. package/dist/api/camera/OrbitCamera.d.ts.map +1 -1
  13. package/dist/api/camera/OrthographicCamera.d.ts +33 -11
  14. package/dist/api/camera/OrthographicCamera.d.ts.map +1 -1
  15. package/dist/api/camera/PerspectiveCamera.d.ts +32 -18
  16. package/dist/api/camera/PerspectiveCamera.d.ts.map +1 -1
  17. package/dist/api/content/ContentManager.d.ts.map +1 -1
  18. package/dist/api/lights/AmbientLight.d.ts +7 -2
  19. package/dist/api/lights/AmbientLight.d.ts.map +1 -1
  20. package/dist/api/lights/DirectionalLight.d.ts +18 -4
  21. package/dist/api/lights/DirectionalLight.d.ts.map +1 -1
  22. package/dist/api/lights/ILight.d.ts +18 -0
  23. package/dist/api/lights/ILight.d.ts.map +1 -0
  24. package/dist/api/lights/PointLight.d.ts +17 -4
  25. package/dist/api/lights/PointLight.d.ts.map +1 -1
  26. package/dist/api/lights/_export.d.ts +1 -0
  27. package/dist/api/lights/_export.d.ts.map +1 -1
  28. package/dist/api/material/ForwardBlinnPhongMaterial.d.ts +2 -2
  29. package/dist/api/material/ForwardBlinnPhongMaterial.d.ts.map +1 -1
  30. package/dist/api/material/IMaterial.d.ts +7 -0
  31. package/dist/api/material/IMaterial.d.ts.map +1 -1
  32. package/dist/api/material/IMaterialFactory.d.ts +3 -2
  33. package/dist/api/material/IMaterialFactory.d.ts.map +1 -1
  34. package/dist/api/material/IUnlitMaterialDescriptor.d.ts +16 -0
  35. package/dist/api/material/IUnlitMaterialDescriptor.d.ts.map +1 -0
  36. package/dist/api/material/MaterialFactory.d.ts +3 -2
  37. package/dist/api/material/MaterialFactory.d.ts.map +1 -1
  38. package/dist/api/material/SpriteMaterial.d.ts +3 -0
  39. package/dist/api/material/SpriteMaterial.d.ts.map +1 -1
  40. package/dist/api/material/UnlitMaterial.d.ts +5 -12
  41. package/dist/api/material/UnlitMaterial.d.ts.map +1 -1
  42. package/dist/api/material/_export.d.ts +1 -1
  43. package/dist/api/material/_export.d.ts.map +1 -1
  44. package/dist/api/meshes/IRenderableMesh.d.ts +3 -14
  45. package/dist/api/meshes/IRenderableMesh.d.ts.map +1 -1
  46. package/dist/api/meshes/RenderableMesh.d.ts +5 -20
  47. package/dist/api/meshes/RenderableMesh.d.ts.map +1 -1
  48. package/dist/api/rendering/IGraphicsDevice.d.ts +2 -2
  49. package/dist/api/rendering/IGraphicsDevice.d.ts.map +1 -1
  50. package/dist/api/rendering/IRenderer.d.ts +6 -4
  51. package/dist/api/rendering/IRenderer.d.ts.map +1 -1
  52. package/dist/api/rendering/_export-rendering.d.ts +1 -0
  53. package/dist/api/rendering/_export-rendering.d.ts.map +1 -1
  54. package/dist/api/rendering/primitive/IPrimitiveStateDescriptor.d.ts +24 -0
  55. package/dist/api/rendering/primitive/IPrimitiveStateDescriptor.d.ts.map +1 -0
  56. package/dist/api/rendering/primitive/_export.d.ts +1 -1
  57. package/dist/api/rendering/primitive/_export.d.ts.map +1 -1
  58. package/dist/api/rendering/render-pipelines/IMainRenderTargetRenderPipeline.d.ts +5 -0
  59. package/dist/api/rendering/render-pipelines/IMainRenderTargetRenderPipeline.d.ts.map +1 -1
  60. package/dist/api/rendering/texture/ITextureDescriptor.d.ts +5 -1
  61. package/dist/api/rendering/texture/ITextureDescriptor.d.ts.map +1 -1
  62. package/dist/api/rendering/texture/ITextureFactory.d.ts +3 -1
  63. package/dist/api/rendering/texture/ITextureFactory.d.ts.map +1 -1
  64. package/dist/api/rendering/texture/TextureUtilities.d.ts +7 -0
  65. package/dist/api/rendering/texture/TextureUtilities.d.ts.map +1 -1
  66. package/dist/api/scene/ISceneObject.d.ts +12 -0
  67. package/dist/api/scene/ISceneObject.d.ts.map +1 -0
  68. package/dist/api/scene/Scene.d.ts +17 -6
  69. package/dist/api/scene/Scene.d.ts.map +1 -1
  70. package/dist/api/scene/node/Node.d.ts +26 -0
  71. package/dist/api/scene/node/Node.d.ts.map +1 -0
  72. package/dist/api/scene/node/TransformNode.d.ts +46 -0
  73. package/dist/api/scene/node/TransformNode.d.ts.map +1 -0
  74. package/dist/core/material/UnlitMaterialDescriptorUtilities.d.ts +17 -0
  75. package/dist/core/material/UnlitMaterialDescriptorUtilities.d.ts.map +1 -0
  76. package/dist/core/rendering/AGraphicsDevice.d.ts +2 -2
  77. package/dist/core/rendering/AGraphicsDevice.d.ts.map +1 -1
  78. package/dist/core/rendering/ARenderer.d.ts +5 -2
  79. package/dist/core/rendering/ARenderer.d.ts.map +1 -1
  80. package/dist/core/rendering/primitive/PrimitiveStateDescriptorUtilities.d.ts +15 -0
  81. package/dist/core/rendering/primitive/PrimitiveStateDescriptorUtilities.d.ts.map +1 -0
  82. package/dist/core/rendering/texture/TextureDescriptorUtilities.d.ts +2 -2
  83. package/dist/core/rendering/texture/TextureDescriptorUtilities.d.ts.map +1 -1
  84. package/dist/index.js +704 -272
  85. package/dist/webgl/WebGlGraphicsDevice.d.ts +2 -2
  86. package/dist/webgl/WebGlGraphicsDevice.d.ts.map +1 -1
  87. package/dist/webgl/lights/WebGlLightsBuffer.d.ts.map +1 -1
  88. package/dist/webgl/primitive/WebGlPrimitiveState.d.ts +3 -3
  89. package/dist/webgl/primitive/WebGlPrimitiveState.d.ts.map +1 -1
  90. package/dist/webgl/render-pipelines/WebGlMainRenderTargetRenderPipeline.d.ts +8 -0
  91. package/dist/webgl/render-pipelines/WebGlMainRenderTargetRenderPipeline.d.ts.map +1 -1
  92. package/dist/webgl/texture/WebGlTextureFactory.d.ts +1 -1
  93. package/dist/webgl/texture/WebGlTextureFactory.d.ts.map +1 -1
  94. package/dist/webgl/utilities/WebGlTextureUtilities.d.ts.map +1 -1
  95. package/dist/webgpu/WebGpuGraphicsDevice.d.ts +2 -2
  96. package/dist/webgpu/WebGpuGraphicsDevice.d.ts.map +1 -1
  97. package/dist/webgpu/primitive/WebGpuPrimitiveState.d.ts +2 -2
  98. package/dist/webgpu/primitive/WebGpuPrimitiveState.d.ts.map +1 -1
  99. package/dist/webgpu/render-pipelines/WebGpuMainRenderTargetRenderPipeline.d.ts +5 -0
  100. package/dist/webgpu/render-pipelines/WebGpuMainRenderTargetRenderPipeline.d.ts.map +1 -1
  101. package/dist/webgpu/texture/WebGpuTextureFactory.d.ts.map +1 -1
  102. package/package.json +2 -2
  103. package/src/Framework.ts +1 -1
  104. package/src/api/IFramework.ts +1 -1
  105. package/src/api/_export.ts +3 -0
  106. package/src/api/camera/CameraTransformUtilities.ts +182 -0
  107. package/src/api/camera/ICamera.ts +42 -2
  108. package/src/api/camera/OrbitCamera.ts +71 -38
  109. package/src/api/camera/OrthographicCamera.ts +71 -28
  110. package/src/api/camera/PerspectiveCamera.ts +69 -33
  111. package/src/api/content/ContentManager.ts +9 -5
  112. package/src/api/lights/AmbientLight.ts +8 -2
  113. package/src/api/lights/DirectionalLight.ts +30 -5
  114. package/src/api/lights/ILight.ts +22 -0
  115. package/src/api/lights/PointLight.ts +26 -5
  116. package/src/api/lights/_export.ts +1 -0
  117. package/src/api/material/ForwardBlinnPhongMaterial.ts +2 -2
  118. package/src/api/material/IMaterial.ts +8 -0
  119. package/src/api/material/IMaterialFactory.ts +3 -2
  120. package/src/api/material/IUnlitMaterialDescriptor.ts +18 -0
  121. package/src/api/material/MaterialFactory.ts +4 -3
  122. package/src/api/material/SpriteMaterial.ts +4 -0
  123. package/src/api/material/UnlitMaterial.ts +11 -18
  124. package/src/api/material/_export.ts +1 -1
  125. package/src/api/meshes/IRenderableMesh.ts +3 -18
  126. package/src/api/meshes/RenderableMesh.ts +15 -45
  127. package/src/api/rendering/IGraphicsDevice.ts +2 -2
  128. package/src/api/rendering/IRenderer.ts +6 -4
  129. package/src/api/rendering/_export-rendering.ts +2 -1
  130. package/src/api/rendering/primitive/IPrimitiveStateDescriptor.ts +27 -0
  131. package/src/api/rendering/primitive/_export.ts +1 -1
  132. package/src/api/rendering/render-pipelines/IMainRenderTargetRenderPipeline.ts +6 -0
  133. package/src/api/rendering/texture/ITextureDescriptor.ts +6 -1
  134. package/src/api/rendering/texture/ITextureFactory.ts +3 -1
  135. package/src/api/rendering/texture/TextureUtilities.ts +16 -0
  136. package/src/api/scene/ISceneObject.ts +13 -0
  137. package/src/api/scene/Scene.ts +52 -11
  138. package/src/api/scene/node/Node.ts +54 -0
  139. package/src/api/scene/node/TransformNode.ts +88 -0
  140. package/src/core/material/UnlitMaterialDescriptorUtilities.ts +21 -0
  141. package/src/core/rendering/AGraphicsDevice.ts +2 -2
  142. package/src/core/rendering/ARenderer.ts +23 -5
  143. package/src/core/rendering/primitive/PrimitiveStateDescriptorUtilities.ts +22 -0
  144. package/src/core/rendering/texture/TextureDescriptorUtilities.ts +3 -2
  145. package/src/webgl/WebGlGraphicsDevice.ts +2 -3
  146. package/src/webgl/lights/WebGlLightsBuffer.ts +21 -8
  147. package/src/webgl/primitive/WebGlPrimitiveState.ts +8 -6
  148. package/src/webgl/render-pipelines/WebGlMainRenderTargetRenderPipeline.ts +14 -0
  149. package/src/webgl/texture/WebGlTextureFactory.ts +27 -16
  150. package/src/webgl/utilities/WebGlTextureUtilities.ts +10 -4
  151. package/src/webgpu/WebGpuGraphicsDevice.ts +3 -3
  152. package/src/webgpu/primitive/WebGpuPrimitiveState.ts +7 -5
  153. package/src/webgpu/render-pipelines/WebGpuMainRenderTargetRenderPipeline.ts +6 -0
  154. package/src/webgpu/texture/WebGpuTextureFactory.ts +1 -1
  155. package/dist/api/material/ICameraMaterial.d.ts +0 -18
  156. package/dist/api/material/ICameraMaterial.d.ts.map +0 -1
  157. package/dist/api/rendering/primitive/PrimitiveStateDescriptor.d.ts +0 -24
  158. package/dist/api/rendering/primitive/PrimitiveStateDescriptor.d.ts.map +0 -1
  159. package/src/api/material/ICameraMaterial.ts +0 -22
  160. package/src/api/rendering/primitive/PrimitiveStateDescriptor.ts +0 -27
@@ -1,6 +1,8 @@
1
1
  import { vec3 } from "gl-matrix";
2
2
  import { Color } from "../data/Color.js";
3
3
  import type { Scene } from "../scene/Scene.js";
4
+ import type { ILight } from "./ILight.js";
5
+ import { TransformNode } from "../scene/node/TransformNode.js";
4
6
  /** The descriptor for a directional light. All fields are optional. */
5
7
  export interface DirectionalLightDescriptor {
6
8
  /** The unique id. Assigned automatically when omitted. */
@@ -11,14 +13,15 @@ export interface DirectionalLightDescriptor {
11
13
  color?: Color;
12
14
  /** Multiplies the colour. Defaults to 1. */
13
15
  intensity?: number;
14
- /** The direction in which the light travels. Defaults to straight down, (0, -1, 0). */
16
+ /** The initial world direction in which the light travels (see {@link DirectionalLight.setDirection}). Defaults to straight down, (0, -1, 0). */
15
17
  direction?: vec3;
16
18
  }
17
19
  /**
18
20
  * The directional light. Plain data: it has no GPU resources.
21
+ * The light travels along its transform's forward axis (local -Z), in world space; position and scale are ignored.
19
22
  * @public
20
23
  */
21
- export declare class DirectionalLight {
24
+ export declare class DirectionalLight implements ILight {
22
25
  /**
23
26
  * The constructor.
24
27
  * @param descriptor The optional descriptor. Colour and direction are copied.
@@ -34,7 +37,18 @@ export declare class DirectionalLight {
34
37
  color: Color;
35
38
  /** Multiplies {@link color} when written to the lights buffer. */
36
39
  intensity: number;
37
- /** The direction in which the light travels. */
38
- direction: vec3;
40
+ /** The transform. Its world rotation sets the direction (forward is -Z). */
41
+ transform: TransformNode;
42
+ /**
43
+ * Rotates the transform so the light travels along a world-space direction (converted into the parent's space
44
+ * when parented). A zero vector leaves the rotation unchanged.
45
+ * @param direction The world direction; it does not need to be normalized.
46
+ */
47
+ setDirection(direction: vec3): void;
48
+ /**
49
+ * Gets the world-space direction in which the light travels (unit length), derived from the transform.
50
+ * @param out The optional output vector.
51
+ */
52
+ getDirection(out?: vec3): vec3;
39
53
  }
40
54
  //# sourceMappingURL=DirectionalLight.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DirectionalLight.d.ts","sourceRoot":"","sources":["../../../src/api/lights/DirectionalLight.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAC,KAAK,EAAC,MAAM,kBAAkB,CAAC;AAEvC,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,mBAAmB,CAAC;AAE7C,uEAAuE;AACvE,MAAM,WAAW,0BAA0B;IACvC,0DAA0D;IAC1D,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ,qCAAqC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,6DAA6D;IAC7D,KAAK,CAAC,EAAE,KAAK,CAAC;IAEd,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,uFAAuF;IACvF,SAAS,CAAC,EAAE,IAAI,CAAC;CACpB;AAED;;;GAGG;AACH,qBAAa,gBAAgB;IAEzB;;;;;OAKG;gBACgB,UAAU,CAAC,EAAE,0BAA0B,EAAE,KAAK,CAAC,EAAE,KAAK;IAUzE,mCAAmC;IACnC,SAAgB,EAAE,EAAE,MAAM,CAAC;IAE3B,qCAAqC;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IAErB,0CAA0C;IACnC,KAAK,EAAE,KAAK,CAAC;IAEpB,kEAAkE;IAC3D,SAAS,EAAE,MAAM,CAAC;IAEzB,gDAAgD;IACzC,SAAS,EAAE,IAAI,CAAC;CAC1B"}
1
+ {"version":3,"file":"DirectionalLight.d.ts","sourceRoot":"","sources":["../../../src/api/lights/DirectionalLight.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAC,KAAK,EAAC,MAAM,kBAAkB,CAAC;AAEvC,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,mBAAmB,CAAC;AAC7C,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AACxC,OAAO,EAAC,aAAa,EAAC,MAAM,gCAAgC,CAAC;AAK7D,uEAAuE;AACvE,MAAM,WAAW,0BAA0B;IACvC,0DAA0D;IAC1D,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ,qCAAqC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,6DAA6D;IAC7D,KAAK,CAAC,EAAE,KAAK,CAAC;IAEd,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,iJAAiJ;IACjJ,SAAS,CAAC,EAAE,IAAI,CAAC;CACpB;AAED;;;;GAIG;AACH,qBAAa,gBAAiB,YAAW,MAAM;IAE3C;;;;;OAKG;gBACgB,UAAU,CAAC,EAAE,0BAA0B,EAAE,KAAK,CAAC,EAAE,KAAK;IAUzE,mCAAmC;IACnC,SAAgB,EAAE,EAAE,MAAM,CAAC;IAE3B,qCAAqC;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IAErB,0CAA0C;IACnC,KAAK,EAAE,KAAK,CAAC;IAEpB,kEAAkE;IAC3D,SAAS,EAAE,MAAM,CAAC;IAEzB,4EAA4E;IACrE,SAAS,EAAE,aAAa,CAAuB;IAEtD;;;;OAIG;IACI,YAAY,CAAC,SAAS,EAAE,IAAI,GAAG,IAAI;IAM1C;;;OAGG;IACI,YAAY,CAAC,GAAG,GAAE,IAAoB,GAAG,IAAI;CAGvD"}
@@ -0,0 +1,18 @@
1
+ import type { Color } from "../data/Color.js";
2
+ import type { ISceneObject } from "../scene/ISceneObject.js";
3
+ /**
4
+ * The common interface of all lights. A light is a scene object: its `transform` is the single source of truth
5
+ * for where it is (point lights) or where it points (directional lights). The ambient light ignores its transform.
6
+ * @public
7
+ */
8
+ export interface ILight extends ISceneObject {
9
+ /** The unique id of this light. */
10
+ readonly id: number;
11
+ /** The optional name for a light. */
12
+ name?: string;
13
+ /** The light colour. Alpha is ignored. */
14
+ color: Color;
15
+ /** Multiplies {@link color} when written to the lights buffer. */
16
+ intensity: number;
17
+ }
18
+ //# sourceMappingURL=ILight.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ILight.d.ts","sourceRoot":"","sources":["../../../src/api/lights/ILight.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAE3D;;;;GAIG;AACH,MAAM,WAAW,MAAO,SAAQ,YAAY;IAExC,mCAAmC;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,qCAAqC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,0CAA0C;IAC1C,KAAK,EAAE,KAAK,CAAC;IAEb,kEAAkE;IAClE,SAAS,EAAE,MAAM,CAAC;CACrB"}
@@ -1,6 +1,8 @@
1
1
  import { vec3 } from "gl-matrix";
2
2
  import { Color } from "../data/Color.js";
3
3
  import type { Scene } from "../scene/Scene.js";
4
+ import type { ILight } from "./ILight.js";
5
+ import { TransformNode } from "../scene/node/TransformNode.js";
4
6
  /** The descriptor for a point light. All fields are optional. */
5
7
  export interface PointLightDescriptor {
6
8
  /** The unique id. Assigned automatically when omitted. */
@@ -11,7 +13,7 @@ export interface PointLightDescriptor {
11
13
  color?: Color;
12
14
  /** Multiplies the colour. Defaults to 1. */
13
15
  intensity?: number;
14
- /** World-space position. Defaults to the origin. */
16
+ /** The initial world position (see {@link PointLight.setPosition}). Defaults to the origin. */
15
17
  position?: vec3;
16
18
  /** Constant attenuation term. Defaults to 1. */
17
19
  constant?: number;
@@ -22,10 +24,11 @@ export interface PointLightDescriptor {
22
24
  }
23
25
  /**
24
26
  * The point light. Plain data: it has no GPU resources.
27
+ * Its position is the world position of its {@link transform}.
25
28
  * Attenuation is `1 / (constant + linear * d + quadratic * d²)` for distance `d`.
26
29
  * @public
27
30
  */
28
- export declare class PointLight {
31
+ export declare class PointLight implements ILight {
29
32
  /** The default constant attenuation. */
30
33
  static readonly DEFAULT_CONSTANT = 1;
31
34
  /** The default linear attenuation. */
@@ -47,8 +50,18 @@ export declare class PointLight {
47
50
  color: Color;
48
51
  /** Multiplies {@link color} when written to the lights buffer. */
49
52
  intensity: number;
50
- /** World-space position of the light. */
51
- position: vec3;
53
+ /** The transform. Its world position is the light position. */
54
+ transform: TransformNode;
55
+ /**
56
+ * Moves the light to a world position (converted into the parent's space when parented).
57
+ * @param position The world position.
58
+ */
59
+ setPosition(position: vec3): void;
60
+ /**
61
+ * Gets the world position of the light, read from the transform.
62
+ * @param out The optional output vector.
63
+ */
64
+ getPosition(out?: vec3): vec3;
52
65
  /** Constant attenuation term. */
53
66
  constant: number;
54
67
  /** Linear attenuation term. */
@@ -1 +1 @@
1
- {"version":3,"file":"PointLight.d.ts","sourceRoot":"","sources":["../../../src/api/lights/PointLight.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAC,KAAK,EAAC,MAAM,kBAAkB,CAAC;AAEvC,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,mBAAmB,CAAC;AAE7C,iEAAiE;AACjE,MAAM,WAAW,oBAAoB;IACjC,0DAA0D;IAC1D,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ,qCAAqC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,6DAA6D;IAC7D,KAAK,CAAC,EAAE,KAAK,CAAC;IAEd,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,IAAI,CAAC;IAEhB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;GAIG;AACH,qBAAa,UAAU;IAEnB,wCAAwC;IACxC,gBAAuB,gBAAgB,KAAK;IAE5C,sCAAsC;IACtC,gBAAuB,cAAc,QAAQ;IAE7C,yCAAyC;IACzC,gBAAuB,iBAAiB,SAAS;IAEjD;;;;;OAKG;gBACgB,UAAU,CAAC,EAAE,oBAAoB,EAAE,KAAK,CAAC,EAAE,KAAK;IAanE,mCAAmC;IACnC,SAAgB,EAAE,EAAE,MAAM,CAAC;IAE3B,qCAAqC;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IAErB,0CAA0C;IACnC,KAAK,EAAE,KAAK,CAAC;IAEpB,kEAAkE;IAC3D,SAAS,EAAE,MAAM,CAAC;IAEzB,yCAAyC;IAClC,QAAQ,EAAE,IAAI,CAAC;IAEtB,iCAAiC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IAExB,+BAA+B;IACxB,MAAM,EAAE,MAAM,CAAC;IAEtB,kCAAkC;IAC3B,SAAS,EAAE,MAAM,CAAC;CAC5B"}
1
+ {"version":3,"file":"PointLight.d.ts","sourceRoot":"","sources":["../../../src/api/lights/PointLight.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAC,KAAK,EAAC,MAAM,kBAAkB,CAAC;AAEvC,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,mBAAmB,CAAC;AAC7C,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AACxC,OAAO,EAAC,aAAa,EAAC,MAAM,gCAAgC,CAAC;AAG7D,iEAAiE;AACjE,MAAM,WAAW,oBAAoB;IACjC,0DAA0D;IAC1D,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ,qCAAqC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,6DAA6D;IAC7D,KAAK,CAAC,EAAE,KAAK,CAAC;IAEd,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,+FAA+F;IAC/F,QAAQ,CAAC,EAAE,IAAI,CAAC;IAEhB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;GAKG;AACH,qBAAa,UAAW,YAAW,MAAM;IAErC,wCAAwC;IACxC,gBAAuB,gBAAgB,KAAK;IAE5C,sCAAsC;IACtC,gBAAuB,cAAc,QAAQ;IAE7C,yCAAyC;IACzC,gBAAuB,iBAAiB,SAAS;IAEjD;;;;;OAKG;gBACgB,UAAU,CAAC,EAAE,oBAAoB,EAAE,KAAK,CAAC,EAAE,KAAK;IAanE,mCAAmC;IACnC,SAAgB,EAAE,EAAE,MAAM,CAAC;IAE3B,qCAAqC;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IAErB,0CAA0C;IACnC,KAAK,EAAE,KAAK,CAAC;IAEpB,kEAAkE;IAC3D,SAAS,EAAE,MAAM,CAAC;IAEzB,+DAA+D;IACxD,SAAS,EAAE,aAAa,CAAuB;IAEtD;;;OAGG;IACI,WAAW,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI;IAIxC;;;OAGG;IACI,WAAW,CAAC,GAAG,GAAE,IAAoB,GAAG,IAAI;IAKnD,iCAAiC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IAExB,+BAA+B;IACxB,MAAM,EAAE,MAAM,CAAC;IAEtB,kCAAkC;IAC3B,SAAS,EAAE,MAAM,CAAC;CAC5B"}
@@ -1,3 +1,4 @@
1
+ export * from "./ILight.js";
1
2
  export * from "./AmbientLight.js";
2
3
  export * from "./DirectionalLight.js";
3
4
  export * from "./PointLight.js";
@@ -1 +1 @@
1
- {"version":3,"file":"_export.d.ts","sourceRoot":"","sources":["../../../src/api/lights/_export.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"_export.d.ts","sourceRoot":"","sources":["../../../src/api/lights/_export.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC"}
@@ -12,7 +12,7 @@ import type { ICamera } from "../camera/ICamera.js";
12
12
  import type { AmbientLight } from "../lights/AmbientLight.js";
13
13
  import type { DirectionalLight } from "../lights/DirectionalLight.js";
14
14
  import type { PointLight } from "../lights/PointLight.js";
15
- import type { ICameraMaterial } from "./ICameraMaterial.js";
15
+ import type { IMaterial } from "./IMaterial.js";
16
16
  import type { ILightsMaterial } from "./ILightsMaterial.js";
17
17
  /**
18
18
  * The additional material config options.
@@ -30,7 +30,7 @@ export declare class ForwardBlinnPhongMaterialDescriptor {
30
30
  * The Blinn-Phong material with forward calculated lighting.
31
31
  * @public
32
32
  */
33
- export declare class ForwardBlinnPhongMaterial implements ICameraMaterial, ILightsMaterial {
33
+ export declare class ForwardBlinnPhongMaterial implements IMaterial, ILightsMaterial {
34
34
  /** The directional light slots of the material's lights buffer and shader. */
35
35
  static readonly MAX_DIRECTIONAL_LIGHTS = 3;
36
36
  /** The point light slots of the material's lights buffer and shader. */
@@ -1 +1 @@
1
- {"version":3,"file":"ForwardBlinnPhongMaterial.d.ts","sourceRoot":"","sources":["../../../src/api/material/ForwardBlinnPhongMaterial.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ForwardBlinnPhongMaterial.d.ts","sourceRoot":"","sources":["../../../src/api/material/ForwardBlinnPhongMaterial.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import type { IRenderableMesh } from "../meshes/IRenderableMesh.js";
4
4
  import type { IVertexBuffer } from "../rendering/buffers/IVertexBuffer.js";
5
5
  import type { IIndexBuffer } from "../rendering/buffers/IIndexBuffer.js";
6
6
  import type { IUniformBuffer } from "../rendering/buffers/IUniformBuffer.js";
7
+ import type { ICamera } from "../camera/ICamera.js";
7
8
  /**
8
9
  * The material interface.
9
10
  * @public
@@ -17,6 +18,12 @@ export interface IMaterial extends IDisposable {
17
18
  modelBuffer?: IUniformBuffer;
18
19
  /** The geometry format required by the material.*/
19
20
  readonly geometryFormat: GeometryFormat;
21
+ /**
22
+ * The camera.
23
+ * Setting it binds the camera's buffers, if material uses them.
24
+ * For some materials, setting camera plays no role as they might not use camera.
25
+ */
26
+ camera?: ICamera;
20
27
  /**
21
28
  * Called before rendering.
22
29
  */
@@ -1 +1 @@
1
- {"version":3,"file":"IMaterial.d.ts","sourceRoot":"","sources":["../../../src/api/material/IMaterial.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAC,cAAc,EAAC,MAAM,+BAA+B,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAE7E;;;GAGG;AACH,MAAM,WAAW,SAAU,SAAQ,WAAW;IAE1C;;;;OAIG;IACH,WAAW,CAAC,EAAE,cAAc,CAAC;IAE7B,mDAAmD;IACnD,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAExC;;OAEG;IACH,YAAY,IAAI,IAAI,CAAC;IAErB;;;OAGG;IACH,UAAU,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,CAAC;IAExC;;;;;;OAMG;IACH,MAAM,CAAC,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAEvH"}
1
+ {"version":3,"file":"IMaterial.d.ts","sourceRoot":"","sources":["../../../src/api/material/IMaterial.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAC,cAAc,EAAC,MAAM,+BAA+B,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,sBAAsB,CAAC;AAElD;;;GAGG;AACH,MAAM,WAAW,SAAU,SAAQ,WAAW;IAE1C;;;;OAIG;IACH,WAAW,CAAC,EAAE,cAAc,CAAC;IAE7B,mDAAmD;IACnD,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAExC;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,YAAY,IAAI,IAAI,CAAC;IAErB;;;OAGG;IACH,UAAU,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,CAAC;IAExC;;;;;;OAMG;IACH,MAAM,CAAC,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAEvH"}
@@ -1,6 +1,7 @@
1
1
  import { InspectTextureMipsMaterial } from "./InspectTextureMipsMaterial.js";
2
2
  import type { SpriteMaterial, SpriteMaterialDescriptor } from "./SpriteMaterial.js";
3
- import { UnlitMaterial, UnlitMaterialDescriptor } from "./UnlitMaterial.js";
3
+ import { UnlitMaterial } from "./UnlitMaterial.js";
4
+ import type { IUnlitMaterialDescriptor } from "./IUnlitMaterialDescriptor.js";
4
5
  import type { ForwardBlinnPhongMaterial, ForwardBlinnPhongMaterialDescriptor } from "./ForwardBlinnPhongMaterial.js";
5
6
  /**
6
7
  * The material factory.
@@ -16,7 +17,7 @@ export interface IMaterialFactory {
16
17
  * @param descriptor The optional additional configuration options for material, such as rendering options.
17
18
  * @returns The Unlit Material.
18
19
  */
19
- createUnlitMaterial(descriptor?: UnlitMaterialDescriptor): UnlitMaterial;
20
+ createUnlitMaterial(descriptor?: IUnlitMaterialDescriptor): UnlitMaterial;
20
21
  /**
21
22
  * Creates a sprite material.
22
23
  * @param descriptor The sprite material descriptor with projection view buffer, texture and sampler.
@@ -1 +1 @@
1
- {"version":3,"file":"IMaterialFactory.d.ts","sourceRoot":"","sources":["../../../src/api/material/IMaterialFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,0BAA0B,EAAC,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,EAAC,cAAc,EAAE,wBAAwB,EAAC,MAAM,qBAAqB,CAAC;AAClF,OAAO,EAAC,aAAa,EAAE,uBAAuB,EAAC,MAAM,oBAAoB,CAAC;AAC1E,OAAO,KAAK,EAAC,yBAAyB,EAAE,mCAAmC,EAAC,MAAM,gCAAgC,CAAC;AAEnH;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAE7B;;;OAGG;IACH,gCAAgC,IAAI,0BAA0B,CAAC;IAE/D;;;;OAIG;IACH,mBAAmB,CAAC,UAAU,CAAC,EAAE,uBAAuB,GAAG,aAAa,CAAC;IAEzE;;;;OAIG;IACH,oBAAoB,CAAC,UAAU,EAAE,wBAAwB,GAAG,cAAc,CAAC;IAE3E;;;;;OAKG;IACH,+BAA+B,CAAC,UAAU,EAAE,mCAAmC,GAAG,yBAAyB,CAAC;CAC/G"}
1
+ {"version":3,"file":"IMaterialFactory.d.ts","sourceRoot":"","sources":["../../../src/api/material/IMaterialFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,0BAA0B,EAAC,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,EAAC,cAAc,EAAE,wBAAwB,EAAC,MAAM,qBAAqB,CAAC;AAClF,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAC,wBAAwB,EAAC,MAAM,+BAA+B,CAAC;AAC5E,OAAO,KAAK,EAAC,yBAAyB,EAAE,mCAAmC,EAAC,MAAM,gCAAgC,CAAC;AAEnH;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAE7B;;;OAGG;IACH,gCAAgC,IAAI,0BAA0B,CAAC;IAE/D;;;;OAIG;IACH,mBAAmB,CAAC,UAAU,CAAC,EAAE,wBAAwB,GAAG,aAAa,CAAC;IAE1E;;;;OAIG;IACH,oBAAoB,CAAC,UAAU,EAAE,wBAAwB,GAAG,cAAc,CAAC;IAE3E;;;;;OAKG;IACH,+BAA+B,CAAC,UAAU,EAAE,mCAAmC,GAAG,yBAAyB,CAAC;CAC/G"}
@@ -0,0 +1,16 @@
1
+ import type { IPrimitiveState } from "../rendering/primitive/IPrimitiveState.js";
2
+ import type { ICamera } from "../camera/ICamera.js";
3
+ /**
4
+ * The descriptor for an unlit material. All fields are optional.
5
+ * @public
6
+ */
7
+ export interface IUnlitMaterialDescriptor {
8
+ /** The primitive state. By default, the render pipeline's default (back-face culled, counter-clockwise triangles). */
9
+ primitiveState?: IPrimitiveState;
10
+ /**
11
+ * The camera used to render this material. By default, none: a zero projection view buffer is bound
12
+ * until a camera is assigned (a scene assigns its camera).
13
+ */
14
+ camera?: ICamera;
15
+ }
16
+ //# sourceMappingURL=IUnlitMaterialDescriptor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IUnlitMaterialDescriptor.d.ts","sourceRoot":"","sources":["../../../src/api/material/IUnlitMaterialDescriptor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,2CAA2C,CAAC;AAC/E,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,sBAAsB,CAAC;AAElD;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IAErC,sHAAsH;IACtH,cAAc,CAAC,EAAE,eAAe,CAAC;IAEjC;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB"}
@@ -2,7 +2,8 @@ import { InspectTextureMipsMaterial } from "./InspectTextureMipsMaterial.js";
2
2
  import type { IFramework } from "../IFramework.js";
3
3
  import type { IMaterialFactory } from "./IMaterialFactory.js";
4
4
  import { SpriteMaterial, type SpriteMaterialDescriptor } from "./SpriteMaterial.js";
5
- import { UnlitMaterial, UnlitMaterialDescriptor } from "./UnlitMaterial.js";
5
+ import { UnlitMaterial } from "./UnlitMaterial.js";
6
+ import type { IUnlitMaterialDescriptor } from "./IUnlitMaterialDescriptor.js";
6
7
  import { ForwardBlinnPhongMaterial, type ForwardBlinnPhongMaterialDescriptor } from "./ForwardBlinnPhongMaterial.js";
7
8
  /**
8
9
  * The material factory.
@@ -17,7 +18,7 @@ export declare class MaterialFactory implements IMaterialFactory {
17
18
  /** @inheritDoc */
18
19
  createInspectTextureMipsMaterial(): InspectTextureMipsMaterial;
19
20
  /** @inheritDoc */
20
- createUnlitMaterial(descriptor?: UnlitMaterialDescriptor): UnlitMaterial;
21
+ createUnlitMaterial(descriptor?: IUnlitMaterialDescriptor): UnlitMaterial;
21
22
  /** @inheritDoc */
22
23
  createSpriteMaterial(descriptor: SpriteMaterialDescriptor): SpriteMaterial;
23
24
  /** @inheritDoc */
@@ -1 +1 @@
1
- {"version":3,"file":"MaterialFactory.d.ts","sourceRoot":"","sources":["../../../src/api/material/MaterialFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,0BAA0B,EAAC,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAC,cAAc,EAAE,KAAK,wBAAwB,EAAC,MAAM,qBAAqB,CAAC;AAClF,OAAO,EAAC,aAAa,EAAE,uBAAuB,EAAC,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAC,yBAAyB,EAAE,KAAK,mCAAmC,EAAC,MAAM,gCAAgC,CAAC;AAEnH;;GAEG;AACH,qBAAa,eAAgB,YAAW,gBAAgB;IAMjC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAJ9C;;;OAGG;gBACiC,UAAU,EAAE,UAAU;IAG1D,kBAAkB;IACX,gCAAgC,IAAI,0BAA0B;IAIrE,kBAAkB;IACX,mBAAmB,CAAC,UAAU,CAAC,EAAG,uBAAuB,GAAG,aAAa;IAIhF,kBAAkB;IACX,oBAAoB,CAAC,UAAU,EAAE,wBAAwB,GAAG,cAAc;IAIjF,kBAAkB;IACX,+BAA+B,CAAC,UAAU,EAAE,mCAAmC,GAAG,yBAAyB;CAGrH"}
1
+ {"version":3,"file":"MaterialFactory.d.ts","sourceRoot":"","sources":["../../../src/api/material/MaterialFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,0BAA0B,EAAC,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAC,cAAc,EAAE,KAAK,wBAAwB,EAAC,MAAM,qBAAqB,CAAC;AAClF,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAC,wBAAwB,EAAC,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAC,yBAAyB,EAAE,KAAK,mCAAmC,EAAC,MAAM,gCAAgC,CAAC;AAEnH;;GAEG;AACH,qBAAa,eAAgB,YAAW,gBAAgB;IAMjC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAJ9C;;;OAGG;gBACiC,UAAU,EAAE,UAAU;IAG1D,kBAAkB;IACX,gCAAgC,IAAI,0BAA0B;IAIrE,kBAAkB;IACX,mBAAmB,CAAC,UAAU,CAAC,EAAE,wBAAwB,GAAG,aAAa;IAIhF,kBAAkB;IACX,oBAAoB,CAAC,UAAU,EAAE,wBAAwB,GAAG,cAAc;IAIjF,kBAAkB;IACX,+BAA+B,CAAC,UAAU,EAAE,mCAAmC,GAAG,yBAAyB;CAGrH"}
@@ -7,6 +7,7 @@ import type { ISampler } from "../rendering/sampler/ISampler.js";
7
7
  import type { IFramework } from "../IFramework.js";
8
8
  import type { IUniformBuffer } from "../rendering/buffers/IUniformBuffer.js";
9
9
  import type { IMaterial } from "./IMaterial.js";
10
+ import type { ICamera } from "../camera/ICamera.js";
10
11
  /** The sprite material descriptor. */
11
12
  export interface SpriteMaterialDescriptor {
12
13
  /** The projection view buffer. Shared, it is not disposed by the material. */
@@ -20,6 +21,8 @@ export interface SpriteMaterialDescriptor {
20
21
  * The sprite material.
21
22
  */
22
23
  export declare class SpriteMaterial implements IMaterial {
24
+ /** The camera. Stored only: sprites render in screen space and use no camera buffers. */
25
+ camera?: ICamera;
23
26
  private readonly _renderPipeline;
24
27
  /**
25
28
  * The constructor.
@@ -1 +1 @@
1
- {"version":3,"file":"SpriteMaterial.d.ts","sourceRoot":"","sources":["../../../src/api/material/SpriteMaterial.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAE7E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,sCAAsC;AACtC,MAAM,WAAW,wBAAwB;IAErC,8EAA8E;IAC9E,oBAAoB,EAAE,cAAc,CAAC;IAErC,0BAA0B;IAC1B,OAAO,EAAE,UAAU,CAAC;IAEpB,2BAA2B;IAC3B,OAAO,EAAE,QAAQ,CAAC;CACrB;AAED;;GAEG;AACH,qBAAa,cAAe,YAAW,SAAS;IAE5C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAwB;IAExD;;;;OAIG;gBACgB,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,wBAAwB;IAM9E,kBAAkB;IAClB,IAAW,cAAc,IAAI,cAAc,CAE1C;IAED,0BAA0B;IAC1B,IAAW,OAAO,IAAI,UAAU,CAE/B;IAED,0BAA0B;IAC1B,IAAW,OAAO,CAAC,KAAK,EAAE,UAAU,EAEnC;IAED,kBAAkB;IACX,YAAY,IAAI,IAAI;IAI3B,kBAAkB;IACX,UAAU,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI;IAI9C;;;;;;OAMG;IACI,MAAM,CAAC,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI;IAI1H,kBAAkB;IACX,OAAO,IAAI,IAAI;CAGzB"}
1
+ {"version":3,"file":"SpriteMaterial.d.ts","sourceRoot":"","sources":["../../../src/api/material/SpriteMaterial.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAE7E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEpD,sCAAsC;AACtC,MAAM,WAAW,wBAAwB;IAErC,8EAA8E;IAC9E,oBAAoB,EAAE,cAAc,CAAC;IAErC,0BAA0B;IAC1B,OAAO,EAAE,UAAU,CAAC;IAEpB,2BAA2B;IAC3B,OAAO,EAAE,QAAQ,CAAC;CACrB;AAED;;GAEG;AACH,qBAAa,cAAe,YAAW,SAAS;IAE5C,yFAAyF;IAClF,MAAM,CAAC,EAAE,OAAO,CAAC;IAExB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAwB;IAExD;;;;OAIG;gBACgB,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,wBAAwB;IAM9E,kBAAkB;IAClB,IAAW,cAAc,IAAI,cAAc,CAE1C;IAED,0BAA0B;IAC1B,IAAW,OAAO,IAAI,UAAU,CAE/B;IAED,0BAA0B;IAC1B,IAAW,OAAO,CAAC,KAAK,EAAE,UAAU,EAEnC;IAED,kBAAkB;IACX,YAAY,IAAI,IAAI;IAI3B,kBAAkB;IACX,UAAU,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI;IAI9C;;;;;;OAMG;IACI,MAAM,CAAC,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI;IAI1H,kBAAkB;IACX,OAAO,IAAI,IAAI;CAGzB"}
@@ -1,4 +1,4 @@
1
- import type { ICameraMaterial } from "./ICameraMaterial.js";
1
+ import type { IMaterial } from "./IMaterial.js";
2
2
  import type { IRenderableMesh } from "../meshes/IRenderableMesh.js";
3
3
  import type { ITexture2D } from "../rendering/texture/ITexture2D.js";
4
4
  import type { ISampler } from "../rendering/sampler/ISampler.js";
@@ -8,19 +8,12 @@ import type { IIndexBuffer } from "../rendering/buffers/IIndexBuffer.js";
8
8
  import type { IVertexBuffer } from "../rendering/buffers/IVertexBuffer.js";
9
9
  import type { IFramework } from "../IFramework.js";
10
10
  import { Color } from "../data/Color.js";
11
- import type { IPrimitiveState } from "../rendering/primitive/IPrimitiveState.js";
12
11
  import type { ICamera } from "../camera/ICamera.js";
13
- /** The additional material config options */
14
- export declare class UnlitMaterialDescriptor {
15
- /** The primitive state. */
16
- primitiveState?: IPrimitiveState;
17
- /** The camera used to render this material. */
18
- camera?: ICamera;
19
- }
12
+ import type { IUnlitMaterialDescriptor } from "./IUnlitMaterialDescriptor.js";
20
13
  /**
21
14
  * Unlit material.
22
15
  */
23
- export declare class UnlitMaterial implements ICameraMaterial {
16
+ export declare class UnlitMaterial implements IMaterial {
24
17
  private readonly _framework;
25
18
  private _color;
26
19
  private _materialData;
@@ -40,9 +33,9 @@ export declare class UnlitMaterial implements ICameraMaterial {
40
33
  /**
41
34
  * The constructor.
42
35
  * @param framework The framework.
43
- * @param config The optional material descriptor. A projection view buffer passed here is shared and is not disposed by this material.
36
+ * @param descriptor The optional material descriptor. A projection view buffer passed here is shared and is not disposed by this material.
44
37
  */
45
- constructor(framework: IFramework, config?: UnlitMaterialDescriptor);
38
+ constructor(framework: IFramework, descriptor?: IUnlitMaterialDescriptor);
46
39
  /** Creates the pipeline with the current bindings. */
47
40
  private _createPipeline;
48
41
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"UnlitMaterial.d.ts","sourceRoot":"","sources":["../../../src/api/material/UnlitMaterial.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UnlitMaterial.d.ts","sourceRoot":"","sources":["../../../src/api/material/UnlitMaterial.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAE9C,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAEjE,OAAO,EAAC,cAAc,EAAC,MAAM,+BAA+B,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EAAC,KAAK,EAAC,MAAM,kBAAkB,CAAC;AAGvC,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAC,wBAAwB,EAAC,MAAM,+BAA+B,CAAC;AAI5E;;GAEG;AACH,qBAAa,aAAc,YAAW,SAAS;IAE3C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,aAAa,CAAa;IAClC,6EAA6E;IAC7E,OAAO,CAAC,SAAS,CAAC,CAAuB;IACzC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAkB;IACnD,sFAAsF;IACtF,OAAO,CAAC,eAAe,CAAC,CAAa;IACrC,OAAO,CAAC,eAAe,CAAC,CAAW;IACnC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,qBAAqB,CAAiB;IAC9C,gGAAgG;IAChG,OAAO,CAAC,yBAAyB,CAAU;IAC3C,OAAO,CAAC,OAAO,CAAC,CAAU;IAC1B,OAAO,CAAC,eAAe,CAAiB;IACxC,OAAO,CAAC,YAAY,CAAC,CAAiB;IAEtC;;;;OAIG;gBACgB,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,wBAAwB;IAa/E,sDAAsD;IACtD,OAAO,CAAC,eAAe;IAiBvB;;;OAGG;IACH,IAAW,MAAM,IAAI,OAAO,GAAG,SAAS,CAEvC;IAED,kBAAkB;IAClB,IAAW,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,SAAS,EAgB5C;IAED;;OAEG;IACI,YAAY,EAAE,KAAK,CAAiB;IAE3C;;OAEG;IACH,IAAW,cAAc,IAAI,UAAU,CAEtC;IAED;;OAEG;IACH,IAAW,cAAc,CAAC,KAAK,EAAE,UAAU,EAK1C;IAED;;OAEG;IACH,IAAW,qBAAqB,IAAI,QAAQ,GAAG,SAAS,CAEvD;IAED;;OAEG;IACH,IAAW,qBAAqB,CAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,EAM3D;IAED;;;OAGG;IACH,IAAW,WAAW,IAAI,cAAc,GAAG,SAAS,CAEnD;IAED,8CAA8C;IAC9C,IAAW,WAAW,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,EAavD;IAED;;OAEG;IACH,SAAgB,cAAc,6CAA6C;IAE3E,kBAAkB;IACX,YAAY,IAAI,IAAI;IAW3B,kBAAkB;IACX,UAAU,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI;IAI9C,kBAAkB;IACX,MAAM,CAAC,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI;IAO1H,kBAAkB;IACX,OAAO,IAAI,IAAI;CAQzB"}
@@ -4,7 +4,7 @@ export * from "./InspectTextureMipsMaterial.js";
4
4
  export * from "./MaterialFactory.js";
5
5
  export * from "./SpriteMaterial.js";
6
6
  export * from "./UnlitMaterial.js";
7
+ export * from "./IUnlitMaterialDescriptor.js";
7
8
  export * from "./ForwardBlinnPhongMaterial.js";
8
- export * from "./ICameraMaterial.js";
9
9
  export * from "./ILightsMaterial.js";
10
10
  //# sourceMappingURL=_export.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"_export.d.ts","sourceRoot":"","sources":["../../../src/api/material/_export.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,uBAAuB,CAAA;AACrC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA"}
1
+ {"version":3,"file":"_export.d.ts","sourceRoot":"","sources":["../../../src/api/material/_export.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,uBAAuB,CAAA;AACrC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,sBAAsB,CAAA"}
@@ -1,7 +1,7 @@
1
- import type { mat4, vec3 } from "gl-matrix";
2
1
  import type { IMesh } from "./IMesh.js";
3
2
  import type { IMaterial } from "../material/IMaterial.js";
4
3
  import type { IUniformBuffer } from "../rendering/buffers/IUniformBuffer.js";
4
+ import type { ISceneObject } from "../scene/ISceneObject.js";
5
5
  /**
6
6
  * A mesh that can be drawn: a mesh plus an optional material, an index range and sub meshes.
7
7
  *
@@ -14,7 +14,7 @@ import type { IUniformBuffer } from "../rendering/buffers/IUniformBuffer.js";
14
14
  * (a `SceneMesh` does that).
15
15
  * @public
16
16
  */
17
- export interface IRenderableMesh extends IMesh {
17
+ export interface IRenderableMesh extends IMesh, ISceneObject {
18
18
  /** The material, if any. A root mesh made only of sub meshes has none. */
19
19
  material?: IMaterial;
20
20
  /** The parent for a sub mesh; undefined for a root mesh. */
@@ -25,19 +25,8 @@ export interface IRenderableMesh extends IMesh {
25
25
  readonly indexStart: number;
26
26
  /** Number of indices to draw; -1 (the default) draws all indices. */
27
27
  readonly indexCount: number;
28
- /** World position. Defaults to the origin. In-place edits are detected. A sub mesh uses the root's. */
29
- position: vec3;
30
28
  /**
31
- * Euler rotation in radians, applied in Y, X, Z order (yaw, pitch, roll): `R = Ry * Rx * Rz`.
32
- * Defaults to (0, 0, 0). In-place edits are detected. A sub mesh uses the root's.
33
- */
34
- rotation: vec3;
35
- /** Scale. Defaults to (1, 1, 1). In-place edits are detected. A sub mesh uses the root's. */
36
- scale: vec3;
37
- /** The model matrix `T * R * S`, recomputed only when position, rotation or scale changed. */
38
- readonly modelMatrix: mat4;
39
- /**
40
- * The model buffer (std140 `mat4`) holding {@link modelMatrix}. Owned by the root mesh (sub meshes share it),
29
+ * The model buffer (std140 `mat4`) holding the root's `transform.modelMatrix`. Owned by the root mesh (sub meshes share it),
41
30
  * uploaded when the transform changed and assigned to the material(s) before drawing. Created on first use.
42
31
  */
43
32
  readonly modelBuffer: IUniformBuffer;
@@ -1 +1 @@
1
- {"version":3,"file":"IRenderableMesh.d.ts","sourceRoot":"","sources":["../../../src/api/meshes/IRenderableMesh.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAE7E;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,eAAgB,SAAQ,KAAK;IAE1C,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB,4DAA4D;IAC5D,QAAQ,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC;IAElC,sBAAsB;IACtB,QAAQ,CAAC,SAAS,EAAE,SAAS,eAAe,EAAE,CAAC;IAE/C,uDAAuD;IACvD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,qEAAqE;IACrE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,uGAAuG;IACvG,QAAQ,EAAE,IAAI,CAAC;IAEf;;;OAGG;IACH,QAAQ,EAAE,IAAI,CAAC;IAEf,6FAA6F;IAC7F,KAAK,EAAE,IAAI,CAAC;IAEZ,8FAA8F;IAC9F,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC;IAE3B;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC;IAErC,8EAA8E;IAC9E,MAAM,IAAI,IAAI,CAAC;CAClB"}
1
+ {"version":3,"file":"IRenderableMesh.d.ts","sourceRoot":"","sources":["../../../src/api/meshes/IRenderableMesh.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAE3D;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,eAAgB,SAAQ,KAAK,EAAE,YAAY;IAExD,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB,4DAA4D;IAC5D,QAAQ,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC;IAElC,sBAAsB;IACtB,QAAQ,CAAC,SAAS,EAAE,SAAS,eAAe,EAAE,CAAC;IAE/C,uDAAuD;IACvD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,qEAAqE;IACrE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC;IAErC,8EAA8E;IAC9E,MAAM,IAAI,IAAI,CAAC;CAClB"}
@@ -1,4 +1,3 @@
1
- import { mat4, vec3 } from "gl-matrix";
2
1
  import { Mesh } from "./Mesh.js";
3
2
  import type { IRenderableMesh } from "./IRenderableMesh.js";
4
3
  import type { IFramework } from "../IFramework.js";
@@ -7,6 +6,7 @@ import type { IUniformBuffer } from "../rendering/buffers/IUniformBuffer.js";
7
6
  import type { IVertexBuffer } from "../rendering/buffers/IVertexBuffer.js";
8
7
  import type { IIndexBuffer } from "../rendering/buffers/IIndexBuffer.js";
9
8
  import type { GeometryFormat } from "../geometry/GeometryFormat.js";
9
+ import { TransformNode } from "../scene/node/TransformNode.js";
10
10
  /**
11
11
  * A mesh that can be drawn (C# `RenderableMesh`). See {@link IRenderableMesh}.
12
12
  *
@@ -18,14 +18,6 @@ import type { GeometryFormat } from "../geometry/GeometryFormat.js";
18
18
  export declare class RenderableMesh extends Mesh implements IRenderableMesh {
19
19
  private readonly _subMeshes;
20
20
  private readonly _parent?;
21
- private _position;
22
- private _rotation;
23
- private _scale;
24
- private readonly _modelMatrix;
25
- private readonly _rotationQuat;
26
- private readonly _lastPosition;
27
- private readonly _lastRotation;
28
- private readonly _lastScale;
29
21
  private _modelBuffer?;
30
22
  /** The matrix last uploaded to the model buffer. */
31
23
  private readonly _uploadedMatrix;
@@ -35,6 +27,10 @@ export declare class RenderableMesh extends Mesh implements IRenderableMesh {
35
27
  readonly indexStart: number;
36
28
  /** @inheritDoc */
37
29
  readonly indexCount: number;
30
+ private _transform;
31
+ /** @inheritDoc A sub mesh returns (and sets) the root's transform. */
32
+ get transform(): TransformNode;
33
+ set transform(value: TransformNode);
38
34
  /**
39
35
  * The constructor.
40
36
  * @param framework The framework.
@@ -64,17 +60,6 @@ export declare class RenderableMesh extends Mesh implements IRenderableMesh {
64
60
  get indexBuffer(): IIndexBuffer | undefined;
65
61
  /** The material's geometry format. */
66
62
  protected get _defaultGeometryFormat(): GeometryFormat | undefined;
67
- /** @inheritDoc */
68
- get position(): vec3;
69
- set position(value: vec3);
70
- /** @inheritDoc */
71
- get rotation(): vec3;
72
- set rotation(value: vec3);
73
- /** @inheritDoc */
74
- get scale(): vec3;
75
- set scale(value: vec3);
76
- /** @inheritDoc */
77
- get modelMatrix(): mat4;
78
63
  /** @inheritDoc Created on first access and disposed with the root mesh. */
79
64
  get modelBuffer(): IUniformBuffer;
80
65
  /** Uploads the root's model matrix when the transform changed since the last upload. */
@@ -1 +1 @@
1
- {"version":3,"file":"RenderableMesh.d.ts","sourceRoot":"","sources":["../../../src/api/meshes/RenderableMesh.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RenderableMesh.d.ts","sourceRoot":"","sources":["../../../src/api/meshes/RenderableMesh.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAC/B,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,0BAA0B,CAAC;AACxD,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,wCAAwC,CAAC;AAC3E,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,uCAAuC,CAAC;AACzE,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,sCAAsC,CAAC;AACvE,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,+BAA+B,CAAC;AAElE,OAAO,EAAC,aAAa,EAAC,MAAM,gCAAgC,CAAC;AAE7D;;;;;;;GAOG;AACH,qBAAa,cAAe,SAAQ,IAAK,YAAW,eAAe;IAE/D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwB;IACnD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAiB;IAE1C,OAAO,CAAC,YAAY,CAAC,CAAiB;IACtC,oDAAoD;IACpD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IAEjD,kBAAkB;IACX,QAAQ,CAAC,EAAE,SAAS,CAAC;IAE5B,kBAAkB;IAClB,SAAgB,UAAU,EAAE,MAAM,CAAC;IAEnC,kBAAkB;IAClB,SAAgB,UAAU,EAAE,MAAM,CAAC;IAEnC,OAAO,CAAC,UAAU,CAAuB;IAEzC,sEAAsE;IACtE,IAAW,SAAS,IAAI,aAAa,CAEpC;IAED,IAAW,SAAS,CAAC,KAAK,EAAE,aAAa,EAExC;IAED;;;;;;;OAOG;gBACgB,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,cAAc,EAAE,UAAU,SAAI,EAAE,UAAU,SAAK;IASxH,mEAAmE;IACnE,OAAO,KAAK,KAAK,GAEhB;IAED,kBAAkB;IAClB,IAAW,MAAM,IAAI,cAAc,GAAG,SAAS,CAE9C;IAED,kBAAkB;IAClB,IAAW,SAAS,IAAI,SAAS,cAAc,EAAE,CAEhD;IAED;;;;;;OAMG;IACI,UAAU,CAAC,QAAQ,EAAE,SAAS,GAAG,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,cAAc;IAI1G,+DAA+D;IAC/D,IAAoB,YAAY,IAAI,aAAa,GAAG,SAAS,CAE5D;IAED,8DAA8D;IAC9D,IAAoB,WAAW,IAAI,YAAY,GAAG,SAAS,CAE1D;IAED,sCAAsC;IACtC,cAAuB,sBAAsB,IAAI,cAAc,GAAG,SAAS,CAE1E;IAGD,2EAA2E;IAC3E,IAAW,WAAW,IAAI,cAAc,CAWvC;IAED,wFAAwF;IACxF,OAAO,CAAC,kBAAkB;IAW1B;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAU1B,kBAAkB;IACX,MAAM,IAAI,IAAI;IAWrB;;;OAGG;IACa,OAAO,IAAI,IAAI;CAYlC"}
@@ -9,7 +9,7 @@ import type { IRenderPass } from "./renderpass/IRenderPass.js";
9
9
  import { SwapChainDescriptor } from "./swapchain/SwapChainDescriptor.js";
10
10
  import type { ISwapChain } from "./swapchain/ISwapChain.js";
11
11
  import { SamplerDescriptor } from "./sampler/SamplerDescriptor.js";
12
- import { PrimitiveStateDescriptor } from "./primitive/PrimitiveStateDescriptor.js";
12
+ import type { IPrimitiveStateDescriptor } from "./primitive/IPrimitiveStateDescriptor.js";
13
13
  /**
14
14
  * The interface for a graphics device.
15
15
  */
@@ -60,7 +60,7 @@ export interface IGraphicsDevice extends IDisposable {
60
60
  * @param descriptor - The primitive state descriptor.
61
61
  * @returns The created primitive state.
62
62
  */
63
- createPrimitiveState(descriptor: PrimitiveStateDescriptor): IPrimitiveState;
63
+ createPrimitiveState(descriptor?: IPrimitiveStateDescriptor): IPrimitiveState;
64
64
  /**
65
65
  * Creates a render pass for the graphics device.
66
66
  * @param descriptor - The descriptor for creating a render pass.
@@ -1 +1 @@
1
- {"version":3,"file":"IGraphicsDevice.d.ts","sourceRoot":"","sources":["../../../src/api/rendering/IGraphicsDevice.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAC,oBAAoB,EAAC,MAAM,sCAAsC,CAAC;AAC1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAC,mBAAmB,EAAC,MAAM,oCAAoC,CAAC;AACvE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAC,iBAAiB,EAAC,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAC,wBAAwB,EAAC,MAAM,yCAAyC,CAAC;AAEjF;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAEhD;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;IAE3B;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,uBAAuB,CAAC;IAE3C;;OAEG;IACH,QAAQ,CAAC,qBAAqB,EAAE,QAAQ,CAAC;IAEzC;;;OAGG;IACH,QAAQ,CAAC,iBAAiB,EAAE,WAAW,CAAC;IAExC;;;OAGG;IACH,QAAQ,CAAC,qBAAqB,EAAE,eAAe,CAAC;IAEhD;;OAEG;IACH,UAAU,IAAI,IAAI,CAAC;IAEnB;;;OAGG;IACH,kBAAkB,IAAI,IAAI,CAAC;IAE3B;;OAEG;IACH,QAAQ,IAAI,IAAI,CAAC;IAEjB;;;;OAIG;IACH,aAAa,CAAC,iBAAiB,EAAE,iBAAiB,GAAG,QAAQ,CAAC;IAE9D;;;;OAIG;IACH,oBAAoB,CAAC,UAAU,EAAE,wBAAwB,GAAG,eAAe,CAAC;IAE5E;;;;OAIG;IACH,gBAAgB,CAAC,UAAU,EAAE,oBAAoB,GAAG,WAAW,CAAC;IAEhE;;;;;OAKG;IACH,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,oBAAoB,EAAE,mBAAmB,GAAG,UAAU,CAAC;IAEpF;;;OAGG;IACH,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAExC;;;OAGG;IACH,aAAa,IAAI,IAAI,CAAC;CAEzB"}
1
+ {"version":3,"file":"IGraphicsDevice.d.ts","sourceRoot":"","sources":["../../../src/api/rendering/IGraphicsDevice.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAC,oBAAoB,EAAC,MAAM,sCAAsC,CAAC;AAC1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAC,mBAAmB,EAAC,MAAM,oCAAoC,CAAC;AACvE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAC,iBAAiB,EAAC,MAAM,gCAAgC,CAAC;AACjE,OAAO,KAAK,EAAC,yBAAyB,EAAC,MAAM,0CAA0C,CAAC;AAExF;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAEhD;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;IAE3B;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,uBAAuB,CAAC;IAE3C;;OAEG;IACH,QAAQ,CAAC,qBAAqB,EAAE,QAAQ,CAAC;IAEzC;;;OAGG;IACH,QAAQ,CAAC,iBAAiB,EAAE,WAAW,CAAC;IAExC;;;OAGG;IACH,QAAQ,CAAC,qBAAqB,EAAE,eAAe,CAAC;IAEhD;;OAEG;IACH,UAAU,IAAI,IAAI,CAAC;IAEnB;;;OAGG;IACH,kBAAkB,IAAI,IAAI,CAAC;IAE3B;;OAEG;IACH,QAAQ,IAAI,IAAI,CAAC;IAEjB;;;;OAIG;IACH,aAAa,CAAC,iBAAiB,EAAE,iBAAiB,GAAG,QAAQ,CAAC;IAE9D;;;;OAIG;IACH,oBAAoB,CAAC,UAAU,CAAC,EAAE,yBAAyB,GAAG,eAAe,CAAC;IAE9E;;;;OAIG;IACH,gBAAgB,CAAC,UAAU,EAAE,oBAAoB,GAAG,WAAW,CAAC;IAEhE;;;;;OAKG;IACH,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,oBAAoB,EAAE,mBAAmB,GAAG,UAAU,CAAC;IAEpF;;;OAGG;IACH,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAExC;;;OAGG;IACH,aAAa,IAAI,IAAI,CAAC;CAEzB"}
@@ -36,17 +36,19 @@ export interface IRenderer {
36
36
  */
37
37
  readonly graphicsDevice: IGraphicsDevice;
38
38
  /**
39
- * The preferred texture format, chosen from {@link IRendererConfiguration.textureColorSpace}.
39
+ * The preferred texture format, derived from the current {@link IRenderer.colorSpace}.
40
40
  * Textures that do not specify a texture format are created with it:
41
41
  * - {@link TextureFormat.RGBA_8_UNORM_SRGB} when the color space is {@link ColorSpace.SRGB} (the default).
42
42
  * - {@link TextureFormat.RGBA_8_UNORM} when the color space is {@link ColorSpace.LINEAR}.
43
43
  */
44
44
  readonly preferredTextureFormat: TextureFormat;
45
45
  /**
46
- * The preferred texture color space, taken from {@link IRendererConfiguration.textureColorSpace}.
47
- * Textures that do not specify a format are treated as being in this color space.
46
+ * The color space. Defaults to the framework configuration's `textureColorSpace`.
47
+ * Can be switched at runtime, e.g. `framework.renderer.colorSpace = ColorSpace.SRGB`.
48
+ * Changing it affects textures created afterwards and the main render target's output conversion;
49
+ * already-created textures are not converted.
48
50
  */
49
- readonly preferredColorSpace: ColorSpace;
51
+ colorSpace: ColorSpace;
50
52
  /**
51
53
  * The preferred depth stencil format.
52
54
  */
@@ -1 +1 @@
1
- {"version":3,"file":"IRenderer.d.ts","sourceRoot":"","sources":["../../../src/api/rendering/IRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAC,aAAa,EAAC,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAC,KAAK,EAAC,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAC/B,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAC,6BAA6B,EAAC,MAAM,+BAA+B,CAAC;AACjF,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,YAAY,CAAC;AAG3C;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IAEnC,wCAAwC;IACxC,cAAc,EAAE,IAAI,CAAC;IAErB,oCAAoC;IACpC,KAAK,EAAE,OAAO,CAAC;IAEf,0GAA0G;IAC1G,eAAe,EAAE,mBAAmB,CAAC;IAErC;;;;OAIG;IACH,gBAAgB,EAAE,6BAA6B,CAAC;IAEhD,uCAAuC;IACvC,iBAAiB,EAAE,UAAU,CAAC;CACjC;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IAEtB;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,eAAe,CAAC;IAEzC;;;;;OAKG;IACH,QAAQ,CAAC,sBAAsB,EAAE,aAAa,CAAC;IAE/C;;;OAGG;IACH,QAAQ,CAAC,mBAAmB,EAAE,UAAU,CAAC;IAEzC;;OAEG;IACH,QAAQ,CAAC,2BAA2B,EAAE,aAAa,CAAC;IAEpD;;;OAGG;IACH,UAAU,EAAE,KAAK,CAAC;IAElB;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IAEnC;;;;;;;OAOG;IACH,cAAc,EAAE,IAAI,CAAC;IAErB;;OAEG;IACH,oBAAoB,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,KAAK,IAAI,GAAG,IAAI,CAAC;IAElE;;OAEG;IACH,uBAAuB,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,KAAK,IAAI,GAAG,IAAI,CAAC;IACrE;;OAEG;IACH,eAAe,IAAI,IAAI,CAAC;IAExB;;OAEG;IACH,gBAAgB,IAAI,IAAI,CAAC;IAEzB;;OAEG;IACH,cAAc,IAAI,IAAI,CAAC;IAEvB;;;OAGG;IACH,eAAe,IAAI,IAAI,CAAC;IAExB;;;OAGG;IACH,aAAa,IAAI,IAAI,CAAC;CACzB"}
1
+ {"version":3,"file":"IRenderer.d.ts","sourceRoot":"","sources":["../../../src/api/rendering/IRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAC,aAAa,EAAC,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAC,KAAK,EAAC,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAC/B,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAC,6BAA6B,EAAC,MAAM,+BAA+B,CAAC;AACjF,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,YAAY,CAAC;AAG3C;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IAEnC,wCAAwC;IACxC,cAAc,EAAE,IAAI,CAAC;IAErB,oCAAoC;IACpC,KAAK,EAAE,OAAO,CAAC;IAEf,0GAA0G;IAC1G,eAAe,EAAE,mBAAmB,CAAC;IAErC;;;;OAIG;IACH,gBAAgB,EAAE,6BAA6B,CAAC;IAEhD,uCAAuC;IACvC,iBAAiB,EAAE,UAAU,CAAC;CACjC;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IAEtB;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,eAAe,CAAC;IAEzC;;;;;OAKG;IACH,QAAQ,CAAC,sBAAsB,EAAE,aAAa,CAAC;IAE/C;;;;;OAKG;IACH,UAAU,EAAE,UAAU,CAAC;IAEvB;;OAEG;IACH,QAAQ,CAAC,2BAA2B,EAAE,aAAa,CAAC;IAEpD;;;OAGG;IACH,UAAU,EAAE,KAAK,CAAC;IAElB;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IAEnC;;;;;;;OAOG;IACH,cAAc,EAAE,IAAI,CAAC;IAErB;;OAEG;IACH,oBAAoB,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,KAAK,IAAI,GAAG,IAAI,CAAC;IAElE;;OAEG;IACH,uBAAuB,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,KAAK,IAAI,GAAG,IAAI,CAAC;IACrE;;OAEG;IACH,eAAe,IAAI,IAAI,CAAC;IAExB;;OAEG;IACH,gBAAgB,IAAI,IAAI,CAAC;IAEzB;;OAEG;IACH,cAAc,IAAI,IAAI,CAAC;IAEvB;;;OAGG;IACH,eAAe,IAAI,IAAI,CAAC;IAExB;;;OAGG;IACH,aAAa,IAAI,IAAI,CAAC;CACzB"}
@@ -4,4 +4,5 @@ export * from "./IRenderer.js";
4
4
  export * from "./RenderingBackend.js";
5
5
  export * from "./IGPUInfo.js";
6
6
  export * from "./PowerPreference.js";
7
+ export * from "./enums.js";
7
8
  //# sourceMappingURL=_export-rendering.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"_export-rendering.d.ts","sourceRoot":"","sources":["../../../src/api/rendering/_export-rendering.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"_export-rendering.d.ts","sourceRoot":"","sources":["../../../src/api/rendering/_export-rendering.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC"}
@@ -0,0 +1,24 @@
1
+ import type { PrimitiveTopology } from "./PrimitiveTopology.js";
2
+ import type { CullMode } from "./CullMode.js";
3
+ import type { FrontFace } from "./FrontFace.js";
4
+ /**
5
+ * Describes the state of a primitive. All fields are optional; the graphics device fills in the defaults.
6
+ */
7
+ export interface IPrimitiveStateDescriptor {
8
+ /**
9
+ * The topology of the primitive.
10
+ * By default, it is set to TRIANGLE_LIST.
11
+ */
12
+ topology?: PrimitiveTopology;
13
+ /**
14
+ * The culling mode.
15
+ * By default, it is set to BACK.
16
+ */
17
+ cullFace?: CullMode;
18
+ /**
19
+ * The front face.
20
+ * By default, it is set to CCW (counter clockwise).
21
+ */
22
+ frontFace?: FrontFace;
23
+ }
24
+ //# sourceMappingURL=IPrimitiveStateDescriptor.d.ts.map