ris-framework 0.1.0-dev.7 → 0.1.0

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 (655) hide show
  1. package/CHANGELOG.md +4 -1
  2. package/LICENSE +202 -21
  3. package/NOTICE +2 -0
  4. package/README.md +29 -47
  5. package/THIRD_PARTY_NOTICES.md +1 -1
  6. package/dist/{core/Framework.d.ts → Framework.d.ts} +10 -8
  7. package/dist/Framework.d.ts.map +1 -0
  8. package/dist/api/FrameworkConfiguration.d.ts +23 -0
  9. package/dist/api/FrameworkConfiguration.d.ts.map +1 -0
  10. package/dist/api/IFramework.d.ts +125 -0
  11. package/dist/api/IFramework.d.ts.map +1 -0
  12. package/dist/api/IFrameworkConfiguration.d.ts +25 -0
  13. package/dist/api/IFrameworkConfiguration.d.ts.map +1 -0
  14. package/dist/api/_export.d.ts +27 -0
  15. package/dist/api/_export.d.ts.map +1 -0
  16. package/dist/api/camera/CameraFactory.d.ts +25 -0
  17. package/dist/api/camera/CameraFactory.d.ts.map +1 -0
  18. package/dist/api/camera/ICamera.d.ts +43 -0
  19. package/dist/api/camera/ICamera.d.ts.map +1 -0
  20. package/dist/api/camera/ICameraFactory.d.ts +46 -0
  21. package/dist/api/camera/ICameraFactory.d.ts.map +1 -0
  22. package/dist/api/camera/IOrthographicCamera.d.ts +31 -0
  23. package/dist/api/camera/IOrthographicCamera.d.ts.map +1 -0
  24. package/dist/api/camera/OrbitCamera.d.ts +120 -0
  25. package/dist/api/camera/OrbitCamera.d.ts.map +1 -0
  26. package/dist/api/camera/OrthographicCamera.d.ts +96 -0
  27. package/dist/api/camera/OrthographicCamera.d.ts.map +1 -0
  28. package/dist/api/camera/PerspectiveCamera.d.ts +108 -0
  29. package/dist/api/camera/PerspectiveCamera.d.ts.map +1 -0
  30. package/dist/api/camera/_export.d.ts +8 -0
  31. package/dist/api/camera/_export.d.ts.map +1 -0
  32. package/dist/api/content/ContentConfig.d.ts +11 -0
  33. package/dist/api/content/ContentConfig.d.ts.map +1 -0
  34. package/dist/{core → api}/content/ContentManager.d.ts +3 -2
  35. package/dist/api/content/ContentManager.d.ts.map +1 -0
  36. package/dist/api/content/IContent.d.ts +8 -0
  37. package/dist/api/content/IContent.d.ts.map +1 -0
  38. package/dist/api/content/IContentManager.d.ts +37 -0
  39. package/dist/api/content/IContentManager.d.ts.map +1 -0
  40. package/dist/api/content/IContentModule.d.ts +58 -0
  41. package/dist/api/content/IContentModule.d.ts.map +1 -0
  42. package/dist/api/content/ShaderModuleContent.d.ts.map +1 -0
  43. package/dist/api/content/_export-content.d.ts +5 -0
  44. package/dist/api/content/_export-content.d.ts.map +1 -0
  45. package/dist/api/core/IDisposable.d.ts +10 -0
  46. package/dist/api/core/IDisposable.d.ts.map +1 -0
  47. package/dist/api/core/_export-core.d.ts +2 -0
  48. package/dist/api/core/_export-core.d.ts.map +1 -0
  49. package/dist/api/data/Color.d.ts +119 -0
  50. package/dist/api/data/Color.d.ts.map +1 -0
  51. package/dist/api/data/Rect.d.ts +61 -0
  52. package/dist/api/data/Rect.d.ts.map +1 -0
  53. package/dist/api/data/State.d.ts +11 -0
  54. package/dist/api/data/State.d.ts.map +1 -0
  55. package/dist/api/data/_export.d.ts +4 -0
  56. package/dist/api/data/_export.d.ts.map +1 -0
  57. package/dist/{geometry → api/geometry}/BaseGeometry.d.ts +5 -2
  58. package/dist/api/geometry/BaseGeometry.d.ts.map +1 -0
  59. package/dist/{geometry → api/geometry}/GeometryBuilder.d.ts +1 -1
  60. package/dist/api/geometry/GeometryBuilder.d.ts.map +1 -0
  61. package/dist/api/geometry/GeometryFormat.d.ts +34 -0
  62. package/dist/api/geometry/GeometryFormat.d.ts.map +1 -0
  63. package/dist/api/geometry/IGeometry.d.ts +54 -0
  64. package/dist/api/geometry/IGeometry.d.ts.map +1 -0
  65. package/dist/api/geometry/IGeometryBuilder.d.ts +15 -0
  66. package/dist/api/geometry/IGeometryBuilder.d.ts.map +1 -0
  67. package/dist/api/geometry/VertexFormat.d.ts.map +1 -0
  68. package/dist/api/geometry/_export-geometry.d.ts +5 -0
  69. package/dist/api/geometry/_export-geometry.d.ts.map +1 -0
  70. package/dist/api/image/CpuImageProcessor.d.ts +16 -0
  71. package/dist/api/image/CpuImageProcessor.d.ts.map +1 -0
  72. package/dist/api/image/IImageProcessor.d.ts +26 -0
  73. package/dist/api/image/IImageProcessor.d.ts.map +1 -0
  74. package/dist/api/image/RawImageData.d.ts +34 -0
  75. package/dist/api/image/RawImageData.d.ts.map +1 -0
  76. package/dist/api/image/_export.d.ts +4 -0
  77. package/dist/api/image/_export.d.ts.map +1 -0
  78. package/dist/api/index.d.ts +2 -0
  79. package/dist/api/index.d.ts.map +1 -0
  80. package/dist/api/input/IInputManager.d.ts +53 -0
  81. package/dist/api/input/IInputManager.d.ts.map +1 -0
  82. package/dist/api/input/InputDeviceType.d.ts +18 -0
  83. package/dist/api/input/InputDeviceType.d.ts.map +1 -0
  84. package/dist/api/input/InputManager.d.ts +73 -0
  85. package/dist/api/input/InputManager.d.ts.map +1 -0
  86. package/dist/api/input/Key.d.ts +36 -0
  87. package/dist/api/input/Key.d.ts.map +1 -0
  88. package/dist/api/input/KeyboardState.d.ts +37 -0
  89. package/dist/api/input/KeyboardState.d.ts.map +1 -0
  90. package/dist/api/input/_export.d.ts +14 -0
  91. package/dist/api/input/_export.d.ts.map +1 -0
  92. package/dist/api/input/gamepad/Button.d.ts +22 -0
  93. package/dist/api/input/gamepad/Button.d.ts.map +1 -0
  94. package/dist/api/input/gamepad/GamePadState.d.ts +48 -0
  95. package/dist/api/input/gamepad/GamePadState.d.ts.map +1 -0
  96. package/dist/api/input/gamepad/GamePadThumbSticks.d.ts +17 -0
  97. package/dist/api/input/gamepad/GamePadThumbSticks.d.ts.map +1 -0
  98. package/dist/api/input/mouse/MouseButton.d.ts +10 -0
  99. package/dist/api/input/mouse/MouseButton.d.ts.map +1 -0
  100. package/dist/api/input/mouse/MouseState.d.ts +52 -0
  101. package/dist/api/input/mouse/MouseState.d.ts.map +1 -0
  102. package/dist/api/input/touch/TouchCollection.d.ts +79 -0
  103. package/dist/api/input/touch/TouchCollection.d.ts.map +1 -0
  104. package/dist/api/input/touch/TouchLocation.d.ts +80 -0
  105. package/dist/api/input/touch/TouchLocation.d.ts.map +1 -0
  106. package/dist/api/input/touch/TouchLocationState.d.ts +16 -0
  107. package/dist/api/input/touch/TouchLocationState.d.ts.map +1 -0
  108. package/dist/api/input/touch/TouchPanelCapabilities.d.ts +24 -0
  109. package/dist/api/input/touch/TouchPanelCapabilities.d.ts.map +1 -0
  110. package/dist/api/loaders/IImageLoader.d.ts +20 -0
  111. package/dist/api/loaders/IImageLoader.d.ts.map +1 -0
  112. package/dist/api/loaders/ImageLoader.d.ts +36 -0
  113. package/dist/api/loaders/ImageLoader.d.ts.map +1 -0
  114. package/dist/api/loaders/_export.d.ts +3 -0
  115. package/dist/api/loaders/_export.d.ts.map +1 -0
  116. package/dist/api/material/IMaterial.d.ts +35 -0
  117. package/dist/api/material/IMaterial.d.ts.map +1 -0
  118. package/dist/api/material/IMaterialFactory.d.ts +19 -0
  119. package/dist/api/material/IMaterialFactory.d.ts.map +1 -0
  120. package/dist/api/material/InspectTextureMipsMaterial.d.ts +58 -0
  121. package/dist/api/material/InspectTextureMipsMaterial.d.ts.map +1 -0
  122. package/dist/api/material/MaterialFactory.d.ts +20 -0
  123. package/dist/api/material/MaterialFactory.d.ts.map +1 -0
  124. package/dist/api/material/UnlitMaterial.d.ts +76 -0
  125. package/dist/api/material/UnlitMaterial.d.ts.map +1 -0
  126. package/dist/api/material/_export.d.ts +6 -0
  127. package/dist/api/material/_export.d.ts.map +1 -0
  128. package/dist/api/meshes/IMesh.d.ts +17 -0
  129. package/dist/api/meshes/IMesh.d.ts.map +1 -0
  130. package/dist/api/meshes/IMeshFactory.d.ts +25 -0
  131. package/dist/api/meshes/IMeshFactory.d.ts.map +1 -0
  132. package/dist/api/meshes/Mesh.d.ts +93 -0
  133. package/dist/api/meshes/Mesh.d.ts.map +1 -0
  134. package/dist/api/meshes/MeshFactory.d.ts +23 -0
  135. package/dist/api/meshes/MeshFactory.d.ts.map +1 -0
  136. package/dist/api/meshes/MeshParameters.d.ts +22 -0
  137. package/dist/api/meshes/MeshParameters.d.ts.map +1 -0
  138. package/dist/api/meshes/QuadMesh.d.ts +33 -0
  139. package/dist/api/meshes/QuadMesh.d.ts.map +1 -0
  140. package/dist/api/meshes/_export.d.ts +7 -0
  141. package/dist/api/meshes/_export.d.ts.map +1 -0
  142. package/dist/api/rendering/IGPUInfo.d.ts +35 -0
  143. package/dist/api/rendering/IGPUInfo.d.ts.map +1 -0
  144. package/dist/api/rendering/IGraphicsDevice.d.ts +88 -0
  145. package/dist/api/rendering/IGraphicsDevice.d.ts.map +1 -0
  146. package/dist/api/rendering/IGraphicsDeviceFeatures.d.ts +27 -0
  147. package/dist/api/rendering/IGraphicsDeviceFeatures.d.ts.map +1 -0
  148. package/dist/api/rendering/IRenderer.d.ts +71 -0
  149. package/dist/api/rendering/IRenderer.d.ts.map +1 -0
  150. package/dist/api/rendering/PowerPreference.d.ts +13 -0
  151. package/dist/api/rendering/PowerPreference.d.ts.map +1 -0
  152. package/dist/api/rendering/RenderingBackend.d.ts +18 -0
  153. package/dist/api/rendering/RenderingBackend.d.ts.map +1 -0
  154. package/dist/api/rendering/_export-rendering.d.ts +7 -0
  155. package/dist/api/rendering/_export-rendering.d.ts.map +1 -0
  156. package/dist/api/rendering/blending/IBlendState.d.ts +16 -0
  157. package/dist/api/rendering/blending/IBlendState.d.ts.map +1 -0
  158. package/dist/api/rendering/blending/_export.d.ts +2 -0
  159. package/dist/api/rendering/blending/_export.d.ts.map +1 -0
  160. package/dist/api/rendering/buffers/BufferUsage.d.ts +57 -0
  161. package/dist/api/rendering/buffers/BufferUsage.d.ts.map +1 -0
  162. package/dist/api/rendering/buffers/IBuffer.d.ts +20 -0
  163. package/dist/api/rendering/buffers/IBuffer.d.ts.map +1 -0
  164. package/dist/api/rendering/buffers/IBufferFactory.d.ts +34 -0
  165. package/dist/api/rendering/buffers/IBufferFactory.d.ts.map +1 -0
  166. package/dist/api/rendering/buffers/IIndexBuffer.d.ts +31 -0
  167. package/dist/api/rendering/buffers/IIndexBuffer.d.ts.map +1 -0
  168. package/dist/api/rendering/buffers/IUniformBuffer.d.ts +18 -0
  169. package/dist/api/rendering/buffers/IUniformBuffer.d.ts.map +1 -0
  170. package/dist/api/rendering/buffers/IVertexBuffer.d.ts +26 -0
  171. package/dist/api/rendering/buffers/IVertexBuffer.d.ts.map +1 -0
  172. package/dist/api/rendering/buffers/IVertexBufferLayout.d.ts +23 -0
  173. package/dist/api/rendering/buffers/IVertexBufferLayout.d.ts.map +1 -0
  174. package/dist/api/rendering/buffers/IndexBufferType.d.ts +14 -0
  175. package/dist/api/rendering/buffers/IndexBufferType.d.ts.map +1 -0
  176. package/dist/api/rendering/buffers/VertexAttribute.d.ts +22 -0
  177. package/dist/api/rendering/buffers/VertexAttribute.d.ts.map +1 -0
  178. package/dist/api/rendering/buffers/VertexStepMode.d.ts +14 -0
  179. package/dist/api/rendering/buffers/VertexStepMode.d.ts.map +1 -0
  180. package/dist/api/rendering/buffers/_export-buffers.d.ts +11 -0
  181. package/dist/api/rendering/buffers/_export-buffers.d.ts.map +1 -0
  182. package/dist/{core/renderer → api/rendering}/enums.d.ts.map +1 -1
  183. package/dist/api/rendering/primitive/CullMode.d.ts +18 -0
  184. package/dist/api/rendering/primitive/CullMode.d.ts.map +1 -0
  185. package/dist/api/rendering/primitive/FrontFace.d.ts +14 -0
  186. package/dist/api/rendering/primitive/FrontFace.d.ts.map +1 -0
  187. package/dist/api/rendering/primitive/IPrimitiveState.d.ts +22 -0
  188. package/dist/api/rendering/primitive/IPrimitiveState.d.ts.map +1 -0
  189. package/dist/api/rendering/primitive/PrimitiveStateDescriptor.d.ts +24 -0
  190. package/dist/api/rendering/primitive/PrimitiveStateDescriptor.d.ts.map +1 -0
  191. package/dist/api/rendering/primitive/PrimitiveTopology.d.ts +26 -0
  192. package/dist/api/rendering/primitive/PrimitiveTopology.d.ts.map +1 -0
  193. package/dist/api/rendering/primitive/_export.d.ts +6 -0
  194. package/dist/api/rendering/primitive/_export.d.ts.map +1 -0
  195. package/dist/api/rendering/render-pipelines/IInspectTextureMipsRenderPipeline.d.ts +33 -0
  196. package/dist/api/rendering/render-pipelines/IInspectTextureMipsRenderPipeline.d.ts.map +1 -0
  197. package/dist/api/rendering/render-pipelines/IMainRenderTargetRenderPipeline.d.ts +18 -0
  198. package/dist/api/rendering/render-pipelines/IMainRenderTargetRenderPipeline.d.ts.map +1 -0
  199. package/dist/api/rendering/render-pipelines/IRenderPipeline.d.ts +39 -0
  200. package/dist/api/rendering/render-pipelines/IRenderPipeline.d.ts.map +1 -0
  201. package/dist/api/rendering/render-pipelines/IRenderPipelineFactory.d.ts +42 -0
  202. package/dist/api/rendering/render-pipelines/IRenderPipelineFactory.d.ts.map +1 -0
  203. package/dist/api/rendering/render-pipelines/ISpriteRenderPipeline.d.ts +22 -0
  204. package/dist/api/rendering/render-pipelines/ISpriteRenderPipeline.d.ts.map +1 -0
  205. package/dist/api/rendering/render-pipelines/IUnlitRenderPipeline.d.ts +33 -0
  206. package/dist/api/rendering/render-pipelines/IUnlitRenderPipeline.d.ts.map +1 -0
  207. package/dist/api/rendering/render-pipelines/_export-render-pipelines.d.ts +7 -0
  208. package/dist/api/rendering/render-pipelines/_export-render-pipelines.d.ts.map +1 -0
  209. package/dist/{core/renderer → api/rendering}/renderer-interface.d.ts +11 -7
  210. package/dist/api/rendering/renderer-interface.d.ts.map +1 -0
  211. package/dist/{core/renderer → api/rendering}/rendering-limits.d.ts.map +1 -1
  212. package/dist/api/rendering/renderpass/IRenderPass.d.ts +15 -0
  213. package/dist/api/rendering/renderpass/IRenderPass.d.ts.map +1 -0
  214. package/dist/api/rendering/renderpass/LoadAction.d.ts +33 -0
  215. package/dist/api/rendering/renderpass/LoadAction.d.ts.map +1 -0
  216. package/dist/api/rendering/renderpass/RenderPassColorAttachment.d.ts +53 -0
  217. package/dist/api/rendering/renderpass/RenderPassColorAttachment.d.ts.map +1 -0
  218. package/dist/api/rendering/renderpass/RenderPassDepthStencilAttachment.d.ts +56 -0
  219. package/dist/api/rendering/renderpass/RenderPassDepthStencilAttachment.d.ts.map +1 -0
  220. package/dist/api/rendering/renderpass/RenderPassDescriptor.d.ts +22 -0
  221. package/dist/api/rendering/renderpass/RenderPassDescriptor.d.ts.map +1 -0
  222. package/dist/api/rendering/renderpass/StoreAction.d.ts +24 -0
  223. package/dist/api/rendering/renderpass/StoreAction.d.ts.map +1 -0
  224. package/dist/api/rendering/renderpass/_export.d.ts +7 -0
  225. package/dist/api/rendering/renderpass/_export.d.ts.map +1 -0
  226. package/dist/api/rendering/sampler/ISampler.d.ts +43 -0
  227. package/dist/api/rendering/sampler/ISampler.d.ts.map +1 -0
  228. package/dist/api/rendering/sampler/MipMapSamplerFilter.d.ts +18 -0
  229. package/dist/api/rendering/sampler/MipMapSamplerFilter.d.ts.map +1 -0
  230. package/dist/api/rendering/sampler/SamplerAddressMode.d.ts +24 -0
  231. package/dist/api/rendering/sampler/SamplerAddressMode.d.ts.map +1 -0
  232. package/dist/api/rendering/sampler/SamplerDescriptor.d.ts +40 -0
  233. package/dist/api/rendering/sampler/SamplerDescriptor.d.ts.map +1 -0
  234. package/dist/api/rendering/sampler/SamplerFilter.d.ts +14 -0
  235. package/dist/api/rendering/sampler/SamplerFilter.d.ts.map +1 -0
  236. package/dist/api/rendering/sampler/_export.d.ts +6 -0
  237. package/dist/api/rendering/sampler/_export.d.ts.map +1 -0
  238. package/dist/api/rendering/sampler/sampler-enums.d.ts +15 -0
  239. package/dist/api/rendering/sampler/sampler-enums.d.ts.map +1 -0
  240. package/dist/api/rendering/swapchain/ISwapChain.d.ts +29 -0
  241. package/dist/api/rendering/swapchain/ISwapChain.d.ts.map +1 -0
  242. package/dist/api/rendering/swapchain/SurfacePresentMode.d.ts +23 -0
  243. package/dist/api/rendering/swapchain/SurfacePresentMode.d.ts.map +1 -0
  244. package/dist/api/rendering/swapchain/SwapChainDescriptor.d.ts +20 -0
  245. package/dist/api/rendering/swapchain/SwapChainDescriptor.d.ts.map +1 -0
  246. package/dist/api/rendering/swapchain/_export.d.ts +4 -0
  247. package/dist/api/rendering/swapchain/_export.d.ts.map +1 -0
  248. package/dist/api/rendering/texture/ITexture2D.d.ts +83 -0
  249. package/dist/api/rendering/texture/ITexture2D.d.ts.map +1 -0
  250. package/dist/api/rendering/texture/ITextureFactory.d.ts +42 -0
  251. package/dist/api/rendering/texture/ITextureFactory.d.ts.map +1 -0
  252. package/dist/api/rendering/texture/ITextureView.d.ts +17 -0
  253. package/dist/api/rendering/texture/ITextureView.d.ts.map +1 -0
  254. package/dist/api/rendering/texture/TextureDescriptor.d.ts +42 -0
  255. package/dist/api/rendering/texture/TextureDescriptor.d.ts.map +1 -0
  256. package/dist/api/rendering/texture/TextureFormat.d.ts +54 -0
  257. package/dist/api/rendering/texture/TextureFormat.d.ts.map +1 -0
  258. package/dist/api/rendering/texture/TextureUsage.d.ts +42 -0
  259. package/dist/api/rendering/texture/TextureUsage.d.ts.map +1 -0
  260. package/dist/api/rendering/texture/TextureUtilities.d.ts +54 -0
  261. package/dist/api/rendering/texture/TextureUtilities.d.ts.map +1 -0
  262. package/dist/api/rendering/texture/TextureViewDescriptor.d.ts +22 -0
  263. package/dist/api/rendering/texture/TextureViewDescriptor.d.ts.map +1 -0
  264. package/dist/api/rendering/texture/TextureViewDimension.d.ts +17 -0
  265. package/dist/api/rendering/texture/TextureViewDimension.d.ts.map +1 -0
  266. package/dist/api/rendering/texture/_export-texture.d.ts +10 -0
  267. package/dist/api/rendering/texture/_export-texture.d.ts.map +1 -0
  268. package/dist/api/shader/IShaderModule.d.ts +21 -0
  269. package/dist/api/shader/IShaderModule.d.ts.map +1 -0
  270. package/dist/api/shader/IShaderModuleLoader.d.ts +13 -0
  271. package/dist/api/shader/IShaderModuleLoader.d.ts.map +1 -0
  272. package/dist/api/shader/ShaderStage.d.ts +10 -0
  273. package/dist/api/shader/ShaderStage.d.ts.map +1 -0
  274. package/dist/api/shader/_export-shader.d.ts +4 -0
  275. package/dist/api/shader/_export-shader.d.ts.map +1 -0
  276. package/dist/{core → api}/shader/shader-loader.d.ts +1 -1
  277. package/dist/api/shader/shader-loader.d.ts.map +1 -0
  278. package/dist/api/sprites/ISpriteBatch.d.ts +114 -0
  279. package/dist/api/sprites/ISpriteBatch.d.ts.map +1 -0
  280. package/dist/{core/sprite-batch → api/sprites}/SpriteBatch.d.ts +1 -1
  281. package/dist/api/sprites/SpriteBatch.d.ts.map +1 -0
  282. package/dist/{core/sprite-batch → api/sprites}/SpriteBatchDrawable.d.ts +1 -1
  283. package/dist/api/sprites/SpriteBatchDrawable.d.ts.map +1 -0
  284. package/dist/{core/sprite-batch → api/sprites}/SpriteBatchMesh.d.ts +1 -1
  285. package/dist/api/sprites/SpriteBatchMesh.d.ts.map +1 -0
  286. package/dist/api/sprites/_export_sprites.d.ts +2 -0
  287. package/dist/api/sprites/_export_sprites.d.ts.map +1 -0
  288. package/dist/api/time/GameTime.d.ts +23 -0
  289. package/dist/api/time/GameTime.d.ts.map +1 -0
  290. package/dist/api/time/ITimeManager.d.ts +19 -0
  291. package/dist/api/time/ITimeManager.d.ts.map +1 -0
  292. package/dist/api/time/TimeManager.d.ts +15 -0
  293. package/dist/api/time/TimeManager.d.ts.map +1 -0
  294. package/dist/api/time/_export_time.d.ts +4 -0
  295. package/dist/api/time/_export_time.d.ts.map +1 -0
  296. package/dist/api/utilities/AlignUtilities.d.ts +20 -0
  297. package/dist/api/utilities/AlignUtilities.d.ts.map +1 -0
  298. package/dist/api/utilities/GeometryUtilities.d.ts +13 -0
  299. package/dist/api/utilities/GeometryUtilities.d.ts.map +1 -0
  300. package/dist/api/utilities/MathHelper.d.ts +162 -0
  301. package/dist/api/utilities/MathHelper.d.ts.map +1 -0
  302. package/dist/api/utilities/_export.d.ts +4 -0
  303. package/dist/api/utilities/_export.d.ts.map +1 -0
  304. package/dist/api/window/IWindowManager.d.ts +64 -0
  305. package/dist/api/window/IWindowManager.d.ts.map +1 -0
  306. package/dist/api/window/WindowBounds.d.ts +16 -0
  307. package/dist/api/window/WindowBounds.d.ts.map +1 -0
  308. package/dist/{core/window/window-manager.d.ts → api/window/WindowManager.d.ts} +3 -3
  309. package/dist/api/window/WindowManager.d.ts.map +1 -0
  310. package/dist/api/window/_export.d.ts +3 -0
  311. package/dist/api/window/_export.d.ts.map +1 -0
  312. package/dist/core/rendering/AGraphicsDevice.d.ts +10 -6
  313. package/dist/core/rendering/AGraphicsDevice.d.ts.map +1 -1
  314. package/dist/core/rendering/ARenderer.d.ts +4 -5
  315. package/dist/core/rendering/ARenderer.d.ts.map +1 -1
  316. package/dist/core/rendering/blending/enums.d.ts +5 -2
  317. package/dist/core/rendering/blending/enums.d.ts.map +1 -1
  318. package/dist/core/rendering/sampler/sampler-descriptor.d.ts +1 -1
  319. package/dist/core/rendering/sampler/sampler-descriptor.d.ts.map +1 -1
  320. package/dist/core/rendering/texture/texture.d.ts +1 -1
  321. package/dist/core/rendering/texture/texture.d.ts.map +1 -1
  322. package/dist/core/rendering/vertex-buffer-layout.d.ts +2 -3
  323. package/dist/core/rendering/vertex-buffer-layout.d.ts.map +1 -1
  324. package/dist/index.d.ts +3 -2
  325. package/dist/index.d.ts.map +1 -1
  326. package/dist/index.js +4052 -596
  327. package/dist/webgl/WebGLGraphicsDeviceFeatures.d.ts +1 -1
  328. package/dist/webgl/WebGLGraphicsDeviceFeatures.d.ts.map +1 -1
  329. package/dist/webgl/WebGlGpuInfo.d.ts +1 -1
  330. package/dist/webgl/WebGlGpuInfo.d.ts.map +1 -1
  331. package/dist/webgl/WebGlGraphicsDevice.d.ts +7 -5
  332. package/dist/webgl/WebGlGraphicsDevice.d.ts.map +1 -1
  333. package/dist/webgl/WebGlRenderer.d.ts +3 -3
  334. package/dist/webgl/WebGlRenderer.d.ts.map +1 -1
  335. package/dist/webgl/blending/webgl-blend-state.d.ts +1 -1
  336. package/dist/webgl/blending/webgl-blend-state.d.ts.map +1 -1
  337. package/dist/webgl/buffers/WebGlBuffersFactory.d.ts +1 -1
  338. package/dist/webgl/buffers/WebGlBuffersFactory.d.ts.map +1 -1
  339. package/dist/webgl/buffers/WebGlUniformBuffer.d.ts +1 -1
  340. package/dist/webgl/buffers/WebGlUniformBuffer.d.ts.map +1 -1
  341. package/dist/webgl/buffers/WebGlVertexBuffer.d.ts +6 -6
  342. package/dist/webgl/buffers/WebGlVertexBuffer.d.ts.map +1 -1
  343. package/dist/webgl/buffers/webgl-index-buffer.d.ts +2 -2
  344. package/dist/webgl/buffers/webgl-index-buffer.d.ts.map +1 -1
  345. package/dist/webgl/cast/cast.d.ts +2 -2
  346. package/dist/webgl/cast/cast.d.ts.map +1 -1
  347. package/dist/webgl/primitive/WebGlPrimitiveState.d.ts +1 -3
  348. package/dist/webgl/primitive/WebGlPrimitiveState.d.ts.map +1 -1
  349. package/dist/webgl/render-pass/WebGlRenderPass.d.ts +3 -3
  350. package/dist/webgl/render-pass/WebGlRenderPass.d.ts.map +1 -1
  351. package/dist/webgl/render-pipelines/AWebGlRenderPipeline.d.ts +1 -1
  352. package/dist/webgl/render-pipelines/AWebGlRenderPipeline.d.ts.map +1 -1
  353. package/dist/webgl/render-pipelines/WebGlMainRenderTargetRenderPipeline.d.ts +3 -1
  354. package/dist/webgl/render-pipelines/WebGlMainRenderTargetRenderPipeline.d.ts.map +1 -1
  355. package/dist/webgl/render-pipelines/WebGlRenderPipelineFactory.d.ts +1 -1
  356. package/dist/webgl/render-pipelines/WebGlRenderPipelineFactory.d.ts.map +1 -1
  357. package/dist/webgl/render-pipelines/inspect/WebGlInspectTextureMipsRenderPipeline.d.ts +3 -3
  358. package/dist/webgl/render-pipelines/inspect/WebGlInspectTextureMipsRenderPipeline.d.ts.map +1 -1
  359. package/dist/webgl/render-pipelines/material/WebGlUnlitRenderPipeline.d.ts +2 -2
  360. package/dist/webgl/render-pipelines/material/WebGlUnlitRenderPipeline.d.ts.map +1 -1
  361. package/dist/webgl/render-pipelines/sprite/WebGlSpriteRenderPipeline.d.ts +2 -2
  362. package/dist/webgl/render-pipelines/sprite/WebGlSpriteRenderPipeline.d.ts.map +1 -1
  363. package/dist/webgl/sampler/webgl-sampler.d.ts +1 -1
  364. package/dist/webgl/sampler/webgl-sampler.d.ts.map +1 -1
  365. package/dist/webgl/shader/WebGlShaderModule.d.ts +1 -1
  366. package/dist/webgl/shader/WebGlShaderModule.d.ts.map +1 -1
  367. package/dist/webgl/shader/WebGlShaderModuleLoader.d.ts +1 -1
  368. package/dist/webgl/shader/WebGlShaderModuleLoader.d.ts.map +1 -1
  369. package/dist/webgl/swap-chain/WebGlSwapChain.d.ts +1 -1
  370. package/dist/webgl/swap-chain/WebGlSwapChain.d.ts.map +1 -1
  371. package/dist/webgl/texture/WebGlTexture2D.d.ts +1 -1
  372. package/dist/webgl/texture/WebGlTexture2D.d.ts.map +1 -1
  373. package/dist/webgl/texture/WebGlTextureFactory.d.ts +3 -3
  374. package/dist/webgl/texture/WebGlTextureFactory.d.ts.map +1 -1
  375. package/dist/webgl/utilities/WebGlBufferUtilities.d.ts +1 -1
  376. package/dist/webgl/utilities/WebGlBufferUtilities.d.ts.map +1 -1
  377. package/dist/webgl/utilities/WebGlConverter.d.ts +6 -22
  378. package/dist/webgl/utilities/WebGlConverter.d.ts.map +1 -1
  379. package/dist/webgl/utilities/WebGlFrameBufferUtilities.d.ts +1 -1
  380. package/dist/webgl/utilities/WebGlFrameBufferUtilities.d.ts.map +1 -1
  381. package/dist/webgl/utilities/WebGlSamplerUtilities.d.ts +3 -3
  382. package/dist/webgl/utilities/WebGlSamplerUtilities.d.ts.map +1 -1
  383. package/dist/webgl/utilities/WebGlTextureUtilities.d.ts +5 -5
  384. package/dist/webgl/utilities/WebGlTextureUtilities.d.ts.map +1 -1
  385. package/dist/webgl/utilities/webgl-culling-utilities.d.ts +1 -1
  386. package/dist/webgl/utilities/webgl-culling-utilities.d.ts.map +1 -1
  387. package/dist/webgl/utilities/webgl-filter-anisotropic-utilities.d.ts +1 -1
  388. package/dist/webgl/utilities/webgl-renderbuffer-utilities.d.ts +1 -1
  389. package/dist/webgl/utilities/webgl-renderbuffer-utilities.d.ts.map +1 -1
  390. package/package.json +7 -6
  391. package/shaders/glsl/sprite_fs.glsl +1 -1
  392. package/src/{core/Framework.ts → Framework.ts} +78 -38
  393. package/src/api/FrameworkConfiguration.ts +29 -0
  394. package/src/api/IFramework.ts +153 -0
  395. package/src/api/IFrameworkConfiguration.ts +30 -0
  396. package/src/api/_export.ts +26 -0
  397. package/src/api/camera/CameraFactory.ts +56 -0
  398. package/src/api/camera/ICamera.ts +52 -0
  399. package/src/api/camera/ICameraFactory.ts +69 -0
  400. package/src/api/camera/IOrthographicCamera.ts +38 -0
  401. package/src/api/camera/OrbitCamera.ts +402 -0
  402. package/src/api/camera/OrthographicCamera.ts +257 -0
  403. package/src/api/camera/PerspectiveCamera.ts +206 -0
  404. package/src/api/camera/_export.ts +7 -0
  405. package/src/api/content/ContentConfig.ts +11 -0
  406. package/src/{core → api}/content/ContentManager.ts +4 -3
  407. package/src/api/content/IContent.ts +9 -0
  408. package/src/api/content/IContentManager.ts +41 -0
  409. package/src/api/content/IContentModule.ts +67 -0
  410. package/src/{content → api/content}/ShaderModuleContent.ts +8 -8
  411. package/src/api/content/_export-content.ts +4 -0
  412. package/src/api/core/IDisposable.ts +10 -0
  413. package/src/api/core/_export-core.ts +1 -0
  414. package/src/api/data/Color.ts +228 -0
  415. package/src/api/data/Rect.ts +92 -0
  416. package/src/api/data/State.ts +10 -0
  417. package/src/api/data/_export.ts +3 -0
  418. package/src/{geometry → api/geometry}/BaseGeometry.ts +15 -2
  419. package/src/{geometry → api/geometry}/GeometryBuilder.ts +1 -1
  420. package/src/api/geometry/GeometryFormat.ts +33 -0
  421. package/src/api/geometry/IGeometry.ts +66 -0
  422. package/src/api/geometry/IGeometryBuilder.ts +17 -0
  423. package/src/{VertexFormat.ts → api/geometry/VertexFormat.ts} +3 -7
  424. package/src/api/geometry/_export-geometry.ts +4 -0
  425. package/src/api/image/CpuImageProcessor.ts +125 -0
  426. package/src/api/image/IImageProcessor.ts +28 -0
  427. package/src/api/image/RawImageData.ts +47 -0
  428. package/src/api/image/_export.ts +3 -0
  429. package/src/api/index.ts +1 -0
  430. package/src/api/input/IInputManager.ts +62 -0
  431. package/src/api/input/InputDeviceType.ts +20 -0
  432. package/src/api/input/InputManager.ts +513 -0
  433. package/src/api/input/Key.ts +35 -0
  434. package/src/api/input/KeyboardState.ts +44 -0
  435. package/src/api/input/_export.ts +13 -0
  436. package/src/api/input/gamepad/Button.ts +21 -0
  437. package/src/api/input/gamepad/GamePadState.ts +65 -0
  438. package/src/api/input/gamepad/GamePadThumbSticks.ts +18 -0
  439. package/src/api/input/mouse/MouseButton.ts +9 -0
  440. package/src/api/input/mouse/MouseState.ts +70 -0
  441. package/src/api/input/touch/TouchCollection.ts +164 -0
  442. package/src/api/input/touch/TouchLocation.ts +159 -0
  443. package/src/api/input/touch/TouchLocationState.ts +15 -0
  444. package/src/api/input/touch/TouchPanelCapabilities.ts +31 -0
  445. package/src/api/loaders/IImageLoader.ts +22 -0
  446. package/src/api/loaders/ImageLoader.ts +93 -0
  447. package/src/api/loaders/_export.ts +2 -0
  448. package/src/api/material/IMaterial.ts +41 -0
  449. package/src/api/material/IMaterialFactory.ts +21 -0
  450. package/src/api/material/InspectTextureMipsMaterial.ts +113 -0
  451. package/src/api/material/MaterialFactory.ts +27 -0
  452. package/src/api/material/UnlitMaterial.ts +143 -0
  453. package/src/api/material/_export.ts +5 -0
  454. package/src/api/meshes/IMesh.ts +20 -0
  455. package/src/api/meshes/IMeshFactory.ts +28 -0
  456. package/src/api/meshes/Mesh.ts +256 -0
  457. package/src/api/meshes/MeshFactory.ts +36 -0
  458. package/src/api/meshes/MeshParameters.ts +25 -0
  459. package/src/api/meshes/QuadMesh.ts +104 -0
  460. package/src/api/meshes/_export.ts +6 -0
  461. package/src/api/rendering/IGPUInfo.ts +42 -0
  462. package/src/api/rendering/IGraphicsDevice.ts +103 -0
  463. package/src/api/rendering/IGraphicsDeviceFeatures.ts +32 -0
  464. package/src/api/rendering/IRenderer.ts +84 -0
  465. package/src/api/rendering/PowerPreference.ts +15 -0
  466. package/src/api/rendering/RenderingBackend.ts +20 -0
  467. package/src/api/rendering/_export-rendering.ts +6 -0
  468. package/src/api/rendering/blending/IBlendState.ts +17 -0
  469. package/src/api/rendering/blending/_export.ts +1 -0
  470. package/src/api/rendering/buffers/BufferUsage.ts +56 -0
  471. package/src/api/rendering/buffers/IBuffer.ts +24 -0
  472. package/src/api/rendering/buffers/IBufferFactory.ts +38 -0
  473. package/src/api/rendering/buffers/IIndexBuffer.ts +37 -0
  474. package/src/api/rendering/buffers/IUniformBuffer.ts +21 -0
  475. package/src/api/rendering/buffers/IVertexBuffer.ts +32 -0
  476. package/src/api/rendering/buffers/IVertexBufferLayout.ts +27 -0
  477. package/src/api/rendering/buffers/IndexBufferType.ts +13 -0
  478. package/src/api/rendering/buffers/VertexAttribute.ts +26 -0
  479. package/src/api/rendering/buffers/VertexStepMode.ts +13 -0
  480. package/src/api/rendering/buffers/_export-buffers.ts +11 -0
  481. package/src/api/rendering/primitive/CullMode.ts +17 -0
  482. package/src/api/rendering/primitive/FrontFace.ts +13 -0
  483. package/src/api/rendering/primitive/IPrimitiveState.ts +25 -0
  484. package/src/api/rendering/primitive/PrimitiveStateDescriptor.ts +27 -0
  485. package/src/api/rendering/primitive/PrimitiveTopology.ts +25 -0
  486. package/src/api/rendering/primitive/_export.ts +5 -0
  487. package/src/api/rendering/render-pipelines/IInspectTextureMipsRenderPipeline.ts +38 -0
  488. package/src/api/rendering/render-pipelines/IMainRenderTargetRenderPipeline.ts +21 -0
  489. package/src/api/rendering/render-pipelines/IRenderPipeline.ts +47 -0
  490. package/src/api/rendering/render-pipelines/IRenderPipelineFactory.ts +52 -0
  491. package/src/api/rendering/render-pipelines/ISpriteRenderPipeline.ts +25 -0
  492. package/src/api/rendering/render-pipelines/IUnlitRenderPipeline.ts +38 -0
  493. package/src/api/rendering/render-pipelines/_export-render-pipelines.ts +6 -0
  494. package/src/{core/renderer → api/rendering}/renderer-interface.ts +15 -9
  495. package/src/api/rendering/renderpass/IRenderPass.ts +18 -0
  496. package/src/api/rendering/renderpass/LoadAction.ts +32 -0
  497. package/src/api/rendering/renderpass/RenderPassColorAttachment.ts +61 -0
  498. package/src/api/rendering/renderpass/RenderPassDepthStencilAttachment.ts +76 -0
  499. package/src/api/rendering/renderpass/RenderPassDescriptor.ts +26 -0
  500. package/src/api/rendering/renderpass/StoreAction.ts +23 -0
  501. package/src/api/rendering/renderpass/_export.ts +6 -0
  502. package/src/api/rendering/sampler/ISampler.ts +52 -0
  503. package/src/api/rendering/sampler/MipMapSamplerFilter.ts +17 -0
  504. package/src/api/rendering/sampler/SamplerAddressMode.ts +23 -0
  505. package/src/api/rendering/sampler/SamplerDescriptor.ts +46 -0
  506. package/src/api/rendering/sampler/SamplerFilter.ts +13 -0
  507. package/src/api/rendering/sampler/_export.ts +5 -0
  508. package/src/api/rendering/sampler/sampler-enums.ts +20 -0
  509. package/src/api/rendering/swapchain/ISwapChain.ts +33 -0
  510. package/src/api/rendering/swapchain/SurfacePresentMode.ts +22 -0
  511. package/src/api/rendering/swapchain/SwapChainDescriptor.ts +23 -0
  512. package/src/api/rendering/swapchain/_export.ts +3 -0
  513. package/src/api/rendering/texture/ITexture2D.ts +100 -0
  514. package/src/api/rendering/texture/ITextureFactory.ts +56 -0
  515. package/src/api/rendering/texture/ITextureView.ts +20 -0
  516. package/src/api/rendering/texture/TextureDescriptor.ts +52 -0
  517. package/src/api/rendering/texture/TextureFormat.ts +58 -0
  518. package/src/api/rendering/texture/TextureUsage.ts +41 -0
  519. package/src/api/rendering/texture/TextureUtilities.ts +149 -0
  520. package/src/api/rendering/texture/TextureViewDescriptor.ts +25 -0
  521. package/src/api/rendering/texture/TextureViewDimension.ts +16 -0
  522. package/src/api/rendering/texture/_export-texture.ts +9 -0
  523. package/src/api/shader/IShaderModule.ts +23 -0
  524. package/src/api/shader/IShaderModuleLoader.ts +15 -0
  525. package/src/api/shader/ShaderStage.ts +9 -0
  526. package/src/api/shader/_export-shader.ts +3 -0
  527. package/src/{core → api}/shader/shader-loader.ts +1 -1
  528. package/src/api/sprites/ISpriteBatch.ts +144 -0
  529. package/src/{core/sprite-batch → api/sprites}/SpriteBatch.ts +8 -5
  530. package/src/{core/sprite-batch → api/sprites}/SpriteBatchDrawable.ts +6 -6
  531. package/src/{core/sprite-batch → api/sprites}/SpriteBatchMesh.ts +8 -4
  532. package/src/api/sprites/_export_sprites.ts +1 -0
  533. package/src/api/time/GameTime.ts +30 -0
  534. package/src/api/time/ITimeManager.ts +22 -0
  535. package/src/api/time/TimeManager.ts +33 -0
  536. package/src/api/time/_export_time.ts +3 -0
  537. package/src/api/utilities/AlignUtilities.ts +39 -0
  538. package/src/api/utilities/GeometryUtilities.ts +20 -0
  539. package/src/api/utilities/MathHelper.ts +256 -0
  540. package/src/api/utilities/_export.ts +3 -0
  541. package/src/api/window/IWindowManager.ts +78 -0
  542. package/src/api/window/WindowBounds.ts +17 -0
  543. package/src/{core/window/window-manager.ts → api/window/WindowManager.ts} +2 -2
  544. package/src/api/window/_export.ts +2 -0
  545. package/src/core/rendering/AGraphicsDevice.ts +15 -9
  546. package/src/core/rendering/ARenderer.ts +7 -7
  547. package/src/core/rendering/blending/enums.ts +5 -5
  548. package/src/core/rendering/sampler/sampler-descriptor.ts +1 -1
  549. package/src/core/rendering/texture/texture.ts +4 -3
  550. package/src/core/rendering/vertex-buffer-layout.ts +3 -4
  551. package/src/index.ts +3 -2
  552. package/src/main.ts +5 -10
  553. package/src/webgl/WebGLGraphicsDeviceFeatures.ts +1 -1
  554. package/src/webgl/WebGlGpuInfo.ts +1 -1
  555. package/src/webgl/WebGlGraphicsDevice.ts +19 -15
  556. package/src/webgl/WebGlRenderer.ts +7 -5
  557. package/src/webgl/blending/webgl-blend-state.ts +1 -1
  558. package/src/webgl/buffers/WebGlBuffersFactory.ts +1 -1
  559. package/src/webgl/buffers/WebGlUniformBuffer.ts +1 -1
  560. package/src/webgl/buffers/WebGlVertexBuffer.ts +8 -7
  561. package/src/webgl/buffers/webgl-index-buffer.ts +2 -2
  562. package/src/webgl/cast/cast.ts +2 -2
  563. package/src/webgl/primitive/WebGlPrimitiveState.ts +7 -3
  564. package/src/webgl/render-pass/WebGlRenderPass.ts +17 -8
  565. package/src/webgl/render-pipelines/AWebGlRenderPipeline.ts +1 -1
  566. package/src/webgl/render-pipelines/WebGlMainRenderTargetRenderPipeline.ts +10 -2
  567. package/src/webgl/render-pipelines/WebGlRenderPipelineFactory.ts +1 -1
  568. package/src/webgl/render-pipelines/inspect/WebGlInspectTextureMipsRenderPipeline.ts +3 -3
  569. package/src/webgl/render-pipelines/material/WebGlUnlitRenderPipeline.ts +2 -2
  570. package/src/webgl/render-pipelines/sprite/WebGlSpriteRenderPipeline.ts +2 -2
  571. package/src/webgl/sampler/webgl-sampler.ts +2 -2
  572. package/src/webgl/shader/WebGlShaderModule.ts +2 -2
  573. package/src/webgl/shader/WebGlShaderModuleLoader.ts +1 -1
  574. package/src/webgl/swap-chain/WebGlSwapChain.ts +1 -1
  575. package/src/webgl/texture/WebGlTexture2D.ts +6 -4
  576. package/src/webgl/texture/WebGlTextureFactory.ts +7 -7
  577. package/src/webgl/utilities/WebGlBufferUtilities.ts +1 -1
  578. package/src/webgl/utilities/WebGlConverter.ts +19 -62
  579. package/src/webgl/utilities/WebGlFrameBufferUtilities.ts +1 -1
  580. package/src/webgl/utilities/WebGlSamplerUtilities.ts +4 -4
  581. package/src/webgl/utilities/WebGlTextureUtilities.ts +29 -20
  582. package/src/webgl/utilities/webgl-culling-utilities.ts +1 -1
  583. package/src/webgl/utilities/webgl-filter-anisotropic-utilities.ts +1 -1
  584. package/src/webgl/utilities/webgl-renderbuffer-utilities.ts +1 -1
  585. package/dist/TextureFormat.d.ts +0 -2
  586. package/dist/TextureFormat.d.ts.map +0 -1
  587. package/dist/VertexFormat.d.ts.map +0 -1
  588. package/dist/_ris-ktx2-node-module-stub-nzBRmiO_.js +0 -10
  589. package/dist/common/sampler-enums.d.ts +0 -16
  590. package/dist/common/sampler-enums.d.ts.map +0 -1
  591. package/dist/common/vertex-step-mode.d.ts +0 -11
  592. package/dist/common/vertex-step-mode.d.ts.map +0 -1
  593. package/dist/content/ShaderModuleContent.d.ts.map +0 -1
  594. package/dist/core/Framework.d.ts.map +0 -1
  595. package/dist/core/FrameworkConfig.d.ts +0 -26
  596. package/dist/core/FrameworkConfig.d.ts.map +0 -1
  597. package/dist/core/buffers/buffers-factory-interface.d.ts +0 -2
  598. package/dist/core/buffers/buffers-factory-interface.d.ts.map +0 -1
  599. package/dist/core/buffers/vertex-buffer-interface.d.ts +0 -2
  600. package/dist/core/buffers/vertex-buffer-interface.d.ts.map +0 -1
  601. package/dist/core/content/ContentManager.d.ts.map +0 -1
  602. package/dist/core/dependency-injection/register-services-interface.d.ts +0 -13
  603. package/dist/core/dependency-injection/register-services-interface.d.ts.map +0 -1
  604. package/dist/core/framework-interface.d.ts +0 -2
  605. package/dist/core/framework-interface.d.ts.map +0 -1
  606. package/dist/core/input/InputManager.d.ts +0 -27
  607. package/dist/core/input/InputManager.d.ts.map +0 -1
  608. package/dist/core/renderer/renderer-interface.d.ts.map +0 -1
  609. package/dist/core/rendering/primitive/PrimitiveStateDescriptor.d.ts +0 -26
  610. package/dist/core/rendering/primitive/PrimitiveStateDescriptor.d.ts.map +0 -1
  611. package/dist/core/rendering/primitive/enums.d.ts +0 -56
  612. package/dist/core/rendering/primitive/enums.d.ts.map +0 -1
  613. package/dist/core/rendering/render-pass/render-pass-descriptor.d.ts +0 -2
  614. package/dist/core/rendering/render-pass/render-pass-descriptor.d.ts.map +0 -1
  615. package/dist/core/rendering/render-pass/render-pass-interface.d.ts +0 -15
  616. package/dist/core/rendering/render-pass/render-pass-interface.d.ts.map +0 -1
  617. package/dist/core/rendering/vertex-attribute.d.ts +0 -17
  618. package/dist/core/rendering/vertex-attribute.d.ts.map +0 -1
  619. package/dist/core/shader/shader-loader.d.ts.map +0 -1
  620. package/dist/core/shader/shader-module-interface.d.ts +0 -2
  621. package/dist/core/shader/shader-module-interface.d.ts.map +0 -1
  622. package/dist/core/sprite-batch/SpriteBatch.d.ts.map +0 -1
  623. package/dist/core/sprite-batch/SpriteBatchDrawable.d.ts.map +0 -1
  624. package/dist/core/sprite-batch/SpriteBatchMesh.d.ts.map +0 -1
  625. package/dist/core/window/window-manager.d.ts.map +0 -1
  626. package/dist/geometry/BaseGeometry.d.ts.map +0 -1
  627. package/dist/geometry/GeometryBuilder.d.ts.map +0 -1
  628. package/dist/geometry/GeometryFormat.d.ts +0 -34
  629. package/dist/geometry/GeometryFormat.d.ts.map +0 -1
  630. package/dist/webgl/utilities/webgl-render-buffer-utilities.d.ts +0 -5
  631. package/dist/webgl/utilities/webgl-render-buffer-utilities.d.ts.map +0 -1
  632. package/src/TextureFormat.ts +0 -0
  633. package/src/common/sampler-enums.ts +0 -21
  634. package/src/common/vertex-step-mode.ts +0 -12
  635. package/src/core/FrameworkConfig.ts +0 -31
  636. package/src/core/buffers/buffers-factory-interface.ts +0 -0
  637. package/src/core/buffers/vertex-buffer-interface.ts +0 -0
  638. package/src/core/dependency-injection/register-services-interface.ts +0 -15
  639. package/src/core/framework-interface.ts +0 -0
  640. package/src/core/input/InputManager.ts +0 -115
  641. package/src/core/rendering/primitive/PrimitiveStateDescriptor.ts +0 -32
  642. package/src/core/rendering/primitive/enums.ts +0 -68
  643. package/src/core/rendering/render-pass/render-pass-descriptor.ts +0 -0
  644. package/src/core/rendering/render-pass/render-pass-interface.ts +0 -17
  645. package/src/core/rendering/vertex-attribute.ts +0 -20
  646. package/src/core/shader/shader-module-interface.ts +0 -1
  647. package/src/counter.ts +0 -9
  648. package/src/geometry/GeometryFormat.ts +0 -37
  649. package/src/webgl/utilities/webgl-render-buffer-utilities.ts +0 -23
  650. /package/dist/{content → api/content}/ShaderModuleContent.d.ts +0 -0
  651. /package/dist/{VertexFormat.d.ts → api/geometry/VertexFormat.d.ts} +0 -0
  652. /package/dist/{core/renderer → api/rendering}/enums.d.ts +0 -0
  653. /package/dist/{core/renderer → api/rendering}/rendering-limits.d.ts +0 -0
  654. /package/src/{core/renderer → api/rendering}/enums.ts +0 -0
  655. /package/src/{core/renderer → api/rendering}/rendering-limits.ts +0 -0
@@ -1,5 +1,5 @@
1
- import { SamplerCompareFunction } from '../../common/sampler-enums';
2
- import { MipMapSamplerFilter, SamplerAddressMode, SamplerFilter } from "ris-framework-api";
1
+ import { SamplerCompareFunction } from '../../api/rendering/sampler/sampler-enums';
2
+ import { MipMapSamplerFilter, SamplerAddressMode, SamplerFilter } from "../../api/index.js";
3
3
  /**
4
4
  * The utility class for working with WebGLSampler object.
5
5
  */
@@ -16,7 +16,7 @@ export declare class WebGlSamplerUtilities {
16
16
  * @param compareFunction The compare function of the sampler. This is used for shadow samplers.
17
17
  * @param _anisotropy The anisotropy level of the sampler. This is used for anisotropic filtering. The default value is 1, which means no anisotropic filtering.
18
18
  * @param label The label of the sampler. This is used for debugging purposes and can be viewed in graphics debuggers like SpectorJS.
19
- * @returns
19
+ * @returns The created WebGLSampler.
20
20
  */
21
21
  create(gl: WebGL2RenderingContext, minFilter?: SamplerFilter, magFilter?: SamplerFilter, mipMapFilter?: MipMapSamplerFilter, addressModeU?: SamplerAddressMode, addressModeV?: SamplerAddressMode, addressModeW?: SamplerAddressMode, compareFunction?: SamplerCompareFunction, _anisotropy?: number, label?: string): WebGLSampler;
22
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"WebGlSamplerUtilities.d.ts","sourceRoot":"","sources":["../../../src/webgl/utilities/WebGlSamplerUtilities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAGpE,OAAO,EAAC,mBAAmB,EAAE,kBAAkB,EAAE,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAEzF;;GAEG;AACH,qBAAa,qBAAqB;IAE9B;;;;;;;;;;;;;OAaG;IACI,MAAM,CAAC,EAAE,EAAE,sBAAsB,EAC1B,SAAS,GAAE,aAAoC,EAC/C,SAAS,GAAE,aAAoC,EAC/C,YAAY,GAAE,mBAA8C,EAC5D,YAAY,GAAE,kBAAqD,EACnE,YAAY,GAAE,kBAAqD,EACnE,YAAY,GAAE,kBAAqD,EACnE,eAAe,GAAE,sBAAqD,EACtE,WAAW,GAAE,MAAU,EACjC,KAAK,GAAE,MAAW,GAAI,YAAY;CA+CzC"}
1
+ {"version":3,"file":"WebGlSamplerUtilities.d.ts","sourceRoot":"","sources":["../../../src/webgl/utilities/WebGlSamplerUtilities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AAGnF,OAAO,EAAC,mBAAmB,EAAE,kBAAkB,EAAE,aAAa,EAAC,MAAM,oBAAoB,CAAC;AAE1F;;GAEG;AACH,qBAAa,qBAAqB;IAE9B;;;;;;;;;;;;;OAaG;IACI,MAAM,CAAC,EAAE,EAAE,sBAAsB,EAC1B,SAAS,GAAE,aAAoC,EAC/C,SAAS,GAAE,aAAoC,EAC/C,YAAY,GAAE,mBAA8C,EAC5D,YAAY,GAAE,kBAAqD,EACnE,YAAY,GAAE,kBAAqD,EACnE,YAAY,GAAE,kBAAqD,EACnE,eAAe,GAAE,sBAAqD,EACtE,WAAW,GAAE,MAAU,EACjC,KAAK,GAAE,MAAW,GAAI,YAAY;CA+CzC"}
@@ -1,4 +1,4 @@
1
- import { TextureFormat } from "ris-framework-api";
1
+ import { TextureFormat } from "../../api/index.js";
2
2
  import { vec2 } from "gl-matrix";
3
3
  /**
4
4
  * The utilities for working with WebGL textures.
@@ -10,7 +10,7 @@ export declare class WebGlTextureUtilities {
10
10
  * @param width The width of the texture.
11
11
  * @param height The height of the texture.
12
12
  * @param data The texture data. If null, an uninitialized texture will be created.
13
- * @param textureFormat The format of the texture. If not specified, BGRA_8_UNORM will be used.
13
+ * @param textureFormat The format of the texture. If not specified, RGBA_8_UNORM will be used.
14
14
  * @param useMipMaps True to generate mipmaps for the texture, false otherwise. By default, it is false.
15
15
  * @param anisotropy The level of anisotropic filtering to use when sampling the texture. A value of 1 means no anisotropic filtering, while higher values (e.g., 4, 8, 16) indicate increasing levels of anisotropic filtering. By default, it is 1 (no anisotropic filtering).
16
16
  * @param label The label for the texture. This can be used for debugging purposes to identify the texture in graphics debuggers.
@@ -23,11 +23,11 @@ export declare class WebGlTextureUtilities {
23
23
  * @param dimension The dimensions of the texture.
24
24
  * @param blockSize The block size of a compressed format.
25
25
  * @param data The texture data. If null, an uninitialized texture will be created.
26
- * @param textureFormat The format of the texture. If not specified, BGRA_8_UNORM will be used.
27
- * @param anisotropy The level of anisotropic filtering to use when sampling the texture. A value of 1 means no anisotropic filtering, while higher values (e.g., 4, 8, 16) indicate increasing levels of anisotropic filtering. By default, it is 1 (no anisotropic filtering).
28
26
  * @param label The label for the texture. This can be used for debugging purposes to identify the texture in graphics debuggers.
27
+ * @param textureFormat The format of the texture. If not specified, RGBA_8_UNORM will be used.
28
+ * @param anisotropy The level of anisotropic filtering to use when sampling the texture. A value of 1 means no anisotropic filtering, while higher values (e.g., 4, 8, 16) indicate increasing levels of anisotropic filtering. By default, it is 1 (no anisotropic filtering).
29
29
  * @returns The created WebGL texture.
30
30
  */
31
- createCompressedTexture2D(gl: WebGL2RenderingContext, dimension: vec2, _blockSize: vec2, data?: Uint8Array[] | null, label?: string | null, textureFormat?: TextureFormat, anisotropy?: number): WebGLTexture;
31
+ createCompressedTexture2D(gl: WebGL2RenderingContext, dimension: vec2, blockSize: vec2, data?: Uint8Array[] | null, label?: string | null, textureFormat?: TextureFormat, anisotropy?: number): WebGLTexture;
32
32
  }
33
33
  //# sourceMappingURL=WebGlTextureUtilities.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"WebGlTextureUtilities.d.ts","sourceRoot":"","sources":["../../../src/webgl/utilities/WebGlTextureUtilities.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAE/B;;GAEG;AACH,qBAAa,qBAAqB;IAE9B;;;;;;;;;;;OAWG;IACI,eAAe,CAClB,EAAE,EAAE,sBAAsB,EAC1B,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAC7B,IAAI,GAAE,UAAU,EAAE,GAAG,gBAAgB,EAAE,GAAG,IAAW,EACrD,aAAa,gBAA6B,EAC1C,UAAU,UAAQ,EAClB,UAAU,SAAM,EAChB,KAAK,GAAE,MAAM,GAAG,IAAW,GAC5B,YAAY;IA6Df;;;;;;;;;;OAUG;IACI,yBAAyB,CAC5B,EAAE,EAAE,sBAAsB,EAC1B,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EACjC,IAAI,GAAE,UAAU,EAAE,GAAG,IAAW,EAChC,KAAK,GAAE,MAAM,GAAG,IAAW,EAC3B,aAAa,gBAA6B,EAC1C,UAAU,SAAM,GACjB,YAAY;CAqDlB"}
1
+ {"version":3,"file":"WebGlTextureUtilities.d.ts","sourceRoot":"","sources":["../../../src/webgl/utilities/WebGlTextureUtilities.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,aAAa,EAAC,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAE/B;;GAEG;AACH,qBAAa,qBAAqB;IAE9B;;;;;;;;;;;OAWG;IACI,eAAe,CAClB,EAAE,EAAE,sBAAsB,EAC1B,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAC7B,IAAI,GAAE,UAAU,EAAE,GAAG,gBAAgB,EAAE,GAAG,IAAW,EACrD,aAAa,gBAA6B,EAC1C,UAAU,UAAQ,EAClB,UAAU,SAAM,EAChB,KAAK,GAAE,MAAM,GAAG,IAAW,GAC5B,YAAY;IA2Df;;;;;;;;;;OAUG;IACI,yBAAyB,CAC5B,EAAE,EAAE,sBAAsB,EAC1B,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAChC,IAAI,GAAE,UAAU,EAAE,GAAG,IAAW,EAChC,KAAK,GAAE,MAAM,GAAG,IAAW,EAC3B,aAAa,gBAA6B,EAC1C,UAAU,SAAM,GACjB,YAAY;CAgElB"}
@@ -1,4 +1,4 @@
1
- import { Culling } from "../../core/renderer/enums";
1
+ import { Culling } from "../../api/rendering/enums.js";
2
2
  /**
3
3
  * The WebGL culling utilities.
4
4
  */
@@ -1 +1 @@
1
- {"version":3,"file":"webgl-culling-utilities.d.ts","sourceRoot":"","sources":["../../../src/webgl/utilities/webgl-culling-utilities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAGpD;;GAEG;AACH,qBAAa,qBAAqB;IAE9B;;;;OAIG;IACI,UAAU,CAAC,EAAE,EAAE,sBAAsB,EAAE,OAAO,EAAE,OAAO;CASjE"}
1
+ {"version":3,"file":"webgl-culling-utilities.d.ts","sourceRoot":"","sources":["../../../src/webgl/utilities/webgl-culling-utilities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAGvD;;GAEG;AACH,qBAAa,qBAAqB;IAE9B;;;;OAIG;IACI,UAAU,CAAC,EAAE,EAAE,sBAAsB,EAAE,OAAO,EAAE,OAAO;CASjE"}
@@ -10,7 +10,7 @@ export declare class WebGLFilterAnisotropicUtilities {
10
10
  /**
11
11
  * Gets the max anisotropy.
12
12
  * @param gl The WebGL2 rendering context.
13
- * @returns The maximum supported level of anisotropic filtering. <c>0</c> if not supported.
13
+ * @returns The maximum supported level of anisotropic filtering. `0` if not supported.
14
14
  */
15
15
  getMaxAnisotropy(gl: WebGL2RenderingContext): number;
16
16
  /**
@@ -1,4 +1,4 @@
1
- import type { TextureFormat } from "ris-framework-api";
1
+ import type { TextureFormat } from "../../api/index.js";
2
2
  /**
3
3
  * The utility class for WebGL render buffer operations. It provides methods for creating render buffers with specified formats, dimensions, and labels. Render buffers are used in WebGL for off-screen rendering, particularly for depth and stencil attachments in framebuffers. This class abstracts the details of creating and configuring render buffers, making it easier to manage them in a WebGL application.
4
4
  */
@@ -1 +1 @@
1
- {"version":3,"file":"webgl-renderbuffer-utilities.d.ts","sourceRoot":"","sources":["../../../src/webgl/utilities/webgl-renderbuffer-utilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAIvD;;GAEG;AACH,qBAAa,0BAA0B;IACnC;;;;;;;;OAQG;IACI,MAAM,CAAC,EAAE,EAAE,sBAAsB,EAAE,cAAc,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,iBAAiB;CAiB/J"}
1
+ {"version":3,"file":"webgl-renderbuffer-utilities.d.ts","sourceRoot":"","sources":["../../../src/webgl/utilities/webgl-renderbuffer-utilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAIxD;;GAEG;AACH,qBAAa,0BAA0B;IACnC;;;;;;;;OAQG;IACI,MAAM,CAAC,EAAE,EAAE,sBAAsB,EAAE,cAAc,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,iBAAiB;CAiB/J"}
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "ris-framework",
3
- "version": "0.1.0-dev.7",
3
+ "version": "0.1.0",
4
+ "license": "Apache-2.0",
4
5
  "repository": {
5
6
  "type": "git",
6
7
  "url": "https://github.com/luka712/ris-framework-ts"
@@ -22,18 +23,17 @@
22
23
  "build:lib": "rm -rf dist && vite build --config vite.lib.config.ts && tsc -p tsconfig.lib.json && node scripts/rewrite-declaration-extensions.mjs",
23
24
  "build:app": "vite build",
24
25
  "preview": "vite preview",
25
- "test": "tsc --noEmit"
26
+ "test": "tsc --noEmit && tsc -p tsconfig.test.json --noEmit && vitest run"
26
27
  },
27
28
  "devDependencies": {
28
- "ris-ktx2": "^0.1.0-dev.2",
29
29
  "typescript": "~5.9.3",
30
- "vite": "^7.2.4"
30
+ "vite": "^7.2.4",
31
+ "vitest": "^5.0.3"
31
32
  },
32
33
  "dependencies": {
33
34
  "gl-matrix": "^3.4.4",
34
35
  "reflect-metadata": "^0.2.2",
35
- "ris-framework-api": "0.1.0-dev.5",
36
- "ris-ktx2-api": "^0.1.0-dev.2.4",
36
+ "ris-ktx2": "^0.1.0",
37
37
  "tsyringe": "^4.10.0"
38
38
  },
39
39
  "files": [
@@ -42,6 +42,7 @@
42
42
  "shaders",
43
43
  "LICENSES",
44
44
  "LICENSE",
45
+ "NOTICE",
45
46
  "README.md",
46
47
  "CHANGELOG.md",
47
48
  "THIRD_PARTY_NOTICES.md"
@@ -10,5 +10,5 @@ uniform sampler2D u_texture;
10
10
 
11
11
  void main()
12
12
  {
13
- o_outputColor = texture(u_texture, v_texCoords) * v_color;
13
+ o_outputColor = texture(u_texture, v_texCoords) * v_color + vec4(1.0);
14
14
  }
@@ -1,32 +1,50 @@
1
1
  import {container, type DependencyContainer} from "tsyringe";
2
- import {WindowManager} from "./window/window-manager.ts";
3
- import {FrameworkConfig} from "./FrameworkConfig.ts";
4
- import {IFrameworkSymbol} from "./dependency-injection/register-services-interface.ts";
5
- import { RenderConfiguration, RenderConfigurationSymbol} from "./renderer/renderer-interface.ts";
6
- import {GeometryBuilder} from "../geometry/GeometryBuilder.ts";
7
- import {ContentManager} from "./content/ContentManager.ts";
8
- import {WebGlRenderer} from "../webgl/WebGlRenderer.ts";
9
- import {WebGlBuffersFactory} from "../webgl/buffers/WebGlBuffersFactory.ts";
2
+ import {WindowManager} from "./api/window/WindowManager.ts";
3
+ import {FrameworkConfiguration} from "./api/FrameworkConfiguration.ts";
4
+ import {type IRendererConfiguration, RenderConfigurationSymbol} from "./api/rendering/renderer-interface.ts";
5
+ import {GeometryBuilder} from "./api/geometry/GeometryBuilder.ts";
6
+ import {ContentManager} from "./api/content/ContentManager.ts";
7
+ import {WebGlRenderer} from "./webgl/WebGlRenderer.ts";
8
+ import {WebGlBuffersFactory} from "./webgl/buffers/WebGlBuffersFactory.ts";
10
9
  import {
11
- CameraFactory, CpuImageProcessor, GameTime,
12
- type IBufferFactory, type IGeometryBuilder, type IGraphicsDevice, type IImageProcessor, type IInputManager,
10
+ type ICameraFactory,
11
+ type IContentManager,
12
+ type IFramework, IFrameworkConfiguration,
13
+ type IImageLoader,
14
+ type IRenderer,
15
+ type IRenderPipelineFactory,
16
+ type IWindowManager
17
+ } from "./api/index.ts";
18
+ import {
19
+ CameraFactory,
20
+ CpuImageProcessor,
21
+ GameTime,
22
+ type IBufferFactory,
23
+ type IGeometryBuilder,
24
+ type IGraphicsDevice,
25
+ type IImageProcessor,
26
+ type IInputManager,
13
27
  ImageLoader,
14
- type IMeshFactory, type ISpriteBatch, type ITextureFactory, type ITimeManager, RenderingBackend, TimeManager
15
- } from "ris-framework-api";
16
- import {WebGlShaderModuleLoader} from "../webgl/shader/WebGlShaderModuleLoader.ts";
17
- import {TextureSamplerFilteringPreset} from "./rendering/enums.ts";
18
- import {SpriteBatch} from "./sprite-batch/SpriteBatch.ts";
19
- import type {ICameraFactory, IContentManager, IFramework, IImageLoader,
20
- IRenderer,
21
- IWindowManager
22
- } from "ris-framework-api";
23
- import {WebGlTextureFactory} from "../webgl/texture/WebGlTextureFactory.ts";
24
- import {WebGlRenderPipelineFactory} from "../webgl/render-pipelines/WebGlRenderPipelineFactory.ts";
25
- import type {IRenderPipelineFactory} from "ris-framework-api";
26
- import {MeshFactory, type IMaterialFactory, MaterialFactory} from "ris-framework-api";
27
- import {InputManager} from "./input/InputManager.ts";
28
+ type IMaterialFactory,
29
+ type IMeshFactory,
30
+ type ISpriteBatch,
31
+ type ITextureFactory,
32
+ type ITimeManager,
33
+ MaterialFactory,
34
+ MeshFactory,
35
+ RenderingBackend,
36
+ TimeManager
37
+ } from "./api/index.ts";
38
+ import {WebGlShaderModuleLoader} from "./webgl/shader/WebGlShaderModuleLoader.ts";
39
+ import {TextureSamplerFilteringPreset} from "./core/rendering/enums.ts";
40
+ import {SpriteBatch} from "./api/sprites/SpriteBatch.ts";
41
+ import {WebGlTextureFactory} from "./webgl/texture/WebGlTextureFactory.ts";
42
+ import {WebGlRenderPipelineFactory} from "./webgl/render-pipelines/WebGlRenderPipelineFactory.ts";
43
+ import {InputManager} from "./api/input/InputManager.ts";
44
+ import type {IKtx2Factory} from "ris-ktx2";
28
45
  import {Ktx2Factory} from "ris-ktx2";
29
- import type {IKtx2Factory} from "ris-ktx2-api";
46
+ import {PowerPreferenceType} from "./api/rendering/PowerPreference.ts";
47
+ import {vec2} from "gl-matrix";
30
48
 
31
49
  export class Framework implements IFramework {
32
50
 
@@ -44,19 +62,27 @@ export class Framework implements IFramework {
44
62
 
45
63
  /**
46
64
  * The constructor for the Framework class.
47
- * @param options The optional options for them framework.
65
+ * @param options The optional framework configuration. When omitted, a default `FrameworkConfiguration` is used.
48
66
  */
49
- constructor(options: FrameworkConfig | null = null) {
50
- options = options ?? new FrameworkConfig();
67
+ constructor(options?: IFrameworkConfiguration) {
68
+ options = options ?? new FrameworkConfiguration();
69
+
70
+ // Without a canvas, WindowManager creates one and appends it to document.body.
71
+ if(!options.canvas){
72
+ console.warn("Canvas not provided. Creating canvas and appending it to document.body.")
73
+ }
74
+ options.backBufferSize = options.backBufferSize ?? vec2.fromValues(800, 600);
51
75
 
52
76
  this._container = container.createChildContainer();
53
- this.windowManager = new WindowManager(options.canvas);
77
+ this.windowManager = new WindowManager(options.canvas ?? null);
54
78
 
55
79
  // Setup container.
56
- this._container.registerInstance(IFrameworkSymbol, this);
57
- const rendererConfig = new RenderConfiguration();
58
- rendererConfig.backBufferSize = options.backBufferSize;
59
- rendererConfig.textureFiltering = options.textureFiltering ?? TextureSamplerFilteringPreset.BILINEAR;
80
+ const rendererConfig: IRendererConfiguration = {
81
+ backBufferSize: options.backBufferSize,
82
+ textureFiltering: options.textureFiltering ?? TextureSamplerFilteringPreset.BILINEAR,
83
+ alpha: options.alpha ?? false,
84
+ powerPreference: options.powerPreference ?? PowerPreferenceType.DEFAULT
85
+ };
60
86
  this._container.registerInstance(RenderConfigurationSymbol, rendererConfig);
61
87
  this.renderer = new WebGlRenderer(this, rendererConfig);
62
88
  this.renderingBackend = RenderingBackend.WEB_GL;
@@ -107,7 +133,7 @@ export class Framework implements IFramework {
107
133
 
108
134
  /** @inheritDoc */
109
135
  public removeOnInitializedListener(event: () => void): void {
110
- this._onInitializeListeners.splice(this._onInitializeListeners.indexOf(event), 1);
136
+ Framework._removeListener(this._onInitializeListeners, event);
111
137
  }
112
138
 
113
139
  /** @inheritdoc */
@@ -117,7 +143,7 @@ export class Framework implements IFramework {
117
143
 
118
144
  /** @inheritdoc */
119
145
  public removeOnLoadContentListener(event: () => void): void {
120
- this._onLoadContentListeners.splice(this._onLoadContentListeners.indexOf(event), 1);
146
+ Framework._removeListener(this._onLoadContentListeners, event);
121
147
  }
122
148
 
123
149
  /** @inheritdoc */
@@ -127,7 +153,7 @@ export class Framework implements IFramework {
127
153
 
128
154
  /** @inheritdoc */
129
155
  public removeOnUpdateListener(event: (gameTime: GameTime) => void): void {
130
- this._onUpdateListeners.splice(this._onUpdateListeners.indexOf(event), 1);
156
+ Framework._removeListener(this._onUpdateListeners, event);
131
157
  }
132
158
 
133
159
  /** @inheritdoc */
@@ -137,7 +163,18 @@ export class Framework implements IFramework {
137
163
 
138
164
  /** @inheritdoc */
139
165
  public removeOnRenderListener(event: () => void): void {
140
- this._onRenderListeners.splice(this._onRenderListeners.indexOf(event), 1);
166
+ Framework._removeListener(this._onRenderListeners, event);
167
+ }
168
+
169
+ /**
170
+ * Removes a listener if it is registered. An unknown listener is ignored,
171
+ * instead of `splice(-1, 1)` removing the last registered one.
172
+ */
173
+ private static _removeListener<T>(listeners: T[], listener: T): void {
174
+ const index = listeners.indexOf(listener);
175
+ if (index >= 0) {
176
+ listeners.splice(index, 1);
177
+ }
141
178
  }
142
179
 
143
180
  /** @inheritdoc */
@@ -188,7 +225,10 @@ export class Framework implements IFramework {
188
225
  /** @inheritdoc */
189
226
  public initialize(): void {
190
227
 
191
- this.ktx2Factory?.initializeAsync();
228
+ if(this.ktx2Factory) {
229
+ this.ktx2Factory.initializeAsync();
230
+ }
231
+
192
232
  (this.renderer as WebGlRenderer).initialize();
193
233
  this.spriteBatch.initialize();
194
234
  this.input.initialize();
@@ -0,0 +1,29 @@
1
+ import { TextureSamplerFilteringPreset } from "../core/rendering/enums.ts";
2
+ import {vec2} from "gl-matrix";
3
+ import type {IFrameworkConfiguration} from "./IFrameworkConfiguration.ts";
4
+ import {PowerPreferenceType} from "./rendering/PowerPreference.ts";
5
+
6
+ /**
7
+ * The options for configuring the Framework.
8
+ * @public
9
+ */
10
+ export class FrameworkConfiguration implements IFrameworkConfiguration {
11
+
12
+ /** @inheritDoc */
13
+ useKtx2 = false;
14
+
15
+ /** @inheritDoc */
16
+ canvas?: HTMLCanvasElement;
17
+
18
+ /** @inheritDoc */
19
+ backBufferSize?: vec2;
20
+
21
+ /** @inheritDoc */
22
+ textureFiltering? = TextureSamplerFilteringPreset.BILINEAR;
23
+
24
+ /** @inheritDoc */
25
+ alpha = false;
26
+
27
+ /** @inheritDoc */
28
+ powerPreference = PowerPreferenceType.DEFAULT;
29
+ }
@@ -0,0 +1,153 @@
1
+ import {RenderingBackend} from "./rendering/RenderingBackend.ts";
2
+ import type { ISpriteBatch } from "./sprites/ISpriteBatch.ts";
3
+ import type { IRenderer } from "./rendering/IRenderer.ts";
4
+ import type { IGraphicsDevice } from "./rendering/IGraphicsDevice.ts";
5
+ import type { IRenderPipelineFactory } from "./rendering/render-pipelines/IRenderPipelineFactory.ts";
6
+ import type { IBufferFactory } from "./rendering/buffers/IBufferFactory.ts";
7
+ import type { IGeometryBuilder } from "./geometry/IGeometryBuilder.ts";
8
+ import type { ICameraFactory } from "./camera/ICameraFactory.ts";
9
+ import type { ITextureFactory } from "./rendering/texture/ITextureFactory.ts";
10
+ import type { IContentManager } from "./content/IContentManager.ts";
11
+ import type { IImageLoader } from "./loaders/IImageLoader.ts";
12
+ import type { IMeshFactory } from "./meshes/IMeshFactory.ts";
13
+ import type { IMaterialFactory } from "./material/IMaterialFactory.ts";
14
+ import type { ITimeManager } from "./time/ITimeManager.ts";
15
+ import type { IInputManager } from "./input/IInputManager.ts";
16
+ import type { IWindowManager } from "./window/IWindowManager.ts";
17
+ import {GameTime} from "./time/GameTime.ts";
18
+ import type { IImageProcessor } from "./image/IImageProcessor.ts";
19
+ import type { IKtx2Factory } from "ris-ktx2";
20
+ import type { IDisposable } from "./core/IDisposable.ts";
21
+
22
+ /** The framework interface. */
23
+ export interface IFramework extends IDisposable {
24
+
25
+ /**
26
+ * The image loader.
27
+ */
28
+ readonly imageLoader: IImageLoader;
29
+
30
+ /**
31
+ * The used rendering backend.
32
+ */
33
+ readonly renderingBackend: RenderingBackend;
34
+
35
+ /**
36
+ * The sprite batches.
37
+ */
38
+ readonly spriteBatch: ISpriteBatch;
39
+
40
+ /**
41
+ * The renderer used by the framework.
42
+ */
43
+ readonly renderer: IRenderer;
44
+
45
+ /**
46
+ * The graphics device used by the framework.
47
+ */
48
+ readonly graphicsDevice: IGraphicsDevice;
49
+
50
+ /**
51
+ * The pipeline factory.
52
+ * Responsible for creating low-level rendering pipelines.
53
+ * Pipeline includes everything necessary to render some geometry
54
+ * and can be thought of as a material or renderer.
55
+ */
56
+ readonly renderPipelineFactory: IRenderPipelineFactory;
57
+
58
+ /**
59
+ * The buffer factory, responsible for creating GPU memory buffers.
60
+ */
61
+ readonly bufferFactory: IBufferFactory;
62
+
63
+ /**
64
+ * The geometry builder.
65
+ */
66
+ readonly geometryBuilder: IGeometryBuilder;
67
+
68
+ /** The texture factory. */
69
+ readonly textureFactory: ITextureFactory;
70
+
71
+ /** The KTX2 factory. Initialized only if KTX2 is requested or loaded. */
72
+ readonly ktx2Factory?: IKtx2Factory;
73
+
74
+ /**
75
+ * The camera factory.
76
+ */
77
+ readonly cameraFactory: ICameraFactory;
78
+
79
+ /**
80
+ * The content manager.
81
+ */
82
+ readonly content: IContentManager;
83
+
84
+ /**
85
+ * The mesh factory.
86
+ */
87
+ readonly meshFactory: IMeshFactory;
88
+
89
+ /**
90
+ * The material factory.
91
+ */
92
+ readonly materialFactory: IMaterialFactory;
93
+
94
+ /**
95
+ * The time manager.
96
+ */
97
+ readonly timeManager: ITimeManager;
98
+
99
+ /** The input manager. */
100
+ readonly input: IInputManager;
101
+
102
+ /** The window manager. */
103
+ readonly windowManager: IWindowManager;
104
+
105
+ /** The image processor. */
106
+ readonly imageProcessor: IImageProcessor;
107
+
108
+ /**
109
+ * Called right after the framework is initialized and before the render loop starts.
110
+ * Content can be loaded here.
111
+ */
112
+ addOnLoadContentListener(event: () => void): void;
113
+
114
+ /**
115
+ * Called right after the framework is initialized and before the render loop starts.
116
+ * Content can be loaded here.
117
+ */
118
+ removeOnLoadContentListener(event: () => void): void;
119
+
120
+ /**
121
+ * Called when the framework is initialized.
122
+ */
123
+ addOnInitializedListener(event: () => void): void;
124
+
125
+ /**
126
+ * Called when the framework is initialized.
127
+ */
128
+ removeOnInitializedListener(event: () => void): void;
129
+
130
+ /**
131
+ * Called when framework is updated.
132
+ */
133
+ addOnUpdateListener(event: (gameTime: GameTime) => void): void;
134
+
135
+ /**
136
+ * Called when framework is updated.
137
+ */
138
+ removeOnUpdateListener(event: (gameTime: GameTime) => void): void;
139
+
140
+ /**
141
+ * Called when the framework is rendered.
142
+ */
143
+ addOnRenderListener(event: () => void): void;
144
+
145
+ /**
146
+ * Called when the framework is rendered.
147
+ */
148
+ removeOnRenderListener(event: () => void): void;
149
+
150
+ /** Initializes the framework. */
151
+ initialize(): void;
152
+
153
+ }
@@ -0,0 +1,30 @@
1
+ import {PowerPreferenceType} from "./rendering/PowerPreference.ts";
2
+ import type {vec2} from "gl-matrix";
3
+ import type {TextureSamplerFilteringPreset} from "../core/rendering/enums.ts";
4
+
5
+ /**
6
+ * The configuration for the framework.
7
+ * @public
8
+ **/
9
+ export class IFrameworkConfiguration {
10
+ /** If true, creates and makes the KTX2 factory available. */
11
+ useKtx2?: boolean;
12
+
13
+ /** The size of back buffer. */
14
+ backBufferSize?: vec2;
15
+
16
+ /** The texture filtering to configure */
17
+ textureFiltering?: TextureSamplerFilteringPreset;
18
+
19
+ /**
20
+ * The HTMLCanvasElement to use for rendering.
21
+ * If null, a new canvas will be created and added to the document body.
22
+ */
23
+ canvas?: HTMLCanvasElement;
24
+
25
+ /** Should back buffer use alpha. */
26
+ alpha?: boolean;
27
+
28
+ /** The preference when it comes to selecting GPU device. Only makes sense to set on multi-GPU devices. */
29
+ powerPreference ?: PowerPreferenceType;
30
+ }
@@ -0,0 +1,26 @@
1
+ export * from "./IFramework.ts";
2
+ export * from "./IFrameworkConfiguration.ts";
3
+ export * from "./rendering/texture/_export-texture.ts";
4
+ export * from "./rendering/buffers/_export-buffers.ts";
5
+ export * from "./data/_export.ts";
6
+ export * from "./geometry/_export-geometry.ts";
7
+ export * from "./rendering/_export-rendering.ts";
8
+ export * from "./rendering/render-pipelines/_export-render-pipelines.ts";
9
+ export * from "./sprites/_export_sprites.ts";
10
+ export * from "./camera/_export.ts";
11
+ export * from "./time/_export_time.ts";
12
+ export * from "./core/_export-core.ts";
13
+ export * from "./shader/_export-shader.ts";
14
+ export * from "./content/_export-content.ts";
15
+ export * from "./rendering/primitive/_export.ts";
16
+ export * from "./rendering/blending/_export.ts";
17
+ export * from "./loaders/_export.ts";
18
+ export * from "./rendering/renderpass/_export.ts";
19
+ export * from "./window/_export.ts";
20
+ export * from "./rendering/swapchain/_export.ts";
21
+ export * from "./rendering/sampler/_export.ts"
22
+ export * from "./utilities/_export.ts"
23
+ export * from "./meshes/_export.ts";
24
+ export * from "./material/_export.ts";
25
+ export * from "./input/_export.ts";
26
+ export * from "./image/_export.ts";
@@ -0,0 +1,56 @@
1
+ import {vec2} from "gl-matrix";
2
+ import type { ICameraFactory } from "./ICameraFactory.ts";
3
+ import type { IFramework } from "../IFramework.ts";
4
+ import type { IOrthographicCamera } from "./IOrthographicCamera.ts";
5
+ import {OrthographicCamera} from "./OrthographicCamera.ts";
6
+ import {OrbitCamera} from "./OrbitCamera.ts";
7
+ import {PerspectiveCamera} from "./PerspectiveCamera.ts";
8
+ import {MathHelper} from "../utilities/MathHelper.ts";
9
+
10
+ /** The Camera Factory */
11
+ export class CameraFactory implements ICameraFactory {
12
+
13
+ static DEFAULT_ORIGIN = vec2.fromValues(0,0);
14
+
15
+ /**
16
+ * The constructor.
17
+ * @param _framework
18
+ */
19
+ public constructor(private readonly _framework: IFramework) {}
20
+
21
+ /** @inheritDoc */
22
+ public createDefaultOrthographicCamera(origin?: vec2): IOrthographicCamera {
23
+
24
+ origin = origin ?? CameraFactory.DEFAULT_ORIGIN;
25
+
26
+ const framework = this._framework;
27
+ const left = -framework.renderer.backBufferSize[0] * origin[0];
28
+ const top = -framework.renderer.backBufferSize[1] * origin[1];
29
+ const right = left + framework.renderer.backBufferSize[0];
30
+ const bottom = top + framework.renderer.backBufferSize[1];
31
+
32
+ return this.createOrthographicCamera(left, right, top, bottom, 0, 1);
33
+ }
34
+
35
+ /** @inheritDoc */
36
+ public createOrthographicCamera(left: number, right: number, top: number, bottom: number, near: number, far: number): IOrthographicCamera {
37
+ const camera = new OrthographicCamera(this._framework, left, right, top, bottom, near, far);
38
+ camera.initialize();
39
+ return camera;
40
+ }
41
+
42
+ /** @inheritDoc */
43
+ public createOrbitCamera(fov = 60, aspectRatio = 1, near = 0.01, far = 100): OrbitCamera {
44
+ return new OrbitCamera(this.createPerspectiveCamera(fov, aspectRatio, near, far), this._framework.input);
45
+
46
+ }
47
+
48
+ /** @inheritDoc */
49
+ public createPerspectiveCamera(fov= 60, aspectRatio = 1, near= 0.01, far = 100): PerspectiveCamera {
50
+ fov = MathHelper.toRadians(fov);
51
+ const camera = new PerspectiveCamera(this._framework, fov, aspectRatio, near, far);
52
+ camera.initialize();
53
+ return camera;
54
+ }
55
+
56
+ }