ris-framework 0.1.0-dev.6 → 0.1.0-dev.9
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 +4 -0
- package/LICENSE +202 -21
- package/LICENSES/Apache-2.0.txt +202 -0
- package/NOTICE +2 -0
- package/README.md +46 -47
- package/THIRD_PARTY_NOTICES.md +27 -0
- package/dist/Framework.d.ts +81 -0
- package/dist/Framework.d.ts.map +1 -0
- package/dist/api/FrameworkConfiguration.d.ts +23 -0
- package/dist/api/FrameworkConfiguration.d.ts.map +1 -0
- package/dist/api/IFramework.d.ts +125 -0
- package/dist/api/IFramework.d.ts.map +1 -0
- package/dist/api/IFrameworkConfiguration.d.ts +25 -0
- package/dist/api/IFrameworkConfiguration.d.ts.map +1 -0
- package/dist/api/_export.d.ts +27 -0
- package/dist/api/_export.d.ts.map +1 -0
- package/dist/api/camera/CameraFactory.d.ts +25 -0
- package/dist/api/camera/CameraFactory.d.ts.map +1 -0
- package/dist/api/camera/ICamera.d.ts +43 -0
- package/dist/api/camera/ICamera.d.ts.map +1 -0
- package/dist/api/camera/ICameraFactory.d.ts +46 -0
- package/dist/api/camera/ICameraFactory.d.ts.map +1 -0
- package/dist/api/camera/IOrthographicCamera.d.ts +31 -0
- package/dist/api/camera/IOrthographicCamera.d.ts.map +1 -0
- package/dist/api/camera/OrbitCamera.d.ts +120 -0
- package/dist/api/camera/OrbitCamera.d.ts.map +1 -0
- package/dist/api/camera/OrthographicCamera.d.ts +96 -0
- package/dist/api/camera/OrthographicCamera.d.ts.map +1 -0
- package/dist/api/camera/PerspectiveCamera.d.ts +108 -0
- package/dist/api/camera/PerspectiveCamera.d.ts.map +1 -0
- package/dist/api/camera/_export.d.ts +8 -0
- package/dist/api/camera/_export.d.ts.map +1 -0
- package/dist/api/content/ContentConfig.d.ts +11 -0
- package/dist/api/content/ContentConfig.d.ts.map +1 -0
- package/dist/api/content/ContentManager.d.ts +27 -0
- package/dist/api/content/ContentManager.d.ts.map +1 -0
- package/dist/api/content/IContent.d.ts +8 -0
- package/dist/api/content/IContent.d.ts.map +1 -0
- package/dist/api/content/IContentManager.d.ts +37 -0
- package/dist/api/content/IContentManager.d.ts.map +1 -0
- package/dist/api/content/IContentModule.d.ts +58 -0
- package/dist/api/content/IContentModule.d.ts.map +1 -0
- package/dist/api/content/ShaderModuleContent.d.ts +14 -0
- package/dist/api/content/ShaderModuleContent.d.ts.map +1 -0
- package/dist/api/content/_export-content.d.ts +5 -0
- package/dist/api/content/_export-content.d.ts.map +1 -0
- package/dist/api/core/IDisposable.d.ts +10 -0
- package/dist/api/core/IDisposable.d.ts.map +1 -0
- package/dist/api/core/_export-core.d.ts +2 -0
- package/dist/api/core/_export-core.d.ts.map +1 -0
- package/dist/api/data/Color.d.ts +119 -0
- package/dist/api/data/Color.d.ts.map +1 -0
- package/dist/api/data/Rect.d.ts +61 -0
- package/dist/api/data/Rect.d.ts.map +1 -0
- package/dist/api/data/State.d.ts +11 -0
- package/dist/api/data/State.d.ts.map +1 -0
- package/dist/api/data/_export.d.ts +4 -0
- package/dist/api/data/_export.d.ts.map +1 -0
- package/dist/api/geometry/BaseGeometry.d.ts +44 -0
- package/dist/api/geometry/BaseGeometry.d.ts.map +1 -0
- package/dist/api/geometry/GeometryBuilder.d.ts +11 -0
- package/dist/api/geometry/GeometryBuilder.d.ts.map +1 -0
- package/dist/api/geometry/GeometryFormat.d.ts +34 -0
- package/dist/api/geometry/GeometryFormat.d.ts.map +1 -0
- package/dist/api/geometry/IGeometry.d.ts +54 -0
- package/dist/api/geometry/IGeometry.d.ts.map +1 -0
- package/dist/api/geometry/IGeometryBuilder.d.ts +15 -0
- package/dist/api/geometry/IGeometryBuilder.d.ts.map +1 -0
- package/dist/api/geometry/VertexFormat.d.ts +14 -0
- package/dist/api/geometry/VertexFormat.d.ts.map +1 -0
- package/dist/api/geometry/_export-geometry.d.ts +5 -0
- package/dist/api/geometry/_export-geometry.d.ts.map +1 -0
- package/dist/api/image/CpuImageProcessor.d.ts +16 -0
- package/dist/api/image/CpuImageProcessor.d.ts.map +1 -0
- package/dist/api/image/IImageProcessor.d.ts +26 -0
- package/dist/api/image/IImageProcessor.d.ts.map +1 -0
- package/dist/api/image/RawImageData.d.ts +34 -0
- package/dist/api/image/RawImageData.d.ts.map +1 -0
- package/dist/api/image/_export.d.ts +4 -0
- package/dist/api/image/_export.d.ts.map +1 -0
- package/dist/api/index.d.ts +2 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/input/IInputManager.d.ts +53 -0
- package/dist/api/input/IInputManager.d.ts.map +1 -0
- package/dist/api/input/InputDeviceType.d.ts +18 -0
- package/dist/api/input/InputDeviceType.d.ts.map +1 -0
- package/dist/api/input/InputManager.d.ts +73 -0
- package/dist/api/input/InputManager.d.ts.map +1 -0
- package/dist/api/input/Key.d.ts +36 -0
- package/dist/api/input/Key.d.ts.map +1 -0
- package/dist/api/input/KeyboardState.d.ts +37 -0
- package/dist/api/input/KeyboardState.d.ts.map +1 -0
- package/dist/api/input/_export.d.ts +14 -0
- package/dist/api/input/_export.d.ts.map +1 -0
- package/dist/api/input/gamepad/Button.d.ts +22 -0
- package/dist/api/input/gamepad/Button.d.ts.map +1 -0
- package/dist/api/input/gamepad/GamePadState.d.ts +48 -0
- package/dist/api/input/gamepad/GamePadState.d.ts.map +1 -0
- package/dist/api/input/gamepad/GamePadThumbSticks.d.ts +17 -0
- package/dist/api/input/gamepad/GamePadThumbSticks.d.ts.map +1 -0
- package/dist/api/input/mouse/MouseButton.d.ts +10 -0
- package/dist/api/input/mouse/MouseButton.d.ts.map +1 -0
- package/dist/api/input/mouse/MouseState.d.ts +52 -0
- package/dist/api/input/mouse/MouseState.d.ts.map +1 -0
- package/dist/api/input/touch/TouchCollection.d.ts +79 -0
- package/dist/api/input/touch/TouchCollection.d.ts.map +1 -0
- package/dist/api/input/touch/TouchLocation.d.ts +80 -0
- package/dist/api/input/touch/TouchLocation.d.ts.map +1 -0
- package/dist/api/input/touch/TouchLocationState.d.ts +16 -0
- package/dist/api/input/touch/TouchLocationState.d.ts.map +1 -0
- package/dist/api/input/touch/TouchPanelCapabilities.d.ts +24 -0
- package/dist/api/input/touch/TouchPanelCapabilities.d.ts.map +1 -0
- package/dist/api/loaders/IImageLoader.d.ts +20 -0
- package/dist/api/loaders/IImageLoader.d.ts.map +1 -0
- package/dist/api/loaders/ImageLoader.d.ts +36 -0
- package/dist/api/loaders/ImageLoader.d.ts.map +1 -0
- package/dist/api/loaders/_export.d.ts +3 -0
- package/dist/api/loaders/_export.d.ts.map +1 -0
- package/dist/api/material/IMaterial.d.ts +35 -0
- package/dist/api/material/IMaterial.d.ts.map +1 -0
- package/dist/api/material/IMaterialFactory.d.ts +19 -0
- package/dist/api/material/IMaterialFactory.d.ts.map +1 -0
- package/dist/api/material/InspectTextureMipsMaterial.d.ts +58 -0
- package/dist/api/material/InspectTextureMipsMaterial.d.ts.map +1 -0
- package/dist/api/material/MaterialFactory.d.ts +20 -0
- package/dist/api/material/MaterialFactory.d.ts.map +1 -0
- package/dist/api/material/UnlitMaterial.d.ts +76 -0
- package/dist/api/material/UnlitMaterial.d.ts.map +1 -0
- package/dist/api/material/_export.d.ts +6 -0
- package/dist/api/material/_export.d.ts.map +1 -0
- package/dist/api/meshes/IMesh.d.ts +17 -0
- package/dist/api/meshes/IMesh.d.ts.map +1 -0
- package/dist/api/meshes/IMeshFactory.d.ts +25 -0
- package/dist/api/meshes/IMeshFactory.d.ts.map +1 -0
- package/dist/api/meshes/Mesh.d.ts +93 -0
- package/dist/api/meshes/Mesh.d.ts.map +1 -0
- package/dist/api/meshes/MeshFactory.d.ts +23 -0
- package/dist/api/meshes/MeshFactory.d.ts.map +1 -0
- package/dist/api/meshes/MeshParameters.d.ts +22 -0
- package/dist/api/meshes/MeshParameters.d.ts.map +1 -0
- package/dist/api/meshes/QuadMesh.d.ts +33 -0
- package/dist/api/meshes/QuadMesh.d.ts.map +1 -0
- package/dist/api/meshes/_export.d.ts +7 -0
- package/dist/api/meshes/_export.d.ts.map +1 -0
- package/dist/api/rendering/IGPUInfo.d.ts +35 -0
- package/dist/api/rendering/IGPUInfo.d.ts.map +1 -0
- package/dist/api/rendering/IGraphicsDevice.d.ts +88 -0
- package/dist/api/rendering/IGraphicsDevice.d.ts.map +1 -0
- package/dist/api/rendering/IGraphicsDeviceFeatures.d.ts +27 -0
- package/dist/api/rendering/IGraphicsDeviceFeatures.d.ts.map +1 -0
- package/dist/api/rendering/IRenderer.d.ts +71 -0
- package/dist/api/rendering/IRenderer.d.ts.map +1 -0
- package/dist/api/rendering/PowerPreference.d.ts +13 -0
- package/dist/api/rendering/PowerPreference.d.ts.map +1 -0
- package/dist/api/rendering/RenderingBackend.d.ts +18 -0
- package/dist/api/rendering/RenderingBackend.d.ts.map +1 -0
- package/dist/api/rendering/_export-rendering.d.ts +7 -0
- package/dist/api/rendering/_export-rendering.d.ts.map +1 -0
- package/dist/api/rendering/blending/IBlendState.d.ts +16 -0
- package/dist/api/rendering/blending/IBlendState.d.ts.map +1 -0
- package/dist/api/rendering/blending/_export.d.ts +2 -0
- package/dist/api/rendering/blending/_export.d.ts.map +1 -0
- package/dist/api/rendering/buffers/BufferUsage.d.ts +57 -0
- package/dist/api/rendering/buffers/BufferUsage.d.ts.map +1 -0
- package/dist/api/rendering/buffers/IBuffer.d.ts +20 -0
- package/dist/api/rendering/buffers/IBuffer.d.ts.map +1 -0
- package/dist/api/rendering/buffers/IBufferFactory.d.ts +34 -0
- package/dist/api/rendering/buffers/IBufferFactory.d.ts.map +1 -0
- package/dist/api/rendering/buffers/IIndexBuffer.d.ts +31 -0
- package/dist/api/rendering/buffers/IIndexBuffer.d.ts.map +1 -0
- package/dist/api/rendering/buffers/IUniformBuffer.d.ts +18 -0
- package/dist/api/rendering/buffers/IUniformBuffer.d.ts.map +1 -0
- package/dist/api/rendering/buffers/IVertexBuffer.d.ts +26 -0
- package/dist/api/rendering/buffers/IVertexBuffer.d.ts.map +1 -0
- package/dist/api/rendering/buffers/IVertexBufferLayout.d.ts +23 -0
- package/dist/api/rendering/buffers/IVertexBufferLayout.d.ts.map +1 -0
- package/dist/api/rendering/buffers/IndexBufferType.d.ts +14 -0
- package/dist/api/rendering/buffers/IndexBufferType.d.ts.map +1 -0
- package/dist/api/rendering/buffers/VertexAttribute.d.ts +22 -0
- package/dist/api/rendering/buffers/VertexAttribute.d.ts.map +1 -0
- package/dist/api/rendering/buffers/VertexStepMode.d.ts +14 -0
- package/dist/api/rendering/buffers/VertexStepMode.d.ts.map +1 -0
- package/dist/api/rendering/buffers/_export-buffers.d.ts +11 -0
- package/dist/api/rendering/buffers/_export-buffers.d.ts.map +1 -0
- package/dist/api/rendering/enums.d.ts +18 -0
- package/dist/api/rendering/enums.d.ts.map +1 -0
- package/dist/api/rendering/primitive/CullMode.d.ts +18 -0
- package/dist/api/rendering/primitive/CullMode.d.ts.map +1 -0
- package/dist/api/rendering/primitive/FrontFace.d.ts +14 -0
- package/dist/api/rendering/primitive/FrontFace.d.ts.map +1 -0
- package/dist/api/rendering/primitive/IPrimitiveState.d.ts +22 -0
- package/dist/api/rendering/primitive/IPrimitiveState.d.ts.map +1 -0
- package/dist/api/rendering/primitive/PrimitiveStateDescriptor.d.ts +24 -0
- package/dist/api/rendering/primitive/PrimitiveStateDescriptor.d.ts.map +1 -0
- package/dist/api/rendering/primitive/PrimitiveTopology.d.ts +26 -0
- package/dist/api/rendering/primitive/PrimitiveTopology.d.ts.map +1 -0
- package/dist/api/rendering/primitive/_export.d.ts +6 -0
- package/dist/api/rendering/primitive/_export.d.ts.map +1 -0
- package/dist/api/rendering/render-pipelines/IInspectTextureMipsRenderPipeline.d.ts +33 -0
- package/dist/api/rendering/render-pipelines/IInspectTextureMipsRenderPipeline.d.ts.map +1 -0
- package/dist/api/rendering/render-pipelines/IMainRenderTargetRenderPipeline.d.ts +18 -0
- package/dist/api/rendering/render-pipelines/IMainRenderTargetRenderPipeline.d.ts.map +1 -0
- package/dist/api/rendering/render-pipelines/IRenderPipeline.d.ts +39 -0
- package/dist/api/rendering/render-pipelines/IRenderPipeline.d.ts.map +1 -0
- package/dist/api/rendering/render-pipelines/IRenderPipelineFactory.d.ts +42 -0
- package/dist/api/rendering/render-pipelines/IRenderPipelineFactory.d.ts.map +1 -0
- package/dist/api/rendering/render-pipelines/ISpriteRenderPipeline.d.ts +22 -0
- package/dist/api/rendering/render-pipelines/ISpriteRenderPipeline.d.ts.map +1 -0
- package/dist/api/rendering/render-pipelines/IUnlitRenderPipeline.d.ts +33 -0
- package/dist/api/rendering/render-pipelines/IUnlitRenderPipeline.d.ts.map +1 -0
- package/dist/api/rendering/render-pipelines/_export-render-pipelines.d.ts +7 -0
- package/dist/api/rendering/render-pipelines/_export-render-pipelines.d.ts.map +1 -0
- package/dist/api/rendering/renderer-interface.d.ts +81 -0
- package/dist/api/rendering/renderer-interface.d.ts.map +1 -0
- package/dist/api/rendering/rendering-limits.d.ts +16 -0
- package/dist/api/rendering/rendering-limits.d.ts.map +1 -0
- package/dist/api/rendering/renderpass/IRenderPass.d.ts +15 -0
- package/dist/api/rendering/renderpass/IRenderPass.d.ts.map +1 -0
- package/dist/api/rendering/renderpass/LoadAction.d.ts +33 -0
- package/dist/api/rendering/renderpass/LoadAction.d.ts.map +1 -0
- package/dist/api/rendering/renderpass/RenderPassColorAttachment.d.ts +53 -0
- package/dist/api/rendering/renderpass/RenderPassColorAttachment.d.ts.map +1 -0
- package/dist/api/rendering/renderpass/RenderPassDepthStencilAttachment.d.ts +56 -0
- package/dist/api/rendering/renderpass/RenderPassDepthStencilAttachment.d.ts.map +1 -0
- package/dist/api/rendering/renderpass/RenderPassDescriptor.d.ts +22 -0
- package/dist/api/rendering/renderpass/RenderPassDescriptor.d.ts.map +1 -0
- package/dist/api/rendering/renderpass/StoreAction.d.ts +24 -0
- package/dist/api/rendering/renderpass/StoreAction.d.ts.map +1 -0
- package/dist/api/rendering/renderpass/_export.d.ts +7 -0
- package/dist/api/rendering/renderpass/_export.d.ts.map +1 -0
- package/dist/api/rendering/sampler/ISampler.d.ts +43 -0
- package/dist/api/rendering/sampler/ISampler.d.ts.map +1 -0
- package/dist/api/rendering/sampler/MipMapSamplerFilter.d.ts +18 -0
- package/dist/api/rendering/sampler/MipMapSamplerFilter.d.ts.map +1 -0
- package/dist/api/rendering/sampler/SamplerAddressMode.d.ts +24 -0
- package/dist/api/rendering/sampler/SamplerAddressMode.d.ts.map +1 -0
- package/dist/api/rendering/sampler/SamplerDescriptor.d.ts +40 -0
- package/dist/api/rendering/sampler/SamplerDescriptor.d.ts.map +1 -0
- package/dist/api/rendering/sampler/SamplerFilter.d.ts +14 -0
- package/dist/api/rendering/sampler/SamplerFilter.d.ts.map +1 -0
- package/dist/api/rendering/sampler/_export.d.ts +6 -0
- package/dist/api/rendering/sampler/_export.d.ts.map +1 -0
- package/dist/api/rendering/sampler/sampler-enums.d.ts +15 -0
- package/dist/api/rendering/sampler/sampler-enums.d.ts.map +1 -0
- package/dist/api/rendering/swapchain/ISwapChain.d.ts +29 -0
- package/dist/api/rendering/swapchain/ISwapChain.d.ts.map +1 -0
- package/dist/api/rendering/swapchain/SurfacePresentMode.d.ts +23 -0
- package/dist/api/rendering/swapchain/SurfacePresentMode.d.ts.map +1 -0
- package/dist/api/rendering/swapchain/SwapChainDescriptor.d.ts +20 -0
- package/dist/api/rendering/swapchain/SwapChainDescriptor.d.ts.map +1 -0
- package/dist/api/rendering/swapchain/_export.d.ts +4 -0
- package/dist/api/rendering/swapchain/_export.d.ts.map +1 -0
- package/dist/api/rendering/texture/ITexture2D.d.ts +83 -0
- package/dist/api/rendering/texture/ITexture2D.d.ts.map +1 -0
- package/dist/api/rendering/texture/ITextureFactory.d.ts +42 -0
- package/dist/api/rendering/texture/ITextureFactory.d.ts.map +1 -0
- package/dist/api/rendering/texture/ITextureView.d.ts +17 -0
- package/dist/api/rendering/texture/ITextureView.d.ts.map +1 -0
- package/dist/api/rendering/texture/TextureDescriptor.d.ts +42 -0
- package/dist/api/rendering/texture/TextureDescriptor.d.ts.map +1 -0
- package/dist/api/rendering/texture/TextureFormat.d.ts +54 -0
- package/dist/api/rendering/texture/TextureFormat.d.ts.map +1 -0
- package/dist/api/rendering/texture/TextureUsage.d.ts +42 -0
- package/dist/api/rendering/texture/TextureUsage.d.ts.map +1 -0
- package/dist/api/rendering/texture/TextureUtilities.d.ts +54 -0
- package/dist/api/rendering/texture/TextureUtilities.d.ts.map +1 -0
- package/dist/api/rendering/texture/TextureViewDescriptor.d.ts +22 -0
- package/dist/api/rendering/texture/TextureViewDescriptor.d.ts.map +1 -0
- package/dist/api/rendering/texture/TextureViewDimension.d.ts +17 -0
- package/dist/api/rendering/texture/TextureViewDimension.d.ts.map +1 -0
- package/dist/api/rendering/texture/_export-texture.d.ts +10 -0
- package/dist/api/rendering/texture/_export-texture.d.ts.map +1 -0
- package/dist/api/shader/IShaderModule.d.ts +21 -0
- package/dist/api/shader/IShaderModule.d.ts.map +1 -0
- package/dist/api/shader/IShaderModuleLoader.d.ts +13 -0
- package/dist/api/shader/IShaderModuleLoader.d.ts.map +1 -0
- package/dist/api/shader/ShaderStage.d.ts +10 -0
- package/dist/api/shader/ShaderStage.d.ts.map +1 -0
- package/dist/api/shader/_export-shader.d.ts +4 -0
- package/dist/api/shader/_export-shader.d.ts.map +1 -0
- package/dist/api/shader/shader-loader.d.ts +12 -0
- package/dist/api/shader/shader-loader.d.ts.map +1 -0
- package/dist/api/sprites/ISpriteBatch.d.ts +114 -0
- package/dist/api/sprites/ISpriteBatch.d.ts.map +1 -0
- package/dist/api/sprites/SpriteBatch.d.ts +50 -0
- package/dist/api/sprites/SpriteBatch.d.ts.map +1 -0
- package/dist/api/sprites/SpriteBatchDrawable.d.ts +57 -0
- package/dist/api/sprites/SpriteBatchDrawable.d.ts.map +1 -0
- package/dist/api/sprites/SpriteBatchMesh.d.ts +32 -0
- package/dist/api/sprites/SpriteBatchMesh.d.ts.map +1 -0
- package/dist/api/sprites/_export_sprites.d.ts +2 -0
- package/dist/api/sprites/_export_sprites.d.ts.map +1 -0
- package/dist/api/time/GameTime.d.ts +23 -0
- package/dist/api/time/GameTime.d.ts.map +1 -0
- package/dist/api/time/ITimeManager.d.ts +19 -0
- package/dist/api/time/ITimeManager.d.ts.map +1 -0
- package/dist/api/time/TimeManager.d.ts +15 -0
- package/dist/api/time/TimeManager.d.ts.map +1 -0
- package/dist/api/time/_export_time.d.ts +4 -0
- package/dist/api/time/_export_time.d.ts.map +1 -0
- package/dist/api/utilities/AlignUtilities.d.ts +20 -0
- package/dist/api/utilities/AlignUtilities.d.ts.map +1 -0
- package/dist/api/utilities/GeometryUtilities.d.ts +13 -0
- package/dist/api/utilities/GeometryUtilities.d.ts.map +1 -0
- package/dist/api/utilities/MathHelper.d.ts +162 -0
- package/dist/api/utilities/MathHelper.d.ts.map +1 -0
- package/dist/api/utilities/_export.d.ts +4 -0
- package/dist/api/utilities/_export.d.ts.map +1 -0
- package/dist/api/window/IWindowManager.d.ts +64 -0
- package/dist/api/window/IWindowManager.d.ts.map +1 -0
- package/dist/api/window/WindowBounds.d.ts +16 -0
- package/dist/api/window/WindowBounds.d.ts.map +1 -0
- package/dist/api/window/WindowManager.d.ts +32 -0
- package/dist/api/window/WindowManager.d.ts.map +1 -0
- package/dist/api/window/_export.d.ts +3 -0
- package/dist/api/window/_export.d.ts.map +1 -0
- package/dist/core/rendering/AGraphicsDevice.d.ts +73 -0
- package/dist/core/rendering/AGraphicsDevice.d.ts.map +1 -0
- package/dist/core/rendering/ARenderer.d.ts +74 -0
- package/dist/core/rendering/ARenderer.d.ts.map +1 -0
- package/dist/core/rendering/blending/blend-component-descriptor.d.ts +25 -0
- package/dist/core/rendering/blending/blend-component-descriptor.d.ts.map +1 -0
- package/dist/core/rendering/blending/blend-state-descriptor.d.ts +29 -0
- package/dist/core/rendering/blending/blend-state-descriptor.d.ts.map +1 -0
- package/dist/core/rendering/blending/enums.d.ts +43 -0
- package/dist/core/rendering/blending/enums.d.ts.map +1 -0
- package/dist/core/rendering/enums.d.ts +20 -0
- package/dist/core/rendering/enums.d.ts.map +1 -0
- package/dist/core/rendering/sampler/sampler-descriptor.d.ts +28 -0
- package/dist/core/rendering/sampler/sampler-descriptor.d.ts.map +1 -0
- package/dist/core/rendering/texture/texture.d.ts +69 -0
- package/dist/core/rendering/texture/texture.d.ts.map +1 -0
- package/dist/core/rendering/vertex-buffer-layout.d.ts +22 -0
- package/dist/core/rendering/vertex-buffer-layout.d.ts.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8054 -0
- package/dist/libktx-Cjh8w7XG-DhnH9lxr.js +4 -0
- package/dist/webgl/WebGLGraphicsDeviceFeatures.d.ts +31 -0
- package/dist/webgl/WebGLGraphicsDeviceFeatures.d.ts.map +1 -0
- package/dist/webgl/WebGlGpuInfo.d.ts +25 -0
- package/dist/webgl/WebGlGpuInfo.d.ts.map +1 -0
- package/dist/webgl/WebGlGraphicsDevice.d.ts +47 -0
- package/dist/webgl/WebGlGraphicsDevice.d.ts.map +1 -0
- package/dist/webgl/WebGlRenderer.d.ts +18 -0
- package/dist/webgl/WebGlRenderer.d.ts.map +1 -0
- package/dist/webgl/blending/webgl-blend-state.d.ts +33 -0
- package/dist/webgl/blending/webgl-blend-state.d.ts.map +1 -0
- package/dist/webgl/buffers/WebGlBuffersFactory.d.ts +16 -0
- package/dist/webgl/buffers/WebGlBuffersFactory.d.ts.map +1 -0
- package/dist/webgl/buffers/WebGlUniformBuffer.d.ts +34 -0
- package/dist/webgl/buffers/WebGlUniformBuffer.d.ts.map +1 -0
- package/dist/webgl/buffers/WebGlVertexBuffer.d.ts +48 -0
- package/dist/webgl/buffers/WebGlVertexBuffer.d.ts.map +1 -0
- package/dist/webgl/buffers/webgl-index-buffer.d.ts +43 -0
- package/dist/webgl/buffers/webgl-index-buffer.d.ts.map +1 -0
- package/dist/webgl/cast/cast.d.ts +52 -0
- package/dist/webgl/cast/cast.d.ts.map +1 -0
- package/dist/webgl/primitive/WebGlPrimitiveState.d.ts +29 -0
- package/dist/webgl/primitive/WebGlPrimitiveState.d.ts.map +1 -0
- package/dist/webgl/render-pass/WebGlRenderPass.d.ts +34 -0
- package/dist/webgl/render-pass/WebGlRenderPass.d.ts.map +1 -0
- package/dist/webgl/render-pipelines/AWebGlRenderPipeline.d.ts +53 -0
- package/dist/webgl/render-pipelines/AWebGlRenderPipeline.d.ts.map +1 -0
- package/dist/webgl/render-pipelines/WebGlMainRenderTargetRenderPipeline.d.ts +30 -0
- package/dist/webgl/render-pipelines/WebGlMainRenderTargetRenderPipeline.d.ts.map +1 -0
- package/dist/webgl/render-pipelines/WebGlRenderPipelineFactory.d.ts +24 -0
- package/dist/webgl/render-pipelines/WebGlRenderPipelineFactory.d.ts.map +1 -0
- package/dist/webgl/render-pipelines/inspect/WebGlInspectTextureMipsRenderPipeline.d.ts +57 -0
- package/dist/webgl/render-pipelines/inspect/WebGlInspectTextureMipsRenderPipeline.d.ts.map +1 -0
- package/dist/webgl/render-pipelines/material/WebGlUnlitRenderPipeline.d.ts +57 -0
- package/dist/webgl/render-pipelines/material/WebGlUnlitRenderPipeline.d.ts.map +1 -0
- package/dist/webgl/render-pipelines/sprite/WebGlSpriteRenderPipeline.d.ts +40 -0
- package/dist/webgl/render-pipelines/sprite/WebGlSpriteRenderPipeline.d.ts.map +1 -0
- package/dist/webgl/rendering/webgl-vertex-attribute.d.ts +10 -0
- package/dist/webgl/rendering/webgl-vertex-attribute.d.ts.map +1 -0
- package/dist/webgl/rendering/webgl-vertex-buffer-layout.d.ts +27 -0
- package/dist/webgl/rendering/webgl-vertex-buffer-layout.d.ts.map +1 -0
- package/dist/webgl/sampler/webgl-sampler.d.ts +48 -0
- package/dist/webgl/sampler/webgl-sampler.d.ts.map +1 -0
- package/dist/webgl/shader/WebGlShaderModule.d.ts +34 -0
- package/dist/webgl/shader/WebGlShaderModule.d.ts.map +1 -0
- package/dist/webgl/shader/WebGlShaderModuleLoader.d.ts +19 -0
- package/dist/webgl/shader/WebGlShaderModuleLoader.d.ts.map +1 -0
- package/dist/webgl/swap-chain/WebGlSwapChain.d.ts +27 -0
- package/dist/webgl/swap-chain/WebGlSwapChain.d.ts.map +1 -0
- package/dist/webgl/texture/WebGlTexture2D.d.ts +37 -0
- package/dist/webgl/texture/WebGlTexture2D.d.ts.map +1 -0
- package/dist/webgl/texture/WebGlTextureFactory.d.ts +17 -0
- package/dist/webgl/texture/WebGlTextureFactory.d.ts.map +1 -0
- package/dist/webgl/utilities/WebGlBufferUtilities.d.ts +45 -0
- package/dist/webgl/utilities/WebGlBufferUtilities.d.ts.map +1 -0
- package/dist/webgl/utilities/WebGlConverter.d.ts +108 -0
- package/dist/webgl/utilities/WebGlConverter.d.ts.map +1 -0
- package/dist/webgl/utilities/WebGlFrameBufferUtilities.d.ts +54 -0
- package/dist/webgl/utilities/WebGlFrameBufferUtilities.d.ts.map +1 -0
- package/dist/webgl/utilities/WebGlSamplerUtilities.d.ts +23 -0
- package/dist/webgl/utilities/WebGlSamplerUtilities.d.ts.map +1 -0
- package/dist/webgl/utilities/WebGlShaderUtilities.d.ts +28 -0
- package/dist/webgl/utilities/WebGlShaderUtilities.d.ts.map +1 -0
- package/dist/webgl/utilities/WebGlTextureUtilities.d.ts +33 -0
- package/dist/webgl/utilities/WebGlTextureUtilities.d.ts.map +1 -0
- package/dist/webgl/utilities/WebGlUtilities.d.ts +60 -0
- package/dist/webgl/utilities/WebGlUtilities.d.ts.map +1 -0
- package/dist/webgl/utilities/spector-js-utilities.d.ts +9 -0
- package/dist/webgl/utilities/spector-js-utilities.d.ts.map +1 -0
- package/dist/webgl/utilities/webgl-blending-utilities.d.ts +17 -0
- package/dist/webgl/utilities/webgl-blending-utilities.d.ts.map +1 -0
- package/dist/webgl/utilities/webgl-culling-utilities.d.ts +13 -0
- package/dist/webgl/utilities/webgl-culling-utilities.d.ts.map +1 -0
- package/dist/webgl/utilities/webgl-filter-anisotropic-utilities.d.ts +24 -0
- package/dist/webgl/utilities/webgl-filter-anisotropic-utilities.d.ts.map +1 -0
- package/dist/webgl/utilities/webgl-program-utilities.d.ts +14 -0
- package/dist/webgl/utilities/webgl-program-utilities.d.ts.map +1 -0
- package/dist/webgl/utilities/webgl-renderbuffer-utilities.d.ts +17 -0
- package/dist/webgl/utilities/webgl-renderbuffer-utilities.d.ts.map +1 -0
- package/package.json +19 -12
- package/shaders/glsl/sprite_fs.glsl +1 -1
- package/src/{core/Framework.ts → Framework.ts} +78 -38
- package/src/api/FrameworkConfiguration.ts +29 -0
- package/src/api/IFramework.ts +153 -0
- package/src/api/IFrameworkConfiguration.ts +30 -0
- package/src/api/_export.ts +26 -0
- package/src/api/camera/CameraFactory.ts +56 -0
- package/src/api/camera/ICamera.ts +52 -0
- package/src/api/camera/ICameraFactory.ts +69 -0
- package/src/api/camera/IOrthographicCamera.ts +38 -0
- package/src/api/camera/OrbitCamera.ts +402 -0
- package/src/api/camera/OrthographicCamera.ts +257 -0
- package/src/api/camera/PerspectiveCamera.ts +206 -0
- package/src/api/camera/_export.ts +7 -0
- package/src/api/content/ContentConfig.ts +11 -0
- package/src/{core → api}/content/ContentManager.ts +4 -3
- package/src/api/content/IContent.ts +9 -0
- package/src/api/content/IContentManager.ts +41 -0
- package/src/api/content/IContentModule.ts +67 -0
- package/src/{content → api/content}/ShaderModuleContent.ts +8 -8
- package/src/api/content/_export-content.ts +4 -0
- package/src/api/core/IDisposable.ts +10 -0
- package/src/api/core/_export-core.ts +1 -0
- package/src/api/data/Color.ts +228 -0
- package/src/api/data/Rect.ts +92 -0
- package/src/api/data/State.ts +10 -0
- package/src/api/data/_export.ts +3 -0
- package/src/{geometry → api/geometry}/BaseGeometry.ts +15 -2
- package/src/{geometry → api/geometry}/GeometryBuilder.ts +1 -1
- package/src/api/geometry/GeometryFormat.ts +33 -0
- package/src/api/geometry/IGeometry.ts +66 -0
- package/src/api/geometry/IGeometryBuilder.ts +17 -0
- package/src/{VertexFormat.ts → api/geometry/VertexFormat.ts} +3 -7
- package/src/api/geometry/_export-geometry.ts +4 -0
- package/src/api/image/CpuImageProcessor.ts +125 -0
- package/src/api/image/IImageProcessor.ts +28 -0
- package/src/api/image/RawImageData.ts +47 -0
- package/src/api/image/_export.ts +3 -0
- package/src/api/index.ts +1 -0
- package/src/api/input/IInputManager.ts +62 -0
- package/src/api/input/InputDeviceType.ts +20 -0
- package/src/api/input/InputManager.ts +513 -0
- package/src/api/input/Key.ts +35 -0
- package/src/api/input/KeyboardState.ts +44 -0
- package/src/api/input/_export.ts +13 -0
- package/src/api/input/gamepad/Button.ts +21 -0
- package/src/api/input/gamepad/GamePadState.ts +65 -0
- package/src/api/input/gamepad/GamePadThumbSticks.ts +18 -0
- package/src/api/input/mouse/MouseButton.ts +9 -0
- package/src/api/input/mouse/MouseState.ts +70 -0
- package/src/api/input/touch/TouchCollection.ts +164 -0
- package/src/api/input/touch/TouchLocation.ts +159 -0
- package/src/api/input/touch/TouchLocationState.ts +15 -0
- package/src/api/input/touch/TouchPanelCapabilities.ts +31 -0
- package/src/api/loaders/IImageLoader.ts +22 -0
- package/src/api/loaders/ImageLoader.ts +93 -0
- package/src/api/loaders/_export.ts +2 -0
- package/src/api/material/IMaterial.ts +41 -0
- package/src/api/material/IMaterialFactory.ts +21 -0
- package/src/api/material/InspectTextureMipsMaterial.ts +113 -0
- package/src/api/material/MaterialFactory.ts +27 -0
- package/src/api/material/UnlitMaterial.ts +143 -0
- package/src/api/material/_export.ts +5 -0
- package/src/api/meshes/IMesh.ts +20 -0
- package/src/api/meshes/IMeshFactory.ts +28 -0
- package/src/api/meshes/Mesh.ts +256 -0
- package/src/api/meshes/MeshFactory.ts +36 -0
- package/src/api/meshes/MeshParameters.ts +25 -0
- package/src/api/meshes/QuadMesh.ts +104 -0
- package/src/api/meshes/_export.ts +6 -0
- package/src/api/rendering/IGPUInfo.ts +42 -0
- package/src/api/rendering/IGraphicsDevice.ts +103 -0
- package/src/api/rendering/IGraphicsDeviceFeatures.ts +32 -0
- package/src/api/rendering/IRenderer.ts +84 -0
- package/src/api/rendering/PowerPreference.ts +15 -0
- package/src/api/rendering/RenderingBackend.ts +20 -0
- package/src/api/rendering/_export-rendering.ts +6 -0
- package/src/api/rendering/blending/IBlendState.ts +17 -0
- package/src/api/rendering/blending/_export.ts +1 -0
- package/src/api/rendering/buffers/BufferUsage.ts +56 -0
- package/src/api/rendering/buffers/IBuffer.ts +24 -0
- package/src/api/rendering/buffers/IBufferFactory.ts +38 -0
- package/src/api/rendering/buffers/IIndexBuffer.ts +37 -0
- package/src/api/rendering/buffers/IUniformBuffer.ts +21 -0
- package/src/api/rendering/buffers/IVertexBuffer.ts +32 -0
- package/src/api/rendering/buffers/IVertexBufferLayout.ts +27 -0
- package/src/api/rendering/buffers/IndexBufferType.ts +13 -0
- package/src/api/rendering/buffers/VertexAttribute.ts +26 -0
- package/src/api/rendering/buffers/VertexStepMode.ts +13 -0
- package/src/api/rendering/buffers/_export-buffers.ts +11 -0
- package/src/api/rendering/primitive/CullMode.ts +17 -0
- package/src/api/rendering/primitive/FrontFace.ts +13 -0
- package/src/api/rendering/primitive/IPrimitiveState.ts +25 -0
- package/src/api/rendering/primitive/PrimitiveStateDescriptor.ts +27 -0
- package/src/api/rendering/primitive/PrimitiveTopology.ts +25 -0
- package/src/api/rendering/primitive/_export.ts +5 -0
- package/src/api/rendering/render-pipelines/IInspectTextureMipsRenderPipeline.ts +38 -0
- package/src/api/rendering/render-pipelines/IMainRenderTargetRenderPipeline.ts +21 -0
- package/src/api/rendering/render-pipelines/IRenderPipeline.ts +47 -0
- package/src/api/rendering/render-pipelines/IRenderPipelineFactory.ts +52 -0
- package/src/api/rendering/render-pipelines/ISpriteRenderPipeline.ts +25 -0
- package/src/api/rendering/render-pipelines/IUnlitRenderPipeline.ts +38 -0
- package/src/api/rendering/render-pipelines/_export-render-pipelines.ts +6 -0
- package/src/{core/renderer → api/rendering}/renderer-interface.ts +15 -9
- package/src/api/rendering/renderpass/IRenderPass.ts +18 -0
- package/src/api/rendering/renderpass/LoadAction.ts +32 -0
- package/src/api/rendering/renderpass/RenderPassColorAttachment.ts +61 -0
- package/src/api/rendering/renderpass/RenderPassDepthStencilAttachment.ts +76 -0
- package/src/api/rendering/renderpass/RenderPassDescriptor.ts +26 -0
- package/src/api/rendering/renderpass/StoreAction.ts +23 -0
- package/src/api/rendering/renderpass/_export.ts +6 -0
- package/src/api/rendering/sampler/ISampler.ts +52 -0
- package/src/api/rendering/sampler/MipMapSamplerFilter.ts +17 -0
- package/src/api/rendering/sampler/SamplerAddressMode.ts +23 -0
- package/src/api/rendering/sampler/SamplerDescriptor.ts +46 -0
- package/src/api/rendering/sampler/SamplerFilter.ts +13 -0
- package/src/api/rendering/sampler/_export.ts +5 -0
- package/src/api/rendering/sampler/sampler-enums.ts +20 -0
- package/src/api/rendering/swapchain/ISwapChain.ts +33 -0
- package/src/api/rendering/swapchain/SurfacePresentMode.ts +22 -0
- package/src/api/rendering/swapchain/SwapChainDescriptor.ts +23 -0
- package/src/api/rendering/swapchain/_export.ts +3 -0
- package/src/api/rendering/texture/ITexture2D.ts +100 -0
- package/src/api/rendering/texture/ITextureFactory.ts +56 -0
- package/src/api/rendering/texture/ITextureView.ts +20 -0
- package/src/api/rendering/texture/TextureDescriptor.ts +52 -0
- package/src/api/rendering/texture/TextureFormat.ts +58 -0
- package/src/api/rendering/texture/TextureUsage.ts +41 -0
- package/src/api/rendering/texture/TextureUtilities.ts +149 -0
- package/src/api/rendering/texture/TextureViewDescriptor.ts +25 -0
- package/src/api/rendering/texture/TextureViewDimension.ts +16 -0
- package/src/api/rendering/texture/_export-texture.ts +9 -0
- package/src/api/shader/IShaderModule.ts +23 -0
- package/src/api/shader/IShaderModuleLoader.ts +15 -0
- package/src/api/shader/ShaderStage.ts +9 -0
- package/src/api/shader/_export-shader.ts +3 -0
- package/src/{core → api}/shader/shader-loader.ts +1 -1
- package/src/api/sprites/ISpriteBatch.ts +144 -0
- package/src/{core/sprite-batch → api/sprites}/SpriteBatch.ts +8 -5
- package/src/{core/sprite-batch → api/sprites}/SpriteBatchDrawable.ts +6 -6
- package/src/{core/sprite-batch → api/sprites}/SpriteBatchMesh.ts +8 -4
- package/src/api/sprites/_export_sprites.ts +1 -0
- package/src/api/time/GameTime.ts +30 -0
- package/src/api/time/ITimeManager.ts +22 -0
- package/src/api/time/TimeManager.ts +33 -0
- package/src/api/time/_export_time.ts +3 -0
- package/src/api/utilities/AlignUtilities.ts +39 -0
- package/src/api/utilities/GeometryUtilities.ts +20 -0
- package/src/api/utilities/MathHelper.ts +256 -0
- package/src/api/utilities/_export.ts +3 -0
- package/src/api/window/IWindowManager.ts +78 -0
- package/src/api/window/WindowBounds.ts +17 -0
- package/src/{core/window/window-manager.ts → api/window/WindowManager.ts} +2 -2
- package/src/api/window/_export.ts +2 -0
- package/src/core/rendering/AGraphicsDevice.ts +15 -9
- package/src/core/rendering/ARenderer.ts +7 -7
- package/src/core/rendering/blending/enums.ts +5 -5
- package/src/core/rendering/sampler/sampler-descriptor.ts +1 -1
- package/src/core/rendering/texture/texture.ts +4 -3
- package/src/core/rendering/vertex-buffer-layout.ts +3 -4
- package/src/glsl-raw.d.ts +4 -0
- package/src/index.ts +3 -2
- package/src/main.ts +5 -10
- package/src/webgl/WebGLGraphicsDeviceFeatures.ts +1 -1
- package/src/webgl/WebGlGpuInfo.ts +1 -1
- package/src/webgl/WebGlGraphicsDevice.ts +19 -15
- package/src/webgl/WebGlRenderer.ts +7 -5
- package/src/webgl/blending/webgl-blend-state.ts +1 -1
- package/src/webgl/buffers/WebGlBuffersFactory.ts +1 -1
- package/src/webgl/buffers/WebGlUniformBuffer.ts +1 -1
- package/src/webgl/buffers/WebGlVertexBuffer.ts +8 -7
- package/src/webgl/buffers/webgl-index-buffer.ts +2 -2
- package/src/webgl/cast/cast.ts +2 -2
- package/src/webgl/primitive/WebGlPrimitiveState.ts +7 -3
- package/src/webgl/render-pass/WebGlRenderPass.ts +17 -8
- package/src/webgl/render-pipelines/AWebGlRenderPipeline.ts +1 -1
- package/src/webgl/render-pipelines/WebGlMainRenderTargetRenderPipeline.ts +10 -2
- package/src/webgl/render-pipelines/WebGlRenderPipelineFactory.ts +1 -1
- package/src/webgl/render-pipelines/inspect/WebGlInspectTextureMipsRenderPipeline.ts +3 -3
- package/src/webgl/render-pipelines/material/WebGlUnlitRenderPipeline.ts +2 -2
- package/src/webgl/render-pipelines/sprite/WebGlSpriteRenderPipeline.ts +2 -2
- package/src/webgl/sampler/webgl-sampler.ts +2 -2
- package/src/webgl/shader/WebGlShaderModule.ts +2 -2
- package/src/webgl/shader/WebGlShaderModuleLoader.ts +1 -1
- package/src/webgl/swap-chain/WebGlSwapChain.ts +1 -1
- package/src/webgl/texture/WebGlTexture2D.ts +6 -4
- package/src/webgl/texture/WebGlTextureFactory.ts +7 -7
- package/src/webgl/utilities/WebGlBufferUtilities.ts +1 -1
- package/src/webgl/utilities/WebGlConverter.ts +19 -62
- package/src/webgl/utilities/WebGlFrameBufferUtilities.ts +1 -1
- package/src/webgl/utilities/WebGlSamplerUtilities.ts +4 -4
- package/src/webgl/utilities/WebGlTextureUtilities.ts +29 -20
- package/src/webgl/utilities/webgl-culling-utilities.ts +1 -1
- package/src/webgl/utilities/webgl-filter-anisotropic-utilities.ts +1 -1
- package/src/webgl/utilities/webgl-renderbuffer-utilities.ts +1 -1
- package/dist/assets/_ris-ktx2-node-module-stub-DwDS30PT.js +0 -1
- package/dist/assets/cat.jpg +0 -0
- package/dist/assets/index-BmeGit54.css +0 -1
- package/dist/assets/index-qyn4pzGw.js +0 -151
- package/dist/assets/libktx-Cjh8w7XG-Ci1Fm_MH.js +0 -1
- package/dist/assets/test.png +0 -0
- package/dist/index.html +0 -16
- package/dist/vite.svg +0 -1
- package/src/TextureFormat.ts +0 -0
- package/src/common/sampler-enums.ts +0 -21
- package/src/common/vertex-step-mode.ts +0 -12
- package/src/core/FrameworkConfig.ts +0 -31
- package/src/core/buffers/buffers-factory-interface.ts +0 -0
- package/src/core/buffers/vertex-buffer-interface.ts +0 -0
- package/src/core/dependency-injection/register-services-interface.ts +0 -15
- package/src/core/framework-interface.ts +0 -0
- package/src/core/input/InputManager.ts +0 -115
- package/src/core/rendering/primitive/PrimitiveStateDescriptor.ts +0 -32
- package/src/core/rendering/primitive/enums.ts +0 -68
- package/src/core/rendering/render-pass/render-pass-descriptor.ts +0 -0
- package/src/core/rendering/render-pass/render-pass-interface.ts +0 -17
- package/src/core/rendering/vertex-attribute.ts +0 -20
- package/src/core/shader/shader-module-interface.ts +0 -1
- package/src/counter.ts +0 -9
- package/src/geometry/GeometryFormat.ts +0 -37
- package/src/webgl/utilities/webgl-render-buffer-utilities.ts +0 -23
- /package/src/{core/renderer → api/rendering}/enums.ts +0 -0
- /package/src/{core/renderer → api/rendering}/rendering-limits.ts +0 -0
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The mesh is a building class for a world shape.
|
|
3
|
+
*/
|
|
4
|
+
import {State} from "../data/State.ts";
|
|
5
|
+
import type { IVertexBuffer } from "../rendering/buffers/IVertexBuffer.ts";
|
|
6
|
+
import type { IIndexBuffer } from "../rendering/buffers/IIndexBuffer.ts";
|
|
7
|
+
import type { IFramework } from "../IFramework.ts";
|
|
8
|
+
import type { IMesh } from "./IMesh.ts";
|
|
9
|
+
import {BufferUsage} from "../rendering/buffers/BufferUsage.ts";
|
|
10
|
+
import type { IGeometry } from "../geometry/IGeometry.ts";
|
|
11
|
+
import {GeometryFormat} from "../geometry/GeometryFormat.ts";
|
|
12
|
+
import {MeshParameters} from "./MeshParameters.ts";
|
|
13
|
+
import {GeometryUtilities} from "../utilities/GeometryUtilities.ts";
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* The mesh.
|
|
17
|
+
*/
|
|
18
|
+
export class Mesh implements IMesh {
|
|
19
|
+
|
|
20
|
+
protected readonly _framework: IFramework;
|
|
21
|
+
protected _bufferUsage = BufferUsage.VERTEX;
|
|
22
|
+
protected _state = State.CREATED;
|
|
23
|
+
protected _vertexData?: number[];
|
|
24
|
+
protected _positions?: number[];
|
|
25
|
+
protected _indices?: number[];
|
|
26
|
+
protected _colors?: number[];
|
|
27
|
+
protected _textureCoords?: number[];
|
|
28
|
+
protected _normals?: number[];
|
|
29
|
+
protected _vertexBuffer?: IVertexBuffer;
|
|
30
|
+
protected _indexBuffer?: IIndexBuffer;
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* The constructor.
|
|
34
|
+
* @param framework The framework.
|
|
35
|
+
*/
|
|
36
|
+
public constructor(framework: IFramework) {
|
|
37
|
+
this._framework = framework;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* The state of a mesh.
|
|
42
|
+
*/
|
|
43
|
+
public get state(): State {
|
|
44
|
+
return this._state;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* The positions of a mesh.
|
|
49
|
+
*/
|
|
50
|
+
public get positions(): number[] | undefined {
|
|
51
|
+
return this._positions;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* The indices of a mesh.
|
|
56
|
+
*/
|
|
57
|
+
public get indices(): number[] | undefined {
|
|
58
|
+
return this._indices;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* The colors of a mesh.
|
|
63
|
+
*/
|
|
64
|
+
public get colors(): number[] | undefined {
|
|
65
|
+
return this._colors;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* UV texture coordinates of a mesh.
|
|
70
|
+
*/
|
|
71
|
+
public get textureCoords(): number[] | undefined {
|
|
72
|
+
return this._textureCoords;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* The normals of a mesh.
|
|
77
|
+
*/
|
|
78
|
+
public get normals(): number[] | undefined {
|
|
79
|
+
return this._normals;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* The vertex buffer.
|
|
84
|
+
*/
|
|
85
|
+
public get vertexBuffer(): IVertexBuffer | undefined {
|
|
86
|
+
return this._vertexBuffer;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* The index buffer.
|
|
91
|
+
*/
|
|
92
|
+
public get indexBuffer(): IIndexBuffer | undefined {
|
|
93
|
+
return this._indexBuffer ;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Initializes the mesh.
|
|
98
|
+
*/
|
|
99
|
+
public initialize(): void {
|
|
100
|
+
this.applyChanges();
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
private _fillColors(index: {vertexDataIndex: number, colorIndex: number}, colors: number[]): void {
|
|
104
|
+
|
|
105
|
+
if(!this._vertexData) {
|
|
106
|
+
throw new Error("Vertex data is not initialized");
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
let v = index.vertexDataIndex;
|
|
110
|
+
let c = index.colorIndex;
|
|
111
|
+
|
|
112
|
+
if(colors.length > index.colorIndex) {
|
|
113
|
+
this._vertexData[v++] = colors[c++];
|
|
114
|
+
this._vertexData[v++] = colors[c++];
|
|
115
|
+
this._vertexData[v++] = colors[c++];
|
|
116
|
+
this._vertexData[v++] = colors[c++];
|
|
117
|
+
index.vertexDataIndex = v;
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
// Just prefill with white color
|
|
121
|
+
this._vertexData[v++] =1;
|
|
122
|
+
this._vertexData[v++] = 1;
|
|
123
|
+
this._vertexData[v++] = 1;
|
|
124
|
+
this._vertexData[v++] = 1;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
index.vertexDataIndex = v;
|
|
128
|
+
index.colorIndex = c;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Apply changes to the mesh.
|
|
133
|
+
*/
|
|
134
|
+
public applyChanges()
|
|
135
|
+
{
|
|
136
|
+
if (!this._positions ||this._positions.length == 0)
|
|
137
|
+
{
|
|
138
|
+
//_framework.Logger.LogWarning("Cannot create buffers for a Mesh as Mesh has no positions.");
|
|
139
|
+
throw new Error(`Cannot create buffers for a Mesh as Mesh has no positions`);
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
// - POSITIONS
|
|
143
|
+
const vertexCount = this._positions.length / 3;
|
|
144
|
+
|
|
145
|
+
// 3 for vertex, 4 for color and 2 for uvs.
|
|
146
|
+
const stride = (3 + 4 + 2) * Float32Array.BYTES_PER_ELEMENT;
|
|
147
|
+
this._vertexData = new Array((3 + 4 + 2) * vertexCount);
|
|
148
|
+
|
|
149
|
+
let vertexIndex = 0;
|
|
150
|
+
let positionsIndex = 0;
|
|
151
|
+
let colorIndex = 0;
|
|
152
|
+
let normalIndex = 0;
|
|
153
|
+
let uvsIndex = 0;
|
|
154
|
+
|
|
155
|
+
for (let i = 0; i < vertexCount; i++)
|
|
156
|
+
{
|
|
157
|
+
// Positions.
|
|
158
|
+
this._vertexData[vertexIndex++] = this._positions[positionsIndex++];
|
|
159
|
+
this._vertexData[vertexIndex++] = this._positions[positionsIndex++];
|
|
160
|
+
this._vertexData[vertexIndex++] = this._positions[positionsIndex++];
|
|
161
|
+
|
|
162
|
+
// Colors.
|
|
163
|
+
if (this._colors)
|
|
164
|
+
{
|
|
165
|
+
const index = {vertexDataIndex: vertexIndex, colorIndex: colorIndex};
|
|
166
|
+
this._fillColors(index, this._colors);
|
|
167
|
+
vertexIndex = index.vertexDataIndex;
|
|
168
|
+
colorIndex = index.colorIndex;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
if (this._textureCoords)
|
|
172
|
+
{
|
|
173
|
+
// Uvs.
|
|
174
|
+
this._vertexData[vertexIndex++] = this._textureCoords[uvsIndex++];
|
|
175
|
+
this._vertexData[vertexIndex++] = this._textureCoords[uvsIndex++];
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
if (this._normals)
|
|
179
|
+
{
|
|
180
|
+
this._vertexData[vertexIndex++] = this._normals[normalIndex++];
|
|
181
|
+
this._vertexData[vertexIndex++] = this._normals[normalIndex++];
|
|
182
|
+
this._vertexData[vertexIndex++] = this._normals[normalIndex++];
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
// Vertices
|
|
187
|
+
this._vertexBuffer?.dispose();
|
|
188
|
+
this._vertexBuffer = this._framework.bufferFactory.createVertexBuffer(
|
|
189
|
+
this._vertexData, stride, this._bufferUsage);
|
|
190
|
+
|
|
191
|
+
// Indices
|
|
192
|
+
this._indexBuffer?.dispose();
|
|
193
|
+
if (this._indices && this._indices.length > 0)
|
|
194
|
+
{
|
|
195
|
+
this._indexBuffer= this._framework.bufferFactory.createIndexBuffer(
|
|
196
|
+
this._indices);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
/**
|
|
201
|
+
* Sets the mesh from a geometry.
|
|
202
|
+
*
|
|
203
|
+
* This will create vertex buffer and index buffer from geometry.
|
|
204
|
+
* Positions, Colors, TextureCoordinates and Normals will be ignored.
|
|
205
|
+
* @param geometry - The geometry.
|
|
206
|
+
* @param format - The format for geometry.
|
|
207
|
+
*/
|
|
208
|
+
public setGeometry(geometry: IGeometry, format: GeometryFormat): void {
|
|
209
|
+
if (geometry.vertexCount == 0)
|
|
210
|
+
{
|
|
211
|
+
const message =
|
|
212
|
+
"Cannot create buffers for a Mesh as Mesh has no positions. Check that geometry.vertexCount is set.";
|
|
213
|
+
//_framework.Logger.LogError(message);
|
|
214
|
+
throw new Error(message);
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
const interleavedData = geometry.toInterleaved(format);
|
|
218
|
+
const stride = GeometryUtilities.stride(format);
|
|
219
|
+
|
|
220
|
+
// Vertices
|
|
221
|
+
this._vertexBuffer?.dispose();
|
|
222
|
+
this._vertexBuffer = this._framework.bufferFactory.createVertexBuffer(
|
|
223
|
+
interleavedData,
|
|
224
|
+
stride,
|
|
225
|
+
this._bufferUsage);
|
|
226
|
+
|
|
227
|
+
// Indices
|
|
228
|
+
this._indexBuffer?.dispose();
|
|
229
|
+
if (geometry.indices)
|
|
230
|
+
{
|
|
231
|
+
this._indexBuffer = this._framework.bufferFactory.createIndexBuffer(geometry.indices);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
/**
|
|
236
|
+
* Sets the mesh from parameters.
|
|
237
|
+
* @param meshParameters - The parameters.
|
|
238
|
+
*/
|
|
239
|
+
public setMesh(meshParameters: MeshParameters): void {
|
|
240
|
+
this._positions = meshParameters.positions;
|
|
241
|
+
this._indices = meshParameters.indices;
|
|
242
|
+
this._textureCoords = meshParameters.textureCoords;
|
|
243
|
+
this._colors = meshParameters.colors;
|
|
244
|
+
this.applyChanges();
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
/**
|
|
248
|
+
* Dispose of the mesh.
|
|
249
|
+
*/
|
|
250
|
+
public dispose(): void {
|
|
251
|
+
this._vertexBuffer?.dispose();
|
|
252
|
+
this._vertexBuffer = undefined;
|
|
253
|
+
this._indexBuffer?.dispose();
|
|
254
|
+
this._indexBuffer = undefined;
|
|
255
|
+
}
|
|
256
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { IMeshFactory } from "./IMeshFactory.ts";
|
|
2
|
+
import type { IGeometry } from "../geometry/IGeometry.ts";
|
|
3
|
+
import {GeometryFormat} from "../geometry/GeometryFormat.ts";
|
|
4
|
+
import type { IMesh } from "./IMesh.ts";
|
|
5
|
+
import {QuadMesh} from "./QuadMesh.ts";
|
|
6
|
+
import type { IFramework } from "../IFramework.ts";
|
|
7
|
+
import {Mesh} from "./Mesh.ts";
|
|
8
|
+
import {vec2} from "gl-matrix";
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* The implementation of the mesh factory interface.
|
|
12
|
+
*/
|
|
13
|
+
export class MeshFactory implements IMeshFactory {
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* The constructor.
|
|
17
|
+
* @param _framework The framework.
|
|
18
|
+
*/
|
|
19
|
+
public constructor(private readonly _framework: IFramework) {
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/** @inheritDoc */
|
|
23
|
+
public create(geometry: IGeometry, geometryFormat: GeometryFormat): IMesh {
|
|
24
|
+
const mesh = new Mesh(this._framework);
|
|
25
|
+
mesh.setGeometry(geometry, geometryFormat);
|
|
26
|
+
return mesh;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/** @inheritDoc */
|
|
30
|
+
public createQuadMesh(isUpdatable: boolean, scale?: vec2): QuadMesh {
|
|
31
|
+
const quadMesh = new QuadMesh(this._framework, isUpdatable, scale);
|
|
32
|
+
quadMesh.initialize();
|
|
33
|
+
return quadMesh;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parameters for a mesh.
|
|
3
|
+
*/
|
|
4
|
+
export class MeshParameters {
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* The positions.
|
|
8
|
+
*/
|
|
9
|
+
public positions: number[] = [];
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* The indices.
|
|
13
|
+
*/
|
|
14
|
+
public indices?: number[];
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* The uv texture coordinates.
|
|
18
|
+
*/
|
|
19
|
+
public textureCoords?: number[];
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* The colors of a mesh.
|
|
23
|
+
*/
|
|
24
|
+
public colors?: number[];
|
|
25
|
+
}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import {Mesh} from "./Mesh.ts";
|
|
2
|
+
import {Rect} from "../data/Rect.ts";
|
|
3
|
+
import type { IFramework } from "../IFramework.ts";
|
|
4
|
+
import {vec2} from "gl-matrix";
|
|
5
|
+
import {BufferUsage} from "../rendering/buffers/BufferUsage.ts";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* The mesh of a quad.
|
|
9
|
+
*/
|
|
10
|
+
export class QuadMesh extends Mesh {
|
|
11
|
+
|
|
12
|
+
private readonly ELEMENTS_IN_VERTEX = 9;
|
|
13
|
+
private readonly TEX_COORD_POS_S = 7;
|
|
14
|
+
private readonly TEX_COORD_POS_T = 8;
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* The constructor.
|
|
18
|
+
* @param framework The framework.
|
|
19
|
+
* @param _isUpdatable Makes mesh updatable.
|
|
20
|
+
* @param scale The scale factor for geometry. If not set, it is set to (1,1).
|
|
21
|
+
*/
|
|
22
|
+
public constructor(framework: IFramework, private _isUpdatable: boolean, scale?: vec2) {
|
|
23
|
+
super(framework);
|
|
24
|
+
if(_isUpdatable) {
|
|
25
|
+
this._bufferUsage = BufferUsage.VERTEX | BufferUsage.COPY_DST;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
scale = scale || vec2.fromValues(1,1);
|
|
29
|
+
|
|
30
|
+
this._positions = [
|
|
31
|
+
// V0 - bottom left
|
|
32
|
+
-0.5 * scale[0], -0.5 * scale[1], 0.0,
|
|
33
|
+
// V1 - top left
|
|
34
|
+
-0.5 * scale[0], 0.5 * scale[1], 0.0,
|
|
35
|
+
// V2 - bottom right
|
|
36
|
+
0.5 * scale[0], -0.5 * scale[1], 0.0,
|
|
37
|
+
// V3 - top right
|
|
38
|
+
0.5 * scale[0], 0.5 * scale[1], 0.0
|
|
39
|
+
];
|
|
40
|
+
|
|
41
|
+
this._colors = [
|
|
42
|
+
1,1,1,1,
|
|
43
|
+
1,1,1,1,
|
|
44
|
+
1,1,1,1,
|
|
45
|
+
1,1,1,1
|
|
46
|
+
];
|
|
47
|
+
|
|
48
|
+
this._textureCoords = [
|
|
49
|
+
|
|
50
|
+
// V0 - bottom left
|
|
51
|
+
0, 1,
|
|
52
|
+
// V1 - top left
|
|
53
|
+
0, 0,
|
|
54
|
+
// V2 - bottom right
|
|
55
|
+
1, 1,
|
|
56
|
+
// V3 - top right
|
|
57
|
+
1, 0
|
|
58
|
+
];
|
|
59
|
+
|
|
60
|
+
this._indices = [
|
|
61
|
+
0, 2, 3, // t1
|
|
62
|
+
3, 1, 0 // t2
|
|
63
|
+
]
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/** @inheritDoc*/
|
|
67
|
+
public initialize(): void {
|
|
68
|
+
// This will initialize buffers with data.
|
|
69
|
+
super.applyChanges();
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/** @inheritDoc*/
|
|
73
|
+
public applyChanges(): void {
|
|
74
|
+
if (!this._isUpdatable)
|
|
75
|
+
{
|
|
76
|
+
throw new Error("This mesh is not updatable.");
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
this._vertexBuffer!.update(this._vertexData!);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Update the texture coordinates of quad mesh.
|
|
84
|
+
* ApplyChanges should be called after updating this mesh.
|
|
85
|
+
* @param coordBounds - The texture coordinates rectangle.
|
|
86
|
+
* Rectangle x and y define the top left position of texture coordinates.
|
|
87
|
+
* Rectangle x + width and y + height define the bottom right position of texture coordinates.
|
|
88
|
+
*/
|
|
89
|
+
public updateTextureCoords(coordBounds: Rect): void {
|
|
90
|
+
|
|
91
|
+
// Order is bottom left, top left, bottom right, top right
|
|
92
|
+
this._vertexData![this.TEX_COORD_POS_S] = coordBounds.x;
|
|
93
|
+
this._vertexData![this.TEX_COORD_POS_T] = coordBounds.y + coordBounds.height;
|
|
94
|
+
|
|
95
|
+
this._vertexData![this.TEX_COORD_POS_S + this.ELEMENTS_IN_VERTEX] = coordBounds.x;
|
|
96
|
+
this._vertexData![this.TEX_COORD_POS_T + this.ELEMENTS_IN_VERTEX] = coordBounds.y;
|
|
97
|
+
|
|
98
|
+
this._vertexData![this.TEX_COORD_POS_S + this.ELEMENTS_IN_VERTEX * 2] = coordBounds.x + coordBounds.width;
|
|
99
|
+
this._vertexData![this.TEX_COORD_POS_T + this.ELEMENTS_IN_VERTEX * 2] = coordBounds.y + coordBounds.height;
|
|
100
|
+
|
|
101
|
+
this._vertexData![this.TEX_COORD_POS_S + this.ELEMENTS_IN_VERTEX * 3] = coordBounds.x + coordBounds.width;
|
|
102
|
+
this._vertexData![this.TEX_COORD_POS_T + this.ELEMENTS_IN_VERTEX * 3] = coordBounds.y;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import {RenderingBackend} from "./RenderingBackend.ts";
|
|
2
|
+
import {TextureFormat} from "./texture/TextureFormat.ts";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* The GPU information. Contains the information about the GPU, such as the name, vendor, etc.
|
|
6
|
+
*/
|
|
7
|
+
export interface IGPUInfo {
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* The name of the GPU.
|
|
11
|
+
*/
|
|
12
|
+
readonly name: string;
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* The vendor of the GPU.
|
|
16
|
+
*/
|
|
17
|
+
readonly vendor: string;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* The version of the GPU API.
|
|
21
|
+
*/
|
|
22
|
+
readonly apiVersion: string;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* The rendering backend used by the GPU. For example, DirectX 12, Vulkan, OpenGL, etc.
|
|
26
|
+
*/
|
|
27
|
+
readonly api: RenderingBackend;
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* The underlying rendering backend used by the GPU.
|
|
31
|
+
* This is the actual rendering backend used by the GPU, which may be different from the API.
|
|
32
|
+
* For example, for WebGPU, the API is WebGPU, but the underlying backend can be DirectX 12, Vulkan, Metal, etc.
|
|
33
|
+
*/
|
|
34
|
+
readonly underlyingBackend: RenderingBackend;
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Gets the list of supported compressed texture formats by the GPU.
|
|
38
|
+
* This can be used to determine which compressed texture formats can be used for texture compression, which can improve performance and reduce memory usage.
|
|
39
|
+
*/
|
|
40
|
+
readonly supportedCompressedTextureFormats: TextureFormat[];
|
|
41
|
+
|
|
42
|
+
}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import type { IDisposable } from "../core/IDisposable.ts";
|
|
2
|
+
import type { IGPUInfo } from "./IGPUInfo.ts";
|
|
3
|
+
import type { IGraphicsDeviceFeatures } from "./IGraphicsDeviceFeatures.ts";
|
|
4
|
+
import type { ISampler } from "./sampler/ISampler.ts";
|
|
5
|
+
import type { IBlendState } from "./blending/IBlendState.ts";
|
|
6
|
+
import type { IPrimitiveState } from "./primitive/IPrimitiveState.ts";
|
|
7
|
+
import {RenderPassDescriptor} from "./renderpass/RenderPassDescriptor.ts";
|
|
8
|
+
import type { IRenderPass } from "./renderpass/IRenderPass.ts";
|
|
9
|
+
import {SwapChainDescriptor} from "./swapchain/SwapChainDescriptor.ts";
|
|
10
|
+
import type { ISwapChain } from "./swapchain/ISwapChain.ts";
|
|
11
|
+
import {SamplerDescriptor} from "./sampler/SamplerDescriptor.ts";
|
|
12
|
+
import {PrimitiveStateDescriptor} from "./primitive/PrimitiveStateDescriptor.ts";
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* The interface for a graphics device.
|
|
16
|
+
*/
|
|
17
|
+
export interface IGraphicsDevice extends IDisposable {
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* The info about the GPU.
|
|
21
|
+
*/
|
|
22
|
+
readonly gpuInfo: IGPUInfo;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* The features of the graphics device.
|
|
26
|
+
*/
|
|
27
|
+
readonly features: IGraphicsDeviceFeatures;
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Gets the default sampler for the graphics device.
|
|
31
|
+
*/
|
|
32
|
+
readonly defaultTextureSampler: ISampler;
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Gets the default blend state for the graphics device.
|
|
36
|
+
* All render pipelines will use this blend state by default.
|
|
37
|
+
*/
|
|
38
|
+
readonly defaultBlendState: IBlendState;
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Gets the default primitive state for the graphics device.
|
|
42
|
+
* All render pipelines will use this primitive state by default.
|
|
43
|
+
*/
|
|
44
|
+
readonly defaultPrimitiveState: IPrimitiveState;
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Initializes the graphics device.
|
|
48
|
+
*/
|
|
49
|
+
initialize(): void;
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Sets up the debug callback for the graphics device.
|
|
53
|
+
* This will enable the debug output if it is supported, and route debug messages to the device's debug callback.
|
|
54
|
+
*/
|
|
55
|
+
setupDebugCallback(): void;
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Called at the end of each frame to perform any necessary cleanup of resources that were used during the frame.
|
|
59
|
+
*/
|
|
60
|
+
frameEnd(): void;
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Create a sampler object.
|
|
64
|
+
* @param samplerDescriptor - The sampler descriptor.
|
|
65
|
+
* @returns The sampler.
|
|
66
|
+
*/
|
|
67
|
+
createSampler(samplerDescriptor: SamplerDescriptor): ISampler;
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Creates a primitive state for the graphics device.
|
|
71
|
+
* @param descriptor - The primitive state descriptor.
|
|
72
|
+
* @returns The created primitive state.
|
|
73
|
+
*/
|
|
74
|
+
createPrimitiveState(descriptor: PrimitiveStateDescriptor): IPrimitiveState;
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Creates a render pass for the graphics device.
|
|
78
|
+
* @param descriptor - The descriptor for creating a render pass.
|
|
79
|
+
* @returns The created instance.
|
|
80
|
+
*/
|
|
81
|
+
createRenderPass(descriptor: RenderPassDescriptor): IRenderPass;
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* // TODO: fix this for window.
|
|
85
|
+
* Creates a swap chain for the graphics device.
|
|
86
|
+
* The swap chain is used to present the rendered image to the screen.
|
|
87
|
+
* @returns The swap chain instance.
|
|
88
|
+
*/
|
|
89
|
+
createSwapChain(window: any, swapChainDescription: SwapChainDescriptor): ISwapChain;
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Pushes a debug group with the specified name onto the graphics device's debug stack.
|
|
93
|
+
* @param groupName - The name of the debug group.
|
|
94
|
+
*/
|
|
95
|
+
pushDebugGroup(groupName: string): void;
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Pops the current debug group from the graphics device's debug stack,
|
|
99
|
+
* ending the current debug group and returning to the previous one.
|
|
100
|
+
*/
|
|
101
|
+
popDebugGroup(): void;
|
|
102
|
+
|
|
103
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Represents the texture compression capabilities of a graphics device.
|
|
3
|
+
*/
|
|
4
|
+
export interface IGraphicsDeviceFeatures {
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Supports S3TC / DXT (BC1–BC3) texture compression.
|
|
8
|
+
*/
|
|
9
|
+
readonly supportsTextureCompressionS3TC: boolean;
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Supports full Block Compression (BC1–BC7) textures.
|
|
13
|
+
Includes S3TC (BC1–BC3) plus BC4–BC7.
|
|
14
|
+
*/
|
|
15
|
+
readonly supportsTextureCompressionBC: boolean;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Supports ETC2 / EAC texture compression (OpenGL/ES and Vulkan standard).
|
|
19
|
+
*/
|
|
20
|
+
readonly supportsTextureCompressionETC2: boolean;
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Supports ASTC (Adaptive Scalable Texture Compression) — LDR and HDR profiles.
|
|
24
|
+
*/
|
|
25
|
+
readonly supportsTextureCompressionASTC: boolean;
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Supports PVRTC (PowerVR Texture Compression) 1 and 2.
|
|
29
|
+
*/
|
|
30
|
+
readonly supportsTextureCompressionPVRTC: boolean;
|
|
31
|
+
|
|
32
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import type { IGraphicsDevice } from "./IGraphicsDevice.ts";
|
|
2
|
+
import {TextureFormat} from "./texture/TextureFormat.ts";
|
|
3
|
+
import {Color} from "../data/Color.ts";
|
|
4
|
+
import {RenderingBackend} from "./RenderingBackend.ts";
|
|
5
|
+
import {vec2} from "gl-matrix";
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* The interface for a renderer.
|
|
10
|
+
*/
|
|
11
|
+
export interface IRenderer {
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* The graphics device used by the renderer.
|
|
15
|
+
*/
|
|
16
|
+
readonly graphicsDevice: IGraphicsDevice;
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* The surface preferred a texture format.
|
|
20
|
+
*/
|
|
21
|
+
readonly preferredTextureFormat: TextureFormat;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* The preferred depth stencil format.
|
|
25
|
+
*/
|
|
26
|
+
readonly preferredDepthStencilFormat: TextureFormat;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* The clear color of the renderer.
|
|
30
|
+
* Framebuffer will be cleared with this color at the beginning of the frame.
|
|
31
|
+
*/
|
|
32
|
+
clearColor: Color;
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* The renderer type.
|
|
36
|
+
*/
|
|
37
|
+
readonly backend: RenderingBackend;
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* The size of the back buffer.
|
|
41
|
+
* This is the size of the framebuffer that the renderer will render to by default, before rendering to
|
|
42
|
+
* the swap chain's back buffer.
|
|
43
|
+
* This can be different from the swap chain's back buffer size and can be used to render at a
|
|
44
|
+
* different resolution than the screen resolution.
|
|
45
|
+
* Setting this will have no effect if `backBufferMatchesSwapChain` is set to true.
|
|
46
|
+
*/
|
|
47
|
+
backBufferSize: vec2;
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* The new size of the renderer.
|
|
51
|
+
*/
|
|
52
|
+
addOnResizedListener(event: (sender: any, e: vec2) => void): void;
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* The new size of the renderer.
|
|
56
|
+
*/
|
|
57
|
+
removeOnResizedListener(event: (sender: any, e: vec2) => void): void;
|
|
58
|
+
/**
|
|
59
|
+
* After initialization.
|
|
60
|
+
*/
|
|
61
|
+
afterInitialize(): void;
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* The compute pass. Runs before the rendering pass.
|
|
65
|
+
*/
|
|
66
|
+
beginComputePass(): void;
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* The end of compute pass. Ends run before the rendering pass.
|
|
70
|
+
*/
|
|
71
|
+
endComputePass(): void;
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Should be called at the beginning of the frame.
|
|
75
|
+
* Clears the buffer and prepares the renderer for rendering.
|
|
76
|
+
*/
|
|
77
|
+
beginRenderPass(): void;
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Should be called at the end of the frame.
|
|
81
|
+
* Ends the rendering and submits the frame to the screen.
|
|
82
|
+
*/
|
|
83
|
+
endRenderPass(): void;
|
|
84
|
+
}
|