ris-framework 0.2.0-dev.11 → 0.2.0-dev.12

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 (257) hide show
  1. package/CHANGELOG.md +22 -29
  2. package/README.md +13 -1
  3. package/dist/Framework.d.ts +26 -8
  4. package/dist/Framework.d.ts.map +1 -1
  5. package/dist/api/IFramework.d.ts +43 -0
  6. package/dist/api/IFramework.d.ts.map +1 -1
  7. package/dist/api/_export.d.ts +1 -1
  8. package/dist/api/_export.d.ts.map +1 -1
  9. package/dist/api/content/ContentManager.d.ts +5 -57
  10. package/dist/api/content/ContentManager.d.ts.map +1 -1
  11. package/dist/api/content/IContentManager.d.ts +24 -21
  12. package/dist/api/content/IContentManager.d.ts.map +1 -1
  13. package/dist/api/lights/LightsBuffer.d.ts +13 -6
  14. package/dist/api/lights/LightsBuffer.d.ts.map +1 -1
  15. package/dist/api/loaders/ObjGeometryMapper.d.ts +2 -2
  16. package/dist/api/loaders/ObjLoader.d.ts +61 -0
  17. package/dist/api/loaders/ObjLoader.d.ts.map +1 -0
  18. package/dist/api/loaders/_export.d.ts +1 -0
  19. package/dist/api/loaders/_export.d.ts.map +1 -1
  20. package/dist/api/loaders/obj/{ObjLoader.d.ts → ObjParser.d.ts} +20 -5
  21. package/dist/api/loaders/obj/ObjParser.d.ts.map +1 -0
  22. package/dist/api/loaders/obj/ObjTypes.d.ts +17 -1
  23. package/dist/api/loaders/obj/ObjTypes.d.ts.map +1 -1
  24. package/dist/api/loaders/obj/index.d.ts +1 -1
  25. package/dist/api/material/ForwardBlinnPhongMaterial.d.ts +22 -11
  26. package/dist/api/material/ForwardBlinnPhongMaterial.d.ts.map +1 -1
  27. package/dist/api/material/ICameraMaterial.d.ts +18 -0
  28. package/dist/api/material/ICameraMaterial.d.ts.map +1 -0
  29. package/dist/api/material/ILightsMaterial.d.ts +26 -0
  30. package/dist/api/material/ILightsMaterial.d.ts.map +1 -0
  31. package/dist/api/material/IMaterial.d.ts +2 -8
  32. package/dist/api/material/IMaterial.d.ts.map +1 -1
  33. package/dist/api/material/InspectTextureMipsMaterial.d.ts +2 -2
  34. package/dist/api/material/InspectTextureMipsMaterial.d.ts.map +1 -1
  35. package/dist/api/material/SpriteMaterial.d.ts +2 -2
  36. package/dist/api/material/SpriteMaterial.d.ts.map +1 -1
  37. package/dist/api/material/UnlitMaterial.d.ts +4 -3
  38. package/dist/api/material/UnlitMaterial.d.ts.map +1 -1
  39. package/dist/api/material/_export.d.ts +2 -0
  40. package/dist/api/material/_export.d.ts.map +1 -1
  41. package/dist/api/meshes/IMesh.d.ts +29 -34
  42. package/dist/api/meshes/IMesh.d.ts.map +1 -1
  43. package/dist/api/meshes/IMeshFactory.d.ts +13 -8
  44. package/dist/api/meshes/IMeshFactory.d.ts.map +1 -1
  45. package/dist/api/meshes/IRenderableMesh.d.ts +47 -0
  46. package/dist/api/meshes/IRenderableMesh.d.ts.map +1 -0
  47. package/dist/api/meshes/Mesh.d.ts +11 -57
  48. package/dist/api/meshes/Mesh.d.ts.map +1 -1
  49. package/dist/api/meshes/MeshFactory.d.ts +6 -3
  50. package/dist/api/meshes/MeshFactory.d.ts.map +1 -1
  51. package/dist/api/meshes/QuadMesh.d.ts +3 -5
  52. package/dist/api/meshes/QuadMesh.d.ts.map +1 -1
  53. package/dist/api/meshes/RenderableMesh.d.ts +95 -0
  54. package/dist/api/meshes/RenderableMesh.d.ts.map +1 -0
  55. package/dist/api/meshes/_export.d.ts +2 -1
  56. package/dist/api/meshes/_export.d.ts.map +1 -1
  57. package/dist/api/rendering/IGraphicsDeviceFeatures.d.ts +8 -2
  58. package/dist/api/rendering/IGraphicsDeviceFeatures.d.ts.map +1 -1
  59. package/dist/api/rendering/IRenderer.d.ts +28 -1
  60. package/dist/api/rendering/IRenderer.d.ts.map +1 -1
  61. package/dist/api/rendering/enums.d.ts +7 -0
  62. package/dist/api/rendering/enums.d.ts.map +1 -1
  63. package/dist/api/rendering/renderer-interface.d.ts +1 -31
  64. package/dist/api/rendering/renderer-interface.d.ts.map +1 -1
  65. package/dist/api/rendering/renderpass/RenderPassDescriptor.d.ts +2 -6
  66. package/dist/api/rendering/renderpass/RenderPassDescriptor.d.ts.map +1 -1
  67. package/dist/api/rendering/swapchain/ISwapChain.d.ts +1 -3
  68. package/dist/api/rendering/swapchain/ISwapChain.d.ts.map +1 -1
  69. package/dist/api/rendering/texture/TextureFormat.d.ts +88 -14
  70. package/dist/api/rendering/texture/TextureFormat.d.ts.map +1 -1
  71. package/dist/api/rendering/texture/TextureUtilities.d.ts +23 -0
  72. package/dist/api/rendering/texture/TextureUtilities.d.ts.map +1 -1
  73. package/dist/api/scene/Scene.d.ts +30 -21
  74. package/dist/api/scene/Scene.d.ts.map +1 -1
  75. package/dist/api/scene/SceneMesh.d.ts +27 -0
  76. package/dist/api/scene/SceneMesh.d.ts.map +1 -0
  77. package/dist/api/utilities/AlignUtilities.d.ts.map +1 -1
  78. package/dist/api/window/WindowManager.d.ts.map +1 -1
  79. package/dist/core/rendering/ARenderer.d.ts +5 -5
  80. package/dist/core/rendering/ARenderer.d.ts.map +1 -1
  81. package/dist/index.d.ts +0 -1
  82. package/dist/index.d.ts.map +1 -1
  83. package/dist/index.js +4006 -1355
  84. package/dist/webgl/WebGLGraphicsDeviceFeatures.d.ts +4 -0
  85. package/dist/webgl/WebGLGraphicsDeviceFeatures.d.ts.map +1 -1
  86. package/dist/webgl/WebGlRenderer.d.ts +1 -3
  87. package/dist/webgl/WebGlRenderer.d.ts.map +1 -1
  88. package/dist/webgl/lights/WebGlLightsBuffer.d.ts +8 -4
  89. package/dist/webgl/lights/WebGlLightsBuffer.d.ts.map +1 -1
  90. package/dist/webgl/render-pipelines/WebGlMainRenderTargetRenderPipeline.d.ts +2 -0
  91. package/dist/webgl/render-pipelines/WebGlMainRenderTargetRenderPipeline.d.ts.map +1 -1
  92. package/dist/webgl/swap-chain/WebGlSwapChain.d.ts +3 -2
  93. package/dist/webgl/swap-chain/WebGlSwapChain.d.ts.map +1 -1
  94. package/dist/webgl/texture/WebGlTextureFactory.d.ts +7 -0
  95. package/dist/webgl/texture/WebGlTextureFactory.d.ts.map +1 -1
  96. package/dist/webgl/utilities/WebGlConstants.d.ts +91 -0
  97. package/dist/webgl/utilities/WebGlConstants.d.ts.map +1 -0
  98. package/dist/webgl/utilities/WebGlConverter.d.ts +0 -7
  99. package/dist/webgl/utilities/WebGlConverter.d.ts.map +1 -1
  100. package/dist/webgl/utilities/WebGlErrorUtilities.d.ts +10 -0
  101. package/dist/webgl/utilities/WebGlErrorUtilities.d.ts.map +1 -0
  102. package/dist/webgl/utilities/WebGlTextureUtilities.d.ts.map +1 -1
  103. package/dist/webgl/utilities/WebGlUtilities.d.ts +3 -0
  104. package/dist/webgl/utilities/WebGlUtilities.d.ts.map +1 -1
  105. package/dist/webgpu/WebGpuGpuInfo.d.ts +28 -0
  106. package/dist/webgpu/WebGpuGpuInfo.d.ts.map +1 -0
  107. package/dist/webgpu/WebGpuGraphicsDevice.d.ts +80 -0
  108. package/dist/webgpu/WebGpuGraphicsDevice.d.ts.map +1 -0
  109. package/dist/webgpu/WebGpuGraphicsDeviceFeatures.d.ts +26 -0
  110. package/dist/webgpu/WebGpuGraphicsDeviceFeatures.d.ts.map +1 -0
  111. package/dist/webgpu/WebGpuRenderer.d.ts +26 -0
  112. package/dist/webgpu/WebGpuRenderer.d.ts.map +1 -0
  113. package/dist/webgpu/WebGpuTypes.d.ts +355 -0
  114. package/dist/webgpu/WebGpuTypes.d.ts.map +1 -0
  115. package/dist/webgpu/blending/WebGpuBlendState.d.ts +30 -0
  116. package/dist/webgpu/blending/WebGpuBlendState.d.ts.map +1 -0
  117. package/dist/webgpu/buffers/WebGpuBuffersFactory.d.ts +20 -0
  118. package/dist/webgpu/buffers/WebGpuBuffersFactory.d.ts.map +1 -0
  119. package/dist/webgpu/buffers/WebGpuIndexBuffer.d.ts +46 -0
  120. package/dist/webgpu/buffers/WebGpuIndexBuffer.d.ts.map +1 -0
  121. package/dist/webgpu/buffers/WebGpuUniformBuffer.d.ts +43 -0
  122. package/dist/webgpu/buffers/WebGpuUniformBuffer.d.ts.map +1 -0
  123. package/dist/webgpu/buffers/WebGpuVertexBuffer.d.ts +49 -0
  124. package/dist/webgpu/buffers/WebGpuVertexBuffer.d.ts.map +1 -0
  125. package/dist/webgpu/primitive/WebGpuPrimitiveState.d.ts +32 -0
  126. package/dist/webgpu/primitive/WebGpuPrimitiveState.d.ts.map +1 -0
  127. package/dist/webgpu/render-pass/WebGpuRenderPass.d.ts +28 -0
  128. package/dist/webgpu/render-pass/WebGpuRenderPass.d.ts.map +1 -0
  129. package/dist/webgpu/render-pipelines/AWebGpuRenderPipeline.d.ts +50 -0
  130. package/dist/webgpu/render-pipelines/AWebGpuRenderPipeline.d.ts.map +1 -0
  131. package/dist/webgpu/render-pipelines/WebGpuMainRenderTargetRenderPipeline.d.ts +34 -0
  132. package/dist/webgpu/render-pipelines/WebGpuMainRenderTargetRenderPipeline.d.ts.map +1 -0
  133. package/dist/webgpu/render-pipelines/WebGpuRenderPipelineFactory.d.ts +26 -0
  134. package/dist/webgpu/render-pipelines/WebGpuRenderPipelineFactory.d.ts.map +1 -0
  135. package/dist/webgpu/render-pipelines/material/AWebGpuMeshRenderPipeline.d.ts +72 -0
  136. package/dist/webgpu/render-pipelines/material/AWebGpuMeshRenderPipeline.d.ts.map +1 -0
  137. package/dist/webgpu/render-pipelines/material/WebGpuUnlitRenderPipeline.d.ts +40 -0
  138. package/dist/webgpu/render-pipelines/material/WebGpuUnlitRenderPipeline.d.ts.map +1 -0
  139. package/dist/webgpu/sampler/WebGpuSampler.d.ts +39 -0
  140. package/dist/webgpu/sampler/WebGpuSampler.d.ts.map +1 -0
  141. package/dist/webgpu/shader/WebGpuShaderModule.d.ts +29 -0
  142. package/dist/webgpu/shader/WebGpuShaderModule.d.ts.map +1 -0
  143. package/dist/webgpu/shader/WebGpuShaderModuleLoader.d.ts +21 -0
  144. package/dist/webgpu/shader/WebGpuShaderModuleLoader.d.ts.map +1 -0
  145. package/dist/webgpu/shader/WgslShaderContent.d.ts +9 -0
  146. package/dist/webgpu/shader/WgslShaderContent.d.ts.map +1 -0
  147. package/dist/webgpu/swap-chain/WebGpuSwapChain.d.ts +41 -0
  148. package/dist/webgpu/swap-chain/WebGpuSwapChain.d.ts.map +1 -0
  149. package/dist/webgpu/texture/WebGpuTexture2D.d.ts +47 -0
  150. package/dist/webgpu/texture/WebGpuTexture2D.d.ts.map +1 -0
  151. package/dist/webgpu/texture/WebGpuTextureFactory.d.ts +21 -0
  152. package/dist/webgpu/texture/WebGpuTextureFactory.d.ts.map +1 -0
  153. package/dist/webgpu/texture/WebGpuTextureView.d.ts +25 -0
  154. package/dist/webgpu/texture/WebGpuTextureView.d.ts.map +1 -0
  155. package/dist/webgpu/utilities/WebGpuConverter.d.ts +45 -0
  156. package/dist/webgpu/utilities/WebGpuConverter.d.ts.map +1 -0
  157. package/package.json +2 -2
  158. package/shaders/glsl/main_render_target_flip_y_fs.glsl +35 -1
  159. package/shaders/wgsl/forward_blinn_phong_material.wgsl +150 -0
  160. package/shaders/wgsl/inspect_texture_mips.wgsl +51 -0
  161. package/shaders/wgsl/main_frame_buffer.wgsl +35 -0
  162. package/shaders/wgsl/main_render_target_flip_y.wgsl +35 -0
  163. package/shaders/wgsl/sprite.wgsl +40 -0
  164. package/shaders/wgsl/unlit_material.wgsl +49 -0
  165. package/src/Framework.ts +121 -37
  166. package/src/api/IFramework.ts +55 -0
  167. package/src/api/_export.ts +1 -1
  168. package/src/api/content/ContentManager.ts +46 -180
  169. package/src/api/content/IContentManager.ts +25 -21
  170. package/src/api/lights/LightsBuffer.ts +13 -6
  171. package/src/api/loaders/ObjGeometryMapper.ts +2 -2
  172. package/src/api/loaders/ObjLoader.ts +126 -0
  173. package/src/api/loaders/_export.ts +1 -0
  174. package/src/api/loaders/obj/{ObjLoader.ts → ObjParser.ts} +35 -4
  175. package/src/api/loaders/obj/ObjTypes.ts +19 -1
  176. package/src/api/loaders/obj/index.ts +1 -1
  177. package/src/api/material/ForwardBlinnPhongMaterial.ts +48 -22
  178. package/src/api/material/ICameraMaterial.ts +22 -0
  179. package/src/api/material/ILightsMaterial.ts +32 -0
  180. package/src/api/material/IMaterial.ts +2 -9
  181. package/src/api/material/InspectTextureMipsMaterial.ts +2 -2
  182. package/src/api/material/SpriteMaterial.ts +2 -2
  183. package/src/api/material/UnlitMaterial.ts +4 -3
  184. package/src/api/material/_export.ts +2 -0
  185. package/src/api/meshes/IMesh.ts +32 -37
  186. package/src/api/meshes/IMeshFactory.ts +14 -8
  187. package/src/api/meshes/IRenderableMesh.ts +58 -0
  188. package/src/api/meshes/Mesh.ts +17 -132
  189. package/src/api/meshes/MeshFactory.ts +14 -5
  190. package/src/api/meshes/QuadMesh.ts +4 -6
  191. package/src/api/meshes/RenderableMesh.ts +207 -0
  192. package/src/api/meshes/_export.ts +6 -5
  193. package/src/api/rendering/IGraphicsDeviceFeatures.ts +28 -21
  194. package/src/api/rendering/IRenderer.ts +34 -1
  195. package/src/api/rendering/enums.ts +10 -0
  196. package/src/api/rendering/renderer-interface.ts +1 -36
  197. package/src/api/rendering/renderpass/RenderPassDescriptor.ts +10 -14
  198. package/src/api/rendering/swapchain/ISwapChain.ts +1 -3
  199. package/src/api/rendering/texture/TextureFormat.ts +128 -14
  200. package/src/api/rendering/texture/TextureUtilities.ts +225 -10
  201. package/src/api/scene/Scene.ts +102 -69
  202. package/src/api/scene/SceneMesh.ts +61 -0
  203. package/src/api/sprites/SpriteBatchMesh.ts +1 -1
  204. package/src/api/utilities/AlignUtilities.ts +2 -1
  205. package/src/api/window/WindowManager.ts +1 -1
  206. package/src/core/rendering/ARenderer.ts +24 -15
  207. package/src/index.ts +0 -1
  208. package/src/main.ts +2 -3
  209. package/src/webgl/WebGLGraphicsDeviceFeatures.ts +12 -2
  210. package/src/webgl/WebGlGpuInfo.ts +1 -1
  211. package/src/webgl/WebGlRenderer.ts +2 -5
  212. package/src/webgl/lights/WebGlLightsBuffer.ts +14 -4
  213. package/src/webgl/render-pipelines/WebGlMainRenderTargetRenderPipeline.ts +18 -1
  214. package/src/webgl/swap-chain/WebGlSwapChain.ts +7 -6
  215. package/src/webgl/texture/WebGlTextureFactory.ts +49 -7
  216. package/src/webgl/utilities/WebGlConstants.ts +136 -0
  217. package/src/webgl/utilities/WebGlConverter.ts +91 -22
  218. package/src/webgl/utilities/WebGlErrorUtilities.ts +15 -0
  219. package/src/webgl/utilities/WebGlTextureUtilities.ts +5 -2
  220. package/src/webgl/utilities/WebGlUtilities.ts +4 -0
  221. package/src/webgpu/WebGpuGpuInfo.ts +61 -0
  222. package/src/webgpu/WebGpuGraphicsDevice.ts +199 -0
  223. package/src/webgpu/WebGpuGraphicsDeviceFeatures.ts +41 -0
  224. package/src/webgpu/WebGpuRenderer.ts +49 -0
  225. package/src/webgpu/WebGpuTypes.ts +288 -0
  226. package/src/webgpu/blending/WebGpuBlendState.ts +53 -0
  227. package/src/webgpu/buffers/WebGpuBuffersFactory.ts +46 -0
  228. package/src/webgpu/buffers/WebGpuIndexBuffer.ts +118 -0
  229. package/src/webgpu/buffers/WebGpuUniformBuffer.ts +102 -0
  230. package/src/webgpu/buffers/WebGpuVertexBuffer.ts +119 -0
  231. package/src/webgpu/primitive/WebGpuPrimitiveState.ts +52 -0
  232. package/src/webgpu/render-pass/WebGpuRenderPass.ts +131 -0
  233. package/src/webgpu/render-pipelines/AWebGpuRenderPipeline.ts +123 -0
  234. package/src/webgpu/render-pipelines/WebGpuMainRenderTargetRenderPipeline.ts +119 -0
  235. package/src/webgpu/render-pipelines/WebGpuRenderPipelineFactory.ts +66 -0
  236. package/src/webgpu/render-pipelines/material/AWebGpuMeshRenderPipeline.ts +249 -0
  237. package/src/webgpu/render-pipelines/material/WebGpuUnlitRenderPipeline.ts +101 -0
  238. package/src/webgpu/sampler/WebGpuSampler.ts +84 -0
  239. package/src/webgpu/shader/WebGpuShaderModule.ts +65 -0
  240. package/src/webgpu/shader/WebGpuShaderModuleLoader.ts +38 -0
  241. package/src/webgpu/shader/WgslShaderContent.ts +20 -0
  242. package/src/webgpu/swap-chain/WebGpuSwapChain.ts +93 -0
  243. package/src/webgpu/texture/WebGpuTexture2D.ts +197 -0
  244. package/src/webgpu/texture/WebGpuTextureFactory.ts +118 -0
  245. package/src/webgpu/texture/WebGpuTextureView.ts +43 -0
  246. package/src/webgpu/utilities/WebGpuConverter.ts +299 -0
  247. package/src/wgsl-raw.d.ts +4 -0
  248. package/dist/api/FrameworkConfiguration.d.ts +0 -23
  249. package/dist/api/FrameworkConfiguration.d.ts.map +0 -1
  250. package/dist/api/IFrameworkConfiguration.d.ts +0 -25
  251. package/dist/api/IFrameworkConfiguration.d.ts.map +0 -1
  252. package/dist/api/loaders/obj/ObjLoader.d.ts.map +0 -1
  253. package/dist/api/meshes/SubMesh.d.ts +0 -47
  254. package/dist/api/meshes/SubMesh.d.ts.map +0 -1
  255. package/src/api/FrameworkConfiguration.ts +0 -29
  256. package/src/api/IFrameworkConfiguration.ts +0 -30
  257. package/src/api/meshes/SubMesh.ts +0 -71
@@ -1,27 +1,22 @@
1
1
  /**
2
2
  * The mesh is a building class for a world shape.
3
3
  */
4
- import { mat4, vec3 } from "gl-matrix";
5
4
  import { State } from "../data/State.js";
6
5
  import type { IVertexBuffer } from "../rendering/buffers/IVertexBuffer.js";
7
6
  import type { IIndexBuffer } from "../rendering/buffers/IIndexBuffer.js";
8
- import type { IUniformBuffer } from "../rendering/buffers/IUniformBuffer.js";
9
7
  import type { IFramework } from "../IFramework.js";
10
8
  import type { IMesh } from "./IMesh.js";
11
9
  import { BufferUsage } from "../rendering/buffers/BufferUsage.js";
12
10
  import type { IGeometry } from "../geometry/IGeometry.js";
13
11
  import { MeshParameters } from "./MeshParameters.js";
14
- import type { IMaterial } from "../material/IMaterial.js";
15
12
  import type { GeometryFormat } from "../geometry/GeometryFormat.js";
16
- import { SubMesh } from "./SubMesh.js";
17
- import type { Scene } from "../scene/Scene.js";
18
13
  /**
19
- * The mesh.
14
+ * The base mesh: geometry and the vertex and index buffers created from it (C# `BaseMesh`).
15
+ * No material and no transform; {@link RenderableMesh} adds those.
16
+ * @public
20
17
  */
21
18
  export declare class Mesh implements IMesh {
22
19
  protected readonly _framework: IFramework;
23
- readonly scene: Scene | null;
24
- protected _material?: IMaterial | undefined;
25
20
  protected _bufferUsage: BufferUsage;
26
21
  protected _state: State;
27
22
  protected _vertexData?: number[];
@@ -32,55 +27,16 @@ export declare class Mesh implements IMesh {
32
27
  protected _normals?: number[];
33
28
  protected _vertexBuffer?: IVertexBuffer;
34
29
  protected _indexBuffer?: IIndexBuffer;
35
- protected _subMeshes: SubMesh[];
36
- private readonly _modelMatrix;
37
- private readonly _rotationQuat;
38
- private readonly _lastPosition;
39
- private readonly _lastRotation;
40
- private readonly _lastScale;
41
- private _modelBuffer?;
42
- /** The matrix last uploaded to the model buffer. */
43
- private readonly _uploadedMatrix;
44
- /** @inheritDoc */
45
- position: vec3;
46
- /** @inheritDoc */
47
- rotation: vec3;
48
- /** @inheritDoc */
49
- scale: vec3;
50
- /** @inheritDoc */
51
- get modelMatrix(): mat4;
52
- /** @inheritDoc Created on first access and disposed with the mesh. */
53
- get modelBuffer(): IUniformBuffer;
54
- /** Uploads the model matrix when the transform changed since the last upload. */
55
- private _updateModelBuffer;
56
- /**
57
- * Assigns this mesh's model buffer to a material that uses one (has a `modelBuffer` property),
58
- * only when it differs. Materials without one (e.g. sprites) are skipped and no buffer is created for them.
59
- * @internal
60
- */
61
- __assignModelBuffer(material: IMaterial): void;
30
+ protected _geometry?: IGeometry;
62
31
  /**
63
32
  * The constructor.
64
33
  * @param _framework The framework.
65
- * @param scene The scene. The mesh adds itself to it and removes itself on dispose.
66
- * `null` only for internal meshes drawn outside a scene (e.g. the sprite batch).
67
- * @param _material The material. Optional for a mesh that only holds submeshes.
68
- */
69
- constructor(_framework: IFramework, scene: Scene | null, _material?: IMaterial | undefined);
70
- /** The material. Undefined for a mesh drawn through its submeshes. */
71
- get material(): IMaterial | undefined;
72
- /** Sets the material. */
73
- set material(material: IMaterial | undefined);
74
- /** The submeshes. They share this mesh's vertex and index buffers. */
75
- get subMeshes(): SubMesh[];
76
- /**
77
- * Adds a submesh that draws a range of this mesh's index buffer with its own material.
78
- * @param material The material of the submesh.
79
- * @param indexStart The first index of the range.
80
- * @param indexCount The number of indices in the range.
81
- * @returns The submesh.
82
34
  */
83
- addSubMesh(material: IMaterial, indexStart: number, indexCount: number): SubMesh;
35
+ constructor(_framework: IFramework);
36
+ /** The geometry the buffers were created from with {@link setGeometry}, if any. */
37
+ get geometry(): IGeometry | undefined;
38
+ /** The geometry format used when {@link setGeometry} is called without one. Undefined for a plain mesh. */
39
+ protected get _defaultGeometryFormat(): GeometryFormat | undefined;
84
40
  /**
85
41
  * The state of a mesh.
86
42
  */
@@ -127,7 +83,7 @@ export declare class Mesh implements IMesh {
127
83
  *
128
84
  * This will create vertex buffer and index buffer from geometry.
129
85
  * @param geometry - The geometry.
130
- * @param geometryFormat - The vertex layout. Defaults to the material's geometry format.
86
+ * @param geometryFormat - The vertex layout. A `RenderableMesh` defaults to its material's geometry format.
131
87
  */
132
88
  setGeometry(geometry: IGeometry, geometryFormat?: GeometryFormat): void;
133
89
  /**
@@ -135,10 +91,8 @@ export declare class Mesh implements IMesh {
135
91
  * @param meshParameters - The parameters.
136
92
  */
137
93
  setMesh(meshParameters: MeshParameters): void;
138
- /** @inheritDoc */
139
- render(): void;
140
94
  /**
141
- * Dispose of the mesh.
95
+ * Disposes the vertex and index buffers.
142
96
  */
143
97
  dispose(): void;
144
98
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Mesh.d.ts","sourceRoot":"","sources":["../../../src/api/meshes/Mesh.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Mesh.d.ts","sourceRoot":"","sources":["../../../src/api/meshes/Mesh.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAC,KAAK,EAAC,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,uCAAuC,CAAC;AACzE,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,sCAAsC,CAAC;AACvE,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,YAAY,CAAC;AACtC,OAAO,EAAC,WAAW,EAAC,MAAM,qCAAqC,CAAC;AAChE,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAEnD,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,+BAA+B,CAAC;AAElE;;;;GAIG;AACH,qBAAa,IAAK,YAAW,KAAK;IAkBX,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU;IAhB5D,SAAS,CAAC,YAAY,cAAsB;IAC5C,SAAS,CAAC,MAAM,QAAiB;IACjC,SAAS,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACjC,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,SAAS,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,SAAS,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IACpC,SAAS,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,SAAS,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;IACxC,SAAS,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;IACtC,SAAS,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAEhC;;;OAGG;gBACmC,UAAU,EAAE,UAAU;IAG5D,mFAAmF;IACnF,IAAW,QAAQ,IAAI,SAAS,GAAG,SAAS,CAE3C;IAED,2GAA2G;IAC3G,SAAS,KAAK,sBAAsB,IAAI,cAAc,GAAG,SAAS,CAEjE;IAED;;OAEG;IACH,IAAW,KAAK,IAAI,KAAK,CAExB;IAED;;OAEG;IACH,IAAW,SAAS,IAAI,MAAM,EAAE,GAAG,SAAS,CAE3C;IAED;;OAEG;IACH,IAAW,OAAO,IAAI,MAAM,EAAE,GAAG,SAAS,CAEzC;IAED;;OAEG;IACH,IAAW,MAAM,IAAI,MAAM,EAAE,GAAG,SAAS,CAExC;IAED;;OAEG;IACH,IAAW,aAAa,IAAI,MAAM,EAAE,GAAG,SAAS,CAE/C;IAED;;OAEG;IACH,IAAW,OAAO,IAAI,MAAM,EAAE,GAAG,SAAS,CAEzC;IAED;;OAEG;IACH,IAAW,YAAY,IAAI,aAAa,GAAG,SAAS,CAEnD;IAED;;OAEG;IACH,IAAW,WAAW,IAAI,YAAY,GAAG,SAAS,CAEjD;IAED;;OAEG;IACI,UAAU,IAAI,IAAI;IAIzB,OAAO,CAAC,WAAW;IA2BnB;;OAEG;IACI,YAAY;IA2DnB;;;;;;OAMG;IACI,WAAW,CAAC,QAAQ,EAAE,SAAS,EAAE,cAAc,CAAC,EAAE,cAAc,GAAG,IAAI;IA+B9E;;;OAGG;IACI,OAAO,CAAC,cAAc,EAAE,cAAc,GAAG,IAAI;IAQpD;;OAEG;IACI,OAAO,IAAI,IAAI;CAOzB"}
@@ -1,4 +1,5 @@
1
- import type { Scene } from "../scene/Scene.js";
1
+ import type { IRenderableMesh } from "./IRenderableMesh.js";
2
+ import type { GeometryFormat } from "../geometry/GeometryFormat.js";
2
3
  import type { IMeshFactory } from "./IMeshFactory.js";
3
4
  import type { IGeometry } from "../geometry/IGeometry.js";
4
5
  import type { IMesh } from "./IMesh.js";
@@ -18,9 +19,11 @@ export declare class MeshFactory implements IMeshFactory {
18
19
  */
19
20
  constructor(_framework: IFramework);
20
21
  /** @inheritDoc */
21
- create(scene: Scene, geometry: IGeometry, material: IMaterial): IMesh;
22
+ createMesh(geometry: IGeometry, geometryFormat: GeometryFormat): IMesh;
22
23
  /** @inheritDoc */
23
- createWithSubMeshes(scene: Scene, geometry: IGeometry, subMeshes: SubMeshDescriptor[]): IMesh;
24
+ create(geometry: IGeometry, material: IMaterial): IRenderableMesh;
25
+ /** @inheritDoc */
26
+ createWithSubMeshes(geometry: IGeometry, subMeshes: SubMeshDescriptor[]): IRenderableMesh;
24
27
  /** @inheritDoc */
25
28
  createQuadMesh(_isUpdatable: boolean, _scale?: vec2): QuadMesh;
26
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MeshFactory.d.ts","sourceRoot":"","sources":["../../../src/api/meshes/MeshFactory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,mBAAmB,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;AACvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAC/B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D;;GAEG;AACH,qBAAa,WAAY,YAAW,YAAY;IAMzB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAJ9C;;;OAGG;gBACiC,UAAU,EAAE,UAAU;IAG1D,kBAAkB;IACX,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,GAAG,KAAK;IAM5E,kBAAkB;IACX,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,iBAAiB,EAAE,GAAG,KAAK;IAiBpG,kBAAkB;IACX,cAAc,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,IAAI,GAAG,QAAQ;CAUxE"}
1
+ {"version":3,"file":"MeshFactory.d.ts","sourceRoot":"","sources":["../../../src/api/meshes/MeshFactory.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;AACvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAC/B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D;;GAEG;AACH,qBAAa,WAAY,YAAW,YAAY;IAMzB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAJ9C;;;OAGG;gBACiC,UAAU,EAAE,UAAU;IAG1D,kBAAkB;IACX,UAAU,CAAC,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,cAAc,GAAG,KAAK;IAM7E,kBAAkB;IACX,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,GAAG,eAAe;IAMxE,kBAAkB;IACX,mBAAmB,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,iBAAiB,EAAE,GAAG,eAAe;IAiBhG,kBAAkB;IACX,cAAc,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,IAAI,GAAG,QAAQ;CAUxE"}
@@ -1,13 +1,12 @@
1
- import { Mesh } from "./Mesh.js";
1
+ import { RenderableMesh } from "./RenderableMesh.js";
2
2
  import { Rect } from "../data/Rect.js";
3
3
  import type { IFramework } from "../IFramework.js";
4
4
  import { vec2 } from "gl-matrix";
5
5
  import type { IMaterial } from "../material/IMaterial.js";
6
- import type { Scene } from "../scene/Scene.js";
7
6
  /**
8
7
  * The mesh of a quad.
9
8
  */
10
- export declare class QuadMesh extends Mesh {
9
+ export declare class QuadMesh extends RenderableMesh {
11
10
  private _isUpdatable;
12
11
  private readonly ELEMENTS_IN_VERTEX;
13
12
  private readonly TEX_COORD_POS_S;
@@ -15,12 +14,11 @@ export declare class QuadMesh extends Mesh {
15
14
  /**
16
15
  * The constructor.
17
16
  * @param framework The framework.
18
- * @param scene The scene the quad adds itself to.
19
17
  * @param material The material.
20
18
  * @param _isUpdatable Makes mesh updatable.
21
19
  * @param scale The scale factor for geometry. If not set, it is set to (1,1).
22
20
  */
23
- constructor(framework: IFramework, scene: Scene, material: IMaterial, _isUpdatable: boolean, scale?: vec2);
21
+ constructor(framework: IFramework, material: IMaterial, _isUpdatable: boolean, scale?: vec2);
24
22
  /** @inheritDoc*/
25
23
  initialize(): void;
26
24
  /** @inheritDoc*/
@@ -1 +1 @@
1
- {"version":3,"file":"QuadMesh.d.ts","sourceRoot":"","sources":["../../../src/api/meshes/QuadMesh.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAC,IAAI,EAAC,MAAM,iBAAiB,CAAC;AACrC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAE/B,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,0BAA0B,CAAC;AACxD,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,mBAAmB,CAAC;AAE7C;;GAEG;AACH,qBAAa,QAAS,SAAQ,IAAI;IAc+C,OAAO,CAAC,YAAY;IAZjG,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAK;IACxC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAK;IACrC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAK;IAErC;;;;;;;OAOG;gBACgB,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAU,YAAY,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,IAAI;IA4CxH,iBAAiB;IACV,UAAU,IAAI,IAAI;IAKzB,iBAAiB;IACV,YAAY,IAAI,IAAI;IAS3B;;;;;;OAMG;IACI,mBAAmB,CAAC,WAAW,EAAE,IAAI,GAAG,IAAI;CAetD"}
1
+ {"version":3,"file":"QuadMesh.d.ts","sourceRoot":"","sources":["../../../src/api/meshes/QuadMesh.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAC,IAAI,EAAC,MAAM,iBAAiB,CAAC;AACrC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAE/B,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,0BAA0B,CAAC;AAExD;;GAEG;AACH,qBAAa,QAAS,SAAQ,cAAc;IAauB,OAAO,CAAC,YAAY;IAXnF,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAK;IACxC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAK;IACrC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAK;IAErC;;;;;;OAMG;gBACgB,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAU,YAAY,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,IAAI;IA4C1G,iBAAiB;IACV,UAAU,IAAI,IAAI;IAKzB,iBAAiB;IACV,YAAY,IAAI,IAAI;IAS3B;;;;;;OAMG;IACI,mBAAmB,CAAC,WAAW,EAAE,IAAI,GAAG,IAAI;CAetD"}
@@ -0,0 +1,95 @@
1
+ import { mat4, vec3 } from "gl-matrix";
2
+ import { Mesh } from "./Mesh.js";
3
+ import type { IRenderableMesh } from "./IRenderableMesh.js";
4
+ import type { IFramework } from "../IFramework.js";
5
+ import type { IMaterial } from "../material/IMaterial.js";
6
+ import type { IUniformBuffer } from "../rendering/buffers/IUniformBuffer.js";
7
+ import type { IVertexBuffer } from "../rendering/buffers/IVertexBuffer.js";
8
+ import type { IIndexBuffer } from "../rendering/buffers/IIndexBuffer.js";
9
+ import type { GeometryFormat } from "../geometry/GeometryFormat.js";
10
+ /**
11
+ * A mesh that can be drawn (C# `RenderableMesh`). See {@link IRenderableMesh}.
12
+ *
13
+ * - Root: `new RenderableMesh(framework, material?)` owns the vertex and index buffers, the transform and the model buffer.
14
+ * - Sub mesh: `new RenderableMesh(framework, material, parent, indexStart, indexCount)` (or `parent.addSubMesh(...)`)
15
+ * shares the parent's buffers, transform and model buffer, and only stores its index range.
16
+ * @public
17
+ */
18
+ export declare class RenderableMesh extends Mesh implements IRenderableMesh {
19
+ private readonly _subMeshes;
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
+ private _modelBuffer?;
30
+ /** The matrix last uploaded to the model buffer. */
31
+ private readonly _uploadedMatrix;
32
+ /** @inheritDoc */
33
+ material?: IMaterial;
34
+ /** @inheritDoc */
35
+ readonly indexStart: number;
36
+ /** @inheritDoc */
37
+ readonly indexCount: number;
38
+ /**
39
+ * The constructor.
40
+ * @param framework The framework.
41
+ * @param material The material. Optional for a root mesh drawn only through its sub meshes.
42
+ * @param parent The parent, for a sub mesh. A sub mesh shares the parent's buffers and transform and is added to `parent.subMeshes`.
43
+ * @param indexStart The first index of the range. Defaults to 0.
44
+ * @param indexCount The number of indices of the range. -1 (default) draws all indices.
45
+ */
46
+ constructor(framework: IFramework, material?: IMaterial, parent?: RenderableMesh, indexStart?: number, indexCount?: number);
47
+ /** The root mesh: the one owning the buffers and the transform. */
48
+ private get _root();
49
+ /** @inheritDoc */
50
+ get parent(): RenderableMesh | undefined;
51
+ /** @inheritDoc */
52
+ get subMeshes(): readonly RenderableMesh[];
53
+ /**
54
+ * Adds a sub mesh that draws a range of this mesh's index buffer with its own material.
55
+ * @param material The material of the sub mesh.
56
+ * @param indexStart The first index of the range.
57
+ * @param indexCount The number of indices in the range; -1 draws all.
58
+ * @returns The sub mesh.
59
+ */
60
+ addSubMesh(material: IMaterial | undefined, indexStart: number, indexCount: number): RenderableMesh;
61
+ /** The parent's vertex buffer for a sub mesh, else its own. */
62
+ get vertexBuffer(): IVertexBuffer | undefined;
63
+ /** The parent's index buffer for a sub mesh, else its own. */
64
+ get indexBuffer(): IIndexBuffer | undefined;
65
+ /** The material's geometry format. */
66
+ 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
+ /** @inheritDoc Created on first access and disposed with the root mesh. */
79
+ get modelBuffer(): IUniformBuffer;
80
+ /** Uploads the root's model matrix when the transform changed since the last upload. */
81
+ private _updateModelBuffer;
82
+ /**
83
+ * Assigns the model buffer to a material that uses one (has a `modelBuffer` property), only when it differs.
84
+ * Materials without one (e.g. sprites) are skipped and no buffer is created for them.
85
+ */
86
+ private _assignModelBuffer;
87
+ /** @inheritDoc */
88
+ render(): void;
89
+ /**
90
+ * Disposes the sub meshes, then (for a root) the vertex, index and model buffers, once.
91
+ * A sub mesh never disposes the shared buffers. Materials are not disposed.
92
+ */
93
+ dispose(): void;
94
+ }
95
+ //# sourceMappingURL=RenderableMesh.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RenderableMesh.d.ts","sourceRoot":"","sources":["../../../src/api/meshes/RenderableMesh.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  export * from "./IMeshFactory.js";
2
2
  export * from "./IMesh.js";
3
+ export * from "./IRenderableMesh.js";
3
4
  export * from "./Mesh.js";
4
- export * from "./SubMesh.js";
5
+ export * from "./RenderableMesh.js";
5
6
  export * from "./QuadMesh.js";
6
7
  export * from "./MeshParameters.js";
7
8
  export * from "./MeshFactory.js";
@@ -1 +1 @@
1
- {"version":3,"file":"_export.d.ts","sourceRoot":"","sources":["../../../src/api/meshes/_export.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"_export.d.ts","sourceRoot":"","sources":["../../../src/api/meshes/_export.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC"}
@@ -6,9 +6,14 @@ export interface IGraphicsDeviceFeatures {
6
6
  * Supports S3TC / DXT (BC1–BC3) texture compression.
7
7
  */
8
8
  readonly supportsTextureCompressionS3TC: boolean;
9
+ /**
10
+ * Supports the sRGB variants of S3TC / DXT (BC1–BC3).
11
+ * In WebGL2 this needs WEBGL_compressed_texture_s3tc_srgb; in WebGPU it is part of texture-compression-bc.
12
+ */
13
+ readonly supportsTextureCompressionS3TCSrgb: boolean;
9
14
  /**
10
15
  * Supports full Block Compression (BC1–BC7) textures.
11
- Includes S3TC (BC1–BC3) plus BC4–BC7.
16
+ Includes S3TC (BC1–BC3) plus BC4–BC7.
12
17
  */
13
18
  readonly supportsTextureCompressionBC: boolean;
14
19
  /**
@@ -20,7 +25,8 @@ export interface IGraphicsDeviceFeatures {
20
25
  */
21
26
  readonly supportsTextureCompressionASTC: boolean;
22
27
  /**
23
- * Supports PVRTC (PowerVR Texture Compression) 1 and 2.
28
+ * Supports PVRTC (PowerVR Texture Compression) 1.
29
+ * PVRTC 2 is not supported by either WebGL2 or WebGPU context.
24
30
  */
25
31
  readonly supportsTextureCompressionPVRTC: boolean;
26
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"IGraphicsDeviceFeatures.d.ts","sourceRoot":"","sources":["../../../src/api/rendering/IGraphicsDeviceFeatures.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,uBAAuB;IAExC;;OAEG;IACD,QAAQ,CAAC,8BAA8B,EAAE,OAAO,CAAC;IAEnD;;;OAGG;IACD,QAAQ,CAAC,4BAA4B,EAAE,OAAO,CAAC;IAEjD;;OAEG;IACD,QAAQ,CAAC,8BAA8B,EAAE,OAAO,CAAC;IAEnD;;OAEG;IACD,QAAQ,CAAC,8BAA8B,EAAE,OAAO,CAAC;IAEnD;;OAEG;IACD,QAAQ,CAAC,+BAA+B,EAAE,OAAO,CAAC;CAEnD"}
1
+ {"version":3,"file":"IGraphicsDeviceFeatures.d.ts","sourceRoot":"","sources":["../../../src/api/rendering/IGraphicsDeviceFeatures.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,uBAAuB;IAEpC;;OAEG;IACH,QAAQ,CAAC,8BAA8B,EAAE,OAAO,CAAC;IAEjD;;;OAGG;IACH,QAAQ,CAAC,kCAAkC,EAAE,OAAO,CAAC;IAErD;;;OAGG;IACH,QAAQ,CAAC,4BAA4B,EAAE,OAAO,CAAC;IAE/C;;OAEG;IACH,QAAQ,CAAC,8BAA8B,EAAE,OAAO,CAAC;IAEjD;;OAEG;IACH,QAAQ,CAAC,8BAA8B,EAAE,OAAO,CAAC;IAEjD;;;OAGG;IACH,QAAQ,CAAC,+BAA+B,EAAE,OAAO,CAAC;CAErD"}
@@ -3,8 +3,32 @@ import { TextureFormat } from "./texture/TextureFormat.js";
3
3
  import { Color } from "../data/Color.js";
4
4
  import { RenderingBackend } from "./RenderingBackend.js";
5
5
  import { vec2 } from "gl-matrix";
6
+ import type { PowerPreferenceType } from "./PowerPreference.js";
7
+ import type { TextureSamplerFilteringPreset } from "../../core/rendering/enums.js";
8
+ import type { TextureColorSpace } from "./enums.js";
9
+ /**
10
+ * The configuration for the renderer. This is used to initialize the renderer.
11
+ * @internal
12
+ */
13
+ export interface IRendererConfiguration {
14
+ /**The size of the main frame buffer. */
15
+ backBufferSize: vec2;
16
+ /** Should back buffer use alpha. */
17
+ alpha: boolean;
18
+ /** The preference when it comes to selecting GPU device. Only makes sense to set on multi-GPU devices. */
19
+ powerPreference: PowerPreferenceType;
20
+ /**
21
+ * The preset for texture sampler filtering.
22
+ * This is used to configure the default texture sampler in the graphics device.
23
+ * The default texture sampler is used when a texture is sampled without a specific sampler being bound.
24
+ */
25
+ textureFiltering: TextureSamplerFilteringPreset;
26
+ /** The desired texture color space. */
27
+ textureColorSpace: TextureColorSpace;
28
+ }
6
29
  /**
7
30
  * The interface for a renderer.
31
+ * @public
8
32
  */
9
33
  export interface IRenderer {
10
34
  /**
@@ -12,7 +36,10 @@ export interface IRenderer {
12
36
  */
13
37
  readonly graphicsDevice: IGraphicsDevice;
14
38
  /**
15
- * The surface preferred a texture format.
39
+ * The preferred texture format.
40
+ * This will encode texture which do not specify texture format to:
41
+ * - {@link TextureFormat.} // TODO: describe SRGB depending on TextureSurfaceFormat requested
42
+ * - {@link TextureFormat.} // TODO: describe RGBA depending on TextureSurfaceFormat requested
16
43
  */
17
44
  readonly preferredTextureFormat: TextureFormat;
18
45
  /**
@@ -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;AAG/B;;GAEG;AACH,MAAM,WAAW,SAAS;IAEtB;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,eAAe,CAAC;IAEzC;;OAEG;IACH,QAAQ,CAAC,sBAAsB,EAAE,aAAa,CAAC;IAE/C;;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,iBAAiB,EAAC,MAAM,YAAY,CAAC;AAGlD;;;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,iBAAiB,CAAC;CACxC;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;;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"}
@@ -15,4 +15,11 @@ export declare enum Culling {
15
15
  */
16
16
  Front = 2
17
17
  }
18
+ /** TODO: */
19
+ export declare enum TextureColorSpace {
20
+ /** TODO */
21
+ LINEAR = "LINEAR",
22
+ /** TODO */
23
+ SRGB = "S_RGBA"
24
+ }
18
25
  //# sourceMappingURL=enums.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"enums.d.ts","sourceRoot":"","sources":["../../../src/api/rendering/enums.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,oBAAY,OAAO;IACf;;OAEG;IACH,IAAI,IAAA;IAEJ;;OAEG;IACH,IAAI,IAAA;IAEJ;;OAEG;IACH,KAAK,IAAA;CACR"}
1
+ {"version":3,"file":"enums.d.ts","sourceRoot":"","sources":["../../../src/api/rendering/enums.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,oBAAY,OAAO;IACf;;OAEG;IACH,IAAI,IAAA;IAEJ;;OAEG;IACH,IAAI,IAAA;IAEJ;;OAEG;IACH,KAAK,IAAA;CACR;AAED,YAAY;AACZ,oBAAY,iBAAiB;IAEzB,WAAW;IACX,MAAM,WAAW;IAEjB,WAAW;IACX,IAAI,WAAW;CAClB"}
@@ -1,45 +1,15 @@
1
1
  import { vec2 } from "gl-matrix";
2
- import { TextureSamplerFilteringPreset } from "../../core/rendering/enums.js";
3
2
  import type { RenderingLimits } from "./rendering-limits.js";
4
- import type { Color, IGraphicsDevice, IRenderer } from "../index.js";
3
+ import type { IRenderer } from "../index.js";
5
4
  import type { TextureFormat } from "../index.js";
6
- import { PowerPreferenceType } from "./PowerPreference.js";
7
- export declare const RenderConfigurationSymbol: unique symbol;
8
- /**
9
- * The configuration for the renderer. This is used to initialize the renderer.
10
- * @internal
11
- */
12
- export interface IRendererConfiguration {
13
- /**The size of the main frame buffer. */
14
- backBufferSize: vec2;
15
- /** Should back buffer use alpha. */
16
- alpha: boolean;
17
- /** The preference when it comes to selecting GPU device. Only makes sense to set on multi-GPU devices. */
18
- powerPreference: PowerPreferenceType;
19
- /**
20
- * The preset for texture sampler filtering.
21
- * This is used to configure the default texture sampler in the graphics device.
22
- * The default texture sampler is used when a texture is sampled without a specific sampler being bound.
23
- */
24
- textureFiltering: TextureSamplerFilteringPreset;
25
- }
26
5
  /**
27
6
  * The interface for renderers.
28
7
  */
29
8
  export interface ITempRenderer extends IRenderer {
30
- /**
31
- * The clear color used by the renderer.
32
- */
33
- clearColor: Color;
34
9
  /**
35
10
  * The rendering limits of the renderer.
36
11
  */
37
12
  limits: RenderingLimits | null;
38
- /**
39
- * The graphics device used by the renderer.
40
- * This is used to create resources and manage the rendering context.
41
- */
42
- readonly graphicsDevice: IGraphicsDevice;
43
13
  /**
44
14
  * The preferred texture format for the renderer.
45
15
  * @returns The preferred texture format for the renderer.
@@ -1 +1 @@
1
- {"version":3,"file":"renderer-interface.d.ts","sourceRoot":"","sources":["../../../src/api/rendering/renderer-interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAC,KAAK,EAAE,eAAe,EAAE,SAAS,EAAC,MAAM,aAAa,CAAC;AACnE,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAC,mBAAmB,EAAC,MAAM,sBAAsB,CAAC;AAEzD,eAAO,MAAM,yBAAyB,eAAgC,CAAC;AAEvE;;;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;CACnD;AAED;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,SAAS;IAE5C;;OAEG;IACH,UAAU,EAAE,KAAK,CAAA;IAEjB;;OAEG;IACH,MAAM,EAAE,eAAe,GAAG,IAAI,CAAC;IAE/B;;;OAGG;IACH,QAAQ,CAAC,cAAc,EAAE,eAAe,CAAC;IAEzC;;;OAGG;IACH,IAAI,sBAAsB,IAAI,aAAa,CAAC;IAE5C;;;OAGG;IACH,IAAI,2BAA2B,IAAI,aAAa,CAAC;IAEjD;;OAEG;IACH,cAAc,EAAE,IAAI,CAAC;IAErB;;;;OAIG;IACH,0BAA0B,EAAE,OAAO,CAAC;IAEpC;;OAEG;IACH,UAAU,IAAI,IAAI,CAAC;IAEnB;;;OAGG;IACH,eAAe,IAAI,IAAI,CAAC;IAExB;;OAEG;IACH,eAAe,IAAI,IAAI,CAAC;IAExB;;OAEG;IACH,aAAa,IAAI,IAAI,CAAC;CACzB"}
1
+ {"version":3,"file":"renderer-interface.d.ts","sourceRoot":"","sources":["../../../src/api/rendering/renderer-interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAC,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,aAAa,CAAC;AAK/C;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,SAAS;IAE5C;;OAEG;IACH,MAAM,EAAE,eAAe,GAAG,IAAI,CAAC;IAE/B;;;OAGG;IACH,IAAI,sBAAsB,IAAI,aAAa,CAAC;IAE5C;;;OAGG;IACH,IAAI,2BAA2B,IAAI,aAAa,CAAC;IAEjD;;OAEG;IACH,cAAc,EAAE,IAAI,CAAC;IAErB;;;;OAIG;IACH,0BAA0B,EAAE,OAAO,CAAC;IAEpC;;OAEG;IACH,UAAU,IAAI,IAAI,CAAC;IAEnB;;;OAGG;IACH,eAAe,IAAI,IAAI,CAAC;IAExB;;OAEG;IACH,eAAe,IAAI,IAAI,CAAC;IAExB;;OAEG;IACH,aAAa,IAAI,IAAI,CAAC;CACzB"}
@@ -4,13 +4,9 @@ import { RenderPassColorAttachment } from "./RenderPassColorAttachment.js";
4
4
  * The render pass.
5
5
  */
6
6
  export declare class RenderPassDescriptor {
7
- /**
8
- * The color attachments of the render pass.
9
- */
7
+ /** The color attachments of the render pass. */
10
8
  colorAttachments?: RenderPassColorAttachment[];
11
- /**
12
- * The depth-stencil attachment of the render pass.
13
- */
9
+ /** The depth-stencil attachment of the render pass. */
14
10
  depthStencilAttachment?: RenderPassDepthStencilAttachment;
15
11
  /**
16
12
  * The label of the render pass.
@@ -1 +1 @@
1
- {"version":3,"file":"RenderPassDescriptor.d.ts","sourceRoot":"","sources":["../../../../src/api/rendering/renderpass/RenderPassDescriptor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gCAAgC,EAAC,MAAM,uCAAuC,CAAC;AACvF,OAAO,EAAC,yBAAyB,EAAC,MAAM,gCAAgC,CAAC;AAEzE;;GAEG;AACH,qBAAa,oBAAoB;IAEjC;;OAEG;IACM,gBAAgB,CAAC,EAAE,yBAAyB,EAAE,CAAC;IAExD;;OAEG;IACO,sBAAsB,CAAC,EAAE,gCAAgC,CAAC;IAEpE;;;;OAIG;IACM,KAAK,CAAC,EAAE,MAAM,CAAC;CAEvB"}
1
+ {"version":3,"file":"RenderPassDescriptor.d.ts","sourceRoot":"","sources":["../../../../src/api/rendering/renderpass/RenderPassDescriptor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gCAAgC,EAAC,MAAM,uCAAuC,CAAC;AACvF,OAAO,EAAC,yBAAyB,EAAC,MAAM,gCAAgC,CAAC;AAEzE;;GAEG;AACH,qBAAa,oBAAoB;IAE7B,gDAAgD;IACzC,gBAAgB,CAAC,EAAE,yBAAyB,EAAE,CAAC;IAEtD,uDAAuD;IAChD,sBAAsB,CAAC,EAAE,gCAAgC,CAAC;IAEjE;;;;OAIG;IACI,KAAK,CAAC,EAAE,MAAM,CAAC;CAEzB"}
@@ -9,9 +9,7 @@ export interface ISwapChain extends IDisposable {
9
9
  * The size of the back buffer.
10
10
  */
11
11
  readonly backBufferSize: vec2;
12
- /**
13
- * The texture format of the back buffer.
14
- */
12
+ /** The texture format of the back buffer. */
15
13
  readonly textureFormat: TextureFormat;
16
14
  /**
17
15
  * Sets the back buffer size.
@@ -1 +1 @@
1
- {"version":3,"file":"ISwapChain.d.ts","sourceRoot":"","sources":["../../../../src/api/rendering/swapchain/ISwapChain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,6BAA6B,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAE/B;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,WAAW;IAE3C;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAC;IAE9B;;OAEG;IACH,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IAEtC;;;;;OAKG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAE5C;;;OAGG;IACH,OAAO,IAAI,IAAI,CAAC;CACnB"}
1
+ {"version":3,"file":"ISwapChain.d.ts","sourceRoot":"","sources":["../../../../src/api/rendering/swapchain/ISwapChain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,6BAA6B,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAE/B;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,WAAW;IAE3C;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAC;IAE9B,6CAA6C;IAC7C,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IAEtC;;;;;OAKG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAE5C;;;OAGG;IACH,OAAO,IAAI,IAAI,CAAC;CACnB"}