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.
- package/CHANGELOG.md +42 -1
- package/README.md +27 -4
- package/dist/Framework.d.ts +34 -10
- package/dist/Framework.d.ts.map +1 -1
- package/dist/api/IFramework.d.ts +50 -6
- package/dist/api/IFramework.d.ts.map +1 -1
- package/dist/api/_export.d.ts +3 -1
- package/dist/api/_export.d.ts.map +1 -1
- package/dist/api/camera/CameraFactory.d.ts +3 -2
- package/dist/api/camera/CameraFactory.d.ts.map +1 -1
- package/dist/api/camera/ICamera.d.ts +5 -0
- package/dist/api/camera/ICamera.d.ts.map +1 -1
- package/dist/api/camera/ICameraFactory.d.ts +5 -6
- package/dist/api/camera/ICameraFactory.d.ts.map +1 -1
- package/dist/api/camera/OrthographicCamera.d.ts +7 -0
- package/dist/api/camera/OrthographicCamera.d.ts.map +1 -1
- package/dist/api/camera/PerspectiveCamera.d.ts +30 -6
- package/dist/api/camera/PerspectiveCamera.d.ts.map +1 -1
- package/dist/api/content/ContentManager.d.ts +15 -2
- package/dist/api/content/ContentManager.d.ts.map +1 -1
- package/dist/api/content/IContentManager.d.ts +35 -1
- package/dist/api/content/IContentManager.d.ts.map +1 -1
- package/dist/api/content/ShaderModuleContent.d.ts.map +1 -1
- package/dist/api/data/Color.d.ts +5 -0
- package/dist/api/data/Color.d.ts.map +1 -1
- package/dist/api/geometry/BaseGeometry.d.ts +9 -0
- package/dist/api/geometry/BaseGeometry.d.ts.map +1 -1
- package/dist/api/geometry/GeometryBuilder.d.ts +3 -1
- package/dist/api/geometry/GeometryBuilder.d.ts.map +1 -1
- package/dist/api/geometry/IGeometryBuilder.d.ts +24 -0
- package/dist/api/geometry/IGeometryBuilder.d.ts.map +1 -1
- package/dist/api/geometry/_export-geometry.d.ts +1 -0
- package/dist/api/geometry/_export-geometry.d.ts.map +1 -1
- package/dist/api/input/InputManager.d.ts +4 -0
- package/dist/api/input/InputManager.d.ts.map +1 -1
- package/dist/api/lights/AmbientLight.d.ts +35 -0
- package/dist/api/lights/AmbientLight.d.ts.map +1 -0
- package/dist/api/lights/DirectionalLight.d.ts +40 -0
- package/dist/api/lights/DirectionalLight.d.ts.map +1 -0
- package/dist/api/lights/LightFactory.d.ts +18 -0
- package/dist/api/lights/LightFactory.d.ts.map +1 -0
- package/dist/api/lights/LightId.d.ts +6 -0
- package/dist/api/lights/LightId.d.ts.map +1 -0
- package/dist/api/lights/LightsBuffer.d.ts +77 -0
- package/dist/api/lights/LightsBuffer.d.ts.map +1 -0
- package/dist/api/lights/PointLight.d.ts +59 -0
- package/dist/api/lights/PointLight.d.ts.map +1 -0
- package/dist/api/lights/_export.d.ts +6 -0
- package/dist/api/lights/_export.d.ts.map +1 -0
- package/dist/api/loaders/ObjGeometryMapper.d.ts +19 -0
- package/dist/api/loaders/ObjGeometryMapper.d.ts.map +1 -0
- package/dist/api/loaders/ObjLoader.d.ts +61 -0
- package/dist/api/loaders/ObjLoader.d.ts.map +1 -0
- package/dist/api/loaders/_export.d.ts +2 -0
- package/dist/api/loaders/_export.d.ts.map +1 -1
- package/dist/api/loaders/obj/ObjParser.d.ts +44 -0
- package/dist/api/loaders/obj/ObjParser.d.ts.map +1 -0
- package/dist/api/loaders/obj/ObjTypes.d.ts +119 -0
- package/dist/api/loaders/obj/ObjTypes.d.ts.map +1 -0
- package/dist/api/loaders/obj/index.d.ts +3 -0
- package/dist/api/loaders/obj/index.d.ts.map +1 -0
- package/dist/api/material/ForwardBlinnPhongMaterial.d.ts +138 -0
- package/dist/api/material/ForwardBlinnPhongMaterial.d.ts.map +1 -0
- package/dist/api/material/ICameraMaterial.d.ts +18 -0
- package/dist/api/material/ICameraMaterial.d.ts.map +1 -0
- package/dist/api/material/ILightsMaterial.d.ts +26 -0
- package/dist/api/material/ILightsMaterial.d.ts.map +1 -0
- package/dist/api/material/IMaterial.d.ts +13 -10
- package/dist/api/material/IMaterial.d.ts.map +1 -1
- package/dist/api/material/IMaterialFactory.d.ts +17 -2
- package/dist/api/material/IMaterialFactory.d.ts.map +1 -1
- package/dist/api/material/InspectTextureMipsMaterial.d.ts +18 -9
- package/dist/api/material/InspectTextureMipsMaterial.d.ts.map +1 -1
- package/dist/api/material/MaterialFactory.d.ts +6 -0
- package/dist/api/material/MaterialFactory.d.ts.map +1 -1
- package/dist/api/material/SpriteMaterial.d.ts +51 -0
- package/dist/api/material/SpriteMaterial.d.ts.map +1 -0
- package/dist/api/material/UnlitMaterial.d.ts +32 -13
- package/dist/api/material/UnlitMaterial.d.ts.map +1 -1
- package/dist/api/material/_export.d.ts +4 -0
- package/dist/api/material/_export.d.ts.map +1 -1
- package/dist/api/meshes/IMesh.d.ts +31 -6
- package/dist/api/meshes/IMesh.d.ts.map +1 -1
- package/dist/api/meshes/IMeshFactory.d.ts +30 -4
- package/dist/api/meshes/IMeshFactory.d.ts.map +1 -1
- package/dist/api/meshes/IRenderableMesh.d.ts +47 -0
- package/dist/api/meshes/IRenderableMesh.d.ts.map +1 -0
- package/dist/api/meshes/Mesh.d.ts +14 -8
- package/dist/api/meshes/Mesh.d.ts.map +1 -1
- package/dist/api/meshes/MeshFactory.d.ts +10 -3
- package/dist/api/meshes/MeshFactory.d.ts.map +1 -1
- package/dist/api/meshes/QuadMesh.d.ts +5 -3
- package/dist/api/meshes/QuadMesh.d.ts.map +1 -1
- package/dist/api/meshes/RenderableMesh.d.ts +95 -0
- package/dist/api/meshes/RenderableMesh.d.ts.map +1 -0
- package/dist/api/meshes/_export.d.ts +2 -0
- package/dist/api/meshes/_export.d.ts.map +1 -1
- package/dist/api/rendering/IGraphicsDeviceFeatures.d.ts +8 -2
- package/dist/api/rendering/IGraphicsDeviceFeatures.d.ts.map +1 -1
- package/dist/api/rendering/IRenderer.d.ts +28 -1
- package/dist/api/rendering/IRenderer.d.ts.map +1 -1
- package/dist/api/rendering/enums.d.ts +7 -0
- package/dist/api/rendering/enums.d.ts.map +1 -1
- package/dist/api/rendering/render-pipelines/IForwardBlinnPhongRenderPipeline.d.ts +56 -0
- package/dist/api/rendering/render-pipelines/IForwardBlinnPhongRenderPipeline.d.ts.map +1 -0
- package/dist/api/rendering/render-pipelines/IRenderPipeline.d.ts +3 -0
- package/dist/api/rendering/render-pipelines/IRenderPipeline.d.ts.map +1 -1
- package/dist/api/rendering/render-pipelines/IRenderPipelineFactory.d.ts +29 -0
- package/dist/api/rendering/render-pipelines/IRenderPipelineFactory.d.ts.map +1 -1
- package/dist/api/rendering/render-pipelines/_export-render-pipelines.d.ts +1 -0
- package/dist/api/rendering/render-pipelines/_export-render-pipelines.d.ts.map +1 -1
- package/dist/api/rendering/renderer-interface.d.ts +1 -31
- package/dist/api/rendering/renderer-interface.d.ts.map +1 -1
- package/dist/api/rendering/renderpass/RenderPassDescriptor.d.ts +2 -6
- package/dist/api/rendering/renderpass/RenderPassDescriptor.d.ts.map +1 -1
- package/dist/api/rendering/swapchain/ISwapChain.d.ts +1 -3
- package/dist/api/rendering/swapchain/ISwapChain.d.ts.map +1 -1
- package/dist/api/rendering/texture/TextureFormat.d.ts +88 -14
- package/dist/api/rendering/texture/TextureFormat.d.ts.map +1 -1
- package/dist/api/rendering/texture/TextureUtilities.d.ts +23 -0
- package/dist/api/rendering/texture/TextureUtilities.d.ts.map +1 -1
- package/dist/api/scene/Scene.d.ts +113 -0
- package/dist/api/scene/Scene.d.ts.map +1 -0
- package/dist/api/scene/SceneMesh.d.ts +27 -0
- package/dist/api/scene/SceneMesh.d.ts.map +1 -0
- package/dist/api/shader/IShaderModuleLoader.d.ts +4 -1
- package/dist/api/shader/IShaderModuleLoader.d.ts.map +1 -1
- package/dist/api/shader/{shader-loader.d.ts → ShaderLoader.d.ts} +1 -1
- package/dist/api/shader/ShaderLoader.d.ts.map +1 -0
- package/dist/api/sprites/SpriteBatchDrawable.d.ts +1 -1
- package/dist/api/sprites/SpriteBatchDrawable.d.ts.map +1 -1
- package/dist/api/sprites/SpriteBatchMesh.d.ts +14 -1
- package/dist/api/sprites/SpriteBatchMesh.d.ts.map +1 -1
- package/dist/api/utilities/AlignUtilities.d.ts.map +1 -1
- package/dist/api/utilities/GeometryUtilities.d.ts.map +1 -1
- package/dist/api/window/WindowManager.d.ts +4 -0
- package/dist/api/window/WindowManager.d.ts.map +1 -1
- package/dist/core/rendering/ARenderer.d.ts +5 -5
- package/dist/core/rendering/ARenderer.d.ts.map +1 -1
- package/dist/core/rendering/vertex-buffer-layout.d.ts +1 -0
- package/dist/core/rendering/vertex-buffer-layout.d.ts.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9238 -4595
- package/dist/webgl/WebGLGraphicsDeviceFeatures.d.ts +4 -0
- package/dist/webgl/WebGLGraphicsDeviceFeatures.d.ts.map +1 -1
- package/dist/webgl/WebGlGraphicsDevice.d.ts.map +1 -1
- package/dist/webgl/WebGlRenderer.d.ts +1 -3
- package/dist/webgl/WebGlRenderer.d.ts.map +1 -1
- package/dist/webgl/lights/WebGlAmbientLightFactory.d.ts +17 -0
- package/dist/webgl/lights/WebGlAmbientLightFactory.d.ts.map +1 -0
- package/dist/webgl/lights/WebGlLightsBuffer.d.ts +59 -0
- package/dist/webgl/lights/WebGlLightsBuffer.d.ts.map +1 -0
- package/dist/webgl/render-pipelines/AWebGlRenderPipeline.d.ts +3 -1
- package/dist/webgl/render-pipelines/AWebGlRenderPipeline.d.ts.map +1 -1
- package/dist/webgl/render-pipelines/WebGlMainRenderTargetRenderPipeline.d.ts +5 -0
- package/dist/webgl/render-pipelines/WebGlMainRenderTargetRenderPipeline.d.ts.map +1 -1
- package/dist/webgl/render-pipelines/WebGlRenderPipelineFactory.d.ts +3 -1
- package/dist/webgl/render-pipelines/WebGlRenderPipelineFactory.d.ts.map +1 -1
- package/dist/webgl/render-pipelines/inspect/WebGlInspectTextureMipsRenderPipeline.d.ts +3 -1
- package/dist/webgl/render-pipelines/inspect/WebGlInspectTextureMipsRenderPipeline.d.ts.map +1 -1
- package/dist/webgl/render-pipelines/material/WebGlBlinnPhongRenderPipeline.d.ts +88 -0
- package/dist/webgl/render-pipelines/material/WebGlBlinnPhongRenderPipeline.d.ts.map +1 -0
- package/dist/webgl/render-pipelines/material/WebGlUnlitRenderPipeline.d.ts +3 -1
- package/dist/webgl/render-pipelines/material/WebGlUnlitRenderPipeline.d.ts.map +1 -1
- package/dist/webgl/render-pipelines/sprite/WebGlSpriteRenderPipeline.d.ts +3 -1
- package/dist/webgl/render-pipelines/sprite/WebGlSpriteRenderPipeline.d.ts.map +1 -1
- package/dist/webgl/shader/WebGlShaderModule.d.ts +4 -1
- package/dist/webgl/shader/WebGlShaderModule.d.ts.map +1 -1
- package/dist/webgl/shader/WebGlShaderModuleLoader.d.ts +16 -5
- package/dist/webgl/shader/WebGlShaderModuleLoader.d.ts.map +1 -1
- package/dist/webgl/swap-chain/WebGlSwapChain.d.ts +3 -2
- package/dist/webgl/swap-chain/WebGlSwapChain.d.ts.map +1 -1
- package/dist/webgl/texture/WebGlTexture2D.d.ts +8 -1
- package/dist/webgl/texture/WebGlTexture2D.d.ts.map +1 -1
- package/dist/webgl/texture/WebGlTextureFactory.d.ts +7 -0
- package/dist/webgl/texture/WebGlTextureFactory.d.ts.map +1 -1
- package/dist/webgl/utilities/WebGlConstants.d.ts +91 -0
- package/dist/webgl/utilities/WebGlConstants.d.ts.map +1 -0
- package/dist/webgl/utilities/WebGlConverter.d.ts +0 -7
- package/dist/webgl/utilities/WebGlConverter.d.ts.map +1 -1
- package/dist/webgl/utilities/WebGlErrorUtilities.d.ts +10 -0
- package/dist/webgl/utilities/WebGlErrorUtilities.d.ts.map +1 -0
- package/dist/webgl/utilities/WebGlTextureUtilities.d.ts.map +1 -1
- package/dist/webgl/utilities/WebGlUtilities.d.ts +3 -0
- package/dist/webgl/utilities/WebGlUtilities.d.ts.map +1 -1
- package/dist/webgl/utilities/webgl-filter-anisotropic-utilities.d.ts +0 -1
- package/dist/webgl/utilities/webgl-filter-anisotropic-utilities.d.ts.map +1 -1
- package/dist/webgpu/WebGpuGpuInfo.d.ts +28 -0
- package/dist/webgpu/WebGpuGpuInfo.d.ts.map +1 -0
- package/dist/webgpu/WebGpuGraphicsDevice.d.ts +80 -0
- package/dist/webgpu/WebGpuGraphicsDevice.d.ts.map +1 -0
- package/dist/webgpu/WebGpuGraphicsDeviceFeatures.d.ts +26 -0
- package/dist/webgpu/WebGpuGraphicsDeviceFeatures.d.ts.map +1 -0
- package/dist/webgpu/WebGpuRenderer.d.ts +26 -0
- package/dist/webgpu/WebGpuRenderer.d.ts.map +1 -0
- package/dist/webgpu/WebGpuTypes.d.ts +355 -0
- package/dist/webgpu/WebGpuTypes.d.ts.map +1 -0
- package/dist/webgpu/blending/WebGpuBlendState.d.ts +30 -0
- package/dist/webgpu/blending/WebGpuBlendState.d.ts.map +1 -0
- package/dist/webgpu/buffers/WebGpuBuffersFactory.d.ts +20 -0
- package/dist/webgpu/buffers/WebGpuBuffersFactory.d.ts.map +1 -0
- package/dist/webgpu/buffers/WebGpuIndexBuffer.d.ts +46 -0
- package/dist/webgpu/buffers/WebGpuIndexBuffer.d.ts.map +1 -0
- package/dist/webgpu/buffers/WebGpuUniformBuffer.d.ts +43 -0
- package/dist/webgpu/buffers/WebGpuUniformBuffer.d.ts.map +1 -0
- package/dist/webgpu/buffers/WebGpuVertexBuffer.d.ts +49 -0
- package/dist/webgpu/buffers/WebGpuVertexBuffer.d.ts.map +1 -0
- package/dist/webgpu/primitive/WebGpuPrimitiveState.d.ts +32 -0
- package/dist/webgpu/primitive/WebGpuPrimitiveState.d.ts.map +1 -0
- package/dist/webgpu/render-pass/WebGpuRenderPass.d.ts +28 -0
- package/dist/webgpu/render-pass/WebGpuRenderPass.d.ts.map +1 -0
- package/dist/webgpu/render-pipelines/AWebGpuRenderPipeline.d.ts +50 -0
- package/dist/webgpu/render-pipelines/AWebGpuRenderPipeline.d.ts.map +1 -0
- package/dist/webgpu/render-pipelines/WebGpuMainRenderTargetRenderPipeline.d.ts +34 -0
- package/dist/webgpu/render-pipelines/WebGpuMainRenderTargetRenderPipeline.d.ts.map +1 -0
- package/dist/webgpu/render-pipelines/WebGpuRenderPipelineFactory.d.ts +26 -0
- package/dist/webgpu/render-pipelines/WebGpuRenderPipelineFactory.d.ts.map +1 -0
- package/dist/webgpu/render-pipelines/material/AWebGpuMeshRenderPipeline.d.ts +72 -0
- package/dist/webgpu/render-pipelines/material/AWebGpuMeshRenderPipeline.d.ts.map +1 -0
- package/dist/webgpu/render-pipelines/material/WebGpuUnlitRenderPipeline.d.ts +40 -0
- package/dist/webgpu/render-pipelines/material/WebGpuUnlitRenderPipeline.d.ts.map +1 -0
- package/dist/webgpu/sampler/WebGpuSampler.d.ts +39 -0
- package/dist/webgpu/sampler/WebGpuSampler.d.ts.map +1 -0
- package/dist/webgpu/shader/WebGpuShaderModule.d.ts +29 -0
- package/dist/webgpu/shader/WebGpuShaderModule.d.ts.map +1 -0
- package/dist/webgpu/shader/WebGpuShaderModuleLoader.d.ts +21 -0
- package/dist/webgpu/shader/WebGpuShaderModuleLoader.d.ts.map +1 -0
- package/dist/webgpu/shader/WgslShaderContent.d.ts +9 -0
- package/dist/webgpu/shader/WgslShaderContent.d.ts.map +1 -0
- package/dist/webgpu/swap-chain/WebGpuSwapChain.d.ts +41 -0
- package/dist/webgpu/swap-chain/WebGpuSwapChain.d.ts.map +1 -0
- package/dist/webgpu/texture/WebGpuTexture2D.d.ts +47 -0
- package/dist/webgpu/texture/WebGpuTexture2D.d.ts.map +1 -0
- package/dist/webgpu/texture/WebGpuTextureFactory.d.ts +21 -0
- package/dist/webgpu/texture/WebGpuTextureFactory.d.ts.map +1 -0
- package/dist/webgpu/texture/WebGpuTextureView.d.ts +25 -0
- package/dist/webgpu/texture/WebGpuTextureView.d.ts.map +1 -0
- package/dist/webgpu/utilities/WebGpuConverter.d.ts +45 -0
- package/dist/webgpu/utilities/WebGpuConverter.d.ts.map +1 -0
- package/package.json +4 -4
- package/shaders/glsl/forward_blinn_phong_material_fs.glsl +110 -0
- package/shaders/glsl/forward_blinn_phong_material_vs.glsl +32 -0
- package/shaders/glsl/main_render_target_flip_y_fs.glsl +35 -1
- package/shaders/glsl/sprite_fs.glsl +1 -1
- package/shaders/glsl/unlit_material_fs.glsl +1 -1
- package/shaders/wgsl/forward_blinn_phong_material.wgsl +150 -0
- package/shaders/wgsl/inspect_texture_mips.wgsl +51 -0
- package/shaders/wgsl/main_frame_buffer.wgsl +35 -0
- package/shaders/wgsl/main_render_target_flip_y.wgsl +35 -0
- package/shaders/wgsl/sprite.wgsl +40 -0
- package/shaders/wgsl/unlit_material.wgsl +49 -0
- package/src/Framework.ts +156 -48
- package/src/api/IFramework.ts +63 -6
- package/src/api/_export.ts +3 -1
- package/src/api/camera/CameraFactory.ts +6 -6
- package/src/api/camera/ICamera.ts +6 -0
- package/src/api/camera/ICameraFactory.ts +5 -10
- package/src/api/camera/OrthographicCamera.ts +23 -1
- package/src/api/camera/PerspectiveCamera.ts +60 -15
- package/src/api/content/ContentManager.ts +78 -16
- package/src/api/content/IContentManager.ts +37 -1
- package/src/api/content/ShaderModuleContent.ts +9 -0
- package/src/api/data/Color.ts +7 -1
- package/src/api/geometry/BaseGeometry.ts +23 -0
- package/src/api/geometry/GeometryBuilder.ts +14 -2
- package/src/api/geometry/IGeometryBuilder.ts +31 -1
- package/src/api/geometry/_export-geometry.ts +2 -1
- package/src/api/input/InputManager.ts +14 -5
- package/src/api/lights/AmbientLight.ts +53 -0
- package/src/api/lights/DirectionalLight.ts +60 -0
- package/src/api/lights/LightFactory.ts +21 -0
- package/src/api/lights/LightId.ts +9 -0
- package/src/api/lights/LightsBuffer.ts +94 -0
- package/src/api/lights/PointLight.ts +91 -0
- package/src/api/lights/_export.ts +5 -0
- package/src/api/loaders/ObjGeometryMapper.ts +28 -0
- package/src/api/loaders/ObjLoader.ts +126 -0
- package/src/api/loaders/_export.ts +3 -1
- package/src/api/loaders/obj/ObjParser.ts +301 -0
- package/src/api/loaders/obj/ObjTypes.ts +142 -0
- package/src/api/loaders/obj/index.ts +5 -0
- package/src/api/material/ForwardBlinnPhongMaterial.ts +328 -0
- package/src/api/material/ICameraMaterial.ts +22 -0
- package/src/api/material/ILightsMaterial.ts +32 -0
- package/src/api/material/IMaterial.ts +13 -10
- package/src/api/material/IMaterialFactory.ts +19 -2
- package/src/api/material/InspectTextureMipsMaterial.ts +65 -26
- package/src/api/material/MaterialFactory.ts +12 -0
- package/src/api/material/SpriteMaterial.ts +83 -0
- package/src/api/material/UnlitMaterial.ts +105 -32
- package/src/api/material/_export.ts +5 -1
- package/src/api/meshes/IMesh.ts +40 -6
- package/src/api/meshes/IMeshFactory.ts +33 -4
- package/src/api/meshes/IRenderableMesh.ts +58 -0
- package/src/api/meshes/Mesh.ts +50 -43
- package/src/api/meshes/MeshFactory.ts +37 -4
- package/src/api/meshes/QuadMesh.ts +6 -4
- package/src/api/meshes/RenderableMesh.ts +207 -0
- package/src/api/meshes/_export.ts +6 -4
- package/src/api/rendering/IGraphicsDeviceFeatures.ts +28 -21
- package/src/api/rendering/IRenderer.ts +34 -1
- package/src/api/rendering/enums.ts +10 -0
- package/src/api/rendering/render-pipelines/IForwardBlinnPhongRenderPipeline.ts +66 -0
- package/src/api/rendering/render-pipelines/IRenderPipeline.ts +4 -0
- package/src/api/rendering/render-pipelines/IRenderPipelineFactory.ts +39 -0
- package/src/api/rendering/render-pipelines/_export-render-pipelines.ts +2 -1
- package/src/api/rendering/renderer-interface.ts +1 -36
- package/src/api/rendering/renderpass/RenderPassDescriptor.ts +10 -14
- package/src/api/rendering/swapchain/ISwapChain.ts +1 -3
- package/src/api/rendering/texture/TextureFormat.ts +128 -14
- package/src/api/rendering/texture/TextureUtilities.ts +225 -10
- package/src/api/scene/Scene.ts +297 -0
- package/src/api/scene/SceneMesh.ts +61 -0
- package/src/api/shader/IShaderModuleLoader.ts +2 -1
- package/src/api/sprites/SpriteBatchDrawable.ts +12 -16
- package/src/api/sprites/SpriteBatchMesh.ts +22 -3
- package/src/api/utilities/AlignUtilities.ts +2 -1
- package/src/api/utilities/GeometryUtilities.ts +2 -0
- package/src/api/window/WindowManager.ts +23 -3
- package/src/core/rendering/ARenderer.ts +24 -15
- package/src/core/rendering/vertex-buffer-layout.ts +32 -1
- package/src/index.ts +0 -1
- package/src/main.ts +2 -4
- package/src/webgl/WebGLGraphicsDeviceFeatures.ts +12 -2
- package/src/webgl/WebGlGpuInfo.ts +1 -1
- package/src/webgl/WebGlGraphicsDevice.ts +0 -1
- package/src/webgl/WebGlRenderer.ts +2 -5
- package/src/webgl/lights/WebGlAmbientLightFactory.ts +35 -0
- package/src/webgl/lights/WebGlLightsBuffer.ts +225 -0
- package/src/webgl/render-pipelines/AWebGlRenderPipeline.ts +7 -1
- package/src/webgl/render-pipelines/WebGlMainRenderTargetRenderPipeline.ts +21 -1
- package/src/webgl/render-pipelines/WebGlRenderPipelineFactory.ts +24 -2
- package/src/webgl/render-pipelines/inspect/WebGlInspectTextureMipsRenderPipeline.ts +16 -6
- package/src/webgl/render-pipelines/material/WebGlBlinnPhongRenderPipeline.ts +300 -0
- package/src/webgl/render-pipelines/material/WebGlUnlitRenderPipeline.ts +16 -6
- package/src/webgl/render-pipelines/sprite/WebGlSpriteRenderPipeline.ts +11 -7
- package/src/webgl/shader/WebGlShaderModule.ts +11 -4
- package/src/webgl/shader/WebGlShaderModuleLoader.ts +29 -10
- package/src/webgl/swap-chain/WebGlSwapChain.ts +7 -6
- package/src/webgl/texture/WebGlTexture2D.ts +19 -5
- package/src/webgl/texture/WebGlTextureFactory.ts +49 -7
- package/src/webgl/utilities/WebGlConstants.ts +136 -0
- package/src/webgl/utilities/WebGlConverter.ts +91 -22
- package/src/webgl/utilities/WebGlErrorUtilities.ts +15 -0
- package/src/webgl/utilities/WebGlTextureUtilities.ts +5 -2
- package/src/webgl/utilities/WebGlUtilities.ts +4 -0
- package/src/webgl/utilities/webgl-filter-anisotropic-utilities.ts +9 -6
- package/src/webgpu/WebGpuGpuInfo.ts +61 -0
- package/src/webgpu/WebGpuGraphicsDevice.ts +199 -0
- package/src/webgpu/WebGpuGraphicsDeviceFeatures.ts +41 -0
- package/src/webgpu/WebGpuRenderer.ts +49 -0
- package/src/webgpu/WebGpuTypes.ts +288 -0
- package/src/webgpu/blending/WebGpuBlendState.ts +53 -0
- package/src/webgpu/buffers/WebGpuBuffersFactory.ts +46 -0
- package/src/webgpu/buffers/WebGpuIndexBuffer.ts +118 -0
- package/src/webgpu/buffers/WebGpuUniformBuffer.ts +102 -0
- package/src/webgpu/buffers/WebGpuVertexBuffer.ts +119 -0
- package/src/webgpu/primitive/WebGpuPrimitiveState.ts +52 -0
- package/src/webgpu/render-pass/WebGpuRenderPass.ts +131 -0
- package/src/webgpu/render-pipelines/AWebGpuRenderPipeline.ts +123 -0
- package/src/webgpu/render-pipelines/WebGpuMainRenderTargetRenderPipeline.ts +119 -0
- package/src/webgpu/render-pipelines/WebGpuRenderPipelineFactory.ts +66 -0
- package/src/webgpu/render-pipelines/material/AWebGpuMeshRenderPipeline.ts +249 -0
- package/src/webgpu/render-pipelines/material/WebGpuUnlitRenderPipeline.ts +101 -0
- package/src/webgpu/sampler/WebGpuSampler.ts +84 -0
- package/src/webgpu/shader/WebGpuShaderModule.ts +65 -0
- package/src/webgpu/shader/WebGpuShaderModuleLoader.ts +38 -0
- package/src/webgpu/shader/WgslShaderContent.ts +20 -0
- package/src/webgpu/swap-chain/WebGpuSwapChain.ts +93 -0
- package/src/webgpu/texture/WebGpuTexture2D.ts +197 -0
- package/src/webgpu/texture/WebGpuTextureFactory.ts +118 -0
- package/src/webgpu/texture/WebGpuTextureView.ts +43 -0
- package/src/webgpu/utilities/WebGpuConverter.ts +299 -0
- package/src/wgsl-raw.d.ts +4 -0
- package/dist/api/FrameworkConfiguration.d.ts +0 -23
- package/dist/api/FrameworkConfiguration.d.ts.map +0 -1
- package/dist/api/IFrameworkConfiguration.d.ts +0 -25
- package/dist/api/IFrameworkConfiguration.d.ts.map +0 -1
- package/dist/api/shader/shader-loader.d.ts.map +0 -1
- package/src/api/FrameworkConfiguration.ts +0 -29
- package/src/api/IFrameworkConfiguration.ts +0 -30
- /package/src/api/shader/{shader-loader.ts → ShaderLoader.ts} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,47 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
All notable changes to this project are documented in this file.
|
|
4
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
5
|
+
|
|
6
|
+
## [0.2.0] - Unreleased
|
|
7
|
+
|
|
8
|
+
Compared with `main` (0.1.0).
|
|
9
|
+
|
|
10
|
+
### Breaking changes
|
|
11
|
+
|
|
12
|
+
- `FrameworkConfiguration` is no longer exported; pass an `IFrameworkConfiguration` object to `new Framework(...)`.
|
|
13
|
+
- `tsyringe` and `reflect-metadata` are removed; services use plain constructor wiring.
|
|
14
|
+
- `cameraFactory.createPerspectiveCamera` takes a descriptor object, and every `ICamera` now requires a `positionBuffer`.
|
|
15
|
+
- Meshes are split into `IMesh`/`Mesh` (geometry and buffers) and `IRenderableMesh`/`RenderableMesh` (material, index range, sub meshes, transform).
|
|
16
|
+
- Materials take a `modelBuffer` owned by the mesh instead of `modelMatrix`, and `renderMesh` takes an `IRenderableMesh`.
|
|
17
|
+
- Render pipelines throw when no model buffer is passed.
|
|
18
|
+
- Requires `ris-ktx2` 0.2.
|
|
19
|
+
|
|
20
|
+
### Added
|
|
21
|
+
|
|
22
|
+
- WebGPU backend (preview): set `renderingBackend` and call `framework.initializeAsync()`. Only unlit materials are supported so far; WebGL stays the default and is used as a fallback.
|
|
23
|
+
- `Scene` with `add`/`remove` for meshes, lights and the camera, plus `SceneMesh` for owning a mesh and its materials.
|
|
24
|
+
- Lights: `AmbientLight`, `DirectionalLight` and `PointLight`.
|
|
25
|
+
- `ForwardBlinnPhongMaterial`, `SpriteMaterial`, and the `ICameraMaterial`/`ILightsMaterial` interfaces.
|
|
26
|
+
- Mesh transforms (`position`, `rotation`, `scale`) and sub meshes (`addSubMesh`, `meshFactory.createWithSubMeshes`).
|
|
27
|
+
- OBJ/MTL loading through `framework.objLoader`, `ObjParser`, and `content.loadMeshAsync`, `loadUnlitMeshAsync` and `loadBlinnPhongMeshAsync`.
|
|
28
|
+
- `geometryBuilder.create(descriptor)` and the exported `BaseGeometry`.
|
|
29
|
+
- sRGB compressed texture formats (BC1, BC3, BC7, ETC2), with KTX2 loading choosing sRGB automatically.
|
|
30
|
+
- Examples: `unlit_mesh`, `unlit_mesh_webgpu`, `blinn_phong_mesh` and `sprite_batch`.
|
|
31
|
+
|
|
32
|
+
### Changed
|
|
33
|
+
|
|
34
|
+
- `content.loadShaderModule` accepts optional replacement values.
|
|
35
|
+
|
|
36
|
+
### Fixed
|
|
37
|
+
|
|
38
|
+
- Sprites rendered white because of a stray value in the sprite shader.
|
|
39
|
+
- The orthographic camera's default eye was on the wrong side (z = -1).
|
|
40
|
+
- A second `Framework` instance reused the default texture and anisotropic-filtering extension from the first.
|
|
41
|
+
- A leftover `debugger` statement in WebGL device initialization.
|
|
42
|
+
- Swapped BC/S3TC compression flags could select BC7 on GPUs without BPTC support.
|
|
43
|
+
|
|
44
|
+
## [0.1.0]
|
|
4
45
|
|
|
5
46
|
- Initial release setup. `development` publishes a prerelease on the npm `next` tag. `main` publishes this version on `latest`.
|
|
6
47
|
- The package entry is compiled JavaScript and declarations in `dist`. Consumers import `Framework`, `FrameworkConfiguration`, `TextureSamplerFilteringPreset`, and the types formerly published as `ris-framework-api` from `ris-framework` without compiling this repository. Built-in shaders and the browser KTX2 loader are included in that JavaScript.
|
package/README.md
CHANGED
|
@@ -18,7 +18,7 @@ Open `index.html`. The module script is `src/main.ts`. That file builds the page
|
|
|
18
18
|
| `shaders/glsl` | Vertex and fragment shaders used by the built-in shader modules. |
|
|
19
19
|
| `tests` | Vitest tests for the types under `src/api`. |
|
|
20
20
|
|
|
21
|
-
Runtime dependencies are `ris-ktx2
|
|
21
|
+
Runtime dependencies are `ris-ktx2` and `gl-matrix`. The KTX2 types (`IKtx2Texture`, `VkFormat`, `KtxTranscodeFormat`, and the rest) are imported from `ris-ktx2`. The library build includes the browser portion of `ris-ktx2`, with its Node loader replaced by a stub, so the published entry does not import Node built-ins. TypeScript, Vite, and Vitest are dev dependencies. Notices for the bundled KTX loader are in [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md). The package license is Apache License 2.0. Copyright 2026 Luka Erkapic. See [LICENSE](LICENSE) and [NOTICE](NOTICE).
|
|
22
22
|
|
|
23
23
|
## Prerequisites
|
|
24
24
|
|
|
@@ -54,7 +54,7 @@ To work in this repository:
|
|
|
54
54
|
npm ci
|
|
55
55
|
```
|
|
56
56
|
|
|
57
|
-
|
|
57
|
+
`Framework` creates its services itself and passes dependencies through their constructors; no dependency-injection container or `reflect-metadata` import is needed.
|
|
58
58
|
|
|
59
59
|
## Create a framework instance
|
|
60
60
|
|
|
@@ -76,8 +76,6 @@ No config field is required. Each field has a default.
|
|
|
76
76
|
Every field is optional on `IFrameworkConfiguration`. A new `FrameworkConfiguration` sets `useKtx2`, `textureFiltering`, `alpha`, and `powerPreference`. `canvas` and `backBufferSize` start unset.
|
|
77
77
|
|
|
78
78
|
```ts
|
|
79
|
-
import "reflect-metadata";
|
|
80
|
-
|
|
81
79
|
import { Framework, FrameworkConfiguration, TextureSamplerFilteringPreset } from "ris-framework";
|
|
82
80
|
|
|
83
81
|
const config = new FrameworkConfiguration();
|
|
@@ -168,6 +166,31 @@ The first `begin` / `drawRect` / `end` runs inside `initialize()`, before the te
|
|
|
168
166
|
|
|
169
167
|
Setting `framework.renderer.clearColor` after `initialize()` updates later frames. The first frame has already cleared with the default light pink.
|
|
170
168
|
|
|
169
|
+
## Scene
|
|
170
|
+
|
|
171
|
+
`new Scene(framework)` holds meshes, lights and the camera. `scene.add(item)` and `scene.remove(item)` accept a renderable mesh (wrapped in a `SceneMesh`, which owns and disposes its materials), an `AmbientLight`, `DirectionalLight`, `PointLight` or a camera; adding twice does nothing. Lights and the perspective camera given a scene in their constructor add themselves. Adding a camera makes it `scene.camera`; removing the active camera clears it. `scene.update(time)` hands the camera, the active ambient light and the scene's light lists (by reference) to the materials. `addLight`/`removeLight` remain as deprecated aliases.
|
|
172
|
+
|
|
173
|
+
Meshes follow the C# framework: `IMesh`/`Mesh` hold geometry and buffers only; `IRenderableMesh`/`RenderableMesh` add an optional material, an index range (`indexStart`, `indexCount`, -1 for all), sub meshes that share the root's buffers, and the transform with one model buffer per root. OBJ files load through `framework.objLoader`:
|
|
174
|
+
|
|
175
|
+
```ts
|
|
176
|
+
const mesh = await framework.objLoader.loadAsync(url, {
|
|
177
|
+
projectionViewBuffer: camera.projectionViewBuffer,
|
|
178
|
+
cameraPositionBuffer: camera.positionBuffer,
|
|
179
|
+
}); // one ForwardBlinnPhongMaterial per usemtl material
|
|
180
|
+
// or: framework.objLoader.loadAsync(url, subMesh => myMaterial(subMesh.material))
|
|
181
|
+
// or: await ObjLoader.parseAsync(url) for plain data without GPU resources
|
|
182
|
+
scene.add(mesh);
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
## Examples
|
|
186
|
+
|
|
187
|
+
Browser examples live in [`examples/`](examples/), one folder per example. See [`examples/README.md`](examples/README.md).
|
|
188
|
+
|
|
189
|
+
```sh
|
|
190
|
+
npm run dev:examples # serve the examples index, e.g. /sprite_batch/
|
|
191
|
+
npm run build:examples # build every example into examples/dist/
|
|
192
|
+
```
|
|
193
|
+
|
|
171
194
|
## What is still unfinished
|
|
172
195
|
|
|
173
196
|
These throw, or they accept a call and do not do the work the name suggests:
|
package/dist/Framework.d.ts
CHANGED
|
@@ -1,29 +1,38 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { GameTime, type IBufferFactory, type IGeometryBuilder, type IGraphicsDevice, type IImageProcessor, type IInputManager, type IMaterialFactory, type IMeshFactory, type ISpriteBatch, type ITextureFactory, type ITimeManager, RenderingBackend } from "./api/index.js";
|
|
1
|
+
import { ObjLoader } from "./api/loaders/ObjLoader.js";
|
|
2
|
+
import { type AmbientLightFactory, GameTime, type IBufferFactory, type ICameraFactory, type IContentManager, type IFramework, IFrameworkConfiguration, type IGeometryBuilder, type IGraphicsDevice, type IImageLoader, type IImageProcessor, type IInputManager, type IMaterialFactory, type IMeshFactory, type IRenderer, type IRenderPipelineFactory, type ISpriteBatch, type ITextureFactory, type ITimeManager, type IWindowManager, RenderingBackend } from "./api/index.js";
|
|
3
3
|
import type { IKtx2Factory } from "ris-ktx2";
|
|
4
|
+
/** The Ris framework */
|
|
4
5
|
export declare class Framework implements IFramework {
|
|
5
6
|
private readonly _onLoadContentListeners;
|
|
6
7
|
private readonly _onInitializeListeners;
|
|
7
8
|
private readonly _onUpdateListeners;
|
|
8
9
|
private readonly _onRenderListeners;
|
|
9
|
-
private
|
|
10
|
-
private
|
|
11
|
-
private
|
|
12
|
-
private
|
|
10
|
+
private _configuration;
|
|
11
|
+
private _textureFactory;
|
|
12
|
+
private _buffersFactory;
|
|
13
|
+
private _contentManager;
|
|
14
|
+
private readonly _rendererConfiguration;
|
|
15
|
+
private _renderer;
|
|
13
16
|
private readonly _geometryBuilder;
|
|
14
17
|
private readonly _meshFactory;
|
|
18
|
+
private _disposed;
|
|
15
19
|
/**
|
|
16
20
|
* The constructor for the Framework class.
|
|
17
|
-
* @param
|
|
21
|
+
* @param configuration The optional framework configuration. When omitted, a default `FrameworkConfiguration` is used.
|
|
18
22
|
*/
|
|
19
|
-
constructor(
|
|
23
|
+
constructor(configuration?: IFrameworkConfiguration);
|
|
20
24
|
/** @inheritDoc */
|
|
21
25
|
readonly imageLoader: IImageLoader;
|
|
22
26
|
renderingBackend: RenderingBackend;
|
|
23
27
|
/** @inheritDoc */
|
|
24
28
|
readonly imageProcessor: IImageProcessor;
|
|
25
29
|
/** @inheritDoc */
|
|
26
|
-
|
|
30
|
+
get renderer(): IRenderer;
|
|
31
|
+
/**
|
|
32
|
+
* Creates the backend-specific services: renderer, texture factory, pipeline factory, shader loader and buffers factory.
|
|
33
|
+
* @param backend WEB_GL or WEB_GPU.
|
|
34
|
+
*/
|
|
35
|
+
private _setupBackendServices;
|
|
27
36
|
/** @inheritDoc */
|
|
28
37
|
readonly spriteBatch: ISpriteBatch;
|
|
29
38
|
/** @inheritDoc */
|
|
@@ -68,14 +77,29 @@ export declare class Framework implements IFramework {
|
|
|
68
77
|
/** @inheritdoc */
|
|
69
78
|
get meshFactory(): IMeshFactory;
|
|
70
79
|
/** @inheritDoc */
|
|
80
|
+
readonly objLoader: ObjLoader;
|
|
81
|
+
/** @inheritDoc */
|
|
71
82
|
readonly materialFactory: IMaterialFactory;
|
|
72
83
|
/** @inheritDoc */
|
|
84
|
+
readonly lightsFactory: AmbientLightFactory;
|
|
85
|
+
/** @inheritDoc */
|
|
73
86
|
readonly timeManager: ITimeManager;
|
|
74
87
|
/** @inheritDoc */
|
|
75
88
|
readonly input: IInputManager;
|
|
76
89
|
/** @inheritdoc */
|
|
77
90
|
initialize(): void;
|
|
78
|
-
/**
|
|
91
|
+
/**
|
|
92
|
+
* Initializes the framework and starts the event loop. Required for WebGPU, which requests its adapter
|
|
93
|
+
* and device asynchronously; for WebGL it behaves like {@link initialize}.
|
|
94
|
+
* If the WebGPU device cannot be acquired, the framework falls back to WebGL with a warning.
|
|
95
|
+
*/
|
|
96
|
+
initializeAsync(): Promise<void>;
|
|
97
|
+
private _initializeCore;
|
|
98
|
+
/**
|
|
99
|
+
* Stops the event loop and disposes the framework's services and GL resources,
|
|
100
|
+
* including per-framework caches such as the default texture and the shader modules.
|
|
101
|
+
* A new `Framework` afterwards creates fresh resources on its own context. Calling it twice does nothing.
|
|
102
|
+
*/
|
|
79
103
|
dispose(): void;
|
|
80
104
|
}
|
|
81
105
|
//# sourceMappingURL=Framework.d.ts.map
|
package/dist/Framework.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Framework.d.ts","sourceRoot":"","sources":["../src/Framework.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Framework.d.ts","sourceRoot":"","sources":["../src/Framework.ts"],"names":[],"mappings":"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"}
|
package/dist/api/IFramework.d.ts
CHANGED
|
@@ -7,10 +7,12 @@ import type { IBufferFactory } from "./rendering/buffers/IBufferFactory.js";
|
|
|
7
7
|
import type { IGeometryBuilder } from "./geometry/IGeometryBuilder.js";
|
|
8
8
|
import type { ICameraFactory } from "./camera/ICameraFactory.js";
|
|
9
9
|
import type { ITextureFactory } from "./rendering/texture/ITextureFactory.js";
|
|
10
|
+
import type { ObjLoader } from "./loaders/ObjLoader.js";
|
|
10
11
|
import type { IContentManager } from "./content/IContentManager.js";
|
|
11
12
|
import type { IImageLoader } from "./loaders/IImageLoader.js";
|
|
12
13
|
import type { IMeshFactory } from "./meshes/IMeshFactory.js";
|
|
13
14
|
import type { IMaterialFactory } from "./material/IMaterialFactory.js";
|
|
15
|
+
import type { AmbientLightFactory } from "./lights/LightFactory.js";
|
|
14
16
|
import type { ITimeManager } from "./time/ITimeManager.js";
|
|
15
17
|
import type { IInputManager } from "./input/IInputManager.js";
|
|
16
18
|
import type { IWindowManager } from "./window/IWindowManager.js";
|
|
@@ -18,6 +20,39 @@ import { GameTime } from "./time/GameTime.js";
|
|
|
18
20
|
import type { IImageProcessor } from "./image/IImageProcessor.js";
|
|
19
21
|
import type { IKtx2Factory } from "ris-ktx2";
|
|
20
22
|
import type { IDisposable } from "./core/IDisposable.js";
|
|
23
|
+
import type { vec2 } from "gl-matrix";
|
|
24
|
+
import type { TextureSamplerFilteringPreset } from "../core/rendering/enums.js";
|
|
25
|
+
import type { PowerPreferenceType } from "./rendering/PowerPreference.js";
|
|
26
|
+
import type { TextureColorSpace } from "./rendering/enums.js";
|
|
27
|
+
/**
|
|
28
|
+
* The configuration for the framework.
|
|
29
|
+
* @public
|
|
30
|
+
**/
|
|
31
|
+
export declare class IFrameworkConfiguration {
|
|
32
|
+
/** If true, creates and makes the KTX2 factory available. */
|
|
33
|
+
useKtx2?: boolean;
|
|
34
|
+
/** The size of back buffer. By default, if not specified (800, 600). */
|
|
35
|
+
backBufferSize?: vec2;
|
|
36
|
+
/** The texture filtering to configure */
|
|
37
|
+
textureFiltering?: TextureSamplerFilteringPreset;
|
|
38
|
+
/** The texture color space to use by default. By default, it is {@link TextureColorSpace.SRGB}. */
|
|
39
|
+
textureColorSpace?: TextureColorSpace;
|
|
40
|
+
/**
|
|
41
|
+
* The HTMLCanvasElement to use for rendering.
|
|
42
|
+
* If null, a new canvas will be created and added to the document body.
|
|
43
|
+
*/
|
|
44
|
+
canvas?: HTMLCanvasElement;
|
|
45
|
+
/** Should back buffer use alpha. */
|
|
46
|
+
alpha?: boolean;
|
|
47
|
+
/** The preference when it comes to selecting GPU device. Only makes sense to set on multi-GPU devices. */
|
|
48
|
+
powerPreference?: PowerPreferenceType;
|
|
49
|
+
/**
|
|
50
|
+
* The rendering backend. Defaults to WebGL.
|
|
51
|
+
* WebGPU requires `Framework.initializeAsync()`; when `navigator.gpu` is missing or no device is available,
|
|
52
|
+
* the framework falls back to WebGL with a warning.
|
|
53
|
+
*/
|
|
54
|
+
renderingBackend?: RenderingBackend;
|
|
55
|
+
}
|
|
21
56
|
/** The framework interface. */
|
|
22
57
|
export interface IFramework extends IDisposable {
|
|
23
58
|
/**
|
|
@@ -71,10 +106,18 @@ export interface IFramework extends IDisposable {
|
|
|
71
106
|
* The mesh factory.
|
|
72
107
|
*/
|
|
73
108
|
readonly meshFactory: IMeshFactory;
|
|
109
|
+
/**
|
|
110
|
+
* The OBJ loader: `objLoader.loadAsync(path, blinnPhongDescriptor | subMesh => material)`.
|
|
111
|
+
*/
|
|
112
|
+
readonly objLoader: ObjLoader;
|
|
74
113
|
/**
|
|
75
114
|
* The material factory.
|
|
76
115
|
*/
|
|
77
116
|
readonly materialFactory: IMaterialFactory;
|
|
117
|
+
/**
|
|
118
|
+
* The ambient light factory.
|
|
119
|
+
*/
|
|
120
|
+
readonly lightsFactory: AmbientLightFactory;
|
|
78
121
|
/**
|
|
79
122
|
* The time manager.
|
|
80
123
|
*/
|
|
@@ -95,13 +138,9 @@ export interface IFramework extends IDisposable {
|
|
|
95
138
|
* Content can be loaded here.
|
|
96
139
|
*/
|
|
97
140
|
removeOnLoadContentListener(event: () => void): void;
|
|
98
|
-
/**
|
|
99
|
-
* Called when the framework is initialized.
|
|
100
|
-
*/
|
|
141
|
+
/** Called when the framework is initialized.*/
|
|
101
142
|
addOnInitializedListener(event: () => void): void;
|
|
102
|
-
/**
|
|
103
|
-
* Called when the framework is initialized.
|
|
104
|
-
*/
|
|
143
|
+
/** Called when the framework is initialized.*/
|
|
105
144
|
removeOnInitializedListener(event: () => void): void;
|
|
106
145
|
/**
|
|
107
146
|
* Called when framework is updated.
|
|
@@ -121,5 +160,10 @@ export interface IFramework extends IDisposable {
|
|
|
121
160
|
removeOnRenderListener(event: () => void): void;
|
|
122
161
|
/** Initializes the framework. */
|
|
123
162
|
initialize(): void;
|
|
163
|
+
/**
|
|
164
|
+
* Initializes the framework asynchronously and starts the event loop.
|
|
165
|
+
* Required for the WebGPU backend; for WebGL it behaves like {@link initialize}.
|
|
166
|
+
*/
|
|
167
|
+
initializeAsync(): Promise<void>;
|
|
124
168
|
}
|
|
125
169
|
//# sourceMappingURL=IFramework.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IFramework.d.ts","sourceRoot":"","sources":["../../src/api/IFramework.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAC,MAAM,iCAAiC,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wDAAwD,CAAC;AACrG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AAC9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAC,QAAQ,EAAC,MAAM,oBAAoB,CAAC;AAC5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"IFramework.d.ts","sourceRoot":"","sources":["../../src/api/IFramework.ts"],"names":[],"mappings":"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"}
|
package/dist/api/_export.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
export * from "./IFramework.js";
|
|
2
|
-
export * from "./IFrameworkConfiguration.js";
|
|
3
2
|
export * from "./rendering/texture/_export-texture.js";
|
|
4
3
|
export * from "./rendering/buffers/_export-buffers.js";
|
|
5
4
|
export * from "./data/_export.js";
|
|
@@ -22,6 +21,9 @@ export * from "./rendering/sampler/_export.js";
|
|
|
22
21
|
export * from "./utilities/_export.js";
|
|
23
22
|
export * from "./meshes/_export.js";
|
|
24
23
|
export * from "./material/_export.js";
|
|
24
|
+
export * from "./lights/_export.js";
|
|
25
|
+
export * from "./scene/Scene.js";
|
|
26
|
+
export * from "./scene/SceneMesh.js";
|
|
25
27
|
export * from "./input/_export.js";
|
|
26
28
|
export * from "./image/_export.js";
|
|
27
29
|
//# sourceMappingURL=_export.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_export.d.ts","sourceRoot":"","sources":["../../src/api/_export.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,
|
|
1
|
+
{"version":3,"file":"_export.d.ts","sourceRoot":"","sources":["../../src/api/_export.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,wCAAwC,CAAC;AACvD,cAAc,wCAAwC,CAAC;AACvD,cAAc,mBAAmB,CAAC;AAClC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,0DAA0D,CAAC;AACzE,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,sBAAsB,CAAC;AACrC,cAAc,mCAAmC,CAAC;AAClD,cAAc,qBAAqB,CAAC;AACpC,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAA;AAC9C,cAAc,wBAAwB,CAAA;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { vec2 } from "gl-matrix";
|
|
2
2
|
import type { ICameraFactory } from "./ICameraFactory.js";
|
|
3
|
+
import type { Scene } from "../scene/Scene.js";
|
|
3
4
|
import type { IFramework } from "../IFramework.js";
|
|
4
5
|
import type { IOrthographicCamera } from "./IOrthographicCamera.js";
|
|
5
6
|
import { OrbitCamera } from "./OrbitCamera.js";
|
|
6
|
-
import { PerspectiveCamera } from "./PerspectiveCamera.js";
|
|
7
|
+
import { PerspectiveCamera, type PerspectiveCameraDescriptor } from "./PerspectiveCamera.js";
|
|
7
8
|
/** The Camera Factory */
|
|
8
9
|
export declare class CameraFactory implements ICameraFactory {
|
|
9
10
|
private readonly _framework;
|
|
@@ -20,6 +21,6 @@ export declare class CameraFactory implements ICameraFactory {
|
|
|
20
21
|
/** @inheritDoc */
|
|
21
22
|
createOrbitCamera(fov?: number, aspectRatio?: number, near?: number, far?: number): OrbitCamera;
|
|
22
23
|
/** @inheritDoc */
|
|
23
|
-
createPerspectiveCamera(
|
|
24
|
+
createPerspectiveCamera(descriptor?: PerspectiveCameraDescriptor, scene?: Scene): PerspectiveCamera;
|
|
24
25
|
}
|
|
25
26
|
//# sourceMappingURL=CameraFactory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CameraFactory.d.ts","sourceRoot":"","sources":["../../../src/api/camera/CameraFactory.ts"],"names":[],"mappings":"AAAA,OAAQ,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAChC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpE,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAC,iBAAiB,EAAC,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"CameraFactory.d.ts","sourceRoot":"","sources":["../../../src/api/camera/CameraFactory.ts"],"names":[],"mappings":"AAAA,OAAQ,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAChC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpE,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAC,iBAAiB,EAAE,KAAK,2BAA2B,EAAC,MAAM,wBAAwB,CAAC;AAE3F,yBAAyB;AACzB,qBAAa,aAAc,YAAW,cAAc;IAQ7B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAN9C,MAAM,CAAC,cAAc,OAAwB;IAE7C;;;OAGG;gBACiC,UAAU,EAAE,UAAU;IAE1D,kBAAkB;IACX,+BAA+B,CAAC,MAAM,CAAC,EAAE,IAAI,GAAG,mBAAmB;IAa1E,kBAAkB;IACX,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,mBAAmB;IAMzI,kBAAkB;IACX,iBAAiB,CAAC,GAAG,SAAK,EAAE,WAAW,SAAI,EAAE,IAAI,SAAO,EAAE,GAAG,SAAM,GAAG,WAAW;IAKxF,kBAAkB;IACX,uBAAuB,CAAC,UAAU,CAAC,EAAE,2BAA2B,EAAE,KAAK,CAAC,EAAG,KAAK,GAAG,iBAAiB;CAO9G"}
|
|
@@ -28,6 +28,11 @@ export interface ICamera extends IDisposable {
|
|
|
28
28
|
* The view buffer.
|
|
29
29
|
*/
|
|
30
30
|
readonly viewBuffer: IUniformBuffer;
|
|
31
|
+
/**
|
|
32
|
+
* The world-space eye position buffer, std140 `vec3` (`[x, y, z, 0]`).
|
|
33
|
+
* Used by lit materials for specular highlights.
|
|
34
|
+
*/
|
|
35
|
+
readonly positionBuffer: IUniformBuffer;
|
|
31
36
|
/**
|
|
32
37
|
* Update the GPU buffers.
|
|
33
38
|
* This needs to be called when camera properties are changed.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ICamera.d.ts","sourceRoot":"","sources":["../../../src/api/camera/ICamera.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAC9B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAAC,QAAQ,EAAC,MAAM,qBAAqB,CAAC;AAE7C,4BAA4B;AAC5B,MAAM,WAAW,OAAQ,SAAQ,WAAW;IAExC;;OAEG;IACH,QAAQ,CAAC,gBAAgB,EAAE,IAAI,CAAC;IAEhC;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC;IAE1B;;OAEG;IACH,QAAQ,CAAC,oBAAoB,EAAE,IAAI,CAAC;IAEpC;;OAEG;IACH,QAAQ,CAAC,oBAAoB,EAAE,cAAc,CAAC;IAE9C;;OAEG;IACH,QAAQ,CAAC,gBAAgB,EAAE,cAAc,CAAC;IAE1C;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC;IAEpC;;;OAGG;IACH,aAAa,IAAI,IAAI,CAAC;IAEtB;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;CAEhC"}
|
|
1
|
+
{"version":3,"file":"ICamera.d.ts","sourceRoot":"","sources":["../../../src/api/camera/ICamera.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAC9B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAAC,QAAQ,EAAC,MAAM,qBAAqB,CAAC;AAE7C,4BAA4B;AAC5B,MAAM,WAAW,OAAQ,SAAQ,WAAW;IAExC;;OAEG;IACH,QAAQ,CAAC,gBAAgB,EAAE,IAAI,CAAC;IAEhC;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC;IAE1B;;OAEG;IACH,QAAQ,CAAC,oBAAoB,EAAE,IAAI,CAAC;IAEpC;;OAEG;IACH,QAAQ,CAAC,oBAAoB,EAAE,cAAc,CAAC;IAE9C;;OAEG;IACH,QAAQ,CAAC,gBAAgB,EAAE,cAAc,CAAC;IAE1C;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC;IAEpC;;;OAGG;IACH,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAExC;;;OAGG;IACH,aAAa,IAAI,IAAI,CAAC;IAEtB;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;CAEhC"}
|
|
@@ -1,20 +1,19 @@
|
|
|
1
1
|
import type { IOrthographicCamera } from "./IOrthographicCamera.js";
|
|
2
2
|
import { vec2 } from "gl-matrix";
|
|
3
3
|
import { OrbitCamera } from "./OrbitCamera.js";
|
|
4
|
-
import { PerspectiveCamera } from "./PerspectiveCamera.js";
|
|
4
|
+
import { PerspectiveCamera, type PerspectiveCameraDescriptor } from "./PerspectiveCamera.js";
|
|
5
|
+
import type { Scene } from "../scene/Scene.js";
|
|
5
6
|
/**
|
|
6
7
|
* The camera factory.
|
|
7
8
|
*/
|
|
8
9
|
export interface ICameraFactory {
|
|
9
10
|
/**
|
|
10
11
|
* Creates a new perspective camera.
|
|
11
|
-
* @param
|
|
12
|
-
* @param
|
|
13
|
-
* @param near The near plane. By default, 0.01.
|
|
14
|
-
* @param far The far plane. By default, 100.
|
|
12
|
+
* @param descriptor The optional descriptor; omitted fields use the defaults documented on {@link PerspectiveCameraDescriptor}.
|
|
13
|
+
* @param scene The optional scene; the camera becomes its `scene.camera`.
|
|
15
14
|
* @return The perspective camera.
|
|
16
15
|
*/
|
|
17
|
-
createPerspectiveCamera(
|
|
16
|
+
createPerspectiveCamera(descriptor?: PerspectiveCameraDescriptor, scene?: Scene): PerspectiveCamera;
|
|
18
17
|
/**
|
|
19
18
|
* Creates a new orthographic camera which is suitable for 2D games, or for UI rendering.
|
|
20
19
|
* Also, suitable when orthographic projection is required, such as shadow mapping.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ICameraFactory.d.ts","sourceRoot":"","sources":["../../../src/api/camera/ICameraFactory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAC,iBAAiB,EAAC,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"ICameraFactory.d.ts","sourceRoot":"","sources":["../../../src/api/camera/ICameraFactory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAC,iBAAiB,EAAE,KAAK,2BAA2B,EAAC,MAAM,wBAAwB,CAAC;AAC3F,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,mBAAmB,CAAC;AAE7C;;GAEG;AACH,MAAM,WAAW,cAAc;IAE3B;;;;;OAKG;IACH,uBAAuB,CAAC,UAAU,CAAC,EAAE,2BAA2B,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,iBAAiB,CAAC;IAEpG;;;;;;;;;;OAUG;IACH,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,mBAAmB,CAAC;IAEnI;;;;OAIG;IACH,+BAA+B,CAAC,MAAM,CAAC,EAAE,IAAI,GAAG,mBAAmB,CAAC;IAEpE;;;;;;;OAOG;IACH,iBAAiB,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;CAgBnG"}
|
|
@@ -29,6 +29,9 @@ export declare class OrthographicCamera implements IOrthographicCamera {
|
|
|
29
29
|
private _projectionBuffer;
|
|
30
30
|
private _viewBuffer;
|
|
31
31
|
private _projectionViewBuffer;
|
|
32
|
+
private _positionBuffer;
|
|
33
|
+
/** std140 vec3 world-space eye, padded to 4 floats. */
|
|
34
|
+
private readonly _positionData;
|
|
32
35
|
/**
|
|
33
36
|
*
|
|
34
37
|
* @param framework
|
|
@@ -80,6 +83,10 @@ export declare class OrthographicCamera implements IOrthographicCamera {
|
|
|
80
83
|
get projectionViewBuffer(): IUniformBuffer;
|
|
81
84
|
/** @inheritDoc */
|
|
82
85
|
get viewBuffer(): IUniformBuffer;
|
|
86
|
+
/** @inheritDoc */
|
|
87
|
+
get positionBuffer(): IUniformBuffer;
|
|
88
|
+
/** Writes the world-space eye into the std140 position data (no z flip: the look-at uses the eye as is). */
|
|
89
|
+
private _updatePositionData;
|
|
83
90
|
/**
|
|
84
91
|
* Updates the camera matrices.
|
|
85
92
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OrthographicCamera.d.ts","sourceRoot":"","sources":["../../../src/api/camera/OrthographicCamera.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAC,IAAI,EAAE,IAAI,EAAC,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAE7E,OAAO,EAAC,QAAQ,EAAC,MAAM,qBAAqB,CAAC;AAE7C;;GAEG;AACH,qBAAa,kBAAmB,YAAW,mBAAmB;IAE1D,MAAM,CAAC,SAAS,OAA4B;IAE5C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IAExC,iBAAiB;IACjB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IAEvC,OAAO,CAAC,IAAI,CAAO;IACnB,OAAO,CAAC,OAAO,CAAO;IAEtB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,IAAI,CAAS;IAErB,SAAS,CAAC,QAAQ,UAAQ;IAE1B,SAAS,CAAC,iBAAiB,OAAiB;IAC5C,SAAS,CAAC,WAAW,OAAiB;IACtC,SAAS,CAAC,qBAAqB,OAAiB;IAEhD,SAAgB,QAAQ,OAAiB;IACzC,SAAgB,MAAM,OAAiB;IACvC,SAAgB,SAAS,OAAiB;IAE1C,OAAO,CAAC,iBAAiB,CAAyB;IAClD,OAAO,CAAC,WAAW,CAAyB;IAC5C,OAAO,CAAC,qBAAqB,CAAyB;
|
|
1
|
+
{"version":3,"file":"OrthographicCamera.d.ts","sourceRoot":"","sources":["../../../src/api/camera/OrthographicCamera.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,26 @@ import { mat4, vec3 } from "gl-matrix";
|
|
|
3
3
|
import type { IFramework } from "../IFramework.js";
|
|
4
4
|
import type { IUniformBuffer } from "../rendering/buffers/IUniformBuffer.js";
|
|
5
5
|
import { GameTime } from "../time/GameTime.js";
|
|
6
|
+
import type { Scene } from "../scene/Scene.js";
|
|
7
|
+
/**
|
|
8
|
+
* The descriptor for a perspective camera. Every field is optional.
|
|
9
|
+
*/
|
|
10
|
+
export interface PerspectiveCameraDescriptor {
|
|
11
|
+
/** The vertical field of view in degrees. By default, 60. */
|
|
12
|
+
fov?: number;
|
|
13
|
+
/** The aspect ratio (width / height). By default, 1. */
|
|
14
|
+
aspectRatio?: number;
|
|
15
|
+
/** The near plane. By default, 0.01. */
|
|
16
|
+
near?: number;
|
|
17
|
+
/** The far plane. By default, 100. */
|
|
18
|
+
far?: number;
|
|
19
|
+
/** The eye position. Copied. By default, (0, 0, 3). */
|
|
20
|
+
eye?: vec3;
|
|
21
|
+
/** The point the camera looks at. Copied. By default, the origin. */
|
|
22
|
+
target?: vec3;
|
|
23
|
+
/** The up vector. Copied. By default, (0, 1, 0). */
|
|
24
|
+
up?: vec3;
|
|
25
|
+
}
|
|
6
26
|
/**
|
|
7
27
|
* The perspective camera.
|
|
8
28
|
*/
|
|
@@ -18,14 +38,13 @@ export declare class PerspectiveCamera implements ICamera {
|
|
|
18
38
|
private _viewBuffer;
|
|
19
39
|
private _projectionBuffer;
|
|
20
40
|
/**
|
|
21
|
-
* The constructor.
|
|
41
|
+
* The constructor. Call `initialize()` before use (the camera factory does).
|
|
22
42
|
* @param framework The framework.
|
|
23
|
-
* @param
|
|
24
|
-
* @
|
|
25
|
-
* @param
|
|
26
|
-
* @param farPlane The far plane.
|
|
43
|
+
* @param descriptor The optional descriptor; omitted fields use the defaults documented on {@link PerspectiveCameraDescriptor}.
|
|
44
|
+
* `fov` is in degrees; {@link fieldOfView} holds it in radians. Vectors are copied.
|
|
45
|
+
* @param scene The optional scene; the camera assigns itself as `scene.camera`.
|
|
27
46
|
*/
|
|
28
|
-
constructor(framework: IFramework,
|
|
47
|
+
constructor(framework: IFramework, descriptor?: PerspectiveCameraDescriptor, scene?: Scene);
|
|
29
48
|
/**
|
|
30
49
|
* The projection matrix.
|
|
31
50
|
*/
|
|
@@ -94,6 +113,11 @@ export declare class PerspectiveCamera implements ICamera {
|
|
|
94
113
|
* Initialize the camera.
|
|
95
114
|
*/
|
|
96
115
|
initialize(): void;
|
|
116
|
+
/**
|
|
117
|
+
* The eye in world space, as used by the view matrix: z is flipped for the right-handed look-at.
|
|
118
|
+
* This is what {@link positionBuffer} holds, std140 `vec3` (padded to 16 bytes).
|
|
119
|
+
*/
|
|
120
|
+
private _worldEye;
|
|
97
121
|
/**
|
|
98
122
|
* Updates the camera matrices.
|
|
99
123
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PerspectiveCamera.d.ts","sourceRoot":"","sources":["../../../src/api/camera/PerspectiveCamera.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAC,IAAI,EAAE,IAAI,EAAC,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAGnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAAC,QAAQ,EAAC,MAAM,qBAAqB,CAAC;AAE7C;;GAEG;AACH,qBAAa,iBAAkB,YAAW,OAAO;IAE7C,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAC1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiB;IAE3C,OAAO,CAAC,iBAAiB,CAAiB;IAC1C,OAAO,CAAC,WAAW,CAAiB;IACpC,OAAO,CAAC,qBAAqB,CAAiB;IAE9C,OAAO,CAAC,UAAU,CAAiB;IAEnC,OAAO,CAAC,eAAe,CAAyB;IAChD,OAAO,CAAC,qBAAqB,CAAyB;IACtD,OAAO,CAAC,WAAW,CAAyB;IAC5C,OAAO,CAAC,iBAAiB,CAAyB;IAElD
|
|
1
|
+
{"version":3,"file":"PerspectiveCamera.d.ts","sourceRoot":"","sources":["../../../src/api/camera/PerspectiveCamera.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type IShaderModule, type IContentManager, type IShaderModuleLoader, type ITexture2D, type IFramework, TextureDescriptor, ContentConfig } from "../index.js";
|
|
1
|
+
import { type IShaderModule, type IContentManager, type IShaderModuleLoader, type ITexture2D, type IFramework, TextureDescriptor, ContentConfig, type IMesh, type IRenderableMesh, type GeometryFormat, type ICamera } from "../index.js";
|
|
2
2
|
import type { IKtx2Texture } from "ris-ktx2";
|
|
3
3
|
/**
|
|
4
4
|
* The content manager.
|
|
@@ -17,11 +17,24 @@ export declare class ContentManager implements IContentManager {
|
|
|
17
17
|
constructor(_framework: IFramework, shaderModuleLoader: IShaderModuleLoader);
|
|
18
18
|
/** @inheritDoc */
|
|
19
19
|
loadKtx2Async(path: string, contentConfig?: ContentConfig): Promise<IKtx2Texture>;
|
|
20
|
+
/**
|
|
21
|
+
* Disposes the cached shader modules (their GL programs) and forgets cached KTX2 data.
|
|
22
|
+
* Called from `Framework.dispose()`.
|
|
23
|
+
*/
|
|
24
|
+
dispose(): void;
|
|
20
25
|
/** @inheritDoc */
|
|
21
|
-
loadShaderModule(shaderModuleId: string
|
|
26
|
+
loadShaderModule(shaderModuleId: string, keyValueDictionary?: {
|
|
27
|
+
[id: string]: number;
|
|
28
|
+
}): IShaderModule;
|
|
22
29
|
/** @inheritDoc */
|
|
23
30
|
loadTexture2DAsync(path: string, textureDescriptor?: TextureDescriptor, contentConfig?: ContentConfig): Promise<ITexture2D>;
|
|
24
31
|
/** @inheritDoc */
|
|
25
32
|
loadTexture2DFromPixels(width: number, height: number, pixels: ArrayBuffer): ITexture2D;
|
|
33
|
+
/** @inheritDoc */
|
|
34
|
+
loadMeshAsync(path: string, geometryFormat: GeometryFormat): Promise<IMesh>;
|
|
35
|
+
/** @inheritDoc */
|
|
36
|
+
loadUnlitMeshAsync(path: string, camera?: ICamera): Promise<IRenderableMesh>;
|
|
37
|
+
/** @inheritDoc */
|
|
38
|
+
loadBlinnPhongMeshAsync(path: string, camera: ICamera): Promise<IRenderableMesh>;
|
|
26
39
|
}
|
|
27
40
|
//# sourceMappingURL=ContentManager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContentManager.d.ts","sourceRoot":"","sources":["../../../src/api/content/ContentManager.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,UAAU,EACf,KAAK,UAAU,
|
|
1
|
+
{"version":3,"file":"ContentManager.d.ts","sourceRoot":"","sources":["../../../src/api/content/ContentManager.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,iBAAiB,EAEjB,aAAa,EAEb,KAAK,KAAK,EACV,KAAK,eAAe,EACpB,KAAK,cAAc,EAEnB,KAAK,OAAO,EAEf,MAAM,aAAa,CAAC;AAIrB,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,UAAU,CAAC;AAI3C;;;GAGG;AACH,qBAAa,cAAe,YAAW,eAAe;IAU/B,OAAO,CAAC,QAAQ,CAAC,UAAU;aAA8B,kBAAkB,EAAE,mBAAmB;IARnH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAClD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAuC;IAEzE;;;;OAIG;gBACiC,UAAU,EAAE,UAAU,EAAkB,kBAAkB,EAAE,mBAAmB;IAGnH,kBAAkB;IACL,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAiB9F;;;OAGG;IACI,OAAO,IAAI,IAAI;IAQtB,kBAAkB;IACX,gBAAgB,CAAC,cAAc,EAAE,MAAM,EAAE,kBAAkB,CAAC,EAAE;QAAE,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,aAAa;IAI7G,kBAAkB;IACL,kBAAkB,CAAC,IAAI,EAAE,MAAM,EACZ,iBAAiB,CAAC,EAAE,iBAAiB,EACrC,aAAa,CAAC,EAAE,aAAa,GAC1D,OAAO,CAAC,UAAU,CAAC;IAmCtB,kBAAkB;IACX,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,UAAU;IAK9F,kBAAkB;IACL,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC;IAMxF,kBAAkB;IACX,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC;IASnF,kBAAkB;IACX,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC;CAS1F"}
|