@363045841yyt/klinechart-core 0.9.0-alpha.2 → 0.9.0-alpha.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (234) hide show
  1. package/dist/controllers/createChartController.d.ts.map +1 -1
  2. package/dist/controllers/createChartController.js +9 -8
  3. package/dist/controllers/createChartController.js.map +1 -1
  4. package/dist/controllers/index.d.ts +1 -0
  5. package/dist/controllers/index.d.ts.map +1 -1
  6. package/dist/controllers/index.js.map +1 -1
  7. package/dist/controllers/types.d.ts +5 -0
  8. package/dist/controllers/types.d.ts.map +1 -1
  9. package/dist/data/binance.d.ts +1 -1
  10. package/dist/data/binance.d.ts.map +1 -1
  11. package/dist/data/binance.js +1 -1
  12. package/dist/data/binance.js.map +1 -1
  13. package/dist/data/timeShareBuffer.d.ts +3 -0
  14. package/dist/data/timeShareBuffer.d.ts.map +1 -1
  15. package/dist/data/timeShareBuffer.js +13 -0
  16. package/dist/data/timeShareBuffer.js.map +1 -1
  17. package/dist/engine/chart.d.ts +9 -9
  18. package/dist/engine/chart.d.ts.map +1 -1
  19. package/dist/engine/chart.js +87 -101
  20. package/dist/engine/chart.js.map +1 -1
  21. package/dist/engine/chartTypes.d.ts +5 -0
  22. package/dist/engine/chartTypes.d.ts.map +1 -1
  23. package/dist/engine/controller/interaction.d.ts +4 -2
  24. package/dist/engine/controller/interaction.d.ts.map +1 -1
  25. package/dist/engine/controller/interaction.js +18 -10
  26. package/dist/engine/controller/interaction.js.map +1 -1
  27. package/dist/engine/data/chartDataManager.d.ts +14 -18
  28. package/dist/engine/data/chartDataManager.d.ts.map +1 -1
  29. package/dist/engine/data/chartDataManager.js +55 -37
  30. package/dist/engine/data/chartDataManager.js.map +1 -1
  31. package/dist/engine/data/incrementalLoadHint.d.ts +2 -4
  32. package/dist/engine/data/incrementalLoadHint.d.ts.map +1 -1
  33. package/dist/engine/data/incrementalLoadHint.js +5 -2
  34. package/dist/engine/data/incrementalLoadHint.js.map +1 -1
  35. package/dist/engine/data/scrollCompensator.d.ts +3 -13
  36. package/dist/engine/data/scrollCompensator.d.ts.map +1 -1
  37. package/dist/engine/data/scrollCompensator.js +13 -14
  38. package/dist/engine/data/scrollCompensator.js.map +1 -1
  39. package/dist/engine/indicators/chartIndicatorManager.d.ts +16 -17
  40. package/dist/engine/indicators/chartIndicatorManager.d.ts.map +1 -1
  41. package/dist/engine/indicators/chartIndicatorManager.js +37 -37
  42. package/dist/engine/indicators/chartIndicatorManager.js.map +1 -1
  43. package/dist/engine/layout/chartPaneLayout.d.ts +11 -7
  44. package/dist/engine/layout/chartPaneLayout.d.ts.map +1 -1
  45. package/dist/engine/layout/chartPaneLayout.js +58 -16
  46. package/dist/engine/layout/chartPaneLayout.js.map +1 -1
  47. package/dist/engine/modes/timeShareMath.d.ts +56 -0
  48. package/dist/engine/modes/timeShareMath.d.ts.map +1 -0
  49. package/dist/engine/modes/timeShareMath.js +90 -0
  50. package/dist/engine/modes/timeShareMath.js.map +1 -0
  51. package/dist/engine/modes/timeShareMode.d.ts +5 -0
  52. package/dist/engine/modes/timeShareMode.d.ts.map +1 -1
  53. package/dist/engine/modes/timeShareMode.js +27 -27
  54. package/dist/engine/modes/timeShareMode.js.map +1 -1
  55. package/dist/engine/paneRenderer.d.ts +2 -0
  56. package/dist/engine/paneRenderer.d.ts.map +1 -1
  57. package/dist/engine/paneRenderer.js +15 -5
  58. package/dist/engine/paneRenderer.js.map +1 -1
  59. package/dist/engine/render/chartRenderer.d.ts +28 -22
  60. package/dist/engine/render/chartRenderer.d.ts.map +1 -1
  61. package/dist/engine/render/chartRenderer.js +143 -85
  62. package/dist/engine/render/chartRenderer.js.map +1 -1
  63. package/dist/engine/render/layers/leftYAxisLayer.d.ts +9 -2
  64. package/dist/engine/render/layers/leftYAxisLayer.d.ts.map +1 -1
  65. package/dist/engine/render/layers/leftYAxisLayer.js +11 -2
  66. package/dist/engine/render/layers/leftYAxisLayer.js.map +1 -1
  67. package/dist/engine/render/layers/mainIndicatorLegendLayer.d.ts +6 -4
  68. package/dist/engine/render/layers/mainIndicatorLegendLayer.d.ts.map +1 -1
  69. package/dist/engine/render/layers/mainIndicatorLegendLayer.js +6 -9
  70. package/dist/engine/render/layers/mainIndicatorLegendLayer.js.map +1 -1
  71. package/dist/engine/render/layers/mainIndicatorLegendLayer.test.d.ts +2 -0
  72. package/dist/engine/render/layers/mainIndicatorLegendLayer.test.d.ts.map +1 -0
  73. package/dist/engine/render/layers/mainIndicatorLegendLayer.test.js +19 -0
  74. package/dist/engine/render/layers/mainIndicatorLegendLayer.test.js.map +1 -0
  75. package/dist/engine/render/layers/yAxisLayer.d.ts +9 -2
  76. package/dist/engine/render/layers/yAxisLayer.d.ts.map +1 -1
  77. package/dist/engine/render/layers/yAxisLayer.js +11 -2
  78. package/dist/engine/render/layers/yAxisLayer.js.map +1 -1
  79. package/dist/engine/renderers/Indicator/mainIndicatorLegend.d.ts +7 -3
  80. package/dist/engine/renderers/Indicator/mainIndicatorLegend.d.ts.map +1 -1
  81. package/dist/engine/renderers/Indicator/mainIndicatorLegend.js +234 -330
  82. package/dist/engine/renderers/Indicator/mainIndicatorLegend.js.map +1 -1
  83. package/dist/engine/renderers/Indicator/mainIndicatorLegendContext.d.ts +73 -0
  84. package/dist/engine/renderers/Indicator/mainIndicatorLegendContext.d.ts.map +1 -0
  85. package/dist/engine/renderers/Indicator/mainIndicatorLegendContext.js +182 -0
  86. package/dist/engine/renderers/Indicator/mainIndicatorLegendContext.js.map +1 -0
  87. package/dist/engine/renderers/leftYAxis.d.ts +15 -2
  88. package/dist/engine/renderers/leftYAxis.d.ts.map +1 -1
  89. package/dist/engine/renderers/leftYAxis.js +56 -16
  90. package/dist/engine/renderers/leftYAxis.js.map +1 -1
  91. package/dist/engine/renderers/timeShare.d.ts.map +1 -1
  92. package/dist/engine/renderers/timeShare.js +20 -9
  93. package/dist/engine/renderers/timeShare.js.map +1 -1
  94. package/dist/engine/renderers/yAxis.d.ts +16 -6
  95. package/dist/engine/renderers/yAxis.d.ts.map +1 -1
  96. package/dist/engine/renderers/yAxis.js +49 -16
  97. package/dist/engine/renderers/yAxis.js.map +1 -1
  98. package/dist/engine/state/viewportState.d.ts +4 -1
  99. package/dist/engine/state/viewportState.d.ts.map +1 -1
  100. package/dist/engine/state/viewportState.js +40 -8
  101. package/dist/engine/state/viewportState.js.map +1 -1
  102. package/dist/engine/subPaneManager.d.ts +5 -3
  103. package/dist/engine/subPaneManager.d.ts.map +1 -1
  104. package/dist/engine/subPaneManager.js +3 -2
  105. package/dist/engine/subPaneManager.js.map +1 -1
  106. package/dist/engine/utils/chartZoomController.d.ts +9 -7
  107. package/dist/engine/utils/chartZoomController.d.ts.map +1 -1
  108. package/dist/engine/utils/chartZoomController.js +13 -12
  109. package/dist/engine/utils/chartZoomController.js.map +1 -1
  110. package/dist/engine/viewport/chartViewportManager.d.ts +5 -16
  111. package/dist/engine/viewport/chartViewportManager.d.ts.map +1 -1
  112. package/dist/engine/viewport/chartViewportManager.js +7 -48
  113. package/dist/engine/viewport/chartViewportManager.js.map +1 -1
  114. package/dist/engine/viewport/viewport.d.ts +14 -0
  115. package/dist/engine/viewport/viewport.d.ts.map +1 -1
  116. package/dist/engine/viewport/viewport.js +10 -0
  117. package/dist/engine/viewport/viewport.js.map +1 -1
  118. package/dist/foundation/config/chartSettings.d.ts +0 -5
  119. package/dist/foundation/config/chartSettings.d.ts.map +1 -1
  120. package/dist/foundation/config/chartSettings.js +14 -0
  121. package/dist/foundation/config/chartSettings.js.map +1 -1
  122. package/dist/foundation/plugin/rendererPluginManager.test.js +15 -0
  123. package/dist/foundation/plugin/rendererPluginManager.test.js.map +1 -1
  124. package/dist/foundation/plugin/types.d.ts +3 -0
  125. package/dist/foundation/plugin/types.d.ts.map +1 -1
  126. package/dist/foundation/plugin/types.js.map +1 -1
  127. package/dist/foundation/reactivity/frameTransaction.d.ts +11 -0
  128. package/dist/foundation/reactivity/frameTransaction.d.ts.map +1 -1
  129. package/dist/foundation/reactivity/frameTransaction.js +17 -2
  130. package/dist/foundation/reactivity/frameTransaction.js.map +1 -1
  131. package/dist/foundation/utils/kLineDraw/axis.d.ts +3 -0
  132. package/dist/foundation/utils/kLineDraw/axis.d.ts.map +1 -1
  133. package/dist/foundation/utils/kLineDraw/axis.js +40 -9
  134. package/dist/foundation/utils/kLineDraw/axis.js.map +1 -1
  135. package/dist/foundation/utils/sessionTimeLabels.d.ts +59 -0
  136. package/dist/foundation/utils/sessionTimeLabels.d.ts.map +1 -0
  137. package/dist/foundation/utils/sessionTimeLabels.js +170 -0
  138. package/dist/foundation/utils/sessionTimeLabels.js.map +1 -0
  139. package/dist/foundation/utils/timeShareAxisLabels.d.ts +27 -0
  140. package/dist/foundation/utils/timeShareAxisLabels.d.ts.map +1 -0
  141. package/dist/foundation/utils/timeShareAxisLabels.js +45 -0
  142. package/dist/foundation/utils/timeShareAxisLabels.js.map +1 -0
  143. package/dist/rendering/render/Renderer.d.ts +58 -74
  144. package/dist/rendering/render/Renderer.d.ts.map +1 -1
  145. package/dist/rendering/render/Renderer.js +8 -18
  146. package/dist/rendering/render/Renderer.js.map +1 -1
  147. package/dist/rendering/render/createWebGPURenderer.d.ts.map +1 -1
  148. package/dist/rendering/render/createWebGPURenderer.js +30 -17
  149. package/dist/rendering/render/createWebGPURenderer.js.map +1 -1
  150. package/dist/rendering/render/createWebGPUSurfaceBackend.js +3 -3
  151. package/dist/rendering/render/createWebGPUSurfaceBackend.js.map +1 -1
  152. package/dist/rendering/render/physicalLine.d.ts +4 -0
  153. package/dist/rendering/render/physicalLine.d.ts.map +1 -0
  154. package/dist/rendering/render/physicalLine.js +37 -0
  155. package/dist/rendering/render/physicalLine.js.map +1 -0
  156. package/dist/rendering/render/physicalRegion.d.ts +14 -0
  157. package/dist/rendering/render/physicalRegion.d.ts.map +1 -0
  158. package/dist/rendering/render/physicalRegion.js +15 -0
  159. package/dist/rendering/render/physicalRegion.js.map +1 -0
  160. package/dist/rendering/scene/createLayerFromPlugin.d.ts.map +1 -1
  161. package/dist/rendering/scene/createLayerFromPlugin.js +8 -3
  162. package/dist/rendering/scene/createLayerFromPlugin.js.map +1 -1
  163. package/dist/rendering/scene/createScene.d.ts.map +1 -1
  164. package/dist/rendering/scene/createScene.js +4 -3
  165. package/dist/rendering/scene/createScene.js.map +1 -1
  166. package/dist/version.d.ts +1 -1
  167. package/dist/version.js +1 -1
  168. package/package.json +1 -1
  169. package/src/__tests__/stateKernel.test.ts +1 -0
  170. package/src/controllers/createChartController.ts +9 -8
  171. package/src/controllers/index.ts +11 -0
  172. package/src/controllers/types.ts +7 -0
  173. package/src/data/__tests__/timeShareBuffer.test.ts +45 -0
  174. package/src/data/binance.ts +1 -1
  175. package/src/data/timeShareBuffer.ts +15 -0
  176. package/src/engine/__tests__/chart.dpr.test.ts +31 -2
  177. package/src/engine/__tests__/paneRenderer.resize.test.ts +52 -54
  178. package/src/engine/__tests__/subPaneManager.test.ts +5 -3
  179. package/src/engine/chart.ts +105 -115
  180. package/src/engine/chartTypes.ts +5 -0
  181. package/src/engine/controller/__tests__/interaction.dpr.test.ts +39 -2
  182. package/src/engine/controller/interaction.ts +18 -10
  183. package/src/engine/data/__tests__/chartDataManager.incrementalLoad.test.ts +37 -17
  184. package/src/engine/data/__tests__/scrollCompensator.geometry.test.ts +87 -75
  185. package/src/engine/data/chartDataManager.ts +64 -59
  186. package/src/engine/data/incrementalLoadHint.ts +8 -7
  187. package/src/engine/data/scrollCompensator.ts +16 -24
  188. package/src/engine/indicators/__tests__/chartIndicatorManager.test.ts +18 -26
  189. package/src/engine/indicators/chartIndicatorManager.ts +62 -62
  190. package/src/engine/layout/chartPaneLayout.ts +73 -21
  191. package/src/engine/modes/__tests__/timeShareMath.test.ts +185 -0
  192. package/src/engine/modes/__tests__/timeShareMode.test.ts +81 -0
  193. package/src/engine/modes/timeShareMath.ts +150 -0
  194. package/src/engine/modes/timeShareMode.ts +35 -28
  195. package/src/engine/paneRenderer.ts +17 -10
  196. package/src/engine/render/chartRenderer.ts +214 -145
  197. package/src/engine/render/layers/leftYAxisLayer.ts +29 -7
  198. package/src/engine/render/layers/mainIndicatorLegendLayer.test.ts +26 -0
  199. package/src/engine/render/layers/mainIndicatorLegendLayer.ts +13 -10
  200. package/src/engine/render/layers/yAxisLayer.ts +29 -7
  201. package/src/engine/renderers/Indicator/mainIndicatorLegend.ts +270 -403
  202. package/src/engine/renderers/Indicator/mainIndicatorLegendContext.ts +290 -0
  203. package/src/engine/renderers/__tests__/mainIndicatorLegend.renderer.test.ts +73 -2
  204. package/src/engine/renderers/__tests__/yAxis.renderer.test.ts +10 -6
  205. package/src/engine/renderers/leftYAxis.ts +60 -18
  206. package/src/engine/renderers/timeShare.ts +25 -9
  207. package/src/engine/renderers/yAxis.ts +57 -22
  208. package/src/engine/state/__tests__/settingsState.test.ts +9 -0
  209. package/src/engine/state/viewportState.ts +44 -8
  210. package/src/engine/subPaneManager.ts +8 -5
  211. package/src/engine/utils/chartZoomController.ts +22 -19
  212. package/src/engine/viewport/__tests__/visibleRange.clamp.test.ts +50 -0
  213. package/src/engine/viewport/chartViewportManager.ts +9 -60
  214. package/src/engine/viewport/viewport.ts +14 -0
  215. package/src/foundation/config/chartSettings.ts +13 -0
  216. package/src/foundation/plugin/rendererPluginManager.test.ts +18 -0
  217. package/src/foundation/plugin/types.ts +3 -0
  218. package/src/foundation/reactivity/frameTransaction.ts +20 -6
  219. package/src/foundation/utils/__tests__/sessionTimeLabels.test.ts +91 -0
  220. package/src/foundation/utils/kLineDraw/axis.ts +50 -9
  221. package/src/foundation/utils/sessionTimeLabels.ts +237 -0
  222. package/src/foundation/utils/timeShareAxisLabels.ts +94 -0
  223. package/src/rendering/render/Renderer.ts +69 -85
  224. package/src/rendering/render/__tests__/physicalLine.test.ts +51 -0
  225. package/src/rendering/render/__tests__/physicalRegion.test.ts +23 -0
  226. package/src/rendering/render/__tests__/webgpuRenderer.test.ts +31 -1
  227. package/src/rendering/render/__tests__/webgpuSurfaceBackend.test.ts +11 -0
  228. package/src/rendering/render/createWebGPURenderer.ts +30 -17
  229. package/src/rendering/render/createWebGPUSurfaceBackend.ts +3 -3
  230. package/src/rendering/render/physicalLine.ts +45 -0
  231. package/src/rendering/render/physicalRegion.ts +32 -0
  232. package/src/rendering/scene/createLayerFromPlugin.ts +8 -3
  233. package/src/rendering/scene/createScene.ts +4 -3
  234. package/src/version.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"axis.js","sourceRoot":"","sources":["../../../../src/foundation/utils/kLineDraw/axis.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"axis.js","sourceRoot":"","sources":["../../../../src/foundation/utils/kLineDraw/axis.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * 开盘时段:minuteOfDay 为自 0 点起的分钟数(交易所本地墙钟)。
3
+ * sessions[0..n-2] 左闭右开 [open, close);sessions[n-1] 左闭右闭 [open, close]。
4
+ * 只打印闭侧端点:半开段不展示 close。
5
+ */
6
+ export type OpenTimeRange = {
7
+ open: number;
8
+ close: number;
9
+ };
10
+ /** 市场分时 session 配置(几何 / 标签共用) */
11
+ export type MarketSessionConfig = {
12
+ /** IANA 时区,如 Asia/Shanghai */
13
+ timeZone: string;
14
+ sessions: ReadonlyArray<OpenTimeRange>;
15
+ /** 每个 bar 槽对应的分钟数,默认 1 */
16
+ slotMinutes?: number;
17
+ };
18
+ export type SessionTimeLabel = {
19
+ /** 自 0 点起的分钟数(交易所墙钟) */
20
+ minuteOfDay: number;
21
+ /** 在展开后的槽序列中的索引(0-based) */
22
+ slotIndex: number;
23
+ /** 是否为闭侧端点 */
24
+ isEndpoint: boolean;
25
+ };
26
+ export type SessionTimeLabelOptions = {
27
+ axisWidth: number;
28
+ /** 保留字段,端点-only 模式下不参与密度计算 */
29
+ minLabelSpacingPx?: number;
30
+ };
31
+ /** A 股默认 */
32
+ export declare const ASHARE_OPEN_SESSIONS: readonly OpenTimeRange[];
33
+ export declare const ASHARE_MARKET_SESSION: MarketSessionConfig;
34
+ /** 港股 */
35
+ export declare const HK_MARKET_SESSION: MarketSessionConfig;
36
+ /** 美股(常规盘,无午休) */
37
+ export declare const US_MARKET_SESSION: MarketSessionConfig;
38
+ /**
39
+ * 只输出各区间闭侧端点。
40
+ * - 非末段 [open, close):仅 open
41
+ * - 末段 [open, close]:open 与 close
42
+ * close 标签映射到 close-1 槽(bar 序列为各段 [open, close))。
43
+ */
44
+ export declare function computeSessionTimeLabels(sessions: ReadonlyArray<OpenTimeRange>, options: SessionTimeLabelOptions): SessionTimeLabel[];
45
+ /** 槽总数(各段 [open, close) 分钟数之和;未除 slotMinutes) */
46
+ export declare function countSessionSlots(sessions: ReadonlyArray<OpenTimeRange>): number;
47
+ /**
48
+ * 全天 bar 槽数 = 分钟总和 / slotMinutes。
49
+ * sessions 为 SSOT,不因 arrivedCount 放大。
50
+ */
51
+ export declare function resolveMarketSessionSlots(config: MarketSessionConfig, _arrivedCount?: number): number;
52
+ /**
53
+ * 将交易所墙钟 minuteOfDay 转为 UTC 毫秒。
54
+ * baseTimestamp 用于确定「哪一天」(按 timeZone 日历日)。
55
+ */
56
+ export declare function minuteOfDayToTimestamp(baseTimestamp: number, minuteOfDay: number, timeZone?: string): number;
57
+ /** 槽中心 X */
58
+ export declare function sessionSlotCenterX(slotIndex: number, axisWidth: number, sessionSlots: number, dpr: number): number;
59
+ //# sourceMappingURL=sessionTimeLabels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessionTimeLabels.d.ts","sourceRoot":"","sources":["../../../src/foundation/utils/sessionTimeLabels.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,iCAAiC;AACjC,MAAM,MAAM,mBAAmB,GAAG;IAChC,8BAA8B;IAC9B,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,aAAa,CAAC,aAAa,CAAC,CAAA;IACtC,0BAA0B;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,wBAAwB;IACxB,WAAW,EAAE,MAAM,CAAA;IACnB,4BAA4B;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc;IACd,UAAU,EAAE,OAAO,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,SAAS,EAAE,MAAM,CAAA;IACjB,8BAA8B;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B,CAAA;AAMD,YAAY;AACZ,eAAO,MAAM,oBAAoB,EAAE,SAAS,aAAa,EAGxD,CAAA;AAED,eAAO,MAAM,qBAAqB,EAAE,mBAInC,CAAA;AAED,SAAS;AACT,eAAO,MAAM,iBAAiB,EAAE,mBAO/B,CAAA;AAED,kBAAkB;AAClB,eAAO,MAAM,iBAAiB,EAAE,mBAI/B,CAAA;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,aAAa,CAAC,aAAa,CAAC,EACtC,OAAO,EAAE,uBAAuB,GAC/B,gBAAgB,EAAE,CAkCpB;AAED,iDAAiD;AACjD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,aAAa,CAAC,aAAa,CAAC,GAAG,MAAM,CAMhF;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,mBAAmB,EAC3B,aAAa,CAAC,EAAE,MAAM,GACrB,MAAM,CAIR;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EACnB,QAAQ,GAAE,MAAwB,GACjC,MAAM,CAGR;AAED,YAAY;AACZ,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,GAAG,EAAE,MAAM,GACV,MAAM,CAIR"}
@@ -0,0 +1,170 @@
1
+ function hm(h, m) {
2
+ return h * 60 + m;
3
+ }
4
+ /** A 股默认 */
5
+ export const ASHARE_OPEN_SESSIONS = [
6
+ { open: hm(9, 30), close: hm(11, 30) },
7
+ { open: hm(13, 0), close: hm(15, 0) },
8
+ ];
9
+ export const ASHARE_MARKET_SESSION = {
10
+ timeZone: 'Asia/Shanghai',
11
+ sessions: ASHARE_OPEN_SESSIONS,
12
+ slotMinutes: 1,
13
+ };
14
+ /** 港股 */
15
+ export const HK_MARKET_SESSION = {
16
+ timeZone: 'Asia/Hong_Kong',
17
+ sessions: [
18
+ { open: hm(9, 30), close: hm(12, 0) },
19
+ { open: hm(13, 0), close: hm(16, 0) },
20
+ ],
21
+ slotMinutes: 1,
22
+ };
23
+ /** 美股(常规盘,无午休) */
24
+ export const US_MARKET_SESSION = {
25
+ timeZone: 'America/New_York',
26
+ sessions: [{ open: hm(9, 30), close: hm(16, 0) }],
27
+ slotMinutes: 1,
28
+ };
29
+ /**
30
+ * 只输出各区间闭侧端点。
31
+ * - 非末段 [open, close):仅 open
32
+ * - 末段 [open, close]:open 与 close
33
+ * close 标签映射到 close-1 槽(bar 序列为各段 [open, close))。
34
+ */
35
+ export function computeSessionTimeLabels(sessions, options) {
36
+ if (!(options.axisWidth > 0) || sessions.length === 0)
37
+ return [];
38
+ const labels = [];
39
+ let slotOffset = 0;
40
+ for (let s = 0; s < sessions.length; s++) {
41
+ const range = sessions[s];
42
+ if (!(range.close > range.open))
43
+ continue;
44
+ const slotCount = range.close - range.open;
45
+ const isLast = s === sessions.length - 1;
46
+ labels.push({
47
+ minuteOfDay: range.open,
48
+ slotIndex: slotOffset,
49
+ isEndpoint: true,
50
+ });
51
+ if (isLast) {
52
+ labels.push({
53
+ minuteOfDay: range.close,
54
+ slotIndex: slotOffset + slotCount - 1,
55
+ isEndpoint: true,
56
+ });
57
+ }
58
+ slotOffset += slotCount;
59
+ }
60
+ const bySlot = new Map();
61
+ for (const label of labels) {
62
+ bySlot.set(label.slotIndex, label);
63
+ }
64
+ return [...bySlot.values()].sort((a, b) => a.slotIndex - b.slotIndex);
65
+ }
66
+ /** 槽总数(各段 [open, close) 分钟数之和;未除 slotMinutes) */
67
+ export function countSessionSlots(sessions) {
68
+ let n = 0;
69
+ for (const r of sessions) {
70
+ if (r.close > r.open)
71
+ n += r.close - r.open;
72
+ }
73
+ return n;
74
+ }
75
+ /**
76
+ * 全天 bar 槽数 = 分钟总和 / slotMinutes。
77
+ * sessions 为 SSOT,不因 arrivedCount 放大。
78
+ */
79
+ export function resolveMarketSessionSlots(config, _arrivedCount) {
80
+ const minutes = countSessionSlots(config.sessions);
81
+ const step = config.slotMinutes && config.slotMinutes > 0 ? config.slotMinutes : 1;
82
+ return Math.max(0, Math.floor(minutes / step));
83
+ }
84
+ /**
85
+ * 将交易所墙钟 minuteOfDay 转为 UTC 毫秒。
86
+ * baseTimestamp 用于确定「哪一天」(按 timeZone 日历日)。
87
+ */
88
+ export function minuteOfDayToTimestamp(baseTimestamp, minuteOfDay, timeZone = 'Asia/Shanghai') {
89
+ const { year, month, day } = getCalendarPartsInTimeZone(baseTimestamp, timeZone);
90
+ return zonedWallTimeToUtc(year, month, day, minuteOfDay, timeZone);
91
+ }
92
+ /** 槽中心 X */
93
+ export function sessionSlotCenterX(slotIndex, axisWidth, sessionSlots, dpr) {
94
+ if (!(axisWidth > 0) || !(sessionSlots > 0))
95
+ return 0;
96
+ const step = axisWidth / sessionSlots;
97
+ return Math.round((slotIndex + 0.5) * step * dpr) / dpr;
98
+ }
99
+ // ── 时区工具(无第三方依赖,Intl) ──
100
+ function getCalendarPartsInTimeZone(timestamp, timeZone) {
101
+ const parts = new Intl.DateTimeFormat('en-US', {
102
+ timeZone,
103
+ year: 'numeric',
104
+ month: '2-digit',
105
+ day: '2-digit',
106
+ }).formatToParts(new Date(timestamp));
107
+ let year = 0;
108
+ let month = 1;
109
+ let day = 1;
110
+ for (const p of parts) {
111
+ if (p.type === 'year')
112
+ year = Number(p.value);
113
+ else if (p.type === 'month')
114
+ month = Number(p.value);
115
+ else if (p.type === 'day')
116
+ day = Number(p.value);
117
+ }
118
+ return { year, month, day };
119
+ }
120
+ /**
121
+ * 将某时区墙钟 (y-m-d + minuteOfDay) 转为 UTC epoch。
122
+ * 用迭代修正 UTC 猜测,覆盖 DST。
123
+ */
124
+ function zonedWallTimeToUtc(year, month, day, minuteOfDay, timeZone) {
125
+ const hour = Math.floor(minuteOfDay / 60);
126
+ const minute = minuteOfDay % 60;
127
+ // 初值:当作 UTC 墙钟
128
+ let utc = Date.UTC(year, month - 1, day, hour, minute, 0, 0);
129
+ for (let i = 0; i < 4; i++) {
130
+ const wall = getWallClockInTimeZone(utc, timeZone);
131
+ const desiredMin = hour * 60 + minute;
132
+ const actualMin = wall.hour * 60 + wall.minute;
133
+ const dayDelta = Date.UTC(year, month - 1, day) - Date.UTC(wall.year, wall.month - 1, wall.day);
134
+ const minDelta = desiredMin - actualMin + dayDelta / 60_000;
135
+ if (minDelta === 0)
136
+ break;
137
+ utc += minDelta * 60_000;
138
+ }
139
+ return utc;
140
+ }
141
+ function getWallClockInTimeZone(timestamp, timeZone) {
142
+ const parts = new Intl.DateTimeFormat('en-US', {
143
+ timeZone,
144
+ year: 'numeric',
145
+ month: '2-digit',
146
+ day: '2-digit',
147
+ hour: '2-digit',
148
+ minute: '2-digit',
149
+ hourCycle: 'h23',
150
+ }).formatToParts(new Date(timestamp));
151
+ let year = 0;
152
+ let month = 1;
153
+ let day = 1;
154
+ let hour = 0;
155
+ let minute = 0;
156
+ for (const p of parts) {
157
+ if (p.type === 'year')
158
+ year = Number(p.value);
159
+ else if (p.type === 'month')
160
+ month = Number(p.value);
161
+ else if (p.type === 'day')
162
+ day = Number(p.value);
163
+ else if (p.type === 'hour')
164
+ hour = Number(p.value);
165
+ else if (p.type === 'minute')
166
+ minute = Number(p.value);
167
+ }
168
+ return { year, month, day, hour, minute };
169
+ }
170
+ //# sourceMappingURL=sessionTimeLabels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessionTimeLabels.js","sourceRoot":"","sources":["../../../src/foundation/utils/sessionTimeLabels.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { ASHARE_MARKET_SESSION, ASHARE_OPEN_SESSIONS, computeSessionTimeLabels, countSessionSlots, minuteOfDayToTimestamp, resolveMarketSessionSlots, sessionSlotCenterX, type MarketSessionConfig, type SessionTimeLabel } from './sessionTimeLabels';
2
+ /** A 股默认全天 1 分钟槽位数(兼容旧导出) */
3
+ export declare const ASHARE_TIMESHARE_SESSION_SLOTS: number;
4
+ /** 分时时间标签最小水平间距(逻辑像素) */
5
+ export declare const TIMESHARE_MIN_LABEL_SPACING_PX = 56;
6
+ export type TimeShareTimeLabelInput = {
7
+ axisWidth: number;
8
+ /** 市场 session;默认 A 股 */
9
+ marketSession?: MarketSessionConfig;
10
+ minLabelSpacingPx?: number;
11
+ };
12
+ /**
13
+ * 分时时间标签索引(委托 computeSessionTimeLabels)。
14
+ * 默认 A 股;传入 marketSession 可换港股/美股等。
15
+ */
16
+ export declare function computeTimeShareTimeLabelIndices(input: TimeShareTimeLabelInput): number[];
17
+ /** 完整标签(含 minuteOfDay / isEndpoint) */
18
+ export declare function computeTimeShareTimeLabels(input: TimeShareTimeLabelInput): SessionTimeLabel[];
19
+ export declare function timeShareSlotCenterX(slotIndex: number, axisWidth: number, sessionSlots: number, dpr: number): number;
20
+ /**
21
+ * 由开盘日基准时间戳 + slot 索引推算标签时间(按 market session)。
22
+ */
23
+ export declare function resolveTimeShareSlotTimestamp(baseTimestamp: number, slotIndex: number, marketSession?: MarketSessionConfig): number;
24
+ export { ASHARE_MARKET_SESSION, ASHARE_OPEN_SESSIONS, computeSessionTimeLabels, countSessionSlots, minuteOfDayToTimestamp, resolveMarketSessionSlots, sessionSlotCenterX, };
25
+ export type { MarketSessionConfig, OpenTimeRange, SessionTimeLabel, } from './sessionTimeLabels';
26
+ export { HK_MARKET_SESSION, US_MARKET_SESSION } from './sessionTimeLabels';
27
+ //# sourceMappingURL=timeShareAxisLabels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeShareAxisLabels.d.ts","sourceRoot":"","sources":["../../../src/foundation/utils/timeShareAxisLabels.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,wBAAwB,EACxB,iBAAiB,EACjB,sBAAsB,EACtB,yBAAyB,EACzB,kBAAkB,EAClB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACtB,MAAM,qBAAqB,CAAA;AAE5B,6BAA6B;AAC7B,eAAO,MAAM,8BAA8B,QAAmD,CAAA;AAE9F,yBAAyB;AACzB,eAAO,MAAM,8BAA8B,KAAK,CAAA;AAEhD,MAAM,MAAM,uBAAuB,GAAG;IACpC,SAAS,EAAE,MAAM,CAAA;IACjB,wBAAwB;IACxB,aAAa,CAAC,EAAE,mBAAmB,CAAA;IACnC,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B,CAAA;AAED;;;GAGG;AACH,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,uBAAuB,GAAG,MAAM,EAAE,CAEzF;AAED,uCAAuC;AACvC,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,uBAAuB,GAAG,gBAAgB,EAAE,CAM7F;AAED,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,GAAG,EAAE,MAAM,GACV,MAAM,CAER;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,aAAa,GAAE,mBAA2C,GACzD,MAAM,CAmBR;AAED,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,wBAAwB,EACxB,iBAAiB,EACjB,sBAAsB,EACtB,yBAAyB,EACzB,kBAAkB,GACnB,CAAA;AACD,YAAY,EACV,mBAAmB,EACnB,aAAa,EACb,gBAAgB,GACjB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA"}
@@ -0,0 +1,45 @@
1
+ import { ASHARE_MARKET_SESSION, ASHARE_OPEN_SESSIONS, computeSessionTimeLabels, countSessionSlots, minuteOfDayToTimestamp, resolveMarketSessionSlots, sessionSlotCenterX, } from './sessionTimeLabels';
2
+ /** A 股默认全天 1 分钟槽位数(兼容旧导出) */
3
+ export const ASHARE_TIMESHARE_SESSION_SLOTS = resolveMarketSessionSlots(ASHARE_MARKET_SESSION);
4
+ /** 分时时间标签最小水平间距(逻辑像素) */
5
+ export const TIMESHARE_MIN_LABEL_SPACING_PX = 56;
6
+ /**
7
+ * 分时时间标签索引(委托 computeSessionTimeLabels)。
8
+ * 默认 A 股;传入 marketSession 可换港股/美股等。
9
+ */
10
+ export function computeTimeShareTimeLabelIndices(input) {
11
+ return computeTimeShareTimeLabels(input).map((l) => l.slotIndex);
12
+ }
13
+ /** 完整标签(含 minuteOfDay / isEndpoint) */
14
+ export function computeTimeShareTimeLabels(input) {
15
+ const market = input.marketSession ?? ASHARE_MARKET_SESSION;
16
+ return computeSessionTimeLabels(market.sessions, {
17
+ axisWidth: input.axisWidth,
18
+ minLabelSpacingPx: input.minLabelSpacingPx ?? TIMESHARE_MIN_LABEL_SPACING_PX,
19
+ });
20
+ }
21
+ export function timeShareSlotCenterX(slotIndex, axisWidth, sessionSlots, dpr) {
22
+ return sessionSlotCenterX(slotIndex, axisWidth, sessionSlots, dpr);
23
+ }
24
+ /**
25
+ * 由开盘日基准时间戳 + slot 索引推算标签时间(按 market session)。
26
+ */
27
+ export function resolveTimeShareSlotTimestamp(baseTimestamp, slotIndex, marketSession = ASHARE_MARKET_SESSION) {
28
+ const step = marketSession.slotMinutes && marketSession.slotMinutes > 0 ? marketSession.slotMinutes : 1;
29
+ let remaining = slotIndex * step;
30
+ for (const range of marketSession.sessions) {
31
+ const len = range.close - range.open;
32
+ if (remaining < len) {
33
+ return minuteOfDayToTimestamp(baseTimestamp, range.open + remaining, marketSession.timeZone);
34
+ }
35
+ remaining -= len;
36
+ }
37
+ const last = marketSession.sessions[marketSession.sessions.length - 1];
38
+ if (last) {
39
+ return minuteOfDayToTimestamp(baseTimestamp, last.close, marketSession.timeZone);
40
+ }
41
+ return baseTimestamp;
42
+ }
43
+ export { ASHARE_MARKET_SESSION, ASHARE_OPEN_SESSIONS, computeSessionTimeLabels, countSessionSlots, minuteOfDayToTimestamp, resolveMarketSessionSlots, sessionSlotCenterX, };
44
+ export { HK_MARKET_SESSION, US_MARKET_SESSION } from './sessionTimeLabels';
45
+ //# sourceMappingURL=timeShareAxisLabels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeShareAxisLabels.js","sourceRoot":"","sources":["../../../src/foundation/utils/timeShareAxisLabels.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,wBAAwB,EACxB,iBAAiB,EACjB,sBAAsB,EACtB,yBAAyB,EACzB,kBAAkB,GAGnB,MAAM,qBAAqB,CAAA;AAE5B,6BAA6B;AAC7B,MAAM,CAAC,MAAM,8BAA8B,GAAG,yBAAyB,CAAC,qBAAqB,CAAC,CAAA;AAE9F,yBAAyB;AACzB,MAAM,CAAC,MAAM,8BAA8B,GAAG,EAAE,CAAA;AAShD;;;GAGG;AACH,MAAM,UAAU,gCAAgC,CAAC,KAA8B;IAC7E,OAAO,0BAA0B,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;AAClE,CAAC;AAED,uCAAuC;AACvC,MAAM,UAAU,0BAA0B,CAAC,KAA8B;IACvE,MAAM,MAAM,GAAG,KAAK,CAAC,aAAa,IAAI,qBAAqB,CAAA;IAC3D,OAAO,wBAAwB,CAAC,MAAM,CAAC,QAAQ,EAAE;QAC/C,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,IAAI,8BAA8B;KAC7E,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,SAAiB,EACjB,SAAiB,EACjB,YAAoB,EACpB,GAAW;IAEX,OAAO,kBAAkB,CAAC,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,CAAC,CAAA;AACpE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,6BAA6B,CAC3C,aAAqB,EACrB,SAAiB,EACjB,gBAAqC,qBAAqB;IAE1D,MAAM,IAAI,GAAG,aAAa,CAAC,WAAW,IAAI,aAAa,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;IACvG,IAAI,SAAS,GAAG,SAAS,GAAG,IAAI,CAAA;IAChC,KAAK,MAAM,KAAK,IAAI,aAAa,CAAC,QAAQ,EAAE,CAAC;QAC3C,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAA;QACpC,IAAI,SAAS,GAAG,GAAG,EAAE,CAAC;YACpB,OAAO,sBAAsB,CAC3B,aAAa,EACb,KAAK,CAAC,IAAI,GAAG,SAAS,EACtB,aAAa,CAAC,QAAQ,CACvB,CAAA;QACH,CAAC;QACD,SAAS,IAAI,GAAG,CAAA;IAClB,CAAC;IACD,MAAM,IAAI,GAAG,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IACtE,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,sBAAsB,CAAC,aAAa,EAAE,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAA;IAClF,CAAC;IACD,OAAO,aAAa,CAAA;AACtB,CAAC;AAED,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,wBAAwB,EACxB,iBAAiB,EACjB,sBAAsB,EACtB,yBAAyB,EACzB,kBAAkB,GACnB,CAAA;AAMD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA"}
@@ -1,61 +1,85 @@
1
1
  /**
2
- * High-level renderer interface the drawing primitives the chart's
3
- * scene layers (candles, volume, indicators, drawings) call into.
2
+ * 渲染器接口Scene 各层(蜡烛、指标、drawing 等)通过它画图。
4
3
  *
5
- * WebGL (`createWebGLRenderer`) implements this contract today; P1 WebGPU
6
- * will implement the same surface. Call sites only use sceneRenderer
7
- * (fail-closed boolean → Canvas2D), never dual-path surfaces.
4
+ * WebGL WebGPU 实现同一套接口。调用方只走 sceneRenderer(返回 false fail-closed 降级 Canvas2D),不走双路径。
8
5
  *
9
- * Design notes:
10
- * - `drawInstances` is the workhorse: render N copies of a unit geometry
11
- * parameterized by an instance buffer. K-lines, volume bars, footprint
12
- * cells, heatmap tiles all reduce to instanced primitives — see
13
- * `docs/ROADMAP.md` §2.3 for the K-line example.
14
- * - `drawLines` covers MA-style continuous polylines, drawings, axes.
15
- * - `dispatchCompute` exists only because WebGPU has compute shaders;
16
- * the WebGL implementation throws on call so callers can feature-detect
17
- * via `caps.compute`. Volume Profile binning, M4 downsampling, footprint
18
- * aggregation will use it on the WebGPU path.
19
- * - `setUniforms` is intentionally schemaless on the interface — the
20
- * uniform layout is owned by each shader/program. Callers pass a
21
- * structured object that the backend translates into uniform writes.
6
+ * 设计说明:
7
+ * - drawInstances 是主力:一份 unit geometry instance buffer 渲染 N 份。
8
+ * 蜡烛、成交量柱、footprint 格子、heatmap 磁贴都归约为 instanced 图元。
9
+ * - drawLines MA-style 折线、drawing、坐标轴。
10
+ * - dispatchCompute 只有 WebGPU 有;WebGL 实现会抛异常,调用方先查 caps.compute。
11
+ * - uniform 布局由各 shader/pipeline 自行定义,接口不做 schema 约束。
22
12
  */
23
13
  import type { SurfaceBackend, SurfaceRegion } from './SurfaceBackend';
24
- /** Reported by the backend so feature-conditional code can branch. */
14
+ /** 后端上报的能力位,调用方据此分支 */
25
15
  export type RendererCapabilities = {
26
- /** WebGPU compute shaders available. WebGL backends report false. */
16
+ /** WebGPU compute shader 是否可用;WebGL 返回 false */
27
17
  compute: boolean;
28
- /** Storage buffers usable as ring buffers / scatter-add targets. */
18
+ /** storage buffer 是否可用 */
29
19
  storageBuffer: boolean;
30
- /** Maximum elements per drawInstances call (engine-imposed cap). */
20
+ /** 单次 drawInstances 上限(引擎强加) */
31
21
  maxInstances: number;
32
- /** Friendly name, e.g. "webgl2" or "webgpu". */
22
+ /** 名称,如 "webgl2" "webgpu" */
33
23
  name: string;
34
24
  };
35
- /** Vertex/instance buffer wrapper. Backends own the GPU handle. */
25
+ /**
26
+ * 各后端(WebGL/WebGPU/Canvas2D)都实现的绘制接口。
27
+ * 后端持有 GPU 资源,调用方通过不透明 handle 操作。
28
+ */
29
+ export interface Renderer {
30
+ /** 底层 surface,用于 region 绑定和最终合成 */
31
+ readonly surface: SurfaceBackend;
32
+ /** 能力位标志 */
33
+ readonly caps: RendererCapabilities;
34
+ createBuffer(usage: BufferUsage, sizeBytes: number): BufferHandle;
35
+ writeBuffer(handle: BufferHandle, data: ArrayBufferView, offsetBytes?: number): void;
36
+ destroyBuffer(handle: BufferHandle): void;
37
+ /** 编译 shader pipeline。descriptor 格式后端自定,适配层通常提供工厂函数(如 createCandlePipeline) */
38
+ createPipeline(descriptor: unknown): PipelineHandle;
39
+ destroyPipeline(handle: PipelineHandle): void;
40
+ /** WebGPU only — WebGL 会抛异常 */
41
+ createComputePipeline(descriptor: unknown): ComputePipelineHandle;
42
+ destroyComputePipeline(handle: ComputePipelineHandle): void;
43
+ beginFrame(region: SurfaceRegion): void;
44
+ /**
45
+ * 返回 true 表示本批已成功提交 GPU(或 instanceCount<=0 无需绘制)。
46
+ * 返回 false 表示未画上(无 surface / pipeline 不匹配 / 资源缺失)——调用方应 fail-closed 走 2D。
47
+ */
48
+ drawInstances(params: DrawInstancesParams): boolean;
49
+ /**
50
+ * 返回 true 表示本批折线/填充已成功提交 GPU。
51
+ * 返回 false 表示未画上——调用方应 fail-closed 走 2D。
52
+ */
53
+ drawLines(params: DrawLinesParams): boolean;
54
+ /** WebGPU only — WebGL 会抛异常,调用方先查 caps */
55
+ dispatchCompute(params: DispatchComputeParams): void;
56
+ endFrame(): void;
57
+ dispose(): void;
58
+ }
59
+ /** 不透明 buffer handle,后端持有 GPU 资源 */
36
60
  export type BufferHandle = {
37
61
  readonly __brand: 'BufferHandle';
38
62
  };
39
- /** Pipeline / shader program wrapper. */
63
+ /** 不透明 pipeline handle */
40
64
  export type PipelineHandle = {
41
65
  readonly __brand: 'PipelineHandle';
42
66
  };
43
- /** Compute shader handle (WebGPU only). */
67
+ /** WebGPU compute pipeline handle */
44
68
  export type ComputePipelineHandle = {
45
69
  readonly __brand: 'ComputePipelineHandle';
46
70
  };
47
71
  export type BufferUsage = 'vertex' | 'instance' | 'index' | 'uniform' | 'storage';
48
72
  export type DrawInstancesParams = {
49
73
  pipeline: PipelineHandle;
50
- /** Unit-geometry buffer (e.g. a single rectangle) shared across instances. */
74
+ /** 所有 instance 共享的 unit geometry(如一个矩形) */
51
75
  vertices: BufferHandle;
52
- /** Per-instance attribute buffer (e.g. one row per K-line). */
76
+ /** 每个 instance 的属性 buffer(如一行 K 线数据) */
53
77
  instances: BufferHandle;
54
- /** Number of instances to draw. */
78
+ /** 绘制多少个 instance */
55
79
  instanceCount: number;
56
- /** Vertices per instance (e.g. 4 for a quad, 6 if using triangles). */
80
+ /** 每个 instance 的顶点数(quad 4,triangle 6 */
57
81
  vertexCount: number;
58
- /** Uniform block — opaque object the backend reads. */
82
+ /** uniform 块,后端自行解译 */
59
83
  uniforms?: Record<string, unknown>;
60
84
  };
61
85
  export type DrawLineStrip = {
@@ -74,7 +98,7 @@ export type DrawLinesParams = {
74
98
  */
75
99
  vertices?: BufferHandle;
76
100
  vertexCount?: number;
77
- /** Line strip vs disconnected segments. */
101
+ /** strip 连续折线 / list 独立线段 */
78
102
  topology?: 'strip' | 'list';
79
103
  /** 多色折线批量(推荐 MA 等多周期) */
80
104
  strips?: ReadonlyArray<DrawLineStrip>;
@@ -82,50 +106,10 @@ export type DrawLinesParams = {
82
106
  };
83
107
  export type DispatchComputeParams = {
84
108
  pipeline: ComputePipelineHandle;
85
- /** Workgroup counts per axis. */
109
+ /** 各轴 workgroup */
86
110
  workgroups: [number, number?, number?];
87
- /** Input/output buffer bindings, keyed by binding index. */
111
+ /** 输入/输出 buffer 绑定,key binding index */
88
112
  bindings: Record<number, BufferHandle>;
89
113
  uniforms?: Record<string, unknown>;
90
114
  };
91
- /**
92
- * The drawing-primitives interface every backend implements.
93
- *
94
- * Backends own the GPU resources; callers receive opaque handles
95
- * (`BufferHandle`, `PipelineHandle`) and pass them back for draws.
96
- */
97
- export interface Renderer {
98
- /** Underlying surface (for region binding and final composite). */
99
- readonly surface: SurfaceBackend;
100
- /** Reported feature flags — caller branches on `caps.compute` etc. */
101
- readonly caps: RendererCapabilities;
102
- createBuffer(usage: BufferUsage, sizeBytes: number): BufferHandle;
103
- writeBuffer(handle: BufferHandle, data: ArrayBufferView, offsetBytes?: number): void;
104
- destroyBuffer(handle: BufferHandle): void;
105
- /**
106
- * Compile a shader pipeline. The exact pipeline descriptor is backend-specific;
107
- * adapters typically expose factory helpers (e.g. `createCandlePipeline`) that
108
- * internally call this with the right vertex/fragment sources.
109
- */
110
- createPipeline(descriptor: unknown): PipelineHandle;
111
- destroyPipeline(handle: PipelineHandle): void;
112
- /** WebGPU only — WebGL implementations MUST throw with a clear message. */
113
- createComputePipeline(descriptor: unknown): ComputePipelineHandle;
114
- destroyComputePipeline(handle: ComputePipelineHandle): void;
115
- beginFrame(region: SurfaceRegion): void;
116
- /**
117
- * 返回 true 表示本批已成功提交 GPU(或 instanceCount<=0 无需绘制)。
118
- * 返回 false 表示未画上(无 surface / pipeline 不匹配 / 资源缺失)——调用方应 fail-closed 走 2D。
119
- */
120
- drawInstances(params: DrawInstancesParams): boolean;
121
- /**
122
- * 返回 true 表示本批折线/填充已成功提交 GPU。
123
- * 返回 false 表示未画上——调用方应 fail-closed 走 2D。
124
- */
125
- drawLines(params: DrawLinesParams): boolean;
126
- /** WebGPU only — WebGL implementations MUST throw. Caller checks caps first. */
127
- dispatchCompute(params: DispatchComputeParams): void;
128
- endFrame(): void;
129
- dispose(): void;
130
- }
131
115
  //# sourceMappingURL=Renderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Renderer.d.ts","sourceRoot":"","sources":["../../../src/rendering/render/Renderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Renderer.d.ts","sourceRoot":"","sources":["../../../src/rendering/render/Renderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAErE,uBAAuB;AACvB,MAAM,MAAM,oBAAoB,GAAG;IACjC,gDAAgD;IAChD,OAAO,EAAE,OAAO,CAAA;IAChB,0BAA0B;IAC1B,aAAa,EAAE,OAAO,CAAA;IACtB,gCAAgC;IAChC,YAAY,EAAE,MAAM,CAAA;IACpB,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,mCAAmC;IACnC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAA;IAEhC,YAAY;IACZ,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAA;IAInC,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY,CAAA;IACjE,WAAW,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpF,aAAa,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAA;IAEzC,+EAA+E;IAC/E,cAAc,CAAC,UAAU,EAAE,OAAO,GAAG,cAAc,CAAA;IACnD,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAAA;IAE7C,+BAA+B;IAC/B,qBAAqB,CAAC,UAAU,EAAE,OAAO,GAAG,qBAAqB,CAAA;IACjE,sBAAsB,CAAC,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAAA;IAI3D,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAAA;IACvC;;;OAGG;IACH,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAA;IACnD;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAA;IAC3C,0CAA0C;IAC1C,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAAA;IACpD,QAAQ,IAAI,IAAI,CAAA;IAEhB,OAAO,IAAI,IAAI,CAAA;CAChB;AAED,oCAAoC;AACpC,MAAM,MAAM,YAAY,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAA;CAAE,CAAA;AAC/D,0BAA0B;AAC1B,MAAM,MAAM,cAAc,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAA;CAAE,CAAA;AACnE,qCAAqC;AACrC,MAAM,MAAM,qBAAqB,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,uBAAuB,CAAA;CAAE,CAAA;AAEjF,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAA;AAEjF,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,cAAc,CAAA;IACxB,2CAA2C;IAC3C,QAAQ,EAAE,YAAY,CAAA;IACtB,wCAAwC;IACxC,SAAS,EAAE,YAAY,CAAA;IACvB,qBAAqB;IACrB,aAAa,EAAE,MAAM,CAAA;IACrB,8CAA8C;IAC9C,WAAW,EAAE,MAAM,CAAA;IACnB,uBAAuB;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACnC,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,aAAa,CAAC;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC/C,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,EAAE,cAAc,CAAA;IACxB;;;OAGG;IACH,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,6BAA6B;IAC7B,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IAC3B,yBAAyB;IACzB,MAAM,CAAC,EAAE,aAAa,CAAC,aAAa,CAAC,CAAA;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACnC,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,EAAE,qBAAqB,CAAA;IAC/B,qBAAqB;IACrB,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;IACtC,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACnC,CAAA"}
@@ -1,24 +1,14 @@
1
1
  /**
2
- * High-level renderer interface the drawing primitives the chart's
3
- * scene layers (candles, volume, indicators, drawings) call into.
2
+ * 渲染器接口Scene 各层(蜡烛、指标、drawing 等)通过它画图。
4
3
  *
5
- * WebGL (`createWebGLRenderer`) implements this contract today; P1 WebGPU
6
- * will implement the same surface. Call sites only use sceneRenderer
7
- * (fail-closed boolean → Canvas2D), never dual-path surfaces.
4
+ * WebGL WebGPU 实现同一套接口。调用方只走 sceneRenderer(返回 false fail-closed 降级 Canvas2D),不走双路径。
8
5
  *
9
- * Design notes:
10
- * - `drawInstances` is the workhorse: render N copies of a unit geometry
11
- * parameterized by an instance buffer. K-lines, volume bars, footprint
12
- * cells, heatmap tiles all reduce to instanced primitives — see
13
- * `docs/ROADMAP.md` §2.3 for the K-line example.
14
- * - `drawLines` covers MA-style continuous polylines, drawings, axes.
15
- * - `dispatchCompute` exists only because WebGPU has compute shaders;
16
- * the WebGL implementation throws on call so callers can feature-detect
17
- * via `caps.compute`. Volume Profile binning, M4 downsampling, footprint
18
- * aggregation will use it on the WebGPU path.
19
- * - `setUniforms` is intentionally schemaless on the interface — the
20
- * uniform layout is owned by each shader/program. Callers pass a
21
- * structured object that the backend translates into uniform writes.
6
+ * 设计说明:
7
+ * - drawInstances 是主力:一份 unit geometry instance buffer 渲染 N 份。
8
+ * 蜡烛、成交量柱、footprint 格子、heatmap 磁贴都归约为 instanced 图元。
9
+ * - drawLines MA-style 折线、drawing、坐标轴。
10
+ * - dispatchCompute 只有 WebGPU 有;WebGL 实现会抛异常,调用方先查 caps.compute。
11
+ * - uniform 布局由各 shader/pipeline 自行定义,接口不做 schema 约束。
22
12
  */
23
13
  export {};
24
14
  //# sourceMappingURL=Renderer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Renderer.js","sourceRoot":"","sources":["../../../src/rendering/render/Renderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG"}
1
+ {"version":3,"file":"Renderer.js","sourceRoot":"","sources":["../../../src/rendering/render/Renderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG"}