ris-framework 0.1.0 → 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 (383) hide show
  1. package/CHANGELOG.md +42 -1
  2. package/README.md +27 -4
  3. package/dist/Framework.d.ts +34 -10
  4. package/dist/Framework.d.ts.map +1 -1
  5. package/dist/api/IFramework.d.ts +50 -6
  6. package/dist/api/IFramework.d.ts.map +1 -1
  7. package/dist/api/_export.d.ts +3 -1
  8. package/dist/api/_export.d.ts.map +1 -1
  9. package/dist/api/camera/CameraFactory.d.ts +3 -2
  10. package/dist/api/camera/CameraFactory.d.ts.map +1 -1
  11. package/dist/api/camera/ICamera.d.ts +5 -0
  12. package/dist/api/camera/ICamera.d.ts.map +1 -1
  13. package/dist/api/camera/ICameraFactory.d.ts +5 -6
  14. package/dist/api/camera/ICameraFactory.d.ts.map +1 -1
  15. package/dist/api/camera/OrthographicCamera.d.ts +7 -0
  16. package/dist/api/camera/OrthographicCamera.d.ts.map +1 -1
  17. package/dist/api/camera/PerspectiveCamera.d.ts +30 -6
  18. package/dist/api/camera/PerspectiveCamera.d.ts.map +1 -1
  19. package/dist/api/content/ContentManager.d.ts +15 -2
  20. package/dist/api/content/ContentManager.d.ts.map +1 -1
  21. package/dist/api/content/IContentManager.d.ts +35 -1
  22. package/dist/api/content/IContentManager.d.ts.map +1 -1
  23. package/dist/api/content/ShaderModuleContent.d.ts.map +1 -1
  24. package/dist/api/data/Color.d.ts +5 -0
  25. package/dist/api/data/Color.d.ts.map +1 -1
  26. package/dist/api/geometry/BaseGeometry.d.ts +9 -0
  27. package/dist/api/geometry/BaseGeometry.d.ts.map +1 -1
  28. package/dist/api/geometry/GeometryBuilder.d.ts +3 -1
  29. package/dist/api/geometry/GeometryBuilder.d.ts.map +1 -1
  30. package/dist/api/geometry/IGeometryBuilder.d.ts +24 -0
  31. package/dist/api/geometry/IGeometryBuilder.d.ts.map +1 -1
  32. package/dist/api/geometry/_export-geometry.d.ts +1 -0
  33. package/dist/api/geometry/_export-geometry.d.ts.map +1 -1
  34. package/dist/api/input/InputManager.d.ts +4 -0
  35. package/dist/api/input/InputManager.d.ts.map +1 -1
  36. package/dist/api/lights/AmbientLight.d.ts +35 -0
  37. package/dist/api/lights/AmbientLight.d.ts.map +1 -0
  38. package/dist/api/lights/DirectionalLight.d.ts +40 -0
  39. package/dist/api/lights/DirectionalLight.d.ts.map +1 -0
  40. package/dist/api/lights/LightFactory.d.ts +18 -0
  41. package/dist/api/lights/LightFactory.d.ts.map +1 -0
  42. package/dist/api/lights/LightId.d.ts +6 -0
  43. package/dist/api/lights/LightId.d.ts.map +1 -0
  44. package/dist/api/lights/LightsBuffer.d.ts +77 -0
  45. package/dist/api/lights/LightsBuffer.d.ts.map +1 -0
  46. package/dist/api/lights/PointLight.d.ts +59 -0
  47. package/dist/api/lights/PointLight.d.ts.map +1 -0
  48. package/dist/api/lights/_export.d.ts +6 -0
  49. package/dist/api/lights/_export.d.ts.map +1 -0
  50. package/dist/api/loaders/ObjGeometryMapper.d.ts +19 -0
  51. package/dist/api/loaders/ObjGeometryMapper.d.ts.map +1 -0
  52. package/dist/api/loaders/ObjLoader.d.ts +61 -0
  53. package/dist/api/loaders/ObjLoader.d.ts.map +1 -0
  54. package/dist/api/loaders/_export.d.ts +2 -0
  55. package/dist/api/loaders/_export.d.ts.map +1 -1
  56. package/dist/api/loaders/obj/ObjParser.d.ts +44 -0
  57. package/dist/api/loaders/obj/ObjParser.d.ts.map +1 -0
  58. package/dist/api/loaders/obj/ObjTypes.d.ts +119 -0
  59. package/dist/api/loaders/obj/ObjTypes.d.ts.map +1 -0
  60. package/dist/api/loaders/obj/index.d.ts +3 -0
  61. package/dist/api/loaders/obj/index.d.ts.map +1 -0
  62. package/dist/api/material/ForwardBlinnPhongMaterial.d.ts +138 -0
  63. package/dist/api/material/ForwardBlinnPhongMaterial.d.ts.map +1 -0
  64. package/dist/api/material/ICameraMaterial.d.ts +18 -0
  65. package/dist/api/material/ICameraMaterial.d.ts.map +1 -0
  66. package/dist/api/material/ILightsMaterial.d.ts +26 -0
  67. package/dist/api/material/ILightsMaterial.d.ts.map +1 -0
  68. package/dist/api/material/IMaterial.d.ts +13 -10
  69. package/dist/api/material/IMaterial.d.ts.map +1 -1
  70. package/dist/api/material/IMaterialFactory.d.ts +17 -2
  71. package/dist/api/material/IMaterialFactory.d.ts.map +1 -1
  72. package/dist/api/material/InspectTextureMipsMaterial.d.ts +18 -9
  73. package/dist/api/material/InspectTextureMipsMaterial.d.ts.map +1 -1
  74. package/dist/api/material/MaterialFactory.d.ts +6 -0
  75. package/dist/api/material/MaterialFactory.d.ts.map +1 -1
  76. package/dist/api/material/SpriteMaterial.d.ts +51 -0
  77. package/dist/api/material/SpriteMaterial.d.ts.map +1 -0
  78. package/dist/api/material/UnlitMaterial.d.ts +32 -13
  79. package/dist/api/material/UnlitMaterial.d.ts.map +1 -1
  80. package/dist/api/material/_export.d.ts +4 -0
  81. package/dist/api/material/_export.d.ts.map +1 -1
  82. package/dist/api/meshes/IMesh.d.ts +31 -6
  83. package/dist/api/meshes/IMesh.d.ts.map +1 -1
  84. package/dist/api/meshes/IMeshFactory.d.ts +30 -4
  85. package/dist/api/meshes/IMeshFactory.d.ts.map +1 -1
  86. package/dist/api/meshes/IRenderableMesh.d.ts +47 -0
  87. package/dist/api/meshes/IRenderableMesh.d.ts.map +1 -0
  88. package/dist/api/meshes/Mesh.d.ts +14 -8
  89. package/dist/api/meshes/Mesh.d.ts.map +1 -1
  90. package/dist/api/meshes/MeshFactory.d.ts +10 -3
  91. package/dist/api/meshes/MeshFactory.d.ts.map +1 -1
  92. package/dist/api/meshes/QuadMesh.d.ts +5 -3
  93. package/dist/api/meshes/QuadMesh.d.ts.map +1 -1
  94. package/dist/api/meshes/RenderableMesh.d.ts +95 -0
  95. package/dist/api/meshes/RenderableMesh.d.ts.map +1 -0
  96. package/dist/api/meshes/_export.d.ts +2 -0
  97. package/dist/api/meshes/_export.d.ts.map +1 -1
  98. package/dist/api/rendering/IGraphicsDeviceFeatures.d.ts +8 -2
  99. package/dist/api/rendering/IGraphicsDeviceFeatures.d.ts.map +1 -1
  100. package/dist/api/rendering/IRenderer.d.ts +28 -1
  101. package/dist/api/rendering/IRenderer.d.ts.map +1 -1
  102. package/dist/api/rendering/enums.d.ts +7 -0
  103. package/dist/api/rendering/enums.d.ts.map +1 -1
  104. package/dist/api/rendering/render-pipelines/IForwardBlinnPhongRenderPipeline.d.ts +56 -0
  105. package/dist/api/rendering/render-pipelines/IForwardBlinnPhongRenderPipeline.d.ts.map +1 -0
  106. package/dist/api/rendering/render-pipelines/IRenderPipeline.d.ts +3 -0
  107. package/dist/api/rendering/render-pipelines/IRenderPipeline.d.ts.map +1 -1
  108. package/dist/api/rendering/render-pipelines/IRenderPipelineFactory.d.ts +29 -0
  109. package/dist/api/rendering/render-pipelines/IRenderPipelineFactory.d.ts.map +1 -1
  110. package/dist/api/rendering/render-pipelines/_export-render-pipelines.d.ts +1 -0
  111. package/dist/api/rendering/render-pipelines/_export-render-pipelines.d.ts.map +1 -1
  112. package/dist/api/rendering/renderer-interface.d.ts +1 -31
  113. package/dist/api/rendering/renderer-interface.d.ts.map +1 -1
  114. package/dist/api/rendering/renderpass/RenderPassDescriptor.d.ts +2 -6
  115. package/dist/api/rendering/renderpass/RenderPassDescriptor.d.ts.map +1 -1
  116. package/dist/api/rendering/swapchain/ISwapChain.d.ts +1 -3
  117. package/dist/api/rendering/swapchain/ISwapChain.d.ts.map +1 -1
  118. package/dist/api/rendering/texture/TextureFormat.d.ts +88 -14
  119. package/dist/api/rendering/texture/TextureFormat.d.ts.map +1 -1
  120. package/dist/api/rendering/texture/TextureUtilities.d.ts +23 -0
  121. package/dist/api/rendering/texture/TextureUtilities.d.ts.map +1 -1
  122. package/dist/api/scene/Scene.d.ts +113 -0
  123. package/dist/api/scene/Scene.d.ts.map +1 -0
  124. package/dist/api/scene/SceneMesh.d.ts +27 -0
  125. package/dist/api/scene/SceneMesh.d.ts.map +1 -0
  126. package/dist/api/shader/IShaderModuleLoader.d.ts +4 -1
  127. package/dist/api/shader/IShaderModuleLoader.d.ts.map +1 -1
  128. package/dist/api/shader/{shader-loader.d.ts → ShaderLoader.d.ts} +1 -1
  129. package/dist/api/shader/ShaderLoader.d.ts.map +1 -0
  130. package/dist/api/sprites/SpriteBatchDrawable.d.ts +1 -1
  131. package/dist/api/sprites/SpriteBatchDrawable.d.ts.map +1 -1
  132. package/dist/api/sprites/SpriteBatchMesh.d.ts +14 -1
  133. package/dist/api/sprites/SpriteBatchMesh.d.ts.map +1 -1
  134. package/dist/api/utilities/AlignUtilities.d.ts.map +1 -1
  135. package/dist/api/utilities/GeometryUtilities.d.ts.map +1 -1
  136. package/dist/api/window/WindowManager.d.ts +4 -0
  137. package/dist/api/window/WindowManager.d.ts.map +1 -1
  138. package/dist/core/rendering/ARenderer.d.ts +5 -5
  139. package/dist/core/rendering/ARenderer.d.ts.map +1 -1
  140. package/dist/core/rendering/vertex-buffer-layout.d.ts +1 -0
  141. package/dist/core/rendering/vertex-buffer-layout.d.ts.map +1 -1
  142. package/dist/index.d.ts +0 -1
  143. package/dist/index.d.ts.map +1 -1
  144. package/dist/index.js +9238 -4595
  145. package/dist/webgl/WebGLGraphicsDeviceFeatures.d.ts +4 -0
  146. package/dist/webgl/WebGLGraphicsDeviceFeatures.d.ts.map +1 -1
  147. package/dist/webgl/WebGlGraphicsDevice.d.ts.map +1 -1
  148. package/dist/webgl/WebGlRenderer.d.ts +1 -3
  149. package/dist/webgl/WebGlRenderer.d.ts.map +1 -1
  150. package/dist/webgl/lights/WebGlAmbientLightFactory.d.ts +17 -0
  151. package/dist/webgl/lights/WebGlAmbientLightFactory.d.ts.map +1 -0
  152. package/dist/webgl/lights/WebGlLightsBuffer.d.ts +59 -0
  153. package/dist/webgl/lights/WebGlLightsBuffer.d.ts.map +1 -0
  154. package/dist/webgl/render-pipelines/AWebGlRenderPipeline.d.ts +3 -1
  155. package/dist/webgl/render-pipelines/AWebGlRenderPipeline.d.ts.map +1 -1
  156. package/dist/webgl/render-pipelines/WebGlMainRenderTargetRenderPipeline.d.ts +5 -0
  157. package/dist/webgl/render-pipelines/WebGlMainRenderTargetRenderPipeline.d.ts.map +1 -1
  158. package/dist/webgl/render-pipelines/WebGlRenderPipelineFactory.d.ts +3 -1
  159. package/dist/webgl/render-pipelines/WebGlRenderPipelineFactory.d.ts.map +1 -1
  160. package/dist/webgl/render-pipelines/inspect/WebGlInspectTextureMipsRenderPipeline.d.ts +3 -1
  161. package/dist/webgl/render-pipelines/inspect/WebGlInspectTextureMipsRenderPipeline.d.ts.map +1 -1
  162. package/dist/webgl/render-pipelines/material/WebGlBlinnPhongRenderPipeline.d.ts +88 -0
  163. package/dist/webgl/render-pipelines/material/WebGlBlinnPhongRenderPipeline.d.ts.map +1 -0
  164. package/dist/webgl/render-pipelines/material/WebGlUnlitRenderPipeline.d.ts +3 -1
  165. package/dist/webgl/render-pipelines/material/WebGlUnlitRenderPipeline.d.ts.map +1 -1
  166. package/dist/webgl/render-pipelines/sprite/WebGlSpriteRenderPipeline.d.ts +3 -1
  167. package/dist/webgl/render-pipelines/sprite/WebGlSpriteRenderPipeline.d.ts.map +1 -1
  168. package/dist/webgl/shader/WebGlShaderModule.d.ts +4 -1
  169. package/dist/webgl/shader/WebGlShaderModule.d.ts.map +1 -1
  170. package/dist/webgl/shader/WebGlShaderModuleLoader.d.ts +16 -5
  171. package/dist/webgl/shader/WebGlShaderModuleLoader.d.ts.map +1 -1
  172. package/dist/webgl/swap-chain/WebGlSwapChain.d.ts +3 -2
  173. package/dist/webgl/swap-chain/WebGlSwapChain.d.ts.map +1 -1
  174. package/dist/webgl/texture/WebGlTexture2D.d.ts +8 -1
  175. package/dist/webgl/texture/WebGlTexture2D.d.ts.map +1 -1
  176. package/dist/webgl/texture/WebGlTextureFactory.d.ts +7 -0
  177. package/dist/webgl/texture/WebGlTextureFactory.d.ts.map +1 -1
  178. package/dist/webgl/utilities/WebGlConstants.d.ts +91 -0
  179. package/dist/webgl/utilities/WebGlConstants.d.ts.map +1 -0
  180. package/dist/webgl/utilities/WebGlConverter.d.ts +0 -7
  181. package/dist/webgl/utilities/WebGlConverter.d.ts.map +1 -1
  182. package/dist/webgl/utilities/WebGlErrorUtilities.d.ts +10 -0
  183. package/dist/webgl/utilities/WebGlErrorUtilities.d.ts.map +1 -0
  184. package/dist/webgl/utilities/WebGlTextureUtilities.d.ts.map +1 -1
  185. package/dist/webgl/utilities/WebGlUtilities.d.ts +3 -0
  186. package/dist/webgl/utilities/WebGlUtilities.d.ts.map +1 -1
  187. package/dist/webgl/utilities/webgl-filter-anisotropic-utilities.d.ts +0 -1
  188. package/dist/webgl/utilities/webgl-filter-anisotropic-utilities.d.ts.map +1 -1
  189. package/dist/webgpu/WebGpuGpuInfo.d.ts +28 -0
  190. package/dist/webgpu/WebGpuGpuInfo.d.ts.map +1 -0
  191. package/dist/webgpu/WebGpuGraphicsDevice.d.ts +80 -0
  192. package/dist/webgpu/WebGpuGraphicsDevice.d.ts.map +1 -0
  193. package/dist/webgpu/WebGpuGraphicsDeviceFeatures.d.ts +26 -0
  194. package/dist/webgpu/WebGpuGraphicsDeviceFeatures.d.ts.map +1 -0
  195. package/dist/webgpu/WebGpuRenderer.d.ts +26 -0
  196. package/dist/webgpu/WebGpuRenderer.d.ts.map +1 -0
  197. package/dist/webgpu/WebGpuTypes.d.ts +355 -0
  198. package/dist/webgpu/WebGpuTypes.d.ts.map +1 -0
  199. package/dist/webgpu/blending/WebGpuBlendState.d.ts +30 -0
  200. package/dist/webgpu/blending/WebGpuBlendState.d.ts.map +1 -0
  201. package/dist/webgpu/buffers/WebGpuBuffersFactory.d.ts +20 -0
  202. package/dist/webgpu/buffers/WebGpuBuffersFactory.d.ts.map +1 -0
  203. package/dist/webgpu/buffers/WebGpuIndexBuffer.d.ts +46 -0
  204. package/dist/webgpu/buffers/WebGpuIndexBuffer.d.ts.map +1 -0
  205. package/dist/webgpu/buffers/WebGpuUniformBuffer.d.ts +43 -0
  206. package/dist/webgpu/buffers/WebGpuUniformBuffer.d.ts.map +1 -0
  207. package/dist/webgpu/buffers/WebGpuVertexBuffer.d.ts +49 -0
  208. package/dist/webgpu/buffers/WebGpuVertexBuffer.d.ts.map +1 -0
  209. package/dist/webgpu/primitive/WebGpuPrimitiveState.d.ts +32 -0
  210. package/dist/webgpu/primitive/WebGpuPrimitiveState.d.ts.map +1 -0
  211. package/dist/webgpu/render-pass/WebGpuRenderPass.d.ts +28 -0
  212. package/dist/webgpu/render-pass/WebGpuRenderPass.d.ts.map +1 -0
  213. package/dist/webgpu/render-pipelines/AWebGpuRenderPipeline.d.ts +50 -0
  214. package/dist/webgpu/render-pipelines/AWebGpuRenderPipeline.d.ts.map +1 -0
  215. package/dist/webgpu/render-pipelines/WebGpuMainRenderTargetRenderPipeline.d.ts +34 -0
  216. package/dist/webgpu/render-pipelines/WebGpuMainRenderTargetRenderPipeline.d.ts.map +1 -0
  217. package/dist/webgpu/render-pipelines/WebGpuRenderPipelineFactory.d.ts +26 -0
  218. package/dist/webgpu/render-pipelines/WebGpuRenderPipelineFactory.d.ts.map +1 -0
  219. package/dist/webgpu/render-pipelines/material/AWebGpuMeshRenderPipeline.d.ts +72 -0
  220. package/dist/webgpu/render-pipelines/material/AWebGpuMeshRenderPipeline.d.ts.map +1 -0
  221. package/dist/webgpu/render-pipelines/material/WebGpuUnlitRenderPipeline.d.ts +40 -0
  222. package/dist/webgpu/render-pipelines/material/WebGpuUnlitRenderPipeline.d.ts.map +1 -0
  223. package/dist/webgpu/sampler/WebGpuSampler.d.ts +39 -0
  224. package/dist/webgpu/sampler/WebGpuSampler.d.ts.map +1 -0
  225. package/dist/webgpu/shader/WebGpuShaderModule.d.ts +29 -0
  226. package/dist/webgpu/shader/WebGpuShaderModule.d.ts.map +1 -0
  227. package/dist/webgpu/shader/WebGpuShaderModuleLoader.d.ts +21 -0
  228. package/dist/webgpu/shader/WebGpuShaderModuleLoader.d.ts.map +1 -0
  229. package/dist/webgpu/shader/WgslShaderContent.d.ts +9 -0
  230. package/dist/webgpu/shader/WgslShaderContent.d.ts.map +1 -0
  231. package/dist/webgpu/swap-chain/WebGpuSwapChain.d.ts +41 -0
  232. package/dist/webgpu/swap-chain/WebGpuSwapChain.d.ts.map +1 -0
  233. package/dist/webgpu/texture/WebGpuTexture2D.d.ts +47 -0
  234. package/dist/webgpu/texture/WebGpuTexture2D.d.ts.map +1 -0
  235. package/dist/webgpu/texture/WebGpuTextureFactory.d.ts +21 -0
  236. package/dist/webgpu/texture/WebGpuTextureFactory.d.ts.map +1 -0
  237. package/dist/webgpu/texture/WebGpuTextureView.d.ts +25 -0
  238. package/dist/webgpu/texture/WebGpuTextureView.d.ts.map +1 -0
  239. package/dist/webgpu/utilities/WebGpuConverter.d.ts +45 -0
  240. package/dist/webgpu/utilities/WebGpuConverter.d.ts.map +1 -0
  241. package/package.json +4 -4
  242. package/shaders/glsl/forward_blinn_phong_material_fs.glsl +110 -0
  243. package/shaders/glsl/forward_blinn_phong_material_vs.glsl +32 -0
  244. package/shaders/glsl/main_render_target_flip_y_fs.glsl +35 -1
  245. package/shaders/glsl/sprite_fs.glsl +1 -1
  246. package/shaders/glsl/unlit_material_fs.glsl +1 -1
  247. package/shaders/wgsl/forward_blinn_phong_material.wgsl +150 -0
  248. package/shaders/wgsl/inspect_texture_mips.wgsl +51 -0
  249. package/shaders/wgsl/main_frame_buffer.wgsl +35 -0
  250. package/shaders/wgsl/main_render_target_flip_y.wgsl +35 -0
  251. package/shaders/wgsl/sprite.wgsl +40 -0
  252. package/shaders/wgsl/unlit_material.wgsl +49 -0
  253. package/src/Framework.ts +156 -48
  254. package/src/api/IFramework.ts +63 -6
  255. package/src/api/_export.ts +3 -1
  256. package/src/api/camera/CameraFactory.ts +6 -6
  257. package/src/api/camera/ICamera.ts +6 -0
  258. package/src/api/camera/ICameraFactory.ts +5 -10
  259. package/src/api/camera/OrthographicCamera.ts +23 -1
  260. package/src/api/camera/PerspectiveCamera.ts +60 -15
  261. package/src/api/content/ContentManager.ts +78 -16
  262. package/src/api/content/IContentManager.ts +37 -1
  263. package/src/api/content/ShaderModuleContent.ts +9 -0
  264. package/src/api/data/Color.ts +7 -1
  265. package/src/api/geometry/BaseGeometry.ts +23 -0
  266. package/src/api/geometry/GeometryBuilder.ts +14 -2
  267. package/src/api/geometry/IGeometryBuilder.ts +31 -1
  268. package/src/api/geometry/_export-geometry.ts +2 -1
  269. package/src/api/input/InputManager.ts +14 -5
  270. package/src/api/lights/AmbientLight.ts +53 -0
  271. package/src/api/lights/DirectionalLight.ts +60 -0
  272. package/src/api/lights/LightFactory.ts +21 -0
  273. package/src/api/lights/LightId.ts +9 -0
  274. package/src/api/lights/LightsBuffer.ts +94 -0
  275. package/src/api/lights/PointLight.ts +91 -0
  276. package/src/api/lights/_export.ts +5 -0
  277. package/src/api/loaders/ObjGeometryMapper.ts +28 -0
  278. package/src/api/loaders/ObjLoader.ts +126 -0
  279. package/src/api/loaders/_export.ts +3 -1
  280. package/src/api/loaders/obj/ObjParser.ts +301 -0
  281. package/src/api/loaders/obj/ObjTypes.ts +142 -0
  282. package/src/api/loaders/obj/index.ts +5 -0
  283. package/src/api/material/ForwardBlinnPhongMaterial.ts +328 -0
  284. package/src/api/material/ICameraMaterial.ts +22 -0
  285. package/src/api/material/ILightsMaterial.ts +32 -0
  286. package/src/api/material/IMaterial.ts +13 -10
  287. package/src/api/material/IMaterialFactory.ts +19 -2
  288. package/src/api/material/InspectTextureMipsMaterial.ts +65 -26
  289. package/src/api/material/MaterialFactory.ts +12 -0
  290. package/src/api/material/SpriteMaterial.ts +83 -0
  291. package/src/api/material/UnlitMaterial.ts +105 -32
  292. package/src/api/material/_export.ts +5 -1
  293. package/src/api/meshes/IMesh.ts +40 -6
  294. package/src/api/meshes/IMeshFactory.ts +33 -4
  295. package/src/api/meshes/IRenderableMesh.ts +58 -0
  296. package/src/api/meshes/Mesh.ts +50 -43
  297. package/src/api/meshes/MeshFactory.ts +37 -4
  298. package/src/api/meshes/QuadMesh.ts +6 -4
  299. package/src/api/meshes/RenderableMesh.ts +207 -0
  300. package/src/api/meshes/_export.ts +6 -4
  301. package/src/api/rendering/IGraphicsDeviceFeatures.ts +28 -21
  302. package/src/api/rendering/IRenderer.ts +34 -1
  303. package/src/api/rendering/enums.ts +10 -0
  304. package/src/api/rendering/render-pipelines/IForwardBlinnPhongRenderPipeline.ts +66 -0
  305. package/src/api/rendering/render-pipelines/IRenderPipeline.ts +4 -0
  306. package/src/api/rendering/render-pipelines/IRenderPipelineFactory.ts +39 -0
  307. package/src/api/rendering/render-pipelines/_export-render-pipelines.ts +2 -1
  308. package/src/api/rendering/renderer-interface.ts +1 -36
  309. package/src/api/rendering/renderpass/RenderPassDescriptor.ts +10 -14
  310. package/src/api/rendering/swapchain/ISwapChain.ts +1 -3
  311. package/src/api/rendering/texture/TextureFormat.ts +128 -14
  312. package/src/api/rendering/texture/TextureUtilities.ts +225 -10
  313. package/src/api/scene/Scene.ts +297 -0
  314. package/src/api/scene/SceneMesh.ts +61 -0
  315. package/src/api/shader/IShaderModuleLoader.ts +2 -1
  316. package/src/api/sprites/SpriteBatchDrawable.ts +12 -16
  317. package/src/api/sprites/SpriteBatchMesh.ts +22 -3
  318. package/src/api/utilities/AlignUtilities.ts +2 -1
  319. package/src/api/utilities/GeometryUtilities.ts +2 -0
  320. package/src/api/window/WindowManager.ts +23 -3
  321. package/src/core/rendering/ARenderer.ts +24 -15
  322. package/src/core/rendering/vertex-buffer-layout.ts +32 -1
  323. package/src/index.ts +0 -1
  324. package/src/main.ts +2 -4
  325. package/src/webgl/WebGLGraphicsDeviceFeatures.ts +12 -2
  326. package/src/webgl/WebGlGpuInfo.ts +1 -1
  327. package/src/webgl/WebGlGraphicsDevice.ts +0 -1
  328. package/src/webgl/WebGlRenderer.ts +2 -5
  329. package/src/webgl/lights/WebGlAmbientLightFactory.ts +35 -0
  330. package/src/webgl/lights/WebGlLightsBuffer.ts +225 -0
  331. package/src/webgl/render-pipelines/AWebGlRenderPipeline.ts +7 -1
  332. package/src/webgl/render-pipelines/WebGlMainRenderTargetRenderPipeline.ts +21 -1
  333. package/src/webgl/render-pipelines/WebGlRenderPipelineFactory.ts +24 -2
  334. package/src/webgl/render-pipelines/inspect/WebGlInspectTextureMipsRenderPipeline.ts +16 -6
  335. package/src/webgl/render-pipelines/material/WebGlBlinnPhongRenderPipeline.ts +300 -0
  336. package/src/webgl/render-pipelines/material/WebGlUnlitRenderPipeline.ts +16 -6
  337. package/src/webgl/render-pipelines/sprite/WebGlSpriteRenderPipeline.ts +11 -7
  338. package/src/webgl/shader/WebGlShaderModule.ts +11 -4
  339. package/src/webgl/shader/WebGlShaderModuleLoader.ts +29 -10
  340. package/src/webgl/swap-chain/WebGlSwapChain.ts +7 -6
  341. package/src/webgl/texture/WebGlTexture2D.ts +19 -5
  342. package/src/webgl/texture/WebGlTextureFactory.ts +49 -7
  343. package/src/webgl/utilities/WebGlConstants.ts +136 -0
  344. package/src/webgl/utilities/WebGlConverter.ts +91 -22
  345. package/src/webgl/utilities/WebGlErrorUtilities.ts +15 -0
  346. package/src/webgl/utilities/WebGlTextureUtilities.ts +5 -2
  347. package/src/webgl/utilities/WebGlUtilities.ts +4 -0
  348. package/src/webgl/utilities/webgl-filter-anisotropic-utilities.ts +9 -6
  349. package/src/webgpu/WebGpuGpuInfo.ts +61 -0
  350. package/src/webgpu/WebGpuGraphicsDevice.ts +199 -0
  351. package/src/webgpu/WebGpuGraphicsDeviceFeatures.ts +41 -0
  352. package/src/webgpu/WebGpuRenderer.ts +49 -0
  353. package/src/webgpu/WebGpuTypes.ts +288 -0
  354. package/src/webgpu/blending/WebGpuBlendState.ts +53 -0
  355. package/src/webgpu/buffers/WebGpuBuffersFactory.ts +46 -0
  356. package/src/webgpu/buffers/WebGpuIndexBuffer.ts +118 -0
  357. package/src/webgpu/buffers/WebGpuUniformBuffer.ts +102 -0
  358. package/src/webgpu/buffers/WebGpuVertexBuffer.ts +119 -0
  359. package/src/webgpu/primitive/WebGpuPrimitiveState.ts +52 -0
  360. package/src/webgpu/render-pass/WebGpuRenderPass.ts +131 -0
  361. package/src/webgpu/render-pipelines/AWebGpuRenderPipeline.ts +123 -0
  362. package/src/webgpu/render-pipelines/WebGpuMainRenderTargetRenderPipeline.ts +119 -0
  363. package/src/webgpu/render-pipelines/WebGpuRenderPipelineFactory.ts +66 -0
  364. package/src/webgpu/render-pipelines/material/AWebGpuMeshRenderPipeline.ts +249 -0
  365. package/src/webgpu/render-pipelines/material/WebGpuUnlitRenderPipeline.ts +101 -0
  366. package/src/webgpu/sampler/WebGpuSampler.ts +84 -0
  367. package/src/webgpu/shader/WebGpuShaderModule.ts +65 -0
  368. package/src/webgpu/shader/WebGpuShaderModuleLoader.ts +38 -0
  369. package/src/webgpu/shader/WgslShaderContent.ts +20 -0
  370. package/src/webgpu/swap-chain/WebGpuSwapChain.ts +93 -0
  371. package/src/webgpu/texture/WebGpuTexture2D.ts +197 -0
  372. package/src/webgpu/texture/WebGpuTextureFactory.ts +118 -0
  373. package/src/webgpu/texture/WebGpuTextureView.ts +43 -0
  374. package/src/webgpu/utilities/WebGpuConverter.ts +299 -0
  375. package/src/wgsl-raw.d.ts +4 -0
  376. package/dist/api/FrameworkConfiguration.d.ts +0 -23
  377. package/dist/api/FrameworkConfiguration.d.ts.map +0 -1
  378. package/dist/api/IFrameworkConfiguration.d.ts +0 -25
  379. package/dist/api/IFrameworkConfiguration.d.ts.map +0 -1
  380. package/dist/api/shader/shader-loader.d.ts.map +0 -1
  381. package/src/api/FrameworkConfiguration.ts +0 -29
  382. package/src/api/IFrameworkConfiguration.ts +0 -30
  383. /package/src/api/shader/{shader-loader.ts → ShaderLoader.ts} +0 -0
@@ -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"}
@@ -0,0 +1,56 @@
1
+ import type { ITexture2D } from "../texture/ITexture2D.js";
2
+ import type { ISampler } from "../sampler/ISampler.js";
3
+ import type { IRenderPipeline } from "./IRenderPipeline.js";
4
+ import type { IUniformBuffer } from "../buffers/IUniformBuffer.js";
5
+ /**
6
+ * The Blinn-Phong render pipeline with forward lighting.
7
+ */
8
+ export interface IForwardBlinnPhongRenderPipeline extends IRenderPipeline {
9
+ /**
10
+ * The diffuse texture.
11
+ */
12
+ diffuseTexture: ITexture2D;
13
+ /**
14
+ * The texture sampler.
15
+ */
16
+ diffuseTextureSampler?: ISampler;
17
+ /**
18
+ * The projection view uniform buffer.
19
+ * Contains a single matrix representing the projection view matrix.
20
+ */
21
+ projectionViewBuffer: IUniformBuffer;
22
+ /**
23
+ * The world matrix uniform buffer.
24
+ * Contains a single matrix representing the world matrix.
25
+ */
26
+ modelBuffer: IUniformBuffer;
27
+ /**
28
+ * The material buffer that contains the material properties.
29
+ * - vec3 ambientColor
30
+ * - vec3 diffuseColor
31
+ * - vec3 specularColor
32
+ * - float shininess
33
+ */
34
+ materialBuffer: IUniformBuffer;
35
+ /** The camera position buffer: std140 `vec3` world-space eye, e.g. `camera.positionBuffer`. */
36
+ cameraPositionBuffer: IUniformBuffer;
37
+ /**
38
+ * The lights buffer, `LightsBuffer.buffer`, bound to the shader's `LightsBuffer` block.
39
+ * - vec3 ambientLight
40
+ * - DirectionalLight[DIRECTIONAL_LIGHTS_COUNT] { vec3 light; vec3 direction; }
41
+ * - PointLight[POINT_LIGHTS_COUNT] { vec3 light; float constant; vec3 position; float linear; float quadratic; }
42
+ */
43
+ lightsBuffer: IUniformBuffer;
44
+ /** The directional light slots the shader was compiled with. */
45
+ readonly maxDirectionalLights: number;
46
+ /** The point light slots the shader was compiled with. */
47
+ readonly maxPointLights: number;
48
+ /**
49
+ * Sets the light slot counts. They must match the lights buffer (`LightsBuffer.maxDirectionalLights`/`maxPointLights`).
50
+ * When they change after initialization the shader variant for the new counts is loaded.
51
+ * @param maxDirectionalLights The directional light slots.
52
+ * @param maxPointLights The point light slots.
53
+ */
54
+ setLightCounts(maxDirectionalLights: number, maxPointLights: number): void;
55
+ }
56
+ //# sourceMappingURL=IForwardBlinnPhongRenderPipeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IForwardBlinnPhongRenderPipeline.d.ts","sourceRoot":"","sources":["../../../../src/api/rendering/render-pipelines/IForwardBlinnPhongRenderPipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAEnE;;GAEG;AACH,MAAM,WAAW,gCAAiC,SAAQ,eAAe;IAErE;;OAEG;IACH,cAAc,EAAE,UAAU,CAAC;IAE3B;;OAEG;IACH,qBAAqB,CAAC,EAAE,QAAQ,CAAC;IAEjC;;;OAGG;IACH,oBAAoB,EAAE,cAAc,CAAC;IAErC;;;OAGG;IACH,WAAW,EAAE,cAAc,CAAC;IAE5B;;;;;;OAMG;IACH,cAAc,EAAE,cAAc,CAAC;IAE/B,+FAA+F;IAC/F,oBAAoB,EAAE,cAAc,CAAC;IAErC;;;;;OAKG;IACH,YAAY,EAAE,cAAc,CAAC;IAE7B,gEAAgE;IAChE,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IAEtC,0DAA0D;IAC1D,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAEhC;;;;;OAKG;IACH,cAAc,CAAC,oBAAoB,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9E"}
@@ -4,6 +4,7 @@ import type { IPrimitiveState } from "../primitive/IPrimitiveState.js";
4
4
  import type { IVertexBufferLayout } from "../buffers/IVertexBufferLayout.js";
5
5
  import type { IIndexBuffer } from "../buffers/IIndexBuffer.js";
6
6
  import type { IVertexBuffer } from "../buffers/IVertexBuffer.js";
7
+ import type { GeometryFormat } from "../../geometry/GeometryFormat.js";
7
8
  /**
8
9
  * The render pipeline interface.
9
10
  * Render pipelines are responsible for defining the rendering process, including the shaders,
@@ -22,6 +23,8 @@ export interface IRenderPipeline extends IDisposable {
22
23
  * The vertex buffer layout of the render pipeline.
23
24
  */
24
25
  readonly vertexBufferLayouts: IVertexBufferLayout[];
26
+ /** The geometry format required by the render pipeline. */
27
+ readonly geometryFormat: GeometryFormat;
25
28
  /**
26
29
  * Initializes the render pipeline.
27
30
  * This method is called by the renderer when the pipeline is added to the renderer.
@@ -1 +1 @@
1
- {"version":3,"file":"IRenderPipeline.d.ts","sourceRoot":"","sources":["../../../../src/api/rendering/render-pipelines/IRenderPipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEjE;;;;GAIG;AACH,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAEhD;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC;IAEjC;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,eAAe,CAAC;IAEzC;;OAEG;IACH,QAAQ,CAAC,mBAAmB,EAAE,mBAAmB,EAAE,CAAC;IAEpD;;;OAGG;IACH,UAAU,IAAI,IAAI,CAAC;IAEnB;;;;;;OAMG;IACH,MAAM,CAAC,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EACtD,YAAY,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAG/D"}
1
+ {"version":3,"file":"IRenderPipeline.d.ts","sourceRoot":"","sources":["../../../../src/api/rendering/render-pipelines/IRenderPipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAEvE;;;;GAIG;AACH,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAEhD;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC;IAEjC;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,eAAe,CAAC;IAEzC;;OAEG;IACH,QAAQ,CAAC,mBAAmB,EAAE,mBAAmB,EAAE,CAAC;IAEpD,2DAA2D;IAC3D,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAExC;;;OAGG;IACH,UAAU,IAAI,IAAI,CAAC;IAEnB;;;;;;OAMG;IACH,MAAM,CAAC,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EACtD,YAAY,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAG/D"}
@@ -5,6 +5,29 @@ import type { ISpriteRenderPipeline } from "./ISpriteRenderPipeline.js";
5
5
  import type { IInspectTextureMipsRenderPipeline } from "./IInspectTextureMipsRenderPipeline.js";
6
6
  import type { IUnlitRenderPipeline } from "./IUnlitRenderPipeline.js";
7
7
  import type { IPrimitiveState } from "../primitive/IPrimitiveState.js";
8
+ import type { IForwardBlinnPhongRenderPipeline } from "./IForwardBlinnPhongRenderPipeline.js";
9
+ /** The descriptor for the forward Blinn-Phong render pipeline. */
10
+ export interface ForwardBlinnPhongRenderPipelineDescriptor {
11
+ /** The projection view buffer, e.g. `camera.projectionViewBuffer`. */
12
+ projectionViewBuffer: IUniformBuffer;
13
+ /** The world buffer. */
14
+ modelBuffer: IUniformBuffer;
15
+ /** The camera position buffer, e.g. `camera.positionBuffer`: std140 `vec3` world-space eye. */
16
+ cameraPositionBuffer: IUniformBuffer;
17
+ /** The material buffer (ambient and diffuse color). */
18
+ materialBuffer: IUniformBuffer;
19
+ /**
20
+ * The lights buffer, e.g. `lightsBuffer.buffer`.
21
+ * Optional: it can be set later through `pipeline.lightsBuffer`.
22
+ */
23
+ lightsBuffer?: IUniformBuffer;
24
+ /** Directional light slots to compile the shader with; must match the lights buffer. Defaults to `DEFAULT_DIRECTIONAL_LIGHTS_COUNT`. */
25
+ maxDirectionalLights?: number;
26
+ /** Point light slots to compile the shader with; must match the lights buffer. Defaults to `DEFAULT_POINT_LIGHTS_COUNT`. */
27
+ maxPointLights?: number;
28
+ /** The primitive state. */
29
+ primitiveState?: IPrimitiveState;
30
+ }
8
31
  /**
9
32
  * The pipeline factory.
10
33
  */
@@ -38,5 +61,11 @@ export interface IRenderPipelineFactory {
38
61
  * @returns The unlit render pipeline.
39
62
  */
40
63
  createUnlitRenderPipeline(projectionViewBuffer: IUniformBuffer, modelBuffer: IUniformBuffer, materialBuffer: IUniformBuffer, primitiveState?: IPrimitiveState): IUnlitRenderPipeline;
64
+ /**
65
+ * Creates the forward Blinn-Phong render pipeline.
66
+ * @param descriptor - The buffers and primitive state for the pipeline.
67
+ * @returns The forward Blinn-Phong render pipeline.
68
+ */
69
+ createForwardBlinnPhongRenderPipeline(descriptor: ForwardBlinnPhongRenderPipelineDescriptor): IForwardBlinnPhongRenderPipeline;
41
70
  }
42
71
  //# sourceMappingURL=IRenderPipelineFactory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IRenderPipelineFactory.d.ts","sourceRoot":"","sources":["../../../../src/api/rendering/render-pipelines/IRenderPipelineFactory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,sCAAsC,CAAC;AAC5F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,wCAAwC,CAAC;AAChG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAEvE;;GAEG;AACH,MAAM,WAAW,sBAAsB;IAEnC;;;;OAIG;IACH,6BAA6B,CAAC,eAAe,EAAE,UAAU,GAAG,+BAA+B,CAAC;IAE5F;;;;OAIG;IACH,0BAA0B,CAAC,oBAAoB,EAAE,cAAc,GAAG,qBAAqB,CAAC;IAExF;;;;;;OAMG;IACH,sCAAsC,CAAC,oBAAoB,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE,sBAAsB,EAAE,cAAc,GAAG,iCAAiC,CAAC;IAGrL;;;;;;;OAOG;IACH,yBAAyB,CAAC,oBAAoB,EAAE,cAAc,EACpC,WAAW,EAAE,cAAc,EAC3B,cAAc,EAAE,cAAc,EAC9B,cAAc,CAAC,EAAE,eAAe,GAC7B,oBAAoB,CAAC;CAErD"}
1
+ {"version":3,"file":"IRenderPipelineFactory.d.ts","sourceRoot":"","sources":["../../../../src/api/rendering/render-pipelines/IRenderPipelineFactory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,sCAAsC,CAAC;AAC5F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,wCAAwC,CAAC;AAChG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,uCAAuC,CAAC;AAE9F,kEAAkE;AAClE,MAAM,WAAW,yCAAyC;IAEtD,sEAAsE;IACtE,oBAAoB,EAAE,cAAc,CAAC;IAErC,wBAAwB;IACxB,WAAW,EAAE,cAAc,CAAC;IAE5B,+FAA+F;IAC/F,oBAAoB,EAAE,cAAc,CAAC;IAErC,uDAAuD;IACvD,cAAc,EAAE,cAAc,CAAC;IAE/B;;;OAGG;IACH,YAAY,CAAC,EAAE,cAAc,CAAC;IAE9B,wIAAwI;IACxI,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B,4HAA4H;IAC5H,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,2BAA2B;IAC3B,cAAc,CAAC,EAAE,eAAe,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IAEnC;;;;OAIG;IACH,6BAA6B,CAAC,eAAe,EAAE,UAAU,GAAG,+BAA+B,CAAC;IAE5F;;;;OAIG;IACH,0BAA0B,CAAC,oBAAoB,EAAE,cAAc,GAAG,qBAAqB,CAAC;IAExF;;;;;;OAMG;IACH,sCAAsC,CAAC,oBAAoB,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE,sBAAsB,EAAE,cAAc,GAAG,iCAAiC,CAAC;IAGrL;;;;;;;OAOG;IACH,yBAAyB,CAAC,oBAAoB,EAAE,cAAc,EACpC,WAAW,EAAE,cAAc,EAC3B,cAAc,EAAE,cAAc,EAC9B,cAAc,CAAC,EAAE,eAAe,GAC7B,oBAAoB,CAAC;IAElD;;;;OAIG;IACH,qCAAqC,CAAC,UAAU,EAAE,yCAAyC,GAAG,gCAAgC,CAAC;CAElI"}
@@ -4,4 +4,5 @@ export * from "./IRenderPipelineFactory.js";
4
4
  export * from "./IRenderPipeline.js";
5
5
  export * from "./IInspectTextureMipsRenderPipeline.js";
6
6
  export * from "./IUnlitRenderPipeline.js";
7
+ export * from "./IForwardBlinnPhongRenderPipeline.js";
7
8
  //# sourceMappingURL=_export-render-pipelines.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"_export-render-pipelines.d.ts","sourceRoot":"","sources":["../../../../src/api/rendering/render-pipelines/_export-render-pipelines.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sCAAsC,CAAC;AACrD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sBAAsB,CAAC;AACrC,cAAc,wCAAwC,CAAA;AACtD,cAAc,2BAA2B,CAAA"}
1
+ {"version":3,"file":"_export-render-pipelines.d.ts","sourceRoot":"","sources":["../../../../src/api/rendering/render-pipelines/_export-render-pipelines.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sCAAsC,CAAC;AACrD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sBAAsB,CAAC;AACrC,cAAc,wCAAwC,CAAA;AACtD,cAAc,2BAA2B,CAAA;AACzC,cAAc,uCAAuC,CAAA"}
@@ -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"}
@@ -6,49 +6,123 @@ export declare enum TextureFormat {
6
6
  * Default value.
7
7
  For unknown texture format.
8
8
  */
9
- UNDEFINED = 0,
9
+ UNDEFINED = "UNDEFINED",
10
10
  /**
11
11
  * Red, green, blue, and alpha channels.
12
12
  * 8-bit integer per channel.
13
13
  * [0, 255] converted to/from float [0, 1] in shader.
14
14
  * */
15
- RGBA_8_UNORM = 1,
15
+ RGBA_8_UNORM = "RGBA_8_UNORM",
16
16
  /**
17
17
  * Red, green, blue, and alpha channels.
18
18
  * 8-bit integer per channel.
19
19
  * Srgb-color [0, 255] converted to/from linear-color float [0, 1] in shader.
20
20
  */
21
- RGBA_8_UNORM_SRGB = 2,
21
+ RGBA_8_UNORM_SRGB = "RGBA_8_UNORM_SRGB",
22
22
  /**
23
23
  * Depth 24 and stencil 8.
24
24
  */
25
- DEPTH_24_STENCIL_8 = 3,
25
+ DEPTH_24_STENCIL_8 = "DEPTH_24_STENCIL_8",
26
26
  /**
27
27
  * The depth 32 float.
28
28
  */
29
- DEPTH_32_FLOAT = 4,
30
- RED_32_FLOAT = 5,
29
+ DEPTH_32_FLOAT = "DEPTH_32_FLOAT_8",
30
+ RED_32_FLOAT = "RED_32_FLOAT_8",
31
31
  /**
32
32
  * The 32-bit float format with one red component. It is typeless.
33
33
 
34
34
  Valid only for D3D11.
35
35
  */
36
- RED_32_TYPELESS = 6,
36
+ RED_32_TYPELESS = "RED_32_TYPELE_8",
37
37
  /**
38
38
  * The BC7 compressed format with four 8-bit normalized unsigned integer components in RGBA order.
39
39
  */
40
- BC7_RGBA_UNORM = 7,
40
+ BC7_RGBA_UNORM = "BC7_RGBA_UNORM",
41
41
  /**
42
42
  * The BC3 compressed format with four 8-bit normalized unsigned integer components in RGBA order.
43
43
  */
44
- BC3_RGBA_UNORM = 8,
44
+ BC3_RGBA_UNORM = "BC3_RGBA_UNORM",
45
45
  /**
46
46
  * The ETC2 compressed format with four 8-bit normalized unsigned integer components in RGBA order.
47
47
  */
48
- ETC2_RGBA8_UNORM = 9,
49
- /**
50
- * The ASTC 4x4 compressed format with four 8-bit normalized unsigned integer components in RGBA order.
51
- */
52
- ASTC_4X4_RGBA = 10
48
+ ETC2_RGBA8_UNORM = "ETC2_RGBA8_UNORM",
49
+ /** BC7 RGBA, sRGB. Requires EXT_texture_compression_bptc (WebGL) or texture-compression-bc (WebGPU). */
50
+ BC7_RGBA_SRGB = "BC7_RGBA_SRGB",
51
+ /** BC3 (DXT5) RGBA, sRGB. Requires WEBGL_compressed_texture_s3tc_srgb (WebGL) or texture-compression-bc (WebGPU). */
52
+ BC3_RGBA_SRGB = "BC3_RGBA_SRGB",
53
+ /** BC1 (DXT1) RGB. Requires WEBGL_compressed_texture_s3tc (WebGL) or texture-compression-bc (WebGPU). */
54
+ BC1_RGB_UNORM = "BC1_RGB_UNORM",
55
+ /** BC1 (DXT1) RGB, sRGB. Requires WEBGL_compressed_texture_s3tc_srgb (WebGL). WebGPU only has BC1 RGBA, which is used instead. */
56
+ BC1_RGB_SRGB = "BC1_RGB_SRGB",
57
+ /** ETC2 RGBA8 with EAC alpha, sRGB. Requires WEBGL_compressed_texture_etc (WebGL) or texture-compression-etc2 (WebGPU). */
58
+ ETC2_RGBA8_SRGB = "ETC2_RGBA8_SRGB",
59
+ /** ETC2 RGB8. Requires WEBGL_compressed_texture_etc (WebGL) or texture-compression-etc2 (WebGPU). */
60
+ ETC2_RGB8_UNORM = "ETC2_RGB8_UNORM",
61
+ /** ETC2 RGB8, sRGB. Requires WEBGL_compressed_texture_etc (WebGL) or texture-compression-etc2 (WebGPU). */
62
+ ETC2_RGB8_SRGB = "ETC2_RGB8_SRGB",
63
+ /** The ASTC 4x4 compressed format with four 8-bit normalized unsigned integer components in RGBA order. */
64
+ ASTC_4X4_RGBA_UNORM = "ASTC_4X4_RGBA_UNORM",
65
+ /** The ASTC 4x4 compressed format with four 8-bit normalized unsigned integer components in RGBA order, sRGB-encoded color. */
66
+ ASTC_4X4_RGBA_SRGB = "ASTC_4X4_RGBA_SRGB",
67
+ /** The ASTC 5x4 compressed format with four 8-bit normalized unsigned integer components in RGBA order. */
68
+ ASTC_5X4_RGBA_UNORM = "ASTC_5X4_RGBA_UNORM",
69
+ /** The ASTC 5x4 compressed format with four 8-bit normalized unsigned integer components in RGBA order, sRGB-encoded color. */
70
+ ASTC_5X4_RGBA_SRGB = "ASTC_5X4_RGBA_SRGB",
71
+ /** The ASTC 5x5 compressed format with four 8-bit normalized unsigned integer components in RGBA order. */
72
+ ASTC_5X5_RGBA_UNORM = "ASTC_5X5_RGBA_UNORM",
73
+ /** The ASTC 5x5 compressed format with four 8-bit normalized unsigned integer components in RGBA order, sRGB-encoded color. */
74
+ ASTC_5X5_RGBA_SRGB = "ASTC_5X5_RGBA_SRGB",
75
+ /** The ASTC 6x5 compressed format with four 8-bit normalized unsigned integer components in RGBA order. */
76
+ ASTC_6X5_RGBA_UNORM = "ASTC_6X5_RGBA_UNORM",
77
+ /** The ASTC 6x5 compressed format with four 8-bit normalized unsigned integer components in RGBA order, sRGB-encoded color. */
78
+ ASTC_6X5_RGBA_SRGB = "ASTC_6X5_RGBA_SRGB",
79
+ /** The ASTC 6x6 compressed format with four 8-bit normalized unsigned integer components in RGBA order. */
80
+ ASTC_6X6_RGBA_UNORM = "ASTC_6X6_RGBA_UNORM",
81
+ /** The ASTC 6x6 compressed format with four 8-bit normalized unsigned integer components in RGBA order, sRGB-encoded color. */
82
+ ASTC_6X6_RGBA_SRGB = "ASTC_6X6_RGBA_SRGB",
83
+ /** The ASTC 8x5 compressed format with four 8-bit normalized unsigned integer components in RGBA order. */
84
+ ASTC_8X5_RGBA_UNORM = "ASTC_8X5_RGBA_UNORM",
85
+ /** The ASTC 8x5 compressed format with four 8-bit normalized unsigned integer components in RGBA order, sRGB-encoded color. */
86
+ ASTC_8X5_RGBA_SRGB = "ASTC_8X5_RGBA_SRGB",
87
+ /** The ASTC 8x6 compressed format with four 8-bit normalized unsigned integer components in RGBA order. */
88
+ ASTC_8X6_RGBA_UNORM = "ASTC_8X6_RGBA_UNORM",
89
+ /** The ASTC 8x6 compressed format with four 8-bit normalized unsigned integer components in RGBA order, sRGB-encoded color. */
90
+ ASTC_8X6_RGBA_SRGB = "ASTC_8X6_RGBA_SRGB",
91
+ /** The ASTC 8x8 compressed format with four 8-bit normalized unsigned integer components in RGBA order. */
92
+ ASTC_8X8_RGBA_UNORM = "ASTC_8X8_RGBA_UNORM",
93
+ /** The ASTC 8x8 compressed format with four 8-bit normalized unsigned integer components in RGBA order, sRGB-encoded color. */
94
+ ASTC_8X8_RGBA_SRGB = "ASTC_8X8_RGBA_SRGB",
95
+ /** The ASTC 10x5 compressed format with four 8-bit normalized unsigned integer components in RGBA order. */
96
+ ASTC_10X5_RGBA_UNORM = "ASTC_10X5_RGBA_UNORM",
97
+ /** The ASTC 10x5 compressed format with four 8-bit normalized unsigned integer components in RGBA order, sRGB-encoded color. */
98
+ ASTC_10X5_RGBA_SRGB = "ASTC_10X5_RGBA_SRGB",
99
+ /** The ASTC 10x6 compressed format with four 8-bit normalized unsigned integer components in RGBA order. */
100
+ ASTC_10X6_RGBA_UNORM = "ASTC_10X6_RGBA_UNORM",
101
+ /** The ASTC 10x6 compressed format with four 8-bit normalized unsigned integer components in RGBA order, sRGB-encoded color. */
102
+ ASTC_10X6_RGBA_SRGB = "ASTC_10X6_RGBA_SRGB",
103
+ /** The ASTC 10x8 compressed format with four 8-bit normalized unsigned integer components in RGBA order. */
104
+ ASTC_10X8_RGBA_UNORM = "ASTC_10X8_RGBA_UNORM",
105
+ /** The ASTC 10x8 compressed format with four 8-bit normalized unsigned integer components in RGBA order, sRGB-encoded color. */
106
+ ASTC_10X8_RGBA_SRGB = "ASTC_10X8_RGBA_SRGB",
107
+ /** The ASTC 10x10 compressed format with four 8-bit normalized unsigned integer components in RGBA order. */
108
+ ASTC_10X10_RGBA_UNORM = "ASTC_10X10_RGBA_UNORM",
109
+ /** The ASTC 10x10 compressed format with four 8-bit normalized unsigned integer components in RGBA order, sRGB-encoded color. */
110
+ ASTC_10X10_RGBA_SRGB = "ASTC_10X10_RGBA_SRGB",
111
+ /** The ASTC 12x10 compressed format with four 8-bit normalized unsigned integer components in RGBA order. */
112
+ ASTC_12X10_RGBA_UNORM = "ASTC_12X10_RGBA_UNORM",
113
+ /** The ASTC 12x10 compressed format with four 8-bit normalized unsigned integer components in RGBA order, sRGB-encoded color. */
114
+ ASTC_12X10_RGBA_SRGB = "ASTC_12X10_RGBA_SRGB",
115
+ /** The ASTC 12x12 compressed format with four 8-bit normalized unsigned integer components in RGBA order. */
116
+ ASTC_12X12_RGBA_UNORM = "ASTC_12X12_RGBA_UNORM",
117
+ /** The ASTC 12x12 compressed format with four 8-bit normalized unsigned integer components in RGBA order, sRGB-encoded color. */
118
+ ASTC_12X12_RGBA_SRGB = "ASTC_12X12_RGBA_SRGB",
119
+ /** The PVRTC1 compressed format at 4 bits per pixel with RGBA components. Requires WEBGL_compressed_texture_pvrtc. */
120
+ PVRTC_4BPPV1_RGBA = "PVRTC_4BPPV1_RGBA",
121
+ /** The PVRTC1 compressed format at 4 bits per pixel with RGB components. Requires WEBGL_compressed_texture_pvrtc. */
122
+ PVRTC_4BPPV1_RGB = "PVRTC_4BPPV1_RGB",
123
+ /** The PVRTC1 compressed format at 2 bits per pixel with RGBA components. Requires WEBGL_compressed_texture_pvrtc. */
124
+ PVRTC_2BPPV1_RGBA = "PVRTC_2BPPV1_RGBA",
125
+ /** The PVRTC1 compressed format at 2 bits per pixel with RGB components. Requires WEBGL_compressed_texture_pvrtc. */
126
+ PVRTC_2BPPV1_RGB = "PVRTC_2BPPV1_RGB"
53
127
  }
54
128
  //# sourceMappingURL=TextureFormat.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TextureFormat.d.ts","sourceRoot":"","sources":["../../../../src/api/rendering/texture/TextureFormat.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,aAAa;IACrB;;;OAGG;IACH,SAAS,IAAI;IAEb;;;;SAIK;IACL,YAAY,IAAI;IAEhB;;;;OAIG;IACH,iBAAiB,IAAI;IAErB;;OAEG;IACH,kBAAkB,IAAI;IAEtB;;OAEG;IACH,cAAc,IAAI;IAElB,YAAY,IAAI;IAChB;;;;OAIG;IACH,eAAe,IAAI;IACnB;;OAEG;IACH,cAAc,IAAI;IAClB;;OAEG;IACH,cAAc,IAAI;IAClB;;OAEG;IACH,gBAAgB,IAAI;IACpB;;OAEG;IACH,aAAa,KAAK;CACrB"}
1
+ {"version":3,"file":"TextureFormat.d.ts","sourceRoot":"","sources":["../../../../src/api/rendering/texture/TextureFormat.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,aAAa;IACrB;;;OAGG;IACH,SAAS,cAAc;IAEvB;;;;SAIK;IACL,YAAY,iBAAiB;IAE7B;;;;OAIG;IACH,iBAAiB,sBAAsB;IAEvC;;OAEG;IACH,kBAAkB,uBAAuB;IAEzC;;OAEG;IACH,cAAc,qBAAqB;IAEnC,YAAY,mBAAmB;IAC/B;;;;OAIG;IACH,eAAe,oBAAoB;IACnC;;OAEG;IACH,cAAc,mBAAmB;IACjC;;OAEG;IACH,cAAc,mBAAmB;IACjC;;OAEG;IACH,gBAAgB,qBAAqB;IAErC,wGAAwG;IACxG,aAAa,kBAAkB;IAE/B,qHAAqH;IACrH,aAAa,kBAAkB;IAE/B,yGAAyG;IACzG,aAAa,kBAAkB;IAE/B,kIAAkI;IAClI,YAAY,iBAAiB;IAE7B,2HAA2H;IAC3H,eAAe,oBAAoB;IAEnC,qGAAqG;IACrG,eAAe,oBAAoB;IAEnC,2GAA2G;IAC3G,cAAc,mBAAmB;IAGjC,2GAA2G;IAC3G,mBAAmB,wBAAwB;IAE3C,+HAA+H;IAC/H,kBAAkB,uBAAuB;IAEzC,2GAA2G;IAC3G,mBAAmB,wBAAwB;IAE3C,+HAA+H;IAC/H,kBAAkB,uBAAuB;IAEzC,2GAA2G;IAC3G,mBAAmB,wBAAwB;IAE3C,+HAA+H;IAC/H,kBAAkB,uBAAuB;IAEzC,2GAA2G;IAC3G,mBAAmB,wBAAwB;IAE3C,+HAA+H;IAC/H,kBAAkB,uBAAuB;IAEzC,2GAA2G;IAC3G,mBAAmB,wBAAwB;IAE3C,+HAA+H;IAC/H,kBAAkB,uBAAuB;IAEzC,2GAA2G;IAC3G,mBAAmB,wBAAwB;IAE3C,+HAA+H;IAC/H,kBAAkB,uBAAuB;IAEzC,2GAA2G;IAC3G,mBAAmB,wBAAwB;IAE3C,+HAA+H;IAC/H,kBAAkB,uBAAuB;IAEzC,2GAA2G;IAC3G,mBAAmB,wBAAwB;IAE3C,+HAA+H;IAC/H,kBAAkB,uBAAuB;IAEzC,4GAA4G;IAC5G,oBAAoB,yBAAyB;IAE7C,gIAAgI;IAChI,mBAAmB,wBAAwB;IAE3C,4GAA4G;IAC5G,oBAAoB,yBAAyB;IAE7C,gIAAgI;IAChI,mBAAmB,wBAAwB;IAE3C,4GAA4G;IAC5G,oBAAoB,yBAAyB;IAE7C,gIAAgI;IAChI,mBAAmB,wBAAwB;IAE3C,6GAA6G;IAC7G,qBAAqB,0BAA0B;IAE/C,iIAAiI;IACjI,oBAAoB,yBAAyB;IAE7C,6GAA6G;IAC7G,qBAAqB,0BAA0B;IAE/C,iIAAiI;IACjI,oBAAoB,yBAAyB;IAE7C,6GAA6G;IAC7G,qBAAqB,0BAA0B;IAE/C,iIAAiI;IACjI,oBAAoB,yBAAyB;IAE7C,sHAAsH;IACtH,iBAAiB,sBAAsB;IAEvC,qHAAqH;IACrH,gBAAgB,qBAAqB;IAErC,sHAAsH;IACtH,iBAAiB,sBAAsB;IAEvC,qHAAqH;IACrH,gBAAgB,qBAAqB;CACxC"}
@@ -5,10 +5,33 @@ import { KtxTranscodeFormat, VkFormat } from "ris-ktx2";
5
5
  */
6
6
  export declare class TextureUtilities {
7
7
  private static readonly _compressedTextureFormats;
8
+ /** Linear compressed format → its sRGB variant. */
9
+ private static readonly _srgbVariant;
8
10
  private static readonly _vkFormatTextureFormat;
9
11
  private static readonly _textureFormatVkFormat;
10
12
  private static readonly _mapTextureFormatKtxTranscodeFormat;
11
13
  private static readonly _mapKtxTranscodeFormatVkFormat;
14
+ /**
15
+ * Whether the format stores sRGB-encoded colour (sampled as linear by the GPU).
16
+ * @param format The texture format.
17
+ */
18
+ static isSrgbFormat(format: TextureFormat): boolean;
19
+ /**
20
+ * Gets the sRGB variant of a linear format, or the format itself if it has none or is already sRGB.
21
+ * @param format The texture format.
22
+ */
23
+ static toSrgbFormat(format: TextureFormat): TextureFormat;
24
+ /**
25
+ * Gets the linear variant of an sRGB format, or the format itself.
26
+ * @param format The texture format.
27
+ */
28
+ static toLinearFormat(format: TextureFormat): TextureFormat;
29
+ /**
30
+ * Gets the block size (width, height) of a format: 1x1 for uncompressed, 4x4 for BC/ETC2, and the ASTC block.
31
+ * Returns null for formats it does not know.
32
+ * @param format The texture format.
33
+ */
34
+ static getBlockSize(format: TextureFormat): [number, number] | null;
12
35
  /**
13
36
  * Checks if the given texture format is a compressed texture format.
14
37
  * @param format - The texture format to check.
@@ -1 +1 @@
1
- {"version":3,"file":"TextureUtilities.d.ts","sourceRoot":"","sources":["../../../../src/api/rendering/texture/TextureUtilities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAC,kBAAkB,EAAqB,QAAQ,EAAC,MAAM,UAAU,CAAC;AAGzE;;GAEG;AACH,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CAK/C;IACF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAO7C;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAQ5C;IAEF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mCAAmC,CAMzD;IAEF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,8BAA8B,CAmBpD;IAEF;;;;OAIG;WACW,yBAAyB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO;IAIvE;;;;;;OAMG;WACW,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAI9D;;;;;;;OAOG;WACW,WAAW,CAAC,aAAa,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAkB9F;;;;OAIG;WACW,8BAA8B,CAAC,QAAQ,EAAE,QAAQ,GAAG,aAAa;IAQ/E;;;;OAIG;WACW,wCAAwC,CAAC,aAAa,EAAE,aAAa,GAAG,kBAAkB;IAQxG;;;;OAIG;WACW,mCAAmC,CAAC,eAAe,EAAE,kBAAkB,GAAG,QAAQ;CAQnG"}
1
+ {"version":3,"file":"TextureUtilities.d.ts","sourceRoot":"","sources":["../../../../src/api/rendering/texture/TextureUtilities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAC,kBAAkB,EAAqB,QAAQ,EAAC,MAAM,UAAU,CAAC;AAGzE;;GAEG;AACH,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CAkD/C;IAEF,mDAAmD;IACnD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAqBlC;IACF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAgD7C;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAsD5C;IAEF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mCAAmC,CAazD;IAEF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,8BAA8B,CAmBpD;IAEF;;;OAGG;WACW,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO;IAI1D;;;OAGG;WACW,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa;IAIhE;;;OAGG;WACW,cAAc,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa;IAOlE;;;;OAIG;WACW,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAoB1E;;;;OAIG;WACW,yBAAyB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO;IAIvE;;;;;;OAMG;WACW,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAI9D;;;;;;;OAOG;WACW,WAAW,CAAC,aAAa,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAkB9F;;;;OAIG;WACW,8BAA8B,CAAC,QAAQ,EAAE,QAAQ,GAAG,aAAa;IAQ/E;;;;OAIG;WACW,wCAAwC,CAAC,aAAa,EAAE,aAAa,GAAG,kBAAkB;IAQxG;;;;OAIG;WACW,mCAAmC,CAAC,eAAe,EAAE,kBAAkB,GAAG,QAAQ;CAQnG"}
@@ -0,0 +1,113 @@
1
+ import { AmbientLight } from "../lights/AmbientLight.js";
2
+ import { DirectionalLight } from "../lights/DirectionalLight.js";
3
+ import { PointLight } from "../lights/PointLight.js";
4
+ import type { IDisposable } from "../core/IDisposable.js";
5
+ import type { IFramework } from "../IFramework.js";
6
+ import type { IRenderableMesh } from "../meshes/IRenderableMesh.js";
7
+ import { SceneMesh } from "./SceneMesh.js";
8
+ import type { GameTime } from "../time/GameTime.js";
9
+ import type { ICamera } from "../camera/ICamera.js";
10
+ /** Anything a scene can hold: a mesh, a light (ambient, directional, point) or a camera. */
11
+ export type SceneItem = IRenderableMesh | SceneMesh | AmbientLight | DirectionalLight | PointLight | ICamera;
12
+ /**
13
+ * The scene. Lights and cameras given a scene in their constructor add themselves through {@link add};
14
+ * meshes are added with `scene.add(mesh)` (wrapped in a {@link SceneMesh}, which owns the mesh's materials).
15
+ * Like C#, the scene keeps the light lists and hands its active ambient light and the lists themselves (not copies)
16
+ * to every lights material in {@link update}; each material owns and uploads its own lights buffer. Call {@link update} once per frame and {@link render} in the render listener.
17
+ */
18
+ export declare class Scene implements IDisposable {
19
+ private readonly _sceneMeshes;
20
+ private readonly _directionalLights;
21
+ private readonly _pointLights;
22
+ /** The directional light slots (matches the Blinn-Phong material). */
23
+ static readonly MAX_DIRECTIONAL_LIGHTS = 3;
24
+ /** The point light slots (matches the Blinn-Phong material). */
25
+ static readonly MAX_POINT_LIGHTS = 5;
26
+ private _activeAmbientLight;
27
+ private _disposed;
28
+ private _activeCamera?;
29
+ /**
30
+ * The camera the scene renders with; undefined until one is set or added.
31
+ * Setting it assigns it to the materials of every mesh (and submesh) whose camera differs;
32
+ * {@link update} also assigns it to meshes and submeshes added later.
33
+ */
34
+ get camera(): ICamera | undefined;
35
+ set camera(value: ICamera | undefined);
36
+ /** The ambient lights registered with this scene. */
37
+ readonly ambientLights: AmbientLight[];
38
+ /**
39
+ * The constructor.
40
+ * @param framework The framework.
41
+ */
42
+ constructor(framework: IFramework);
43
+ /** The scene meshes, in the order they were added. */
44
+ get sceneMeshes(): readonly SceneMesh[];
45
+ /** The root meshes in this scene, in the order they were added. */
46
+ get meshes(): readonly IRenderableMesh[];
47
+ /** The directional lights in this scene. */
48
+ get directionalLights(): readonly DirectionalLight[];
49
+ /** The point lights in this scene. */
50
+ get pointLights(): readonly PointLight[];
51
+ /**
52
+ * Gets the active ambient light.
53
+ */
54
+ get activeAmbientLight(): AmbientLight;
55
+ /** Sets the active ambient light; it is added to {@link ambientLights} if needed. */
56
+ set activeAmbientLight(value: AmbientLight);
57
+ /**
58
+ * Adds a mesh, a light or a camera. Adding an item that is already in the scene does nothing.
59
+ * - Renderable mesh or {@link SceneMesh}: drawn by {@link render}; its materials get the scene camera and lights.
60
+ * A mesh is wrapped in a `SceneMesh`, so {@link dispose} also disposes its materials.
61
+ * - Ambient light: added to {@link ambientLights} (use {@link activeAmbientLight} to make it the lit one).
62
+ * - Directional / point light: added to {@link directionalLights} / {@link pointLights}.
63
+ * - Camera: becomes the scene {@link camera}.
64
+ * Constructors given a scene (lights, the perspective camera) call this themselves.
65
+ * @param item The item to add.
66
+ * @throws Error when all slots for a light kind are in use (3 directional, 5 point), or for an unsupported item.
67
+ */
68
+ add(item: SceneItem): void;
69
+ /**
70
+ * Removes a mesh (or scene mesh), a light or a camera. The mesh and its materials are not disposed.
71
+ * Removing the active camera clears {@link camera}.
72
+ * @param item The item to remove.
73
+ * @returns True when the item was in the scene (for a camera: was the active camera).
74
+ * @throws Error when removing the active ambient light (set another {@link activeAmbientLight} first), or for an unsupported item.
75
+ */
76
+ remove(item: SceneItem): boolean;
77
+ /**
78
+ * Adds a directional or point light.
79
+ * @deprecated Use {@link add}.
80
+ * @throws Error when all slots for that kind are in use (3 directional, 5 point).
81
+ */
82
+ addLight(light: DirectionalLight | PointLight): void;
83
+ /**
84
+ * Removes a directional or point light.
85
+ * @deprecated Use {@link remove}.
86
+ * @returns True when the light was in the scene.
87
+ */
88
+ removeLight(light: DirectionalLight | PointLight): boolean;
89
+ private _addLight;
90
+ private _addAmbientLight;
91
+ private static _removeFrom;
92
+ /** Cameras have the camera buffers and updateBuffers(); meshes and lights do not. */
93
+ private static _isCamera;
94
+ /** Renderable meshes have render() and sub meshes. */
95
+ private static _isMesh;
96
+ /**
97
+ * Updates the scene: assigns {@link camera}, the active ambient light and the light lists to the mesh materials.
98
+ * Each lights material uploads its lights buffer when drawn, only if the lights changed.
99
+ * @param _time The game time.
100
+ * @public
101
+ */
102
+ update(_time: GameTime): void;
103
+ /** Assigns the camera (when set) and the lights to the scene mesh's materials. */
104
+ private _bind;
105
+ private static _assignCamera;
106
+ /**
107
+ * Renders the meshes.
108
+ */
109
+ render(): void;
110
+ /** Disposes the scene meshes still in the scene: their meshes and materials. Calling it twice does nothing. */
111
+ dispose(): void;
112
+ }
113
+ //# sourceMappingURL=Scene.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Scene.d.ts","sourceRoot":"","sources":["../../../src/api/scene/Scene.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAC,gBAAgB,EAAC,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAC,UAAU,EAAC,MAAM,yBAAyB,CAAC;AACnD,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAGzC,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,sBAAsB,CAAC;AAElD,4FAA4F;AAC5F,MAAM,MAAM,SAAS,GAAG,eAAe,GAAG,SAAS,GAAG,YAAY,GAAG,gBAAgB,GAAG,UAAU,GAAG,OAAO,CAAC;AAE7G;;;;;GAKG;AACH,qBAAa,KAAM,YAAW,WAAW;IAErC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmB;IAChD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA0B;IAC7D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoB;IAEjD,sEAAsE;IACtE,gBAAuB,sBAAsB,KAAK;IAElD,gEAAgE;IAChE,gBAAuB,gBAAgB,KAAK;IAC5C,OAAO,CAAC,mBAAmB,CAAe;IAC1C,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,aAAa,CAAC,CAAU;IAEhC;;;;OAIG;IACH,IAAW,MAAM,IAAI,OAAO,GAAG,SAAS,CAEvC;IAED,IAAW,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,EAQ3C;IAED,qDAAqD;IACrD,SAAgB,aAAa,EAAE,YAAY,EAAE,CAAM;IAEnD;;;OAGG;gBACgB,SAAS,EAAE,UAAU;IAMxC,sDAAsD;IACtD,IAAW,WAAW,IAAI,SAAS,SAAS,EAAE,CAE7C;IAED,mEAAmE;IACnE,IAAW,MAAM,IAAI,SAAS,eAAe,EAAE,CAE9C;IAED,4CAA4C;IAC5C,IAAW,iBAAiB,IAAI,SAAS,gBAAgB,EAAE,CAE1D;IAED,sCAAsC;IACtC,IAAW,WAAW,IAAI,SAAS,UAAU,EAAE,CAE9C;IAED;;OAEG;IACH,IAAW,kBAAkB,IAAI,YAAY,CAE5C;IAED,qFAAqF;IACrF,IAAW,kBAAkB,CAAC,KAAK,EAAE,YAAY,EAGhD;IAED;;;;;;;;;;OAUG;IACI,GAAG,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAmBjC;;;;;;OAMG;IACI,MAAM,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO;IA+BvC;;;;OAIG;IACI,QAAQ,CAAC,KAAK,EAAE,gBAAgB,GAAG,UAAU,GAAG,IAAI;IAI3D;;;;OAIG;IACI,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,UAAU,GAAG,OAAO;IAIjE,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,MAAM,CAAC,WAAW;IAS1B,qFAAqF;IACrF,OAAO,CAAC,MAAM,CAAC,SAAS;IAMxB,sDAAsD;IACtD,OAAO,CAAC,MAAM,CAAC,OAAO;IAKtB;;;;;OAKG;IACH,MAAM,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAM7B,kFAAkF;IAClF,OAAO,CAAC,KAAK;IAmBb,OAAO,CAAC,MAAM,CAAC,aAAa;IAc5B;;OAEG;IACH,MAAM,IAAI,IAAI;IAQd,+GAA+G;IACxG,OAAO,IAAI,IAAI;CAUzB"}
@@ -0,0 +1,27 @@
1
+ import type { IDisposable } from "../core/IDisposable.js";
2
+ import type { IRenderableMesh } from "../meshes/IRenderableMesh.js";
3
+ import type { IMaterial } from "../material/IMaterial.js";
4
+ /**
5
+ * A renderable mesh held by a scene (C# `SceneMesh`): `new SceneMesh(renderableMesh)`.
6
+ * It covers the mesh and all its sub meshes, and owns their materials:
7
+ * disposing it disposes the mesh (buffers once) and each distinct material once.
8
+ * @public
9
+ */
10
+ export declare class SceneMesh implements IDisposable {
11
+ readonly mesh: IRenderableMesh;
12
+ private _disposed;
13
+ /**
14
+ * The constructor.
15
+ * @param mesh The root renderable mesh.
16
+ */
17
+ constructor(mesh: IRenderableMesh);
18
+ /** The mesh and all its sub meshes, depth first. */
19
+ get meshes(): IRenderableMesh[];
20
+ /** The distinct materials of the mesh and its sub meshes. */
21
+ get materials(): IMaterial[];
22
+ /** Draws the mesh and its sub meshes. */
23
+ render(): void;
24
+ /** Disposes the mesh and its materials. Calling it twice does nothing. */
25
+ dispose(): void;
26
+ }
27
+ //# sourceMappingURL=SceneMesh.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SceneMesh.d.ts","sourceRoot":"","sources":["../../../src/api/scene/SceneMesh.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,0BAA0B,CAAC;AAExD;;;;;GAKG;AACH,qBAAa,SAAU,YAAW,WAAW;aAQN,IAAI,EAAE,eAAe;IANxD,OAAO,CAAC,SAAS,CAAS;IAE1B;;;OAGG;gBACgC,IAAI,EAAE,eAAe;IAGxD,oDAAoD;IACpD,IAAW,MAAM,IAAI,eAAe,EAAE,CAQrC;IAED,6DAA6D;IAC7D,IAAW,SAAS,IAAI,SAAS,EAAE,CAQlC;IAED,yCAAyC;IAClC,MAAM,IAAI,IAAI;IAIrB,0EAA0E;IACnE,OAAO,IAAI,IAAI;CAWzB"}