@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":"createWebGPURenderer.d.ts","sourceRoot":"","sources":["../../../src/rendering/render/createWebGPURenderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EASV,QAAQ,EACT,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAcnD,MAAM,MAAM,2BAA2B,GAAG;IACxC,GAAG,CAAC,EAAE,GAAG,CAAA;IACT,MAAM,CAAC,EAAE,iBAAiB,CAAA;IAC1B,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,CAAA;IAChD,yCAAyC;IACzC,OAAO,CAAC,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAA;CAChD,CAAA;AAiKD,wBAAsB,oBAAoB,CACxC,OAAO,GAAE,2BAAgC,GACxC,OAAO,CAAC,QAAQ,CAAC,CAienB"}
1
+ {"version":3,"file":"createWebGPURenderer.d.ts","sourceRoot":"","sources":["../../../src/rendering/render/createWebGPURenderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EASV,QAAQ,EACT,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAgBnD,MAAM,MAAM,2BAA2B,GAAG;IACxC,GAAG,CAAC,EAAE,GAAG,CAAA;IACT,MAAM,CAAC,EAAE,iBAAiB,CAAA;IAC1B,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,CAAA;IAChD,yCAAyC;IACzC,OAAO,CAAC,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAA;CAChD,CAAA;AA2KD,wBAAsB,oBAAoB,CACxC,OAAO,GAAE,2BAAgC,GACxC,OAAO,CAAC,QAAQ,CAAC,CAkenB"}
@@ -1,5 +1,7 @@
1
1
  import { createWebGPUSurfaceBackend } from './createWebGPUSurfaceBackend';
2
2
  import { createFrameMetrics } from './frameMetrics';
3
+ import { prepareLineStripForPhysicalPixels } from './physicalLine';
4
+ import { toPhysicalRegion } from './physicalRegion';
3
5
  import { createWebGPUResourceTable } from './webgpuResourceTable';
4
6
  const GPU_BUFFER_COPY_DST = globalThis.GPUBufferUsage?.COPY_DST ?? 0x0008;
5
7
  const GPU_BUFFER_INDEX = globalThis.GPUBufferUsage?.INDEX ?? 0x0010;
@@ -10,8 +12,8 @@ const GPU_TEXTURE_RENDER_ATTACHMENT = globalThis.GPUTextureUsage?.RENDER_ATTACHM
10
12
  const RECT_SHADER = `
11
13
  struct Uniforms {
12
14
  resolution: vec2f,
15
+ dpr: f32,
13
16
  scrollLeft: f32,
14
- padding: f32,
15
17
  color: vec4f,
16
18
  }
17
19
 
@@ -24,7 +26,14 @@ fn vertexMain(@builtin(vertex_index) vertexIndex: u32, @location(0) rect: vec4f)
24
26
  vec2f(0.0, 1.0), vec2f(1.0, 0.0), vec2f(1.0, 1.0)
25
27
  );
26
28
  let unit = corners[vertexIndex];
27
- let position = vec2f(rect.x - uniforms.scrollLeft + unit.x * rect.z, rect.y + unit.y * rect.w);
29
+ let left = round((rect.x - uniforms.scrollLeft) * uniforms.dpr);
30
+ let top = round(rect.y * uniforms.dpr);
31
+ let right = round((rect.x + rect.z - uniforms.scrollLeft) * uniforms.dpr);
32
+ let bottom = round((rect.y + rect.w) * uniforms.dpr);
33
+ let position = vec2f(
34
+ left + unit.x * max(1.0, right - left),
35
+ top + unit.y * max(1.0, bottom - top),
36
+ );
28
37
  let clip = vec2f(position.x / uniforms.resolution.x * 2.0 - 1.0, 1.0 - position.y / uniforms.resolution.y * 2.0);
29
38
  return vec4f(clip, 0.0, 1.0);
30
39
  }
@@ -37,8 +46,8 @@ fn fragmentMain() -> @location(0) vec4f {
37
46
  const LINE_SHADER = `
38
47
  struct Uniforms {
39
48
  resolution: vec2f,
49
+ dpr: f32,
40
50
  scrollLeft: f32,
41
- padding: f32,
42
51
  color: vec4f,
43
52
  }
44
53
 
@@ -46,7 +55,10 @@ struct Uniforms {
46
55
 
47
56
  @vertex
48
57
  fn vertexMain(@location(0) point: vec2f) -> @builtin(position) vec4f {
49
- let position = vec2f(point.x - uniforms.scrollLeft, point.y);
58
+ let position = vec2f(
59
+ (point.x - uniforms.scrollLeft) * uniforms.dpr,
60
+ point.y * uniforms.dpr,
61
+ );
50
62
  let clip = vec2f(position.x / uniforms.resolution.x * 2.0 - 1.0, 1.0 - position.y / uniforms.resolution.y * 2.0);
51
63
  return vec4f(clip, 0.0, 1.0);
52
64
  }
@@ -307,10 +319,10 @@ export async function createWebGPURenderer(options = {}) {
307
319
  if (!color)
308
320
  return null;
309
321
  const values = new Float32Array([
310
- region.width,
311
- region.height,
322
+ Math.round(region.width * region.dpr),
323
+ Math.round(region.height * region.dpr),
324
+ region.dpr,
312
325
  scrollLeft,
313
- 0,
314
326
  color[0],
315
327
  color[1],
316
328
  color[2],
@@ -341,10 +353,10 @@ export async function createWebGPURenderer(options = {}) {
341
353
  },
342
354
  ],
343
355
  });
344
- const x = Math.max(0, Math.round(region.x * region.dpr));
345
- const y = Math.max(0, Math.round(region.y * region.dpr));
346
- const width = Math.min(canvas.width - x, Math.round(region.width * region.dpr));
347
- const height = Math.min(canvas.height - y, Math.round(region.height * region.dpr));
356
+ const { x, y, width, height } = toPhysicalRegion(region, {
357
+ width: canvas.width,
358
+ height: canvas.height,
359
+ });
348
360
  if (width <= 0 || height <= 0) {
349
361
  pass.end();
350
362
  return null;
@@ -388,10 +400,10 @@ export async function createWebGPURenderer(options = {}) {
388
400
  for (const draws of groups.values()) {
389
401
  const region = draws[0].region;
390
402
  rawSurface.bindRegion(region);
391
- const x = Math.max(0, Math.round(region.x * region.dpr));
392
- const y = Math.max(0, Math.round(region.y * region.dpr));
393
- const width = Math.min(canvas.width - x, Math.round(region.width * region.dpr));
394
- const height = Math.min(canvas.height - y, Math.round(region.height * region.dpr));
403
+ const { x, y, width, height } = toPhysicalRegion(region, {
404
+ width: canvas.width,
405
+ height: canvas.height,
406
+ });
395
407
  if (width > 0 && height > 0) {
396
408
  pass.setViewport(x, y, width, height, 0, 1);
397
409
  pass.setScissorRect(x, y, width, height);
@@ -543,8 +555,9 @@ export async function createWebGPURenderer(options = {}) {
543
555
  for (const strip of params.strips) {
544
556
  if (strip.points.length < 2)
545
557
  return false;
546
- const wide = (strip.width ?? 1) > 1;
547
- const values = wide ? buildWideLine(strip) : linePoints(strip);
558
+ const physicalStrip = prepareLineStripForPhysicalPixels(strip, currentRegion.dpr);
559
+ const wide = Math.round((physicalStrip.width ?? 1) * currentRegion.dpr) > 1;
560
+ const values = wide ? buildWideLine(physicalStrip) : linePoints(physicalStrip);
548
561
  if (!values)
549
562
  return false;
550
563
  // 帧内序号作 key:同顺序跨帧复用;revision 未变则不 upload
@@ -1 +1 @@
1
- {"version":3,"file":"createWebGPURenderer.js","sourceRoot":"","sources":["../../../src/rendering/render/createWebGPURenderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createWebGPURenderer.js","sourceRoot":"","sources":["../../../src/rendering/render/createWebGPURenderer.ts"],"names":[],"mappings":"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"}
@@ -28,10 +28,10 @@ export function createWebGPUSurfaceBackend(options) {
28
28
  canvas.width = width;
29
29
  if (canvas.height !== height)
30
30
  canvas.height = height;
31
- // 可见 DOM 合成:CSS 尺寸跟逻辑 plot,buffer 跟物理像素
31
+ // CSS 尺寸由物理 buffer 反算,避免浏览器二次缩放。
32
32
  if (canvas.style) {
33
- canvas.style.width = `${Math.max(0, widthLogical)}px`;
34
- canvas.style.height = `${Math.max(0, heightLogical)}px`;
33
+ canvas.style.width = `${width / dpr}px`;
34
+ canvas.style.height = `${height / dpr}px`;
35
35
  }
36
36
  },
37
37
  bindRegion(region) {
@@ -1 +1 @@
1
- {"version":3,"file":"createWebGPUSurfaceBackend.js","sourceRoot":"","sources":["../../../src/rendering/render/createWebGPUSurfaceBackend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createWebGPUSurfaceBackend.js","sourceRoot":"","sources":["../../../src/rendering/render/createWebGPUSurfaceBackend.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { DrawLineStrip } from './Renderer';
2
+ /** 仅对轴向线吸附物理像素;斜线保持原始顶点供 MSAA 平滑。 */
3
+ export declare function prepareLineStripForPhysicalPixels(strip: DrawLineStrip, dpr: number): DrawLineStrip;
4
+ //# sourceMappingURL=physicalLine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"physicalLine.d.ts","sourceRoot":"","sources":["../../../src/rendering/render/physicalLine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAe/C,qCAAqC;AACrC,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,aAAa,EACpB,GAAG,EAAE,MAAM,GACV,aAAa,CAyBf"}
@@ -0,0 +1,37 @@
1
+ function physicalLineWidth(width, dpr) {
2
+ return Math.max(1, Math.round(width * dpr));
3
+ }
4
+ function alignedCenter(value, widthPx, dpr) {
5
+ const base = Math.floor(value * dpr);
6
+ return (base + (widthPx % 2 === 0 ? 0 : 0.5)) / dpr;
7
+ }
8
+ function alignedEdge(value, dpr) {
9
+ return Math.round(value * dpr) / dpr;
10
+ }
11
+ /** 仅对轴向线吸附物理像素;斜线保持原始顶点供 MSAA 平滑。 */
12
+ export function prepareLineStripForPhysicalPixels(strip, dpr) {
13
+ const widthPx = physicalLineWidth(strip.width ?? 1, dpr);
14
+ const width = widthPx / dpr;
15
+ const first = strip.points[0];
16
+ if (!first)
17
+ return { ...strip, width };
18
+ const horizontal = strip.points.every((point) => point.y === first.y);
19
+ const vertical = strip.points.every((point) => point.x === first.x);
20
+ if (!horizontal && !vertical)
21
+ return { ...strip, width };
22
+ if (horizontal) {
23
+ const y = alignedCenter(first.y, widthPx, dpr);
24
+ return {
25
+ ...strip,
26
+ width,
27
+ points: strip.points.map((point) => ({ x: alignedEdge(point.x, dpr), y })),
28
+ };
29
+ }
30
+ const x = alignedCenter(first.x, widthPx, dpr);
31
+ return {
32
+ ...strip,
33
+ width,
34
+ points: strip.points.map((point) => ({ x, y: alignedEdge(point.y, dpr) })),
35
+ };
36
+ }
37
+ //# sourceMappingURL=physicalLine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"physicalLine.js","sourceRoot":"","sources":["../../../src/rendering/render/physicalLine.ts"],"names":[],"mappings":"AAEA,SAAS,iBAAiB,CAAC,KAAa,EAAE,GAAW;IACnD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAA;AAC7C,CAAC;AAED,SAAS,aAAa,CAAC,KAAa,EAAE,OAAe,EAAE,GAAW;IAChE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,CAAA;IACpC,OAAO,CAAC,IAAI,GAAG,CAAC,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;AACrD,CAAC;AAED,SAAS,WAAW,CAAC,KAAa,EAAE,GAAW;IAC7C,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,CAAA;AACtC,CAAC;AAED,qCAAqC;AACrC,MAAM,UAAU,iCAAiC,CAC/C,KAAoB,EACpB,GAAW;IAEX,MAAM,OAAO,GAAG,iBAAiB,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,EAAE,GAAG,CAAC,CAAA;IACxD,MAAM,KAAK,GAAG,OAAO,GAAG,GAAG,CAAA;IAC3B,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IAC7B,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,CAAA;IAEtC,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAA;IACrE,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAA;IACnE,IAAI,CAAC,UAAU,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,CAAA;IAExD,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,CAAA;QAC9C,OAAO;YACL,GAAG,KAAK;YACR,KAAK;YACL,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;SAC3E,CAAA;IACH,CAAC;IAED,MAAM,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,CAAA;IAC9C,OAAO;QACL,GAAG,KAAK;QACR,KAAK;QACL,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;KAC3E,CAAA;AACH,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { SurfaceRegion } from './SurfaceBackend';
2
+ export type PhysicalRegion = {
3
+ x: number;
4
+ y: number;
5
+ width: number;
6
+ height: number;
7
+ };
8
+ export type PhysicalBounds = {
9
+ width: number;
10
+ height: number;
11
+ };
12
+ /** 将逻辑 region 的两端分别对齐到物理像素,避免相邻 pane 出现缝隙。 */
13
+ export declare function toPhysicalRegion(region: SurfaceRegion, bounds?: PhysicalBounds): PhysicalRegion;
14
+ //# sourceMappingURL=physicalRegion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"physicalRegion.d.ts","sourceRoot":"","sources":["../../../src/rendering/render/physicalRegion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAErD,MAAM,MAAM,cAAc,GAAG;IAC3B,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,8CAA8C;AAC9C,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,aAAa,EACrB,MAAM,CAAC,EAAE,cAAc,GACtB,cAAc,CAahB"}
@@ -0,0 +1,15 @@
1
+ /** 将逻辑 region 的两端分别对齐到物理像素,避免相邻 pane 出现缝隙。 */
2
+ export function toPhysicalRegion(region, bounds) {
3
+ const left = Math.round(region.x * region.dpr);
4
+ const top = Math.round(region.y * region.dpr);
5
+ const right = Math.round((region.x + region.width) * region.dpr);
6
+ const bottom = Math.round((region.y + region.height) * region.dpr);
7
+ const maxWidth = bounds ? Math.max(0, bounds.width) : Infinity;
8
+ const maxHeight = bounds ? Math.max(0, bounds.height) : Infinity;
9
+ const x = Math.max(0, Math.min(left, maxWidth));
10
+ const y = Math.max(0, Math.min(top, maxHeight));
11
+ const clippedRight = Math.max(x, Math.min(right, maxWidth));
12
+ const clippedBottom = Math.max(y, Math.min(bottom, maxHeight));
13
+ return { x, y, width: clippedRight - x, height: clippedBottom - y };
14
+ }
15
+ //# sourceMappingURL=physicalRegion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"physicalRegion.js","sourceRoot":"","sources":["../../../src/rendering/render/physicalRegion.ts"],"names":[],"mappings":"AAcA,8CAA8C;AAC9C,MAAM,UAAU,gBAAgB,CAC9B,MAAqB,EACrB,MAAuB;IAEvB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;IAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;IAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;IAChE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;IAClE,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAA;IAC9D,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAA;IAChE,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAA;IAC/C,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAA;IAC/C,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAA;IAC3D,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAA;IAE9D,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,GAAG,CAAC,EAAE,MAAM,EAAE,aAAa,GAAG,CAAC,EAAE,CAAA;AACrE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"createLayerFromPlugin.d.ts","sourceRoot":"","sources":["../../../src/rendering/scene/createLayerFromPlugin.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAElF,OAAO,KAAK,EAAE,KAAK,EAAqC,MAAM,SAAS,CAAA;AAEvE,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,cAAc,EACtB,UAAU,EAAE,MAAM,aAAa,GAAG,IAAI,EACtC,YAAY,EAAE,MAAM,GACnB,KAAK,CAmCP"}
1
+ {"version":3,"file":"createLayerFromPlugin.d.ts","sourceRoot":"","sources":["../../../src/rendering/scene/createLayerFromPlugin.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAElF,OAAO,KAAK,EAAE,KAAK,EAAqC,MAAM,SAAS,CAAA;AAEvE,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,cAAc,EACtB,UAAU,EAAE,MAAM,aAAa,GAAG,IAAI,EACtC,YAAY,EAAE,MAAM,GACnB,KAAK,CAwCP"}
@@ -13,22 +13,27 @@ export function createLayerFromPlugin(plugin, getContext, targetPaneId) {
13
13
  set visible(v) {
14
14
  visible = v;
15
15
  },
16
+ /**
17
+ * @Todo 兼容层:把旧 RendererPlugin.draw 包装成 Layer.paint。
18
+ */
16
19
  paint(ctx) {
17
20
  if (!visible)
18
21
  return;
19
- // For sub-pane layers, skip if we're painting a different sub-pane
22
+ // 子图 layer 只画自己的 pane
20
23
  if (paneRole === 'sub' && ctx.paneId !== targetPaneId)
21
24
  return;
25
+ // 获取业务层 RenderContext(含数据、几何、2D ctx)
22
26
  const context = getContext();
23
27
  if (!context)
24
28
  return;
25
- // 注入本帧 Scene Renderer,供已迁路径(candle 等)走统一画笔
29
+ // 注入本帧 sceneRenderer,已迁路径走统一 GPU 画笔,未迁路径仍用 context.ctx
26
30
  context.sceneRenderer = ctx.renderer;
27
31
  try {
32
+ // 调用各个渲染器的绘制能力
28
33
  plugin.draw(context);
29
34
  }
30
35
  catch (e) {
31
- // 隔离单层异常,避免中断同 pane 后续 Layer(对齐旧 Manager.render)
36
+ // 异常隔离,不中断同 pane 后续 layer
32
37
  console.error(`[RendererPlugin] ${plugin.name} draw error:`, e);
33
38
  }
34
39
  },
@@ -1 +1 @@
1
- {"version":3,"file":"createLayerFromPlugin.js","sourceRoot":"","sources":["../../../src/rendering/scene/createLayerFromPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AAKjE,MAAM,UAAU,qBAAqB,CACnC,MAAsB,EACtB,UAAsC,EACtC,YAAoB;IAEpB,MAAM,QAAQ,GACZ,YAAY,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAA;IACjF,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,KAAK,KAAK,CAAA;IAEtC,OAAO;QACL,EAAE,EAAE,UAAU,MAAM,CAAC,IAAI,EAAE;QAC3B,IAAI,EAAE,oBAAoB,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC;QACnD,QAAQ;QACR,CAAC,EAAE,MAAM,CAAC,QAAQ;QAClB,IAAI,OAAO;YACT,OAAO,OAAO,CAAA;QAChB,CAAC;QACD,IAAI,OAAO,CAAC,CAAU;YACpB,OAAO,GAAG,CAAC,CAAA;QACb,CAAC;QACD,KAAK,CAAC,GAAiB;YACrB,IAAI,CAAC,OAAO;gBAAE,OAAM;YACpB,mEAAmE;YACnE,IAAI,QAAQ,KAAK,KAAK,IAAI,GAAG,CAAC,MAAM,KAAK,YAAY;gBAAE,OAAM;YAC7D,MAAM,OAAO,GAAG,UAAU,EAAE,CAAA;YAC5B,IAAI,CAAC,OAAO;gBAAE,OAAM;YACpB,2CAA2C;YAC3C,OAAO,CAAC,aAAa,GAAG,GAAG,CAAC,QAAQ,CAAA;YACpC,IAAI,CAAC;gBACH,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACtB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,iDAAiD;gBACjD,OAAO,CAAC,KAAK,CAAC,oBAAoB,MAAM,CAAC,IAAI,cAAc,EAAE,CAAC,CAAC,CAAA;YACjE,CAAC;QACH,CAAC;QACD,OAAO;YACL,8DAA8D;QAChE,CAAC;KACF,CAAA;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,QAAgB,EAAE,MAAsB;IACpE,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IAChD,IAAI,QAAQ,IAAI,iBAAiB,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM;QAC7F,OAAO,YAAY,CAAA;IACrB,IAAI,QAAQ,IAAI,iBAAiB,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,WAAW,CAAA;IAC3F,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,KAAK,gBAAgB;QAAE,OAAO,SAAS,CAAA;IAClF,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAA;IACvD,OAAO,WAAW,CAAA;AACpB,CAAC"}
1
+ {"version":3,"file":"createLayerFromPlugin.js","sourceRoot":"","sources":["../../../src/rendering/scene/createLayerFromPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AAKjE,MAAM,UAAU,qBAAqB,CACnC,MAAsB,EACtB,UAAsC,EACtC,YAAoB;IAEpB,MAAM,QAAQ,GACZ,YAAY,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAA;IACjF,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,KAAK,KAAK,CAAA;IAEtC,OAAO;QACL,EAAE,EAAE,UAAU,MAAM,CAAC,IAAI,EAAE;QAC3B,IAAI,EAAE,oBAAoB,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC;QACnD,QAAQ;QACR,CAAC,EAAE,MAAM,CAAC,QAAQ;QAClB,IAAI,OAAO;YACT,OAAO,OAAO,CAAA;QAChB,CAAC;QACD,IAAI,OAAO,CAAC,CAAU;YACpB,OAAO,GAAG,CAAC,CAAA;QACb,CAAC;QACD;;WAEG;QACH,KAAK,CAAC,GAAiB;YACrB,IAAI,CAAC,OAAO;gBAAE,OAAM;YACpB,sBAAsB;YACtB,IAAI,QAAQ,KAAK,KAAK,IAAI,GAAG,CAAC,MAAM,KAAK,YAAY;gBAAE,OAAM;YAC7D,qCAAqC;YACrC,MAAM,OAAO,GAAG,UAAU,EAAE,CAAA;YAC5B,IAAI,CAAC,OAAO;gBAAE,OAAM;YACpB,uDAAuD;YACvD,OAAO,CAAC,aAAa,GAAG,GAAG,CAAC,QAAQ,CAAA;YACpC,IAAI,CAAC;gBACH,eAAe;gBACf,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACtB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,0BAA0B;gBAC1B,OAAO,CAAC,KAAK,CAAC,oBAAoB,MAAM,CAAC,IAAI,cAAc,EAAE,CAAC,CAAC,CAAA;YACjE,CAAC;QACH,CAAC;QACD,OAAO;YACL,8DAA8D;QAChE,CAAC;KACF,CAAA;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,QAAgB,EAAE,MAAsB;IACpE,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IAChD,IAAI,QAAQ,IAAI,iBAAiB,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM;QAC7F,OAAO,YAAY,CAAA;IACrB,IAAI,QAAQ,IAAI,iBAAiB,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,WAAW,CAAA;IAC3F,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,KAAK,gBAAgB;QAAE,OAAO,SAAS,CAAA;IAClF,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAA;IACvD,OAAO,WAAW,CAAA;AACpB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"createScene.d.ts","sourceRoot":"","sources":["../../../src/rendering/scene/createScene.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,OAAO,KAAK,EAAkC,KAAK,EAAE,MAAM,SAAS,CAAA;AAEpE,wBAAgB,WAAW,IAAI,KAAK,CAgGnC"}
1
+ {"version":3,"file":"createScene.d.ts","sourceRoot":"","sources":["../../../src/rendering/scene/createScene.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,OAAO,KAAK,EAAkC,KAAK,EAAE,MAAM,SAAS,CAAA;AAEpE,wBAAgB,WAAW,IAAI,KAAK,CAiGnC"}
@@ -69,16 +69,17 @@ export function createScene() {
69
69
  layer.visible = visible;
70
70
  return true;
71
71
  };
72
+ /** 按 role 和可见性过滤 layer,z 排序后逐层 paint */
72
73
  const paintPane = (ctx, roles) => {
73
74
  if (disposed)
74
75
  return;
76
+ // 选出属于当前 pane 或全局、且可见的 layer
75
77
  let candidates = layerList.filter((layer) => (layer.paneRole === ctx.paneRole || layer.paneRole === 'global') && layer.visible);
78
+ // 若传了 roles 参数,进一步按角色过滤(如只画 overlay)
76
79
  if (roles) {
77
80
  candidates = candidates.filter((layer) => roles.includes(layer.role));
78
81
  }
79
- // Stable-sort by z. Native Array.prototype.sort is required
80
- // by ECMAScript 2019+ to be stable, so equal z values preserve the
81
- // surviving registration order from the filter pass.
82
+ // z 升序稳定排序,相同时保留注册顺序(ECMAScript 2019+ 保证 sort 稳定)
82
83
  candidates.sort((a, b) => a.z - b.z);
83
84
  for (const layer of candidates) {
84
85
  layer.paint(ctx);
@@ -1 +1 @@
1
- {"version":3,"file":"createScene.js","sourceRoot":"","sources":["../../../src/rendering/scene/createScene.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createScene.js","sourceRoot":"","sources":["../../../src/rendering/scene/createScene.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.9.0-alpha.2";
1
+ export declare const VERSION = "0.9.0-alpha.4";
2
2
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -1,2 +1,2 @@
1
- export const VERSION = '0.9.0-alpha.2';
1
+ export const VERSION = '0.9.0-alpha.4';
2
2
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@363045841yyt/klinechart-core",
3
- "version": "0.9.0-alpha.2",
3
+ "version": "0.9.0-alpha.4",
4
4
  "description": "Headless K-line chart engine + reactive controllers. Zero framework dependencies.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -145,6 +145,7 @@ describe('viewportState template', () => {
145
145
  expect(vs.zoomLevel).toBe(5)
146
146
  expect(vs.plotWidth).toBe(800)
147
147
  expect(vs.plotHeight).toBe(570)
148
+ expect(vs.visibleFrom).toBeGreaterThanOrEqual(0)
148
149
  expect(vs.visibleFrom).toBeLessThan(vs.visibleTo)
149
150
  expect(vs.kWidth).toBe(8)
150
151
  // kGap 由 kGapFromKWidth(8,2)=1.5 推导,不再从 options$ 透传
@@ -385,20 +385,20 @@ export async function createChartController(opts: ChartMountOptions): Promise<Ch
385
385
  const comparisonColors = chart.comparisonColors
386
386
  const comparisonLoading = chart.comparisonLoading
387
387
 
388
- // Signals from ChartStateKernel no wrapper needed
388
+ // 优先走 Chart facade;kernel 仅用于尚无 facade 的字段
389
389
  const themeSignal: ReadonlySignal<'light' | 'dark'> = chart.theme
390
390
  const settingsSignal = chart.kernel.settings.readonly.settings
391
391
  const rendererRuntimeSignal = chart.kernel.renderer.readonly.runtime
392
392
  const chartModeSignal = chart.kernel.mode.readonly.chartMode
393
- const drawingTool = chart.kernel.drawing.readonly.drawingTool
394
- // drawings need type mapping (plugin DrawingObject → controller DrawingObject)
395
- const drawings = computed(() => chart.kernel.drawing.readonly.drawings().map(mapDrawingObject))
393
+ const drawingTool = chart.drawingTool
394
+ const drawings = computed(() => chart.drawings().map(mapDrawingObject))
396
395
  const selectedDrawingId: ReadonlySignal<string | null> =
397
396
  chart.kernel.drawing.readonly.selectedDrawingId
398
- const paneRatios: ReadonlySignal<Readonly<Record<string, number>>> = chart.kernel.pane.readonly.paneRatios
399
- const paneLayout: ReadonlySignal<ReadonlyArray<PaneSpec>> = chart.kernel.pane.readonly.paneSpecs
400
- const interactionState: ReadonlySignal<InteractionSnapshot> = chart.kernel.interaction.readonly.interactionSnapshot
401
- const symbolCatalog: ReadonlySignal<ReadonlyArray<SymbolInfo>> = chart.kernel.data.readonly.symbolCatalog
397
+ const paneRatios: ReadonlySignal<Readonly<Record<string, number>>> = chart.paneRatios
398
+ const paneLayout: ReadonlySignal<ReadonlyArray<PaneSpec>> = chart.paneLayout
399
+ const interactionState: ReadonlySignal<InteractionSnapshot> = chart.interactionState
400
+ const legendTemplateContext = chart.legendTemplateContext
401
+ const symbolCatalog: ReadonlySignal<ReadonlyArray<SymbolInfo>> = chart.symbolCatalog
402
402
 
403
403
  // -------------------------------------------------------------------
404
404
  // Apply initial render state + seed data
@@ -921,6 +921,7 @@ export async function createChartController(opts: ChartMountOptions): Promise<Ch
921
921
  paneRatios,
922
922
  paneLayout,
923
923
  interactionState,
924
+ legendTemplateContext,
924
925
  comparisonColors,
925
926
  comparisonLoading,
926
927
  symbolCatalog,
@@ -49,6 +49,17 @@ export { getPhysicalKLineConfig } from '../engine/utils/klineConfig'
49
49
  // Indicator types & config
50
50
  export type { SubIndicatorType } from '../engine/renderers/Indicator'
51
51
 
52
+ // Main-pane legend template context (Vue #legend slot / external renderers)
53
+ export type {
54
+ LegendTemplateContext,
55
+ LegendRenderMode,
56
+ LegendLayout,
57
+ LegendCurrentBar,
58
+ LegendTimeshareRow,
59
+ LegendIndicatorRow,
60
+ LegendComparisonRow,
61
+ } from '../engine/renderers/Indicator/mainIndicatorLegendContext'
62
+
52
63
  // Indicator data helpers
53
64
  export {
54
65
  allIndicators,
@@ -314,6 +314,13 @@ export interface ChartController extends DrawingChartAdapter {
314
314
  readonly paneRatios: ReadonlySignal<Readonly<Record<string, number>>>
315
315
  readonly paneLayout: ReadonlySignal<ReadonlyArray<PaneSpec>>
316
316
  readonly interactionState: ReadonlySignal<InteractionSnapshot>
317
+ /**
318
+ * 主图左上角图例模板上下文。
319
+ * Vue `#legend` slot 等外部模板消费;null 表示当前帧无图例数据。
320
+ */
321
+ readonly legendTemplateContext: ReadonlySignal<
322
+ import('../engine/renderers/Indicator/mainIndicatorLegendContext').LegendTemplateContext | null
323
+ >
317
324
  readonly comparisonColors: ReadonlySignal<ReadonlyMap<string, string>>
318
325
  readonly comparisonLoading: ReadonlySignal<boolean>
319
326
 
@@ -0,0 +1,45 @@
1
+ import { describe, expect, it, vi } from 'vitest'
2
+
3
+ import { TimeShareBuffer } from '../timeShareBuffer'
4
+ import type { TimeShareData } from '../../foundation/types/price'
5
+
6
+ function point(price: number, ts = 1): TimeShareData {
7
+ return { timestamp: ts, price, average: price, volume: 1, amount: price }
8
+ }
9
+
10
+ describe('TimeShareBuffer', () => {
11
+ it('stores and returns preClose metadata', () => {
12
+ const buf = new TimeShareBuffer()
13
+ expect(buf.getPreClose()).toBeNull()
14
+ buf.setPreClose(10.5)
15
+ expect(buf.getPreClose()).toBe(10.5)
16
+ buf.setPreClose(null)
17
+ expect(buf.getPreClose()).toBeNull()
18
+ })
19
+
20
+ it('clears previous points when a new load starts (no stale date flash)', async () => {
21
+ const buf = new TimeShareBuffer()
22
+ buf.setInlineData([point(10), point(11)])
23
+ expect(buf.getRawData()).toHaveLength(2)
24
+
25
+ let resolveFetch!: (v: ReadonlyArray<TimeShareData>) => void
26
+ const pending = new Promise<ReadonlyArray<TimeShareData>>((resolve) => {
27
+ resolveFetch = resolve
28
+ })
29
+ buf.setFetcher(async () => pending)
30
+ buf.setQueryDate(20260101)
31
+ buf.load({ symbol: '000001', period: 'timeshare', source: 'gotdx' })
32
+
33
+ // 新 load 开始后旧点应被清空,避免显示另一天数据
34
+ expect(buf.getRawData()).toEqual([])
35
+ expect(buf.loading.peek()).toBe(true)
36
+
37
+ resolveFetch([point(12), point(13)])
38
+ await vi.waitFor(() => {
39
+ expect(buf.getRawData()).toHaveLength(2)
40
+ })
41
+ expect(buf.getRawData()[0]?.price).toBe(12)
42
+ expect(buf.loading.peek()).toBe(false)
43
+ buf.dispose()
44
+ })
45
+ })
@@ -2,7 +2,7 @@ import { KLineChartError } from '../errors'
2
2
 
3
3
  import type { DepthDelta, DepthSnapshot, DepthSource, DepthSourceStatus } from './depthTypes'
4
4
 
5
- export const DEFAULT_BINANCE_SSE_URL = 'http://localhost:8081/api/biance/depth-events'
5
+ export const DEFAULT_BINANCE_SSE_URL = 'http://localhost:8081/api/binance/depth-events'
6
6
 
7
7
  /**
8
8
  * SSE-based depth source for Binance.