@363045841yyt/klinechart-core 0.9.0-alpha.0 → 0.9.0-alpha.2
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/dist/controllers/createChartController.d.ts.map +1 -1
- package/dist/controllers/createChartController.js +31 -13
- package/dist/controllers/createChartController.js.map +1 -1
- package/dist/controllers/index.d.ts +1 -0
- package/dist/controllers/index.d.ts.map +1 -1
- package/dist/controllers/index.js.map +1 -1
- package/dist/controllers/types.d.ts +12 -0
- package/dist/controllers/types.d.ts.map +1 -1
- package/dist/engine/chart.d.ts +29 -11
- package/dist/engine/chart.d.ts.map +1 -1
- package/dist/engine/chart.js +147 -25
- package/dist/engine/chart.js.map +1 -1
- package/dist/engine/controller/interaction.d.ts +29 -4
- package/dist/engine/controller/interaction.d.ts.map +1 -1
- package/dist/engine/controller/interaction.js +78 -31
- package/dist/engine/controller/interaction.js.map +1 -1
- package/dist/engine/data/incrementalLoadHint.d.ts.map +1 -1
- package/dist/engine/data/incrementalLoadHint.js +5 -1
- package/dist/engine/data/incrementalLoadHint.js.map +1 -1
- package/dist/engine/drawing/DrawingState.d.ts +19 -34
- package/dist/engine/drawing/DrawingState.d.ts.map +1 -1
- package/dist/engine/drawing/DrawingState.js +110 -92
- package/dist/engine/drawing/DrawingState.js.map +1 -1
- package/dist/engine/drawing/index.d.ts +4 -1
- package/dist/engine/drawing/index.d.ts.map +1 -1
- package/dist/engine/drawing/index.js +9 -4
- package/dist/engine/drawing/index.js.map +1 -1
- package/dist/engine/drawing/interaction.d.ts +9 -29
- package/dist/engine/drawing/interaction.d.ts.map +1 -1
- package/dist/engine/drawing/interaction.js +23 -40
- package/dist/engine/drawing/interaction.js.map +1 -1
- package/dist/engine/indicators/chartIndicatorManager.d.ts.map +1 -1
- package/dist/engine/indicators/chartIndicatorManager.js +4 -12
- package/dist/engine/indicators/chartIndicatorManager.js.map +1 -1
- package/dist/engine/layout/chartPaneLayout.d.ts +0 -2
- package/dist/engine/layout/chartPaneLayout.d.ts.map +1 -1
- package/dist/engine/layout/chartPaneLayout.js +5 -9
- package/dist/engine/layout/chartPaneLayout.js.map +1 -1
- package/dist/engine/layout/pane.d.ts +0 -39
- package/dist/engine/layout/pane.d.ts.map +1 -1
- package/dist/engine/layout/pane.js +0 -9
- package/dist/engine/layout/pane.js.map +1 -1
- package/dist/engine/paneRenderer.d.ts +1 -10
- package/dist/engine/paneRenderer.d.ts.map +1 -1
- package/dist/engine/paneRenderer.js +2 -19
- package/dist/engine/paneRenderer.js.map +1 -1
- package/dist/engine/render/chartRenderer.d.ts +49 -8
- package/dist/engine/render/chartRenderer.d.ts.map +1 -1
- package/dist/engine/render/chartRenderer.js +143 -72
- package/dist/engine/render/chartRenderer.js.map +1 -1
- package/dist/engine/renderers/Indicator/atr.js +3 -13
- package/dist/engine/renderers/Indicator/atr.js.map +1 -1
- package/dist/engine/renderers/Indicator/boll.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/boll.js +12 -24
- package/dist/engine/renderers/Indicator/boll.js.map +1 -1
- package/dist/engine/renderers/Indicator/cci.js +6 -13
- package/dist/engine/renderers/Indicator/cci.js.map +1 -1
- package/dist/engine/renderers/Indicator/chaikinVol.js +3 -11
- package/dist/engine/renderers/Indicator/chaikinVol.js.map +1 -1
- package/dist/engine/renderers/Indicator/cmf.js +3 -11
- package/dist/engine/renderers/Indicator/cmf.js.map +1 -1
- package/dist/engine/renderers/Indicator/dema.js +3 -11
- package/dist/engine/renderers/Indicator/dema.js.map +1 -1
- package/dist/engine/renderers/Indicator/donchian.js +3 -11
- package/dist/engine/renderers/Indicator/donchian.js.map +1 -1
- package/dist/engine/renderers/Indicator/ene.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/ene.js +12 -24
- package/dist/engine/renderers/Indicator/ene.js.map +1 -1
- package/dist/engine/renderers/Indicator/expma.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/expma.js +5 -11
- package/dist/engine/renderers/Indicator/expma.js.map +1 -1
- package/dist/engine/renderers/Indicator/fastk.js +6 -13
- package/dist/engine/renderers/Indicator/fastk.js.map +1 -1
- package/dist/engine/renderers/Indicator/fib.js +3 -11
- package/dist/engine/renderers/Indicator/fib.js.map +1 -1
- package/dist/engine/renderers/Indicator/hma.js +3 -11
- package/dist/engine/renderers/Indicator/hma.js.map +1 -1
- package/dist/engine/renderers/Indicator/hv.js +3 -11
- package/dist/engine/renderers/Indicator/hv.js.map +1 -1
- package/dist/engine/renderers/Indicator/ichimoku.js +24 -18
- package/dist/engine/renderers/Indicator/ichimoku.js.map +1 -1
- package/dist/engine/renderers/Indicator/kama.js +3 -11
- package/dist/engine/renderers/Indicator/kama.js.map +1 -1
- package/dist/engine/renderers/Indicator/keltner.js +3 -11
- package/dist/engine/renderers/Indicator/keltner.js.map +1 -1
- package/dist/engine/renderers/Indicator/kst.js +9 -17
- package/dist/engine/renderers/Indicator/kst.js.map +1 -1
- package/dist/engine/renderers/Indicator/ma.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/ma.js +10 -21
- package/dist/engine/renderers/Indicator/ma.js.map +1 -1
- package/dist/engine/renderers/Indicator/macd.js +14 -44
- package/dist/engine/renderers/Indicator/macd.js.map +1 -1
- package/dist/engine/renderers/Indicator/mfi.js +3 -11
- package/dist/engine/renderers/Indicator/mfi.js.map +1 -1
- package/dist/engine/renderers/Indicator/mom.js +6 -13
- package/dist/engine/renderers/Indicator/mom.js.map +1 -1
- package/dist/engine/renderers/Indicator/obv.js +3 -11
- package/dist/engine/renderers/Indicator/obv.js.map +1 -1
- package/dist/engine/renderers/Indicator/parkinson.js +3 -11
- package/dist/engine/renderers/Indicator/parkinson.js.map +1 -1
- package/dist/engine/renderers/Indicator/pvt.js +3 -11
- package/dist/engine/renderers/Indicator/pvt.js.map +1 -1
- package/dist/engine/renderers/Indicator/roc.js +3 -11
- package/dist/engine/renderers/Indicator/roc.js.map +1 -1
- package/dist/engine/renderers/Indicator/rsi.js +12 -20
- package/dist/engine/renderers/Indicator/rsi.js.map +1 -1
- package/dist/engine/renderers/Indicator/shared/webglBand.d.ts +0 -2
- package/dist/engine/renderers/Indicator/shared/webglBand.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/shared/webglBand.js +0 -6
- package/dist/engine/renderers/Indicator/shared/webglBand.js.map +1 -1
- package/dist/engine/renderers/Indicator/stoch.js +9 -17
- package/dist/engine/renderers/Indicator/stoch.js.map +1 -1
- package/dist/engine/renderers/Indicator/tema.js +3 -11
- package/dist/engine/renderers/Indicator/tema.js.map +1 -1
- package/dist/engine/renderers/Indicator/trix.js +3 -11
- package/dist/engine/renderers/Indicator/trix.js.map +1 -1
- package/dist/engine/renderers/Indicator/vma.js +3 -11
- package/dist/engine/renderers/Indicator/vma.js.map +1 -1
- package/dist/engine/renderers/Indicator/vwap.js +3 -11
- package/dist/engine/renderers/Indicator/vwap.js.map +1 -1
- package/dist/engine/renderers/Indicator/wma.js +3 -11
- package/dist/engine/renderers/Indicator/wma.js.map +1 -1
- package/dist/engine/renderers/Indicator/wmsr.js +6 -13
- package/dist/engine/renderers/Indicator/wmsr.js.map +1 -1
- package/dist/engine/renderers/candle.d.ts.map +1 -1
- package/dist/engine/renderers/candle.js +21 -28
- package/dist/engine/renderers/candle.js.map +1 -1
- package/dist/engine/renderers/candleViaRenderer.d.ts +19 -0
- package/dist/engine/renderers/candleViaRenderer.d.ts.map +1 -0
- package/dist/engine/renderers/candleViaRenderer.js +15 -0
- package/dist/engine/renderers/candleViaRenderer.js.map +1 -0
- package/dist/engine/renderers/linesViaRenderer.d.ts +55 -0
- package/dist/engine/renderers/linesViaRenderer.d.ts.map +1 -0
- package/dist/engine/renderers/linesViaRenderer.js +169 -0
- package/dist/engine/renderers/linesViaRenderer.js.map +1 -0
- package/dist/engine/renderers/rectsViaRenderer.d.ts +18 -0
- package/dist/engine/renderers/rectsViaRenderer.d.ts.map +1 -0
- package/dist/engine/renderers/rectsViaRenderer.js +63 -0
- package/dist/engine/renderers/rectsViaRenderer.js.map +1 -0
- package/dist/engine/renderers/subVolume.js +7 -26
- package/dist/engine/renderers/subVolume.js.map +1 -1
- package/dist/engine/renderers/timeAxis.js +1 -1
- package/dist/engine/renderers/timeAxis.js.map +1 -1
- package/dist/engine/state/chartStateKernel.d.ts +11 -2
- package/dist/engine/state/chartStateKernel.d.ts.map +1 -1
- package/dist/engine/state/chartStateKernel.js +28 -12
- package/dist/engine/state/chartStateKernel.js.map +1 -1
- package/dist/engine/state/index.d.ts +1 -1
- package/dist/engine/state/index.d.ts.map +1 -1
- package/dist/engine/state/index.js +1 -1
- package/dist/engine/state/index.js.map +1 -1
- package/dist/engine/state/interactionState.d.ts +15 -7
- package/dist/engine/state/interactionState.d.ts.map +1 -1
- package/dist/engine/state/interactionState.js +55 -60
- package/dist/engine/state/interactionState.js.map +1 -1
- package/dist/engine/state/rendererState.d.ts +14 -0
- package/dist/engine/state/rendererState.d.ts.map +1 -0
- package/dist/engine/state/rendererState.js +25 -0
- package/dist/engine/state/rendererState.js.map +1 -0
- package/dist/engine/state/themeState.d.ts +11 -4
- package/dist/engine/state/themeState.d.ts.map +1 -1
- package/dist/engine/state/themeState.js +13 -5
- package/dist/engine/state/themeState.js.map +1 -1
- package/dist/engine/state/viewportState.d.ts.map +1 -1
- package/dist/engine/state/viewportState.js +7 -3
- package/dist/engine/state/viewportState.js.map +1 -1
- package/dist/engine/subPaneManager.d.ts.map +1 -1
- package/dist/engine/subPaneManager.js +2 -10
- package/dist/engine/subPaneManager.js.map +1 -1
- package/dist/foundation/config/chartSettings.d.ts +16 -4
- package/dist/foundation/config/chartSettings.d.ts.map +1 -1
- package/dist/foundation/config/chartSettings.js +21 -6
- package/dist/foundation/config/chartSettings.js.map +1 -1
- package/dist/foundation/plugin/index.d.ts +0 -1
- package/dist/foundation/plugin/index.d.ts.map +1 -1
- package/dist/foundation/plugin/rendererPluginManager.d.ts +1 -22
- package/dist/foundation/plugin/rendererPluginManager.d.ts.map +1 -1
- package/dist/foundation/plugin/rendererPluginManager.js +0 -84
- package/dist/foundation/plugin/rendererPluginManager.js.map +1 -1
- package/dist/foundation/plugin/types.d.ts +11 -17
- package/dist/foundation/plugin/types.d.ts.map +1 -1
- package/dist/foundation/plugin/types.js.map +1 -1
- package/dist/foundation/reactivity/frameTransaction.d.ts +71 -0
- package/dist/foundation/reactivity/frameTransaction.d.ts.map +1 -0
- package/dist/foundation/reactivity/frameTransaction.js +170 -0
- package/dist/foundation/reactivity/frameTransaction.js.map +1 -0
- package/dist/foundation/reactivity/index.d.ts +4 -2
- package/dist/foundation/reactivity/index.d.ts.map +1 -1
- package/dist/foundation/reactivity/index.js +2 -1
- package/dist/foundation/reactivity/index.js.map +1 -1
- package/dist/foundation/reactivity/signal.d.ts +20 -0
- package/dist/foundation/reactivity/signal.d.ts.map +1 -1
- package/dist/foundation/reactivity/signal.js +27 -0
- package/dist/foundation/reactivity/signal.js.map +1 -1
- package/dist/foundation/tokens/theme-dark.d.ts.map +1 -1
- package/dist/foundation/tokens/theme-dark.js +2 -1
- package/dist/foundation/tokens/theme-dark.js.map +1 -1
- package/dist/foundation/tokens/theme-light.d.ts.map +1 -1
- package/dist/foundation/tokens/theme-light.js +2 -1
- package/dist/foundation/tokens/theme-light.js.map +1 -1
- package/dist/rendering/render/Renderer.d.ts +29 -14
- package/dist/rendering/render/Renderer.d.ts.map +1 -1
- package/dist/rendering/render/Renderer.js +3 -10
- package/dist/rendering/render/Renderer.js.map +1 -1
- package/dist/rendering/render/SurfaceBackend.d.ts +5 -7
- package/dist/rendering/render/SurfaceBackend.d.ts.map +1 -1
- package/dist/rendering/render/SurfaceBackend.js +5 -7
- package/dist/rendering/render/SurfaceBackend.js.map +1 -1
- package/dist/rendering/render/createCanvas2DRenderer.d.ts +3 -0
- package/dist/rendering/render/createCanvas2DRenderer.d.ts.map +1 -0
- package/dist/rendering/render/createCanvas2DRenderer.js +74 -0
- package/dist/rendering/render/createCanvas2DRenderer.js.map +1 -0
- package/dist/rendering/render/createDefaultRendererHost.d.ts +4 -0
- package/dist/rendering/render/createDefaultRendererHost.d.ts.map +1 -0
- package/dist/rendering/render/createDefaultRendererHost.js +54 -0
- package/dist/rendering/render/createDefaultRendererHost.js.map +1 -0
- package/dist/rendering/render/createWebGLRenderer.d.ts.map +1 -1
- package/dist/rendering/render/createWebGLRenderer.js +42 -80
- package/dist/rendering/render/createWebGLRenderer.js.map +1 -1
- package/dist/rendering/render/createWebGPURenderer.d.ts +11 -0
- package/dist/rendering/render/createWebGPURenderer.d.ts.map +1 -0
- package/dist/rendering/render/createWebGPURenderer.js +619 -0
- package/dist/rendering/render/createWebGPURenderer.js.map +1 -0
- package/dist/rendering/render/createWebGPUSurfaceBackend.d.ts +15 -0
- package/dist/rendering/render/createWebGPUSurfaceBackend.d.ts.map +1 -0
- package/dist/rendering/render/createWebGPUSurfaceBackend.js +92 -0
- package/dist/rendering/render/createWebGPUSurfaceBackend.js.map +1 -0
- package/dist/rendering/render/frameMetrics.d.ts +19 -0
- package/dist/rendering/render/frameMetrics.d.ts.map +1 -0
- package/dist/rendering/render/frameMetrics.js +43 -0
- package/dist/rendering/render/frameMetrics.js.map +1 -0
- package/dist/rendering/render/index.d.ts +10 -0
- package/dist/rendering/render/index.d.ts.map +1 -1
- package/dist/rendering/render/index.js +6 -0
- package/dist/rendering/render/index.js.map +1 -1
- package/dist/rendering/render/rendererHost.d.ts +34 -0
- package/dist/rendering/render/rendererHost.d.ts.map +1 -0
- package/dist/rendering/render/rendererHost.js +144 -0
- package/dist/rendering/render/rendererHost.js.map +1 -0
- package/dist/rendering/render/webgpuResourceTable.d.ts +25 -0
- package/dist/rendering/render/webgpuResourceTable.d.ts.map +1 -0
- package/dist/rendering/render/webgpuResourceTable.js +54 -0
- package/dist/rendering/render/webgpuResourceTable.js.map +1 -0
- package/dist/rendering/scene/createLayerFromPlugin.d.ts.map +1 -1
- package/dist/rendering/scene/createLayerFromPlugin.js +10 -2
- package/dist/rendering/scene/createLayerFromPlugin.js.map +1 -1
- package/dist/rendering/scene/layerRegistry.d.ts +3 -5
- package/dist/rendering/scene/layerRegistry.d.ts.map +1 -1
- package/dist/rendering/scene/layerRegistry.js +1 -1
- package/dist/rendering/scene/layerRegistry.js.map +1 -1
- package/dist/rendering/scene/retainedScene.d.ts +60 -0
- package/dist/rendering/scene/retainedScene.d.ts.map +1 -0
- package/dist/rendering/scene/retainedScene.js +42 -0
- package/dist/rendering/scene/retainedScene.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +2 -1
- package/src/__tests__/signal.test.ts +47 -1
- package/src/controllers/__tests__/createChartController.theme.test.ts +102 -0
- package/src/controllers/createChartController.ts +36 -12
- package/src/controllers/index.ts +5 -0
- package/src/controllers/types.ts +14 -0
- package/src/engine/__tests__/chart.dpr.test.ts +64 -0
- package/src/engine/__tests__/paneRenderer.resize.test.ts +0 -7
- package/src/engine/__tests__/renderSinglePath.test.ts +121 -0
- package/src/engine/chart.ts +172 -25
- package/src/engine/controller/__tests__/interaction.dpr.test.ts +45 -41
- package/src/engine/controller/interaction.ts +81 -30
- package/src/engine/data/__tests__/chartDataManager.incrementalLoad.test.ts +1 -0
- package/src/engine/data/incrementalLoadHint.ts +6 -1
- package/src/engine/drawing/DrawingState.ts +107 -89
- package/src/engine/drawing/__tests__/drawingState.workCopy.test.ts +95 -36
- package/src/engine/drawing/__tests__/drawingStore.projection.test.ts +22 -0
- package/src/engine/drawing/index.ts +12 -4
- package/src/engine/drawing/interaction.ts +25 -40
- package/src/engine/indicators/chartIndicatorManager.ts +6 -16
- package/src/engine/layout/chartPaneLayout.ts +6 -11
- package/src/engine/layout/pane.ts +0 -44
- package/src/engine/paneRenderer.ts +3 -34
- package/src/engine/render/chartRenderer.ts +181 -81
- package/src/engine/renderers/Indicator/atr.ts +5 -17
- package/src/engine/renderers/Indicator/boll.ts +15 -26
- package/src/engine/renderers/Indicator/cci.ts +7 -17
- package/src/engine/renderers/Indicator/chaikinVol.ts +3 -15
- package/src/engine/renderers/Indicator/cmf.ts +3 -15
- package/src/engine/renderers/Indicator/dema.ts +3 -15
- package/src/engine/renderers/Indicator/donchian.ts +3 -12
- package/src/engine/renderers/Indicator/ene.ts +15 -25
- package/src/engine/renderers/Indicator/expma.ts +4 -13
- package/src/engine/renderers/Indicator/fastk.ts +7 -17
- package/src/engine/renderers/Indicator/fib.ts +3 -12
- package/src/engine/renderers/Indicator/hma.ts +3 -15
- package/src/engine/renderers/Indicator/hv.ts +3 -15
- package/src/engine/renderers/Indicator/ichimoku.ts +21 -24
- package/src/engine/renderers/Indicator/kama.ts +3 -15
- package/src/engine/renderers/Indicator/keltner.ts +3 -12
- package/src/engine/renderers/Indicator/kst.ts +9 -20
- package/src/engine/renderers/Indicator/ma.ts +9 -21
- package/src/engine/renderers/Indicator/macd.ts +27 -102
- package/src/engine/renderers/Indicator/mfi.ts +3 -15
- package/src/engine/renderers/Indicator/mom.ts +7 -17
- package/src/engine/renderers/Indicator/obv.ts +3 -15
- package/src/engine/renderers/Indicator/parkinson.ts +3 -15
- package/src/engine/renderers/Indicator/pvt.ts +3 -15
- package/src/engine/renderers/Indicator/roc.ts +3 -15
- package/src/engine/renderers/Indicator/rsi.ts +12 -23
- package/src/engine/renderers/Indicator/shared/webglBand.ts +0 -13
- package/src/engine/renderers/Indicator/stoch.ts +9 -20
- package/src/engine/renderers/Indicator/tema.ts +3 -15
- package/src/engine/renderers/Indicator/trix.ts +3 -12
- package/src/engine/renderers/Indicator/vma.ts +3 -15
- package/src/engine/renderers/Indicator/vwap.ts +3 -15
- package/src/engine/renderers/Indicator/wma.ts +3 -15
- package/src/engine/renderers/Indicator/wmsr.ts +7 -17
- package/src/engine/renderers/__tests__/candle.sceneRenderer.test.ts +208 -0
- package/src/engine/renderers/__tests__/candleViaRenderer.test.ts +100 -0
- package/src/engine/renderers/__tests__/linesViaRenderer.test.ts +263 -0
- package/src/engine/renderers/__tests__/rectsViaRenderer.test.ts +87 -0
- package/src/engine/renderers/candle.ts +26 -69
- package/src/engine/renderers/candleViaRenderer.ts +38 -0
- package/src/engine/renderers/linesViaRenderer.ts +226 -0
- package/src/engine/renderers/rectsViaRenderer.ts +83 -0
- package/src/engine/renderers/subVolume.ts +9 -61
- package/src/engine/renderers/timeAxis.ts +1 -1
- package/src/engine/state/__tests__/effectiveTheme.test.ts +49 -0
- package/src/engine/state/__tests__/rendererState.test.ts +36 -0
- package/src/engine/state/__tests__/settingsState.test.ts +1 -1
- package/src/engine/state/chartStateKernel.ts +38 -17
- package/src/engine/state/index.ts +6 -1
- package/src/engine/state/interactionState.ts +73 -102
- package/src/engine/state/rendererState.ts +32 -0
- package/src/engine/state/themeState.ts +15 -8
- package/src/engine/state/viewportState.ts +6 -3
- package/src/engine/subPaneManager.ts +2 -16
- package/src/foundation/config/__tests__/chartSettings.test.ts +25 -0
- package/src/foundation/config/chartSettings.ts +24 -7
- package/src/foundation/plugin/index.ts +0 -1
- package/src/foundation/plugin/rendererPluginManager.ts +0 -99
- package/src/foundation/plugin/types.ts +11 -18
- package/src/foundation/reactivity/__tests__/frameTransaction.test.ts +306 -0
- package/src/foundation/reactivity/frameTransaction.ts +239 -0
- package/src/foundation/reactivity/index.ts +8 -0
- package/src/foundation/reactivity/signal.ts +39 -0
- package/src/foundation/tokens/__tests__/__snapshots__/baseline.test.ts.snap +2 -2
- package/src/foundation/tokens/theme-dark.ts +2 -1
- package/src/foundation/tokens/theme-light.ts +2 -1
- package/src/rendering/render/Renderer.ts +27 -14
- package/src/rendering/render/SurfaceBackend.ts +5 -7
- package/src/rendering/render/__tests__/canvas2DRenderer.test.ts +34 -0
- package/src/rendering/render/__tests__/contract.test.ts +2 -2
- package/src/rendering/render/__tests__/frameMetrics.test.ts +24 -0
- package/src/rendering/render/__tests__/rendererHost.test.ts +157 -0
- package/src/rendering/render/__tests__/webglRenderer.fallback.test.ts +14 -74
- package/src/rendering/render/__tests__/webglRenderer.test.ts +64 -6
- package/src/rendering/render/__tests__/webgpuRenderer.test.ts +370 -0
- package/src/rendering/render/__tests__/webgpuResourceTable.test.ts +62 -0
- package/src/rendering/render/__tests__/webgpuSurfaceBackend.test.ts +120 -0
- package/src/rendering/render/createCanvas2DRenderer.ts +83 -0
- package/src/rendering/render/createDefaultRendererHost.ts +74 -0
- package/src/rendering/render/createWebGLRenderer.ts +41 -87
- package/src/rendering/render/createWebGPURenderer.ts +677 -0
- package/src/rendering/render/createWebGPUSurfaceBackend.ts +106 -0
- package/src/rendering/render/frameMetrics.ts +54 -0
- package/src/rendering/render/index.ts +30 -0
- package/src/rendering/render/rendererHost.ts +210 -0
- package/src/rendering/render/webgpuResourceTable.ts +87 -0
- package/src/rendering/scene/__tests__/layerFromPlugin.test.ts +29 -2
- package/src/rendering/scene/__tests__/retainedScene.test.ts +59 -0
- package/src/rendering/scene/createLayerFromPlugin.ts +9 -2
- package/src/rendering/scene/layerRegistry.ts +4 -6
- package/src/rendering/scene/retainedScene.ts +101 -0
- package/src/version.ts +1 -1
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { PaneCapabilities, PaneRole } from '../../foundation/plugin/index';
|
|
2
2
|
import type { KLineData } from '../../foundation/types/price';
|
|
3
|
-
import type { MarkerManager } from '../marker/registry';
|
|
4
3
|
import type { PriceRange } from '../scale/price';
|
|
5
4
|
import { PriceScale } from '../scale/priceScale';
|
|
6
5
|
/**
|
|
@@ -22,37 +21,6 @@ export interface PaneInitOptions {
|
|
|
22
21
|
role?: PaneRole;
|
|
23
22
|
capabilities?: Partial<PaneCapabilities>;
|
|
24
23
|
}
|
|
25
|
-
/**
|
|
26
|
-
* Pane 级渲染器接口:在单个 pane 的坐标系中绘制内容
|
|
27
|
-
*/
|
|
28
|
-
export interface PaneRenderer {
|
|
29
|
-
/**
|
|
30
|
-
* 在指定 pane 坐标系中绘制内容
|
|
31
|
-
* @param ctx Canvas 绘图上下文,Chart 已执行 translate(0, pane.top),y=0 对应 pane 顶部
|
|
32
|
-
* @param pane 当前 pane 实例
|
|
33
|
-
* @param data 全量 K 线数据
|
|
34
|
-
* @param range 当前视口可见的索引范围
|
|
35
|
-
* @param scrollLeft 滚动偏移量,renderer 内部如需 world 坐标需执行 ctx.translate(-scrollLeft, 0)
|
|
36
|
-
* @param kWidth K 线宽度
|
|
37
|
-
* @param kGap K 线间隔
|
|
38
|
-
* @param dpr 设备像素比
|
|
39
|
-
* @param paneWidth pane 宽度
|
|
40
|
-
* @param kLinePositions 可选,K 线起始 x 坐标数组(由 Chart 统一计算)
|
|
41
|
-
*/
|
|
42
|
-
draw(args: {
|
|
43
|
-
ctx: CanvasRenderingContext2D;
|
|
44
|
-
pane: Pane;
|
|
45
|
-
data: KLineData[];
|
|
46
|
-
range: VisibleRange;
|
|
47
|
-
scrollLeft: number;
|
|
48
|
-
kWidth: number;
|
|
49
|
-
kGap: number;
|
|
50
|
-
dpr: number;
|
|
51
|
-
paneWidth: number;
|
|
52
|
-
kLinePositions: number[];
|
|
53
|
-
markerManager?: MarkerManager;
|
|
54
|
-
}): void;
|
|
55
|
-
}
|
|
56
24
|
/**
|
|
57
25
|
* Pane:代表一个"窗口区域"(主图 / 副图)
|
|
58
26
|
*/
|
|
@@ -66,8 +34,6 @@ export declare class Pane {
|
|
|
66
34
|
priceRange: PriceRange;
|
|
67
35
|
/** pane 独立 Y 轴 */
|
|
68
36
|
readonly yAxis: PriceScale;
|
|
69
|
-
/** 该 pane 的渲染器列表 */
|
|
70
|
-
readonly renderers: PaneRenderer[];
|
|
71
37
|
/**
|
|
72
38
|
* 创建 pane 实例
|
|
73
39
|
* @param id pane 标识符(例如 'main'、'sub'),用于在 Chart/Interaction 中识别 pane
|
|
@@ -85,11 +51,6 @@ export declare class Pane {
|
|
|
85
51
|
* @param bottom 下内边距,影响 priceToY 映射的底部留白
|
|
86
52
|
*/
|
|
87
53
|
setPadding(top: number, bottom: number): void;
|
|
88
|
-
/**
|
|
89
|
-
* 注册一个 pane 级渲染器
|
|
90
|
-
* @param renderer pane 级渲染器实例
|
|
91
|
-
*/
|
|
92
|
-
addRenderer(renderer: PaneRenderer): void;
|
|
93
54
|
/**
|
|
94
55
|
* 根据当前可见索引区间更新 priceRange 并同步到 yAxis
|
|
95
56
|
* @param data 全量 K 线数据
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pane.d.ts","sourceRoot":"","sources":["../../../src/engine/layout/pane.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAA;AAC/E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"pane.d.ts","sourceRoot":"","sources":["../../../src/engine/layout/pane.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAA;AAC/E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAGhD;;;;;GAKG;AACH,oBAAY,WAAW;IACrB,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,GAAG,QAAQ;CACZ;AAED,MAAM,MAAM,YAAY,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAA;AAEzD,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf,YAAY,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;CACzC;AA2BD;;GAEG;AACH,qBAAa,IAAI;IACf,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;IACvB,QAAQ,CAAC,YAAY,EAAE,gBAAgB,CAAA;IACvC,GAAG,SAAI;IACP,MAAM,SAAI;IAEV,qCAAqC;IACrC,UAAU,EAAE,UAAU,CAAiC;IAEvD,kBAAkB;IAClB,QAAQ,CAAC,KAAK,aAAmB;IAEjC;;;OAGG;gBACS,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB;IASrD;;;;OAIG;IACH,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAMrC;;;;OAIG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAItC;;;;;OAKG;IACH,WAAW,CACT,IAAI,EAAE,SAAS,EAAE,EACjB,KAAK,EAAE,YAAY,EACnB,cAAc,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;CAwBvD"}
|
|
@@ -49,8 +49,6 @@ export class Pane {
|
|
|
49
49
|
priceRange = { maxPrice: 100, minPrice: 0 };
|
|
50
50
|
/** pane 独立 Y 轴 */
|
|
51
51
|
yAxis = new PriceScale();
|
|
52
|
-
/** 该 pane 的渲染器列表 */
|
|
53
|
-
renderers = [];
|
|
54
52
|
/**
|
|
55
53
|
* 创建 pane 实例
|
|
56
54
|
* @param id pane 标识符(例如 'main'、'sub'),用于在 Chart/Interaction 中识别 pane
|
|
@@ -81,13 +79,6 @@ export class Pane {
|
|
|
81
79
|
setPadding(top, bottom) {
|
|
82
80
|
this.yAxis.setPadding(top, bottom);
|
|
83
81
|
}
|
|
84
|
-
/**
|
|
85
|
-
* 注册一个 pane 级渲染器
|
|
86
|
-
* @param renderer pane 级渲染器实例
|
|
87
|
-
*/
|
|
88
|
-
addRenderer(renderer) {
|
|
89
|
-
this.renderers.push(renderer);
|
|
90
|
-
}
|
|
91
82
|
/**
|
|
92
83
|
* 根据当前可见索引区间更新 priceRange 并同步到 yAxis
|
|
93
84
|
* @param data 全量 K 线数据
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pane.js","sourceRoot":"","sources":["../../../src/engine/layout/pane.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pane.js","sourceRoot":"","sources":["../../../src/engine/layout/pane.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import type { PaneRendererDom } from './chartTypes';
|
|
2
|
-
import { CandleWebGLSurface, LineWebGLSurface } from './renderers/webgl/candleSurface';
|
|
3
|
-
import type { SharedWebGLSurface, WebGLRegion } from './renderers/webgl/sharedWebGLSurface';
|
|
4
2
|
export type { PaneRendererDom };
|
|
5
3
|
export type PaneRendererContexts = {
|
|
6
4
|
mainCtx: CanvasRenderingContext2D | null;
|
|
@@ -14,25 +12,18 @@ export type PaneRendererOptions = {
|
|
|
14
12
|
yPaddingPx: number;
|
|
15
13
|
priceLabelWidth?: number;
|
|
16
14
|
};
|
|
17
|
-
export type PaneRendererWebGLHandles = {
|
|
18
|
-
candleSurface: CandleWebGLSurface | null;
|
|
19
|
-
lineSurface: LineWebGLSurface | null;
|
|
20
|
-
};
|
|
21
15
|
export declare class PaneRenderer {
|
|
22
16
|
private dom;
|
|
23
17
|
private pane;
|
|
24
18
|
private opt;
|
|
25
19
|
private contexts;
|
|
26
|
-
|
|
27
|
-
constructor(dom: PaneRendererDom, pane: import('./layout/pane').Pane, opt: PaneRendererOptions, sharedWebGLSurface: SharedWebGLSurface);
|
|
20
|
+
constructor(dom: PaneRendererDom, pane: import('./layout/pane').Pane, opt: PaneRendererOptions);
|
|
28
21
|
/** 获取关联的 Pane 实例 */
|
|
29
22
|
getPane(): import('./layout/pane').Pane;
|
|
30
23
|
/** 获取 DOM 元素 */
|
|
31
24
|
getDom(): PaneRendererDom;
|
|
32
25
|
getContexts(): PaneRendererContexts;
|
|
33
26
|
private static resizeCanvas;
|
|
34
|
-
getWebGL(): PaneRendererWebGLHandles;
|
|
35
|
-
setWebGLRegion(region: WebGLRegion): void;
|
|
36
27
|
/**
|
|
37
28
|
* 调整 Canvas 尺寸
|
|
38
29
|
* @param width pane 宽度(逻辑像素)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paneRenderer.d.ts","sourceRoot":"","sources":["../../src/engine/paneRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"paneRenderer.d.ts","sourceRoot":"","sources":["../../src/engine/paneRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAEnD,YAAY,EAAE,eAAe,EAAE,CAAA;AAE/B,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,wBAAwB,GAAG,IAAI,CAAA;IACxC,UAAU,EAAE,wBAAwB,GAAG,IAAI,CAAA;IAC3C,QAAQ,EAAE,wBAAwB,GAAG,IAAI,CAAA;IACzC,WAAW,EAAE,wBAAwB,GAAG,IAAI,CAAA;CAC7C,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB,CAAA;AAOD,qBAAa,YAAY;IACvB,OAAO,CAAC,GAAG,CAAiB;IAC5B,OAAO,CAAC,IAAI,CAA8B;IAC1C,OAAO,CAAC,GAAG,CAAqB;IAChC,OAAO,CAAC,QAAQ,CAAoC;gBAExC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,OAAO,eAAe,EAAE,IAAI,EAAE,GAAG,EAAE,mBAAmB;IAS9F,oBAAoB;IACpB,OAAO,IAAI,OAAO,eAAe,EAAE,IAAI;IAIvC,gBAAgB;IAChB,MAAM,IAAI,eAAe;IAIzB,WAAW,IAAI,oBAAoB;IAYnC,OAAO,CAAC,MAAM,CAAC,YAAY;IAsB3B;;;;;OAKG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;IAqCjD,yBAAyB;IACzB,OAAO;CAGR"}
|
|
@@ -1,26 +1,20 @@
|
|
|
1
|
-
import { CandleWebGLSurface, LineWebGLSurface } from './renderers/webgl/candleSurface';
|
|
2
1
|
/* PaneRenderer:负责单个 Pane 的 Canvas 管理与运行时状态持有
|
|
3
2
|
创建并管理 mainCanvas / overlayCanvas / yAxisCanvas
|
|
4
3
|
持有 Pane 实例(布局、Y 轴、价格范围)
|
|
5
4
|
响应 Chart 的 resize / layout 信号
|
|
6
|
-
|
|
5
|
+
GPU 绘制经 ChartRenderer.sceneRenderer(SharedWebGLSurface),本类不再持有 per-pane surface */
|
|
7
6
|
export class PaneRenderer {
|
|
8
7
|
dom;
|
|
9
8
|
pane;
|
|
10
9
|
opt;
|
|
11
10
|
contexts = null;
|
|
12
|
-
|
|
13
|
-
constructor(dom, pane, opt, sharedWebGLSurface) {
|
|
11
|
+
constructor(dom, pane, opt) {
|
|
14
12
|
this.dom = dom;
|
|
15
13
|
this.pane = pane;
|
|
16
14
|
this.opt = {
|
|
17
15
|
...opt,
|
|
18
16
|
priceLabelWidth: opt.priceLabelWidth || 60,
|
|
19
17
|
};
|
|
20
|
-
this.webgl = {
|
|
21
|
-
candleSurface: new CandleWebGLSurface(sharedWebGLSurface),
|
|
22
|
-
lineSurface: new LineWebGLSurface(sharedWebGLSurface),
|
|
23
|
-
};
|
|
24
18
|
}
|
|
25
19
|
/** 获取关联的 Pane 实例 */
|
|
26
20
|
getPane() {
|
|
@@ -57,13 +51,6 @@ export class PaneRenderer {
|
|
|
57
51
|
canvas.style.height = cssH;
|
|
58
52
|
}
|
|
59
53
|
}
|
|
60
|
-
getWebGL() {
|
|
61
|
-
return this.webgl;
|
|
62
|
-
}
|
|
63
|
-
setWebGLRegion(region) {
|
|
64
|
-
this.webgl.candleSurface?.setRegion(region);
|
|
65
|
-
this.webgl.lineSurface?.setRegion(region);
|
|
66
|
-
}
|
|
67
54
|
/**
|
|
68
55
|
* 调整 Canvas 尺寸
|
|
69
56
|
* @param width pane 宽度(逻辑像素)
|
|
@@ -95,14 +82,10 @@ export class PaneRenderer {
|
|
|
95
82
|
const canvasLeftAxisWidth = leftParentWidth > 0 ? leftParentWidth : fallbackLeftAxisWidth;
|
|
96
83
|
PaneRenderer.resizeCanvas(leftCanvas, Math.round(Math.max(canvasLeftAxisWidth, 0) * dpr), Math.round(height * dpr), dpr);
|
|
97
84
|
}
|
|
98
|
-
this.webgl.candleSurface?.resize(width, height, dpr);
|
|
99
|
-
this.webgl.lineSurface?.resize(width, height, dpr);
|
|
100
85
|
}
|
|
101
86
|
/** 销毁 PaneRenderer 实例 */
|
|
102
87
|
destroy() {
|
|
103
88
|
this.contexts = null;
|
|
104
|
-
this.webgl.candleSurface?.destroy();
|
|
105
|
-
this.webgl.lineSurface?.destroy();
|
|
106
89
|
}
|
|
107
90
|
}
|
|
108
91
|
//# sourceMappingURL=paneRenderer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paneRenderer.js","sourceRoot":"","sources":["../../src/engine/paneRenderer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"paneRenderer.js","sourceRoot":"","sources":["../../src/engine/paneRenderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { ChartSettings } from '../../foundation/config/chartSettings';
|
|
2
2
|
import type { PluginHostImpl, RenderContext } from '../../foundation/plugin/index';
|
|
3
3
|
import { RendererPluginManager } from '../../foundation/plugin/index';
|
|
4
|
+
import type { Renderer } from '../../rendering/render/Renderer';
|
|
4
5
|
import type { Scene } from '../../rendering/scene/types';
|
|
5
6
|
import type { ChartDom, ChartOptions } from '../chartTypes';
|
|
6
7
|
import { InteractionController } from '../controller/interaction';
|
|
@@ -11,9 +12,8 @@ import { UpdateLevel } from '../layout/pane';
|
|
|
11
12
|
import { MarkerManager, type MarkerManagerDeps } from '../marker/registry';
|
|
12
13
|
import type { ChartModeHandler } from '../modes/types';
|
|
13
14
|
import { PaneRenderer } from '../paneRenderer';
|
|
14
|
-
import { SharedWebGLSurface } from '../renderers/webgl/sharedWebGLSurface';
|
|
15
15
|
import { ChartViewportManager } from '../viewport/chartViewportManager';
|
|
16
|
-
import {
|
|
16
|
+
import type { ReadonlySignal } from '../../foundation/reactivity/signal';
|
|
17
17
|
type ResolvedChartOptions = Omit<ChartOptions, 'kWidth' | 'kGap'> & {
|
|
18
18
|
kWidth: number;
|
|
19
19
|
kGap: number;
|
|
@@ -23,7 +23,7 @@ export interface RendererDependencies {
|
|
|
23
23
|
getOption: () => ResolvedChartOptions;
|
|
24
24
|
getPaneRenderers: () => PaneRenderer[];
|
|
25
25
|
getInteraction: () => InteractionController;
|
|
26
|
-
|
|
26
|
+
getSceneRenderer: () => Renderer;
|
|
27
27
|
getPluginHost: () => PluginHostImpl;
|
|
28
28
|
getRendererPluginManager: () => RendererPluginManager;
|
|
29
29
|
getTheme: () => 'light' | 'dark';
|
|
@@ -37,11 +37,23 @@ export interface RendererDependencies {
|
|
|
37
37
|
customMarkers$: MarkerManagerDeps['customMarkers$'];
|
|
38
38
|
drawings$: DrawingStoreDeps['drawings$'];
|
|
39
39
|
selectedDrawingId$: DrawingStoreDeps['selectedDrawingId$'];
|
|
40
|
+
getOverlay?: DrawingStoreDeps['getOverlay'];
|
|
40
41
|
}
|
|
41
42
|
export declare class ChartRenderer {
|
|
43
|
+
/** 依赖注入容器,ChartRenderer 不直接持有状态,从 deps 接口读取,也便于测试 mock */
|
|
42
44
|
private deps;
|
|
45
|
+
/**
|
|
46
|
+
* 帧事务:scheduleDraw 只写输入并合并 rAF;flush 内 prepare → seal → paint。
|
|
47
|
+
* 绘制阶段不再反向写 kernel 几何(seal 在 render 回调最前、与 paint 同代)。
|
|
48
|
+
*/
|
|
49
|
+
private readonly frameTx;
|
|
50
|
+
/**
|
|
51
|
+
* 与 frameTx pending 同步的重绘级别镜像。
|
|
52
|
+
* FrameTransaction 对 level 是浅覆盖,Main/Overlay 升格在此完成。
|
|
53
|
+
*/
|
|
54
|
+
private pendingLevel;
|
|
55
|
+
/** 已排队的 rAF 句柄;null 表示当前没有挂起的帧调度 */
|
|
43
56
|
private raf;
|
|
44
|
-
private pendingUpdateLevel;
|
|
45
57
|
readonly markerManager: MarkerManager;
|
|
46
58
|
readonly drawingStore: DrawingStore;
|
|
47
59
|
private overlayHadCrosshair;
|
|
@@ -51,7 +63,6 @@ export declare class ChartRenderer {
|
|
|
51
63
|
private frameCount;
|
|
52
64
|
private paneCtxMap;
|
|
53
65
|
private currentPaneId;
|
|
54
|
-
private sceneRenderer;
|
|
55
66
|
private timeAxisCtx;
|
|
56
67
|
private timeAxisLayer;
|
|
57
68
|
private _prevFrameRange;
|
|
@@ -60,16 +71,46 @@ export declare class ChartRenderer {
|
|
|
60
71
|
registerDrawingPlugins(): void;
|
|
61
72
|
getScene(): Scene;
|
|
62
73
|
getPaneCtxMap(): Map<string, RenderContext>;
|
|
74
|
+
getCurrentPaneId(): string;
|
|
63
75
|
getMarkerManager(): MarkerManager;
|
|
64
76
|
getDrawingStore(): DrawingStore;
|
|
65
77
|
getSettings(): ChartSettings;
|
|
66
78
|
private get settings();
|
|
79
|
+
/**
|
|
80
|
+
* 申请绘制:合并重绘级别并写入帧事务,由 rAF 最多 flush 一次。
|
|
81
|
+
*
|
|
82
|
+
* 已有调度时只更新 pending level(Main+Overlay→All),不重复注册 rAF。
|
|
83
|
+
* flush 内:prepareFrameData → sealFrameGeometry → drawWithFrame。
|
|
84
|
+
*
|
|
85
|
+
* @param level - Main 只画主层,Overlay 只画覆盖层(crosshair 等),All 全画
|
|
86
|
+
*/
|
|
67
87
|
scheduleDraw(level?: UpdateLevel): void;
|
|
88
|
+
/**
|
|
89
|
+
* 同步绘制一帧,走与 rAF 相同的 flush 管线(prepare → seal → paint)。
|
|
90
|
+
*
|
|
91
|
+
* 若已有 rAF 挂起:与 pendingLevel 合并后同步 flush(消费合并后的 level)。
|
|
92
|
+
* 若正处于帧事务非 idle(render/publish 重入):只写输入并调度下一帧,禁止嵌套 flush。
|
|
93
|
+
*
|
|
94
|
+
* @param level - 同 scheduleDraw
|
|
95
|
+
*/
|
|
68
96
|
draw(level?: UpdateLevel): void;
|
|
97
|
+
/**
|
|
98
|
+
* 将本帧几何封存到 interaction,供 hover 二分与十字线重算读取。
|
|
99
|
+
* 在 paint 之前调用;引用未变时 interaction 侧应跳过 signal 通知。
|
|
100
|
+
*/
|
|
101
|
+
private sealFrameGeometry;
|
|
69
102
|
private drawWithFrame;
|
|
70
|
-
/**
|
|
71
|
-
|
|
72
|
-
|
|
103
|
+
/**
|
|
104
|
+
* 准备一帧的绘制数据:viewport、可见区间、K 线位置。
|
|
105
|
+
*
|
|
106
|
+
* Overlay 且上次画完没清缓存时,直接复用 cachedDrawFrame,不重复
|
|
107
|
+
* 算 viewport 和 bar 位置。非缓存路径会刷新 cachedDrawFrame。
|
|
108
|
+
* range 变了会调用 checkVisibleRangeGapWhenIdle,方便空闲时补数据。
|
|
109
|
+
* TimeShare 模式按 plotWidth 平分 bar,不走 K 线物理宽度那套。
|
|
110
|
+
*
|
|
111
|
+
* @param level - Overlay 可走缓存,Main/All 强制重算
|
|
112
|
+
* @returns 无 viewport 或无数据时返回 null,调用方自己清屏或跳过
|
|
113
|
+
*/
|
|
73
114
|
private prepareFrameData;
|
|
74
115
|
private clearAxisCtx;
|
|
75
116
|
clearAllCanvases(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chartRenderer.d.ts","sourceRoot":"","sources":["../../../src/engine/render/chartRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAA;AAE1E,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EAMd,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,qBAAqB,EAAgB,MAAM,+BAA+B,CAAA;
|
|
1
|
+
{"version":3,"file":"chartRenderer.d.ts","sourceRoot":"","sources":["../../../src/engine/render/chartRenderer.ts"],"names":[],"mappings":"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"}
|