ris-framework 0.1.0-dev.7 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -1
- package/LICENSE +202 -21
- package/NOTICE +2 -0
- package/README.md +29 -47
- package/THIRD_PARTY_NOTICES.md +1 -1
- package/dist/{core/Framework.d.ts → Framework.d.ts} +10 -8
- 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/{core → api}/content/ContentManager.d.ts +3 -2
- 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.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/{geometry → api/geometry}/BaseGeometry.d.ts +5 -2
- package/dist/api/geometry/BaseGeometry.d.ts.map +1 -0
- package/dist/{geometry → api/geometry}/GeometryBuilder.d.ts +1 -1
- 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.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/{core/renderer → api/rendering}/enums.d.ts.map +1 -1
- 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/{core/renderer → api/rendering}/renderer-interface.d.ts +11 -7
- package/dist/api/rendering/renderer-interface.d.ts.map +1 -0
- package/dist/{core/renderer → api/rendering}/rendering-limits.d.ts.map +1 -1
- 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/{core → api}/shader/shader-loader.d.ts +1 -1
- 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/{core/sprite-batch → api/sprites}/SpriteBatch.d.ts +1 -1
- package/dist/api/sprites/SpriteBatch.d.ts.map +1 -0
- package/dist/{core/sprite-batch → api/sprites}/SpriteBatchDrawable.d.ts +1 -1
- package/dist/api/sprites/SpriteBatchDrawable.d.ts.map +1 -0
- package/dist/{core/sprite-batch → api/sprites}/SpriteBatchMesh.d.ts +1 -1
- 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/{core/window/window-manager.d.ts → api/window/WindowManager.d.ts} +3 -3
- 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 +10 -6
- package/dist/core/rendering/AGraphicsDevice.d.ts.map +1 -1
- package/dist/core/rendering/ARenderer.d.ts +4 -5
- package/dist/core/rendering/ARenderer.d.ts.map +1 -1
- package/dist/core/rendering/blending/enums.d.ts +5 -2
- package/dist/core/rendering/blending/enums.d.ts.map +1 -1
- package/dist/core/rendering/sampler/sampler-descriptor.d.ts +1 -1
- package/dist/core/rendering/sampler/sampler-descriptor.d.ts.map +1 -1
- package/dist/core/rendering/texture/texture.d.ts +1 -1
- package/dist/core/rendering/texture/texture.d.ts.map +1 -1
- package/dist/core/rendering/vertex-buffer-layout.d.ts +2 -3
- package/dist/core/rendering/vertex-buffer-layout.d.ts.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4052 -596
- package/dist/webgl/WebGLGraphicsDeviceFeatures.d.ts +1 -1
- package/dist/webgl/WebGLGraphicsDeviceFeatures.d.ts.map +1 -1
- package/dist/webgl/WebGlGpuInfo.d.ts +1 -1
- package/dist/webgl/WebGlGpuInfo.d.ts.map +1 -1
- package/dist/webgl/WebGlGraphicsDevice.d.ts +7 -5
- package/dist/webgl/WebGlGraphicsDevice.d.ts.map +1 -1
- package/dist/webgl/WebGlRenderer.d.ts +3 -3
- package/dist/webgl/WebGlRenderer.d.ts.map +1 -1
- package/dist/webgl/blending/webgl-blend-state.d.ts +1 -1
- package/dist/webgl/blending/webgl-blend-state.d.ts.map +1 -1
- package/dist/webgl/buffers/WebGlBuffersFactory.d.ts +1 -1
- package/dist/webgl/buffers/WebGlBuffersFactory.d.ts.map +1 -1
- package/dist/webgl/buffers/WebGlUniformBuffer.d.ts +1 -1
- package/dist/webgl/buffers/WebGlUniformBuffer.d.ts.map +1 -1
- package/dist/webgl/buffers/WebGlVertexBuffer.d.ts +6 -6
- package/dist/webgl/buffers/WebGlVertexBuffer.d.ts.map +1 -1
- package/dist/webgl/buffers/webgl-index-buffer.d.ts +2 -2
- package/dist/webgl/buffers/webgl-index-buffer.d.ts.map +1 -1
- package/dist/webgl/cast/cast.d.ts +2 -2
- package/dist/webgl/cast/cast.d.ts.map +1 -1
- package/dist/webgl/primitive/WebGlPrimitiveState.d.ts +1 -3
- package/dist/webgl/primitive/WebGlPrimitiveState.d.ts.map +1 -1
- package/dist/webgl/render-pass/WebGlRenderPass.d.ts +3 -3
- package/dist/webgl/render-pass/WebGlRenderPass.d.ts.map +1 -1
- package/dist/webgl/render-pipelines/AWebGlRenderPipeline.d.ts +1 -1
- package/dist/webgl/render-pipelines/AWebGlRenderPipeline.d.ts.map +1 -1
- package/dist/webgl/render-pipelines/WebGlMainRenderTargetRenderPipeline.d.ts +3 -1
- package/dist/webgl/render-pipelines/WebGlMainRenderTargetRenderPipeline.d.ts.map +1 -1
- package/dist/webgl/render-pipelines/WebGlRenderPipelineFactory.d.ts +1 -1
- package/dist/webgl/render-pipelines/WebGlRenderPipelineFactory.d.ts.map +1 -1
- package/dist/webgl/render-pipelines/inspect/WebGlInspectTextureMipsRenderPipeline.d.ts +3 -3
- package/dist/webgl/render-pipelines/inspect/WebGlInspectTextureMipsRenderPipeline.d.ts.map +1 -1
- package/dist/webgl/render-pipelines/material/WebGlUnlitRenderPipeline.d.ts +2 -2
- package/dist/webgl/render-pipelines/material/WebGlUnlitRenderPipeline.d.ts.map +1 -1
- package/dist/webgl/render-pipelines/sprite/WebGlSpriteRenderPipeline.d.ts +2 -2
- package/dist/webgl/render-pipelines/sprite/WebGlSpriteRenderPipeline.d.ts.map +1 -1
- package/dist/webgl/sampler/webgl-sampler.d.ts +1 -1
- package/dist/webgl/sampler/webgl-sampler.d.ts.map +1 -1
- package/dist/webgl/shader/WebGlShaderModule.d.ts +1 -1
- package/dist/webgl/shader/WebGlShaderModule.d.ts.map +1 -1
- package/dist/webgl/shader/WebGlShaderModuleLoader.d.ts +1 -1
- package/dist/webgl/shader/WebGlShaderModuleLoader.d.ts.map +1 -1
- package/dist/webgl/swap-chain/WebGlSwapChain.d.ts +1 -1
- package/dist/webgl/swap-chain/WebGlSwapChain.d.ts.map +1 -1
- package/dist/webgl/texture/WebGlTexture2D.d.ts +1 -1
- package/dist/webgl/texture/WebGlTexture2D.d.ts.map +1 -1
- package/dist/webgl/texture/WebGlTextureFactory.d.ts +3 -3
- package/dist/webgl/texture/WebGlTextureFactory.d.ts.map +1 -1
- package/dist/webgl/utilities/WebGlBufferUtilities.d.ts +1 -1
- package/dist/webgl/utilities/WebGlBufferUtilities.d.ts.map +1 -1
- package/dist/webgl/utilities/WebGlConverter.d.ts +6 -22
- package/dist/webgl/utilities/WebGlConverter.d.ts.map +1 -1
- package/dist/webgl/utilities/WebGlFrameBufferUtilities.d.ts +1 -1
- package/dist/webgl/utilities/WebGlFrameBufferUtilities.d.ts.map +1 -1
- package/dist/webgl/utilities/WebGlSamplerUtilities.d.ts +3 -3
- package/dist/webgl/utilities/WebGlSamplerUtilities.d.ts.map +1 -1
- package/dist/webgl/utilities/WebGlTextureUtilities.d.ts +5 -5
- package/dist/webgl/utilities/WebGlTextureUtilities.d.ts.map +1 -1
- package/dist/webgl/utilities/webgl-culling-utilities.d.ts +1 -1
- package/dist/webgl/utilities/webgl-culling-utilities.d.ts.map +1 -1
- package/dist/webgl/utilities/webgl-filter-anisotropic-utilities.d.ts +1 -1
- package/dist/webgl/utilities/webgl-renderbuffer-utilities.d.ts +1 -1
- package/dist/webgl/utilities/webgl-renderbuffer-utilities.d.ts.map +1 -1
- package/package.json +7 -6
- 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/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/TextureFormat.d.ts +0 -2
- package/dist/TextureFormat.d.ts.map +0 -1
- package/dist/VertexFormat.d.ts.map +0 -1
- package/dist/_ris-ktx2-node-module-stub-nzBRmiO_.js +0 -10
- package/dist/common/sampler-enums.d.ts +0 -16
- package/dist/common/sampler-enums.d.ts.map +0 -1
- package/dist/common/vertex-step-mode.d.ts +0 -11
- package/dist/common/vertex-step-mode.d.ts.map +0 -1
- package/dist/content/ShaderModuleContent.d.ts.map +0 -1
- package/dist/core/Framework.d.ts.map +0 -1
- package/dist/core/FrameworkConfig.d.ts +0 -26
- package/dist/core/FrameworkConfig.d.ts.map +0 -1
- package/dist/core/buffers/buffers-factory-interface.d.ts +0 -2
- package/dist/core/buffers/buffers-factory-interface.d.ts.map +0 -1
- package/dist/core/buffers/vertex-buffer-interface.d.ts +0 -2
- package/dist/core/buffers/vertex-buffer-interface.d.ts.map +0 -1
- package/dist/core/content/ContentManager.d.ts.map +0 -1
- package/dist/core/dependency-injection/register-services-interface.d.ts +0 -13
- package/dist/core/dependency-injection/register-services-interface.d.ts.map +0 -1
- package/dist/core/framework-interface.d.ts +0 -2
- package/dist/core/framework-interface.d.ts.map +0 -1
- package/dist/core/input/InputManager.d.ts +0 -27
- package/dist/core/input/InputManager.d.ts.map +0 -1
- package/dist/core/renderer/renderer-interface.d.ts.map +0 -1
- package/dist/core/rendering/primitive/PrimitiveStateDescriptor.d.ts +0 -26
- package/dist/core/rendering/primitive/PrimitiveStateDescriptor.d.ts.map +0 -1
- package/dist/core/rendering/primitive/enums.d.ts +0 -56
- package/dist/core/rendering/primitive/enums.d.ts.map +0 -1
- package/dist/core/rendering/render-pass/render-pass-descriptor.d.ts +0 -2
- package/dist/core/rendering/render-pass/render-pass-descriptor.d.ts.map +0 -1
- package/dist/core/rendering/render-pass/render-pass-interface.d.ts +0 -15
- package/dist/core/rendering/render-pass/render-pass-interface.d.ts.map +0 -1
- package/dist/core/rendering/vertex-attribute.d.ts +0 -17
- package/dist/core/rendering/vertex-attribute.d.ts.map +0 -1
- package/dist/core/shader/shader-loader.d.ts.map +0 -1
- package/dist/core/shader/shader-module-interface.d.ts +0 -2
- package/dist/core/shader/shader-module-interface.d.ts.map +0 -1
- package/dist/core/sprite-batch/SpriteBatch.d.ts.map +0 -1
- package/dist/core/sprite-batch/SpriteBatchDrawable.d.ts.map +0 -1
- package/dist/core/sprite-batch/SpriteBatchMesh.d.ts.map +0 -1
- package/dist/core/window/window-manager.d.ts.map +0 -1
- package/dist/geometry/BaseGeometry.d.ts.map +0 -1
- package/dist/geometry/GeometryBuilder.d.ts.map +0 -1
- package/dist/geometry/GeometryFormat.d.ts +0 -34
- package/dist/geometry/GeometryFormat.d.ts.map +0 -1
- package/dist/webgl/utilities/webgl-render-buffer-utilities.d.ts +0 -5
- package/dist/webgl/utilities/webgl-render-buffer-utilities.d.ts.map +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/dist/{content → api/content}/ShaderModuleContent.d.ts +0 -0
- /package/dist/{VertexFormat.d.ts → api/geometry/VertexFormat.d.ts} +0 -0
- /package/dist/{core/renderer → api/rendering}/enums.d.ts +0 -0
- /package/dist/{core/renderer → api/rendering}/rendering-limits.d.ts +0 -0
- /package/src/{core/renderer → api/rendering}/enums.ts +0 -0
- /package/src/{core/renderer → api/rendering}/rendering-limits.ts +0 -0
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import type { IRenderPass } from "../../core/rendering/render-pass/render-pass-interface";
|
|
2
1
|
import { asWebGLTexture2D } from "../cast/cast";
|
|
3
2
|
import { WebGlUtilities } from "../utilities/WebGlUtilities.ts";
|
|
4
3
|
import type { WebGlGraphicsDevice } from "../WebGlGraphicsDevice.ts";
|
|
5
4
|
import {
|
|
6
5
|
Color,
|
|
6
|
+
type IRenderPass,
|
|
7
7
|
LoadAction,
|
|
8
8
|
RenderPassColorAttachment, RenderPassDepthStencilAttachment,
|
|
9
9
|
RenderPassDescriptor,
|
|
10
10
|
StoreAction,
|
|
11
11
|
TextureFormat
|
|
12
|
-
} from "
|
|
12
|
+
} from "../../api/index.ts"
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
|
-
* The
|
|
15
|
+
* The WebGL implementation of the IRenderPass interface.
|
|
16
16
|
*/
|
|
17
17
|
export class WebGlRenderPass implements IRenderPass {
|
|
18
18
|
|
|
@@ -20,6 +20,7 @@ export class WebGlRenderPass implements IRenderPass {
|
|
|
20
20
|
|
|
21
21
|
private _colorAttachmentsCount = 0;
|
|
22
22
|
private _clearColors: Color[] = [];
|
|
23
|
+
private _clearColorAttachment: boolean[] = [];
|
|
23
24
|
private _frameBuffer: WebGLFramebuffer | null = null;
|
|
24
25
|
private _depthStencilRenderBuffer: WebGLRenderbuffer | null = null;
|
|
25
26
|
private _clearBufferMask: GLbitfield = 0;
|
|
@@ -46,11 +47,14 @@ export class WebGlRenderPass implements IRenderPass {
|
|
|
46
47
|
private _setupFrameBuffer(colorAttachments: RenderPassColorAttachment[]): void {
|
|
47
48
|
this._colorAttachmentsCount = colorAttachments.length;
|
|
48
49
|
this._clearColors = [];
|
|
50
|
+
this._clearColorAttachment = [];
|
|
49
51
|
|
|
50
52
|
for (let i = 0; i < this._colorAttachmentsCount; i++) {
|
|
51
53
|
const colorAttachment = colorAttachments[i];
|
|
52
54
|
this._clearColors.push(colorAttachment.clearColor);
|
|
53
|
-
|
|
55
|
+
const clear = colorAttachment.loadAction == LoadAction.CLEAR;
|
|
56
|
+
this._clearColorAttachment.push(clear);
|
|
57
|
+
if (clear) {
|
|
54
58
|
this._clearBufferMask |= this._gl.COLOR_BUFFER_BIT;
|
|
55
59
|
}
|
|
56
60
|
if (colorAttachment.storeAction == StoreAction.DISCARD) {
|
|
@@ -138,9 +142,6 @@ export class WebGlRenderPass implements IRenderPass {
|
|
|
138
142
|
const gl = this._gl;
|
|
139
143
|
|
|
140
144
|
gl.bindFramebuffer(gl.FRAMEBUFFER, this._frameBuffer);
|
|
141
|
-
|
|
142
|
-
// COLOR
|
|
143
|
-
gl.clear(this._clearBufferMask);
|
|
144
145
|
|
|
145
146
|
if (this._enableDepthTest) {
|
|
146
147
|
gl.enable(gl.DEPTH_TEST);
|
|
@@ -158,8 +159,16 @@ export class WebGlRenderPass implements IRenderPass {
|
|
|
158
159
|
gl.disable(gl.STENCIL_TEST);
|
|
159
160
|
}
|
|
160
161
|
|
|
162
|
+
// Clear after clearDepth and clearStencil are set, so gl.clear uses this pass's values.
|
|
163
|
+
if (this._clearBufferMask !== 0) {
|
|
164
|
+
gl.clear(this._clearBufferMask);
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
// COLOR. Attachments with LoadAction.LOAD keep their contents.
|
|
161
168
|
for (let i = 0; i < this._colorAttachmentsCount; i++) {
|
|
162
|
-
|
|
169
|
+
if (this._clearColorAttachment[i]) {
|
|
170
|
+
gl.clearBufferfv(gl.COLOR, i, this._clearColors[i]);
|
|
171
|
+
}
|
|
163
172
|
}
|
|
164
173
|
}
|
|
165
174
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {IBlendState, IFramework, IIndexBuffer, IPrimitiveState, IRenderPipeline, IVertexBuffer} from "
|
|
1
|
+
import type {IBlendState, IFramework, IIndexBuffer, IPrimitiveState, IRenderPipeline, IVertexBuffer} from "../../api/index.ts";
|
|
2
2
|
import type {VertexBufferLayout} from '../../core/rendering/vertex-buffer-layout';
|
|
3
3
|
import type {WebGlBlendState} from '../blending/webgl-blend-state';
|
|
4
4
|
import type {WebGlPrimitiveState} from '../primitive/WebGlPrimitiveState.ts';
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {vec2} from "gl-matrix";
|
|
2
2
|
import type {WebGlVertexBuffer} from "../buffers/WebGlVertexBuffer.ts";
|
|
3
|
-
import {GeometryFormat} from "../../geometry/GeometryFormat.ts";
|
|
3
|
+
import {GeometryFormat} from "../../api/geometry/GeometryFormat.ts";
|
|
4
4
|
import type {WebGLIndexBuffer} from "../buffers/webgl-index-buffer";
|
|
5
5
|
import {VertexBufferLayout} from "../../core/rendering/vertex-buffer-layout";
|
|
6
6
|
import type {WebGlTexture2D} from "../texture/WebGlTexture2D.ts";
|
|
7
7
|
import WebGlShaderModule from "../shader/WebGlShaderModule.ts";
|
|
8
8
|
import {AWebGlRenderPipeline} from "./AWebGlRenderPipeline.ts";
|
|
9
|
-
import {BufferUsage, type IFramework, type IMainRenderTargetRenderPipeline, type ITexture2D} from "
|
|
9
|
+
import {BufferUsage, type IFramework, type IMainRenderTargetRenderPipeline, type ITexture2D} from "../../api/index.ts";
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
* The WebGL implementation of the main render target render pipeline.
|
|
@@ -92,4 +92,12 @@ export class WebGlMainRenderTargetRenderPipeline extends AWebGlRenderPipeline im
|
|
|
92
92
|
|
|
93
93
|
this._gl.drawElements(this._gl.TRIANGLES, this._indexBuffer.indicesCount, this._gl.UNSIGNED_SHORT, 0);
|
|
94
94
|
}
|
|
95
|
+
|
|
96
|
+
/** @inheritdoc */
|
|
97
|
+
public override dispose(): void {
|
|
98
|
+
// ARenderer recreates this pipeline on every resize, so release the quad buffers too.
|
|
99
|
+
this._vertexBuffer?.dispose();
|
|
100
|
+
this._indexBuffer?.dispose();
|
|
101
|
+
super.dispose();
|
|
102
|
+
}
|
|
95
103
|
}
|
|
@@ -7,7 +7,7 @@ import type {
|
|
|
7
7
|
ISpriteRenderPipeline, ITexture2D,
|
|
8
8
|
IUniformBuffer,
|
|
9
9
|
IUnlitRenderPipeline
|
|
10
|
-
} from "
|
|
10
|
+
} from "../../api/index.ts";
|
|
11
11
|
import {WebGlInspectTextureMipsRenderPipeline} from "./inspect/WebGlInspectTextureMipsRenderPipeline.ts";
|
|
12
12
|
import {WebGlUnlitRenderPipeline} from "./material/WebGlUnlitRenderPipeline.ts";
|
|
13
13
|
|
|
@@ -4,7 +4,7 @@ import type {
|
|
|
4
4
|
ITexture2D,
|
|
5
5
|
IUniformBuffer,
|
|
6
6
|
IVertexBuffer
|
|
7
|
-
} from "
|
|
7
|
+
} from "../../../api/index.ts";
|
|
8
8
|
import {VertexBufferLayout} from "../../../core/rendering/vertex-buffer-layout";
|
|
9
9
|
import type {WebGlUniformBuffer} from "../../buffers/WebGlUniformBuffer.ts";
|
|
10
10
|
import {asWebGLTexture2D, asWebGLUniformBuffer} from "../../cast/cast";
|
|
@@ -13,11 +13,11 @@ import {WebGlTexture2D} from "../../texture/WebGlTexture2D.ts";
|
|
|
13
13
|
import {WebGlVertexBuffer} from '../../buffers/WebGlVertexBuffer.ts';
|
|
14
14
|
import {AWebGlRenderPipeline} from "../AWebGlRenderPipeline.ts";
|
|
15
15
|
import type {WebGLIndexBuffer} from "../../buffers/webgl-index-buffer";
|
|
16
|
-
import {type IIndexBuffer, IndexBufferType} from "
|
|
16
|
+
import {type IIndexBuffer, IndexBufferType} from "../../../api/index.ts";
|
|
17
17
|
import type {WebGlSampler} from "../../sampler/webgl-sampler.ts";
|
|
18
18
|
import type {
|
|
19
19
|
IInspectTextureMipsRenderPipeline
|
|
20
|
-
} from "
|
|
20
|
+
} from "../../../api/index.ts";
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
23
|
* The WebGL implementation of the sprite render pipeline.
|
|
@@ -4,7 +4,7 @@ import type {
|
|
|
4
4
|
ITexture2D,
|
|
5
5
|
IUniformBuffer, IUnlitRenderPipeline,
|
|
6
6
|
IVertexBuffer
|
|
7
|
-
} from "
|
|
7
|
+
} from "../../../api/index.ts";
|
|
8
8
|
import {VertexBufferLayout} from "../../../core/rendering/vertex-buffer-layout";
|
|
9
9
|
import type {WebGlUniformBuffer} from "../../buffers/WebGlUniformBuffer.ts";
|
|
10
10
|
import { asWebGLUniformBuffer} from "../../cast/cast";
|
|
@@ -13,7 +13,7 @@ import {WebGlTexture2D} from "../../texture/WebGlTexture2D.ts";
|
|
|
13
13
|
import {WebGlVertexBuffer} from '../../buffers/WebGlVertexBuffer.ts';
|
|
14
14
|
import {AWebGlRenderPipeline} from "../AWebGlRenderPipeline.ts";
|
|
15
15
|
import type {WebGLIndexBuffer} from "../../buffers/webgl-index-buffer";
|
|
16
|
-
import {type IIndexBuffer, IndexBufferType} from "
|
|
16
|
+
import {type IIndexBuffer, IndexBufferType} from "../../../api/index.ts";
|
|
17
17
|
import type {WebGlSampler} from "../../sampler/webgl-sampler.ts";
|
|
18
18
|
|
|
19
19
|
/**
|
|
@@ -5,7 +5,7 @@ import type {
|
|
|
5
5
|
ITexture2D,
|
|
6
6
|
IUniformBuffer,
|
|
7
7
|
IVertexBuffer
|
|
8
|
-
} from "
|
|
8
|
+
} from "../../../api/index.ts";
|
|
9
9
|
import {VertexBufferLayout} from "../../../core/rendering/vertex-buffer-layout";
|
|
10
10
|
import type {WebGlUniformBuffer} from "../../buffers/WebGlUniformBuffer.ts";
|
|
11
11
|
import {asWebGLTexture2D, asWebGLUniformBuffer} from "../../cast/cast";
|
|
@@ -14,7 +14,7 @@ import {WebGlTexture2D} from "../../texture/WebGlTexture2D.ts";
|
|
|
14
14
|
import {WebGlVertexBuffer} from '../../buffers/WebGlVertexBuffer.ts';
|
|
15
15
|
import {AWebGlRenderPipeline} from "../AWebGlRenderPipeline.ts";
|
|
16
16
|
import type {WebGLIndexBuffer} from "../../buffers/webgl-index-buffer";
|
|
17
|
-
import {type IIndexBuffer, IndexBufferType} from "
|
|
17
|
+
import {type IIndexBuffer, IndexBufferType} from "../../../api/index.ts";
|
|
18
18
|
import type {WebGlSampler} from "../../sampler/webgl-sampler.ts";
|
|
19
19
|
|
|
20
20
|
/**
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { SamplerCompareFunction } from "../../
|
|
1
|
+
import { SamplerCompareFunction } from "../../api/rendering/sampler/sampler-enums";
|
|
2
2
|
import { SamplerDescriptor } from "../../core/rendering/sampler/sampler-descriptor";
|
|
3
3
|
import { WebGlUtilities } from "../utilities/WebGlUtilities.ts";
|
|
4
4
|
import type { WebGlGraphicsDevice } from "../WebGlGraphicsDevice.ts";
|
|
5
|
-
import {type ISampler, MipMapSamplerFilter, SamplerAddressMode, SamplerFilter} from "
|
|
5
|
+
import {type ISampler, MipMapSamplerFilter, SamplerAddressMode, SamplerFilter} from "../../api/index.ts";
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* The WebGL implementation of the ISampler interface.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type {WebGlGraphicsDevice} from "../WebGlGraphicsDevice.ts";
|
|
2
2
|
import {WebGlUtilities} from "../utilities/WebGlUtilities.ts";
|
|
3
|
-
import {type IFramework, type IShaderModule, ShaderStage} from "
|
|
4
|
-
import {ShaderModuleContent} from "../../content/ShaderModuleContent.ts";
|
|
3
|
+
import {type IFramework, type IShaderModule, ShaderStage} from "../../api/index.ts";
|
|
4
|
+
import {ShaderModuleContent} from "../../api/content/ShaderModuleContent.ts";
|
|
5
5
|
|
|
6
6
|
interface WebGlInternalShader {
|
|
7
7
|
vertex: string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { vec2 } from "gl-matrix";
|
|
2
|
-
import {type IGraphicsDevice, type ISwapChain, TextureFormat} from "
|
|
2
|
+
import {type IGraphicsDevice, type ISwapChain, TextureFormat} from "../../api/index.ts";
|
|
3
3
|
import type {WebGlGraphicsDevice} from "../WebGlGraphicsDevice.ts";
|
|
4
4
|
|
|
5
5
|
/**
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
type IFramework, State,
|
|
5
5
|
type ITextureView,
|
|
6
6
|
type TextureViewDescriptor, TextureUtilities
|
|
7
|
-
} from "
|
|
7
|
+
} from "../../api/index.ts";
|
|
8
8
|
import type {WebGlGraphicsDevice} from "../WebGlGraphicsDevice.ts";
|
|
9
9
|
import {ATexture2D} from "../../core/rendering/texture/texture.ts";
|
|
10
10
|
import {vec2} from "gl-matrix";
|
|
@@ -78,8 +78,9 @@ export class WebGlTexture2D extends ATexture2D {
|
|
|
78
78
|
|
|
79
79
|
for (let i = 0; i < this.mipLevels; i++) {
|
|
80
80
|
this._size += TextureUtilities.getVRamSize(this.textureFormat, width, height);
|
|
81
|
-
|
|
82
|
-
|
|
81
|
+
// Each mip is at least 1x1 and has whole-pixel dimensions.
|
|
82
|
+
width = Math.max(1, Math.floor(width / 2));
|
|
83
|
+
height = Math.max(1, Math.floor(height / 2));
|
|
83
84
|
}
|
|
84
85
|
}
|
|
85
86
|
|
|
@@ -100,7 +101,8 @@ export class WebGlTexture2D extends ATexture2D {
|
|
|
100
101
|
this._glTexture = null;
|
|
101
102
|
this._state = State.DISPOSED;
|
|
102
103
|
|
|
103
|
-
|
|
104
|
+
// Iterate a copy. A listener may remove itself while this loop runs.
|
|
105
|
+
for (const listener of this._disposedListeners.slice()) {
|
|
104
106
|
listener(this);
|
|
105
107
|
}
|
|
106
108
|
}
|
|
@@ -7,15 +7,15 @@ import {
|
|
|
7
7
|
TextureFormat,
|
|
8
8
|
TextureUsage,
|
|
9
9
|
TextureUtilities
|
|
10
|
-
} from "
|
|
10
|
+
} from "../../api/index.ts"
|
|
11
11
|
import {WebGlTexture2D} from "./WebGlTexture2D.ts";
|
|
12
|
-
import {type IKtx2Texture, KtxTranscodeFlags, KtxTranscodeFormat, TextureFormatInfo, VkFormat} from "ris-ktx2
|
|
12
|
+
import {type IKtx2Texture, KtxTranscodeFlags, KtxTranscodeFormat, TextureFormatInfo, VkFormat} from "ris-ktx2";
|
|
13
13
|
import {vec2} from "gl-matrix";
|
|
14
14
|
|
|
15
15
|
export class WebGlTextureFactory implements ITextureFactory {
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
|
-
* The constructor for the
|
|
18
|
+
* The constructor for the WebGlTextureFactory class.
|
|
19
19
|
* @param _framework The framework instance.
|
|
20
20
|
*/
|
|
21
21
|
constructor(private readonly _framework: IFramework) {
|
|
@@ -65,7 +65,7 @@ export class WebGlTextureFactory implements ITextureFactory {
|
|
|
65
65
|
}
|
|
66
66
|
|
|
67
67
|
ktxTexture.transcodeBasis(transcodeFormat, KtxTranscodeFlags.HIGH_QUALITY);
|
|
68
|
-
texFormatInfo = ktxTexture.getTextureFormatInfo(transcodeFormat);
|
|
68
|
+
texFormatInfo = ktxTexture.getTextureFormatInfo(TextureUtilities.convertKtxTranscodeFormatToVkFormat(transcodeFormat));
|
|
69
69
|
}
|
|
70
70
|
else {
|
|
71
71
|
// No transcoding path, but still get info about the texture format.
|
|
@@ -168,14 +168,14 @@ export class WebGlTextureFactory implements ITextureFactory {
|
|
|
168
168
|
return texture;
|
|
169
169
|
}
|
|
170
170
|
|
|
171
|
-
// Fill CPU-side pixels
|
|
171
|
+
// Fill CPU-side pixels in RGBA order. WebGL uploads these bytes as gl.RGBA.
|
|
172
172
|
const byteSize = width * height * 4;
|
|
173
173
|
const bytes = new Uint8Array(byteSize);
|
|
174
174
|
|
|
175
175
|
for (let i = 0; i < byteSize; i += 4) {
|
|
176
|
-
bytes[i
|
|
176
|
+
bytes[i] = color.r * 255;
|
|
177
177
|
bytes[i + 1] = color.g * 255;
|
|
178
|
-
bytes[i + 2] = color.
|
|
178
|
+
bytes[i + 2] = color.b * 255;
|
|
179
179
|
bytes[i + 3] = color.a * 255;
|
|
180
180
|
}
|
|
181
181
|
|
|
@@ -1,8 +1,16 @@
|
|
|
1
|
-
import {Culling} from "../../
|
|
1
|
+
import {Culling} from "../../api/rendering/enums.ts";
|
|
2
2
|
import {BlendFactor, BlendOperation} from "../../core/rendering/blending/enums";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
3
|
+
import {VertexFormat} from "../../api/geometry/VertexFormat.ts";
|
|
4
|
+
import {
|
|
5
|
+
BufferUsage,
|
|
6
|
+
CullMode,
|
|
7
|
+
FrontFace,
|
|
8
|
+
MipMapSamplerFilter,
|
|
9
|
+
PrimitiveTopology,
|
|
10
|
+
SamplerAddressMode,
|
|
11
|
+
SamplerFilter,
|
|
12
|
+
TextureFormat
|
|
13
|
+
} from "../../api/index.ts";
|
|
6
14
|
|
|
7
15
|
export class WebGlConverter {
|
|
8
16
|
|
|
@@ -36,6 +44,8 @@ export class WebGlConverter {
|
|
|
36
44
|
return WebGL2RenderingContext.LINE_STRIP;
|
|
37
45
|
case PrimitiveTopology.POINT_LIST:
|
|
38
46
|
return WebGL2RenderingContext.POINTS;
|
|
47
|
+
case PrimitiveTopology.TRIANGLE_STRIP:
|
|
48
|
+
return WebGL2RenderingContext.TRIANGLE_STRIP;
|
|
39
49
|
default:
|
|
40
50
|
throw new Error("Method not implemented.");
|
|
41
51
|
}
|
|
@@ -93,8 +103,8 @@ export class WebGlConverter {
|
|
|
93
103
|
return bufferUsage;
|
|
94
104
|
}
|
|
95
105
|
/**
|
|
96
|
-
*
|
|
97
|
-
* @
|
|
106
|
+
* Converts BlendOperation to WebGL enum.
|
|
107
|
+
* @param gl The WebGL2RenderingContext.
|
|
98
108
|
* @param blendOperation The BlendOperation.
|
|
99
109
|
* @return The WebGL enum.
|
|
100
110
|
*/
|
|
@@ -227,6 +237,7 @@ export class WebGlConverter {
|
|
|
227
237
|
public static convertToTextureType(gl: WebGL2RenderingContext, textureFormat: TextureFormat): number {
|
|
228
238
|
switch (textureFormat) {
|
|
229
239
|
case TextureFormat.RGBA_8_UNORM:
|
|
240
|
+
case TextureFormat.RGBA_8_UNORM_SRGB:
|
|
230
241
|
return gl.UNSIGNED_BYTE;
|
|
231
242
|
case TextureFormat.DEPTH_32_FLOAT:
|
|
232
243
|
return gl.FLOAT;
|
|
@@ -237,61 +248,6 @@ export class WebGlConverter {
|
|
|
237
248
|
}
|
|
238
249
|
}
|
|
239
250
|
|
|
240
|
-
/**
|
|
241
|
-
* Converts SamplerMinFilter to WebGL enum.
|
|
242
|
-
* @param gl The WebGL2RenderingContext.
|
|
243
|
-
* @param minFilter The SamplerMinFilter.
|
|
244
|
-
* @param mipMapFilter The MipmapSamplerFilter.
|
|
245
|
-
* @returns The WebGL enum.
|
|
246
|
-
*/
|
|
247
|
-
public static convertToMinFilter(gl: WebGL2RenderingContext,
|
|
248
|
-
minFilter: SamplerFilter,
|
|
249
|
-
mipMapFilter: MipMapSamplerFilter): number {
|
|
250
|
-
if (mipMapFilter == MipMapSamplerFilter.NONE) {
|
|
251
|
-
return this.convertMagFilter(gl, minFilter);
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
if (minFilter == SamplerFilter.NEAREST) {
|
|
255
|
-
switch (mipMapFilter) {
|
|
256
|
-
case MipMapSamplerFilter.NEAREST:
|
|
257
|
-
return gl.NEAREST_MIPMAP_NEAREST;
|
|
258
|
-
case MipMapSamplerFilter.LINEAR:
|
|
259
|
-
return gl.NEAREST_MIPMAP_LINEAR;
|
|
260
|
-
default:
|
|
261
|
-
throw new Error("NotImplementedException");
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
else if (minFilter == SamplerFilter.LINEAR) {
|
|
265
|
-
switch (mipMapFilter) {
|
|
266
|
-
case MipMapSamplerFilter.NEAREST:
|
|
267
|
-
return gl.LINEAR_MIPMAP_NEAREST;
|
|
268
|
-
case MipMapSamplerFilter.LINEAR:
|
|
269
|
-
return gl.LINEAR_MIPMAP_LINEAR;
|
|
270
|
-
default:
|
|
271
|
-
throw new Error("NotImplementedException");
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
throw new Error("NotImplementedException");
|
|
276
|
-
}
|
|
277
|
-
|
|
278
|
-
/**
|
|
279
|
-
* Converts SamplerMagFilter to WebGL enum.
|
|
280
|
-
* @param gl The WebGL2RenderingContext.
|
|
281
|
-
* @param magFilter The SamplerMagFilter.
|
|
282
|
-
* @returns The WebGL enum.
|
|
283
|
-
*/
|
|
284
|
-
public static convertToMagFilter(gl: WebGL2RenderingContext, magFilter: SamplerFilter): number {
|
|
285
|
-
switch (magFilter) {
|
|
286
|
-
case SamplerFilter.NEAREST:
|
|
287
|
-
return gl.NEAREST;
|
|
288
|
-
case SamplerFilter.LINEAR:
|
|
289
|
-
return gl.LINEAR;
|
|
290
|
-
default:
|
|
291
|
-
throw new Error("NotImplementedException");
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
|
|
295
251
|
/**
|
|
296
252
|
* Converts VertexFormat to the number of components for WebGL vertex attribute pointer.
|
|
297
253
|
* @param vertexFormat The VertexFormat.
|
|
@@ -338,7 +294,7 @@ export class WebGlConverter {
|
|
|
338
294
|
* @param mipMapFilter The MipmapSamplerFilter.
|
|
339
295
|
* @returns The WebGL enum.
|
|
340
296
|
*/
|
|
341
|
-
public static
|
|
297
|
+
public static convertMinFilter(gl: WebGL2RenderingContext, filter: SamplerFilter, mipMapFilter: MipMapSamplerFilter): number {
|
|
342
298
|
|
|
343
299
|
if (mipMapFilter == MipMapSamplerFilter.NONE) {
|
|
344
300
|
return this.convertMagFilter(gl, filter);
|
|
@@ -382,6 +338,7 @@ export class WebGlConverter {
|
|
|
382
338
|
case SamplerAddressMode.MIRROR_REPEAT:
|
|
383
339
|
return gl.MIRRORED_REPEAT;
|
|
384
340
|
case SamplerAddressMode.CLAMP_TO_BORDER:
|
|
341
|
+
// WebGL2 has no clamp-to-border wrap mode. Clamp to edge is the closest match.
|
|
385
342
|
return gl.CLAMP_TO_EDGE;
|
|
386
343
|
default:
|
|
387
344
|
throw new Error("NotImplementedException");
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { SamplerCompareFunction } from '../../
|
|
1
|
+
import { SamplerCompareFunction } from '../../api/rendering/sampler/sampler-enums';
|
|
2
2
|
import { SpectorJSUtilities } from './spector-js-utilities';
|
|
3
3
|
import { WebGlConverter } from './WebGlConverter.ts';
|
|
4
|
-
import {MipMapSamplerFilter, SamplerAddressMode, SamplerFilter} from "
|
|
4
|
+
import {MipMapSamplerFilter, SamplerAddressMode, SamplerFilter} from "../../api/index.ts";
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* The utility class for working with WebGLSampler object.
|
|
@@ -20,7 +20,7 @@ export class WebGlSamplerUtilities {
|
|
|
20
20
|
* @param compareFunction The compare function of the sampler. This is used for shadow samplers.
|
|
21
21
|
* @param _anisotropy The anisotropy level of the sampler. This is used for anisotropic filtering. The default value is 1, which means no anisotropic filtering.
|
|
22
22
|
* @param label The label of the sampler. This is used for debugging purposes and can be viewed in graphics debuggers like SpectorJS.
|
|
23
|
-
* @returns
|
|
23
|
+
* @returns The created WebGLSampler.
|
|
24
24
|
*/
|
|
25
25
|
public create(gl: WebGL2RenderingContext,
|
|
26
26
|
minFilter: SamplerFilter = SamplerFilter.LINEAR,
|
|
@@ -35,7 +35,7 @@ export class WebGlSamplerUtilities {
|
|
|
35
35
|
{
|
|
36
36
|
const sampler = gl.createSampler();
|
|
37
37
|
|
|
38
|
-
const glMinFilter = WebGlConverter.
|
|
38
|
+
const glMinFilter = WebGlConverter.convertMinFilter(gl, minFilter, mipMapFilter);
|
|
39
39
|
const glMagFilter = WebGlConverter.convertMagFilter(gl, magFilter);
|
|
40
40
|
const glAddressModeU = WebGlConverter.convertAddressMode(gl, addressModeU);
|
|
41
41
|
const glAddressModeV = WebGlConverter.convertAddressMode(gl, addressModeV);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import {WebGlConverter} from "./WebGlConverter.ts";
|
|
2
|
-
import {TextureFormat} from "
|
|
2
|
+
import {AlignUtilities, TextureFormat} from "../../api/index.ts";
|
|
3
3
|
import {vec2} from "gl-matrix";
|
|
4
4
|
|
|
5
5
|
/**
|
|
@@ -13,7 +13,7 @@ export class WebGlTextureUtilities {
|
|
|
13
13
|
* @param width The width of the texture.
|
|
14
14
|
* @param height The height of the texture.
|
|
15
15
|
* @param data The texture data. If null, an uninitialized texture will be created.
|
|
16
|
-
* @param textureFormat The format of the texture. If not specified,
|
|
16
|
+
* @param textureFormat The format of the texture. If not specified, RGBA_8_UNORM will be used.
|
|
17
17
|
* @param useMipMaps True to generate mipmaps for the texture, false otherwise. By default, it is false.
|
|
18
18
|
* @param anisotropy The level of anisotropic filtering to use when sampling the texture. A value of 1 means no anisotropic filtering, while higher values (e.g., 4, 8, 16) indicate increasing levels of anisotropic filtering. By default, it is 1 (no anisotropic filtering).
|
|
19
19
|
* @param label The label for the texture. This can be used for debugging purposes to identify the texture in graphics debuggers.
|
|
@@ -51,7 +51,7 @@ export class WebGlTextureUtilities {
|
|
|
51
51
|
|
|
52
52
|
gl.texStorage2D(gl.TEXTURE_2D, mipLevels, internalFormat, width, height);
|
|
53
53
|
|
|
54
|
-
if(data) {
|
|
54
|
+
if (data) {
|
|
55
55
|
for (let i = 0; i < mipLevels; i++) {
|
|
56
56
|
|
|
57
57
|
const mipLevelData = data[i];
|
|
@@ -64,11 +64,9 @@ export class WebGlTextureUtilities {
|
|
|
64
64
|
gl.texSubImage2D(gl.TEXTURE_2D, i, 0, 0, levelWidth, levelHeight, format, gl.UNSIGNED_BYTE, mipLevelData);
|
|
65
65
|
} else if (mipLevelData) {
|
|
66
66
|
gl.texSubImage2D(gl.TEXTURE_2D, i, 0, 0, levelWidth, levelHeight, format, gl.UNSIGNED_BYTE, mipLevelData);
|
|
67
|
-
}
|
|
68
|
-
else if(!mipLevelData) {
|
|
67
|
+
} else if (!mipLevelData) {
|
|
69
68
|
// If not must be empty array, so we can safely ignore it.
|
|
70
|
-
}
|
|
71
|
-
else {
|
|
69
|
+
} else {
|
|
72
70
|
throw new Error("unsupported data type");
|
|
73
71
|
}
|
|
74
72
|
}
|
|
@@ -94,14 +92,14 @@ export class WebGlTextureUtilities {
|
|
|
94
92
|
* @param dimension The dimensions of the texture.
|
|
95
93
|
* @param blockSize The block size of a compressed format.
|
|
96
94
|
* @param data The texture data. If null, an uninitialized texture will be created.
|
|
97
|
-
* @param textureFormat The format of the texture. If not specified, BGRA_8_UNORM will be used.
|
|
98
|
-
* @param anisotropy The level of anisotropic filtering to use when sampling the texture. A value of 1 means no anisotropic filtering, while higher values (e.g., 4, 8, 16) indicate increasing levels of anisotropic filtering. By default, it is 1 (no anisotropic filtering).
|
|
99
95
|
* @param label The label for the texture. This can be used for debugging purposes to identify the texture in graphics debuggers.
|
|
96
|
+
* @param textureFormat The format of the texture. If not specified, RGBA_8_UNORM will be used.
|
|
97
|
+
* @param anisotropy The level of anisotropic filtering to use when sampling the texture. A value of 1 means no anisotropic filtering, while higher values (e.g., 4, 8, 16) indicate increasing levels of anisotropic filtering. By default, it is 1 (no anisotropic filtering).
|
|
100
98
|
* @returns The created WebGL texture.
|
|
101
99
|
*/
|
|
102
100
|
public createCompressedTexture2D(
|
|
103
101
|
gl: WebGL2RenderingContext,
|
|
104
|
-
dimension: vec2,
|
|
102
|
+
dimension: vec2, blockSize: vec2,
|
|
105
103
|
data: Uint8Array[] | null = null,
|
|
106
104
|
label: string | null = null,
|
|
107
105
|
textureFormat = TextureFormat.RGBA_8_UNORM,
|
|
@@ -111,7 +109,6 @@ export class WebGlTextureUtilities {
|
|
|
111
109
|
const baseWidth = dimension[0];
|
|
112
110
|
const baseHeight = dimension[1];
|
|
113
111
|
const mipLevels = data?.length ?? 1;
|
|
114
|
-
|
|
115
112
|
const texture = gl.createTexture();
|
|
116
113
|
|
|
117
114
|
if (label != null) {
|
|
@@ -124,9 +121,12 @@ export class WebGlTextureUtilities {
|
|
|
124
121
|
|
|
125
122
|
const internalFormat = WebGlConverter.convertInternalFormat(gl, textureFormat);
|
|
126
123
|
|
|
127
|
-
|
|
124
|
+
const useTexStorage = baseWidth % blockSize[0] == 0 && baseHeight % blockSize[1] == 0;
|
|
125
|
+
if (useTexStorage) {
|
|
126
|
+
gl.texStorage2D(gl.TEXTURE_2D, mipLevels, internalFormat, baseWidth, baseHeight);
|
|
127
|
+
}
|
|
128
128
|
|
|
129
|
-
if(data && data.length > 0) {
|
|
129
|
+
if (data && data.length > 0) {
|
|
130
130
|
|
|
131
131
|
let width = baseWidth;
|
|
132
132
|
let height = baseHeight;
|
|
@@ -136,20 +136,24 @@ export class WebGlTextureUtilities {
|
|
|
136
136
|
const mipLevelData = data[i];
|
|
137
137
|
|
|
138
138
|
if (mipLevelData instanceof Uint8Array) {
|
|
139
|
-
|
|
139
|
+
if (useTexStorage) {
|
|
140
|
+
gl.compressedTexSubImage2D(gl.TEXTURE_2D, i, 0, 0, width, height, internalFormat, mipLevelData, 0);
|
|
141
|
+
} else {
|
|
142
|
+
const alignedWidth = AlignUtilities.align(width, blockSize[0]);
|
|
143
|
+
const alignedHeight = AlignUtilities.align(height, blockSize[1]);
|
|
144
|
+
gl.compressedTexImage2D(gl.TEXTURE_2D, i, internalFormat, alignedWidth, alignedHeight, 0, mipLevelData, 0);
|
|
145
|
+
}
|
|
140
146
|
} else {
|
|
141
147
|
throw new Error("unsupported data type");
|
|
142
148
|
}
|
|
143
149
|
|
|
144
|
-
width
|
|
145
|
-
height
|
|
150
|
+
width = Math.max(1, Math.floor(width / 2));
|
|
151
|
+
height = Math.max(1, Math.floor(height / 2));
|
|
146
152
|
}
|
|
147
153
|
}
|
|
148
154
|
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
gl.generateMipmap(gl.TEXTURE_2D);
|
|
152
|
-
}
|
|
155
|
+
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
|
|
156
|
+
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
|
|
153
157
|
|
|
154
158
|
// Set anisotropy.
|
|
155
159
|
if (anisotropy > 1.0) {
|
|
@@ -157,6 +161,11 @@ export class WebGlTextureUtilities {
|
|
|
157
161
|
//OpenGLESUtilities.Anisotropy.SetAnisotropy(gl, texture, anisotropy);
|
|
158
162
|
}
|
|
159
163
|
|
|
164
|
+
const error = gl.getError();
|
|
165
|
+
if (error != gl.NO_ERROR) {
|
|
166
|
+
throw new Error("WebGlTextureUtilities error " + error.toString());
|
|
167
|
+
}
|
|
168
|
+
|
|
160
169
|
return texture;
|
|
161
170
|
}
|
|
162
171
|
}
|
|
@@ -12,7 +12,7 @@ export class WebGLFilterAnisotropicUtilities {
|
|
|
12
12
|
/**
|
|
13
13
|
* Gets the max anisotropy.
|
|
14
14
|
* @param gl The WebGL2 rendering context.
|
|
15
|
-
* @returns The maximum supported level of anisotropic filtering.
|
|
15
|
+
* @returns The maximum supported level of anisotropic filtering. `0` if not supported.
|
|
16
16
|
*/
|
|
17
17
|
public getMaxAnisotropy(gl: WebGL2RenderingContext): number {
|
|
18
18
|
this._extension = gl.getExtension(this.MAX_ANISOTROPY_EXT);
|
package/dist/TextureFormat.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TextureFormat.d.ts","sourceRoot":"","sources":["../src/TextureFormat.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"VertexFormat.d.ts","sourceRoot":"","sources":["../src/VertexFormat.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,YAAY;IACtB,QAAQ,IAAI;IAEZ,UAAU,IAAI;IAEd,UAAU,IAAI;IAEd,UAAU,IAAI;IAEd;;OAEG;IACH,WAAW,IAAI;CAChB"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
function createKtxModuleNode() {
|
|
2
|
-
throw new Error("ris-ktx2 Node loader is not included in the browser build.");
|
|
3
|
-
}
|
|
4
|
-
function readFileBytes() {
|
|
5
|
-
throw new Error("ris-ktx2 Node file loader is not included in the browser build.");
|
|
6
|
-
}
|
|
7
|
-
export {
|
|
8
|
-
createKtxModuleNode,
|
|
9
|
-
readFileBytes
|
|
10
|
-
};
|