ice-entity-designer 0.0.39 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (223) hide show
  1. package/README.md +69 -14
  2. package/dist/index.cjs +1 -6
  3. package/dist/index.mjs +1 -6
  4. package/dist/index.umd.js +1 -6
  5. package/dist/react.cjs +1 -6
  6. package/dist/react.mjs +1 -6
  7. package/dist/types/bpmn/BpmnSimulator.d.mts +3 -3
  8. package/dist/types/bpmn/BpmnSimulator.d.ts +3 -3
  9. package/dist/types/bpmn/bpmn_shapes.d.mts +1 -1
  10. package/dist/types/bpmn/bpmn_shapes.d.ts +1 -1
  11. package/dist/types/bpmn/bpmn_validate.d.mts +1 -1
  12. package/dist/types/bpmn/bpmn_validate.d.ts +1 -1
  13. package/dist/types/bpmn/bpmn_xml.d.mts +1 -1
  14. package/dist/types/bpmn/bpmn_xml.d.ts +1 -1
  15. package/dist/types/designer/EntityDesigner.d.mts +3 -3
  16. package/dist/types/designer/EntityDesigner.d.ts +3 -3
  17. package/dist/types/er-component/Entity.d.mts +2 -2
  18. package/dist/types/er-component/Entity.d.ts +2 -2
  19. package/dist/types/er-component/Relation.d.mts +1 -1
  20. package/dist/types/er-component/Relation.d.ts +1 -1
  21. package/dist/types/flow/FlowDesigner.d.mts +4 -4
  22. package/dist/types/flow/FlowDesigner.d.ts +4 -4
  23. package/dist/types/flow/FlowEdge.d.mts +2 -2
  24. package/dist/types/flow/FlowEdge.d.ts +2 -2
  25. package/dist/types/flow/FlowNode.d.mts +3 -3
  26. package/dist/types/flow/FlowNode.d.ts +3 -3
  27. package/dist/types/flow/flow_shapes.d.mts +1 -1
  28. package/dist/types/flow/flow_shapes.d.ts +1 -1
  29. package/dist/types/gantt/GanttDependency.d.mts +1 -1
  30. package/dist/types/gantt/GanttDependency.d.ts +1 -1
  31. package/dist/types/gantt/GanttDesigner.d.mts +2 -2
  32. package/dist/types/gantt/GanttDesigner.d.ts +2 -2
  33. package/dist/types/gantt/GanttRuler.d.mts +2 -2
  34. package/dist/types/gantt/GanttRuler.d.ts +2 -2
  35. package/dist/types/gantt/GanttTask.d.mts +1 -1
  36. package/dist/types/gantt/GanttTask.d.ts +1 -1
  37. package/dist/types/gantt/gantt_text.d.mts +1 -1
  38. package/dist/types/gantt/gantt_text.d.ts +1 -1
  39. package/dist/types/index.d.mts +4 -13
  40. package/dist/types/index.d.ts +4 -13
  41. package/dist/types/power/PowerDesigner.d.mts +2 -2
  42. package/dist/types/power/PowerDesigner.d.ts +2 -2
  43. package/dist/types/power/power_shapes.d.mts +4 -4
  44. package/dist/types/power/power_shapes.d.ts +4 -4
  45. package/dist/types/power/power_voltage.d.mts +1 -1
  46. package/dist/types/power/power_voltage.d.ts +1 -1
  47. package/dist/types/react/context.d.mts +2 -2
  48. package/dist/types/react/context.d.ts +2 -2
  49. package/dist/types/react/index.d.mts +0 -1
  50. package/dist/types/react/index.d.ts +0 -1
  51. package/dist/types/react/session.d.mts +4 -4
  52. package/dist/types/react/session.d.ts +4 -4
  53. package/dist/types/react/types.d.mts +7 -7
  54. package/dist/types/react/types.d.ts +7 -7
  55. package/dist/types/secondary/SecondaryDesigner.d.mts +1 -1
  56. package/dist/types/secondary/SecondaryDesigner.d.ts +1 -1
  57. package/dist/types/secondary/secondary_shapes.d.mts +2 -2
  58. package/dist/types/secondary/secondary_shapes.d.ts +2 -2
  59. package/dist/types/statechart/StateNode.d.mts +2 -2
  60. package/dist/types/statechart/StateNode.d.ts +2 -2
  61. package/dist/types/statechart/StateTransition.d.mts +1 -1
  62. package/dist/types/statechart/StateTransition.d.ts +1 -1
  63. package/dist/types/statechart/StatechartDesigner.d.mts +1 -1
  64. package/dist/types/statechart/StatechartDesigner.d.ts +1 -1
  65. package/dist/types/statechart/statechart_text.d.mts +1 -1
  66. package/dist/types/statechart/statechart_text.d.ts +1 -1
  67. package/dist/types/uml/UmlClass.d.mts +2 -2
  68. package/dist/types/uml/UmlClass.d.ts +2 -2
  69. package/dist/types/uml/UmlDesigner.d.mts +1 -1
  70. package/dist/types/uml/UmlDesigner.d.ts +1 -1
  71. package/dist/types/uml/UmlRelation.d.mts +4 -4
  72. package/dist/types/uml/UmlRelation.d.ts +4 -4
  73. package/dist/types/uml/uml_text.d.mts +1 -1
  74. package/dist/types/uml/uml_text.d.ts +1 -1
  75. package/dist/types/utils/project_codec.d.mts +2 -2
  76. package/dist/types/utils/project_codec.d.ts +2 -2
  77. package/dist/types/utils/project_schema.d.mts +1 -1
  78. package/dist/types/utils/project_schema.d.ts +1 -1
  79. package/dist/types/utils/schema_validator.d.mts +1 -1
  80. package/dist/types/utils/schema_validator.d.ts +1 -1
  81. package/package.json +24 -20
  82. package/dist/types/gl-matrix.d.mts +0 -3273
  83. package/dist/types/gl-matrix.d.ts +0 -3273
  84. package/dist/types/ice-render/FrameManager.d.mts +0 -26
  85. package/dist/types/ice-render/FrameManager.d.ts +0 -26
  86. package/dist/types/ice-render/ICE.d.mts +0 -424
  87. package/dist/types/ice-render/ICE.d.ts +0 -424
  88. package/dist/types/ice-render/a11y/accessibility.d.mts +0 -46
  89. package/dist/types/ice-render/a11y/accessibility.d.ts +0 -46
  90. package/dist/types/ice-render/animation/AnimationManager.d.mts +0 -96
  91. package/dist/types/ice-render/animation/AnimationManager.d.ts +0 -96
  92. package/dist/types/ice-render/animation/Easing.d.mts +0 -33
  93. package/dist/types/ice-render/animation/Easing.d.ts +0 -33
  94. package/dist/types/ice-render/consts/BIG_ZINDEX_NUMBER.d.mts +0 -14
  95. package/dist/types/ice-render/consts/BIG_ZINDEX_NUMBER.d.ts +0 -14
  96. package/dist/types/ice-render/consts/COMPONENT_TYPE_MAPPING.d.mts +0 -45
  97. package/dist/types/ice-render/consts/COMPONENT_TYPE_MAPPING.d.ts +0 -45
  98. package/dist/types/ice-render/consts/DOM_EVENT_MAPPING_CONSTS.d.mts +0 -37
  99. package/dist/types/ice-render/consts/DOM_EVENT_MAPPING_CONSTS.d.ts +0 -37
  100. package/dist/types/ice-render/consts/ICE_EVENT_NAME_CONSTS.d.mts +0 -27
  101. package/dist/types/ice-render/consts/ICE_EVENT_NAME_CONSTS.d.ts +0 -27
  102. package/dist/types/ice-render/control-panel/AlignmentGuideManager.d.mts +0 -92
  103. package/dist/types/ice-render/control-panel/AlignmentGuideManager.d.ts +0 -92
  104. package/dist/types/ice-render/control-panel/ICEControlPanel.d.mts +0 -37
  105. package/dist/types/ice-render/control-panel/ICEControlPanel.d.ts +0 -37
  106. package/dist/types/ice-render/control-panel/ICEControlPanelManager.d.mts +0 -25
  107. package/dist/types/ice-render/control-panel/ICEControlPanelManager.d.ts +0 -25
  108. package/dist/types/ice-render/control-panel/link-controls/LineControlPanel.d.mts +0 -39
  109. package/dist/types/ice-render/control-panel/link-controls/LineControlPanel.d.ts +0 -39
  110. package/dist/types/ice-render/control-panel/transform-controls/ResizeControl.d.mts +0 -38
  111. package/dist/types/ice-render/control-panel/transform-controls/ResizeControl.d.ts +0 -38
  112. package/dist/types/ice-render/control-panel/transform-controls/RotateControl.d.mts +0 -12
  113. package/dist/types/ice-render/control-panel/transform-controls/RotateControl.d.ts +0 -12
  114. package/dist/types/ice-render/control-panel/transform-controls/TransformControlPanel.d.mts +0 -83
  115. package/dist/types/ice-render/control-panel/transform-controls/TransformControlPanel.d.ts +0 -83
  116. package/dist/types/ice-render/control-panel/transform-controls/constraints.d.mts +0 -24
  117. package/dist/types/ice-render/control-panel/transform-controls/constraints.d.ts +0 -24
  118. package/dist/types/ice-render/cross-platform/Path2DRecorder.d.mts +0 -76
  119. package/dist/types/ice-render/cross-platform/Path2DRecorder.d.ts +0 -76
  120. package/dist/types/ice-render/cross-platform/PolyfillPath2D.d.mts +0 -21
  121. package/dist/types/ice-render/cross-platform/PolyfillPath2D.d.ts +0 -21
  122. package/dist/types/ice-render/cross-platform/root.d.mts +0 -7
  123. package/dist/types/ice-render/cross-platform/root.d.ts +0 -7
  124. package/dist/types/ice-render/event/DOMEventDispatcher.d.mts +0 -75
  125. package/dist/types/ice-render/event/DOMEventDispatcher.d.ts +0 -75
  126. package/dist/types/ice-render/event/DOMEventInterceptor.d.mts +0 -36
  127. package/dist/types/ice-render/event/DOMEventInterceptor.d.ts +0 -36
  128. package/dist/types/ice-render/event/EventBus.d.mts +0 -27
  129. package/dist/types/ice-render/event/EventBus.d.ts +0 -27
  130. package/dist/types/ice-render/event/ICEEvent.d.mts +0 -46
  131. package/dist/types/ice-render/event/ICEEvent.d.ts +0 -46
  132. package/dist/types/ice-render/event/ICEEventTarget.d.mts +0 -106
  133. package/dist/types/ice-render/event/ICEEventTarget.d.ts +0 -106
  134. package/dist/types/ice-render/event/input-normalize.d.mts +0 -75
  135. package/dist/types/ice-render/event/input-normalize.d.ts +0 -75
  136. package/dist/types/ice-render/export/SvgExporter.d.mts +0 -54
  137. package/dist/types/ice-render/export/SvgExporter.d.ts +0 -54
  138. package/dist/types/ice-render/geometry/GeoLine.d.mts +0 -24
  139. package/dist/types/ice-render/geometry/GeoLine.d.ts +0 -24
  140. package/dist/types/ice-render/geometry/GeoPoint.d.mts +0 -53
  141. package/dist/types/ice-render/geometry/GeoPoint.d.ts +0 -53
  142. package/dist/types/ice-render/geometry/GeoUtil.d.mts +0 -73
  143. package/dist/types/ice-render/geometry/GeoUtil.d.ts +0 -73
  144. package/dist/types/ice-render/geometry/ICEBoundingBox.d.mts +0 -81
  145. package/dist/types/ice-render/geometry/ICEBoundingBox.d.ts +0 -81
  146. package/dist/types/ice-render/graphic/ICEComponent.d.mts +0 -535
  147. package/dist/types/ice-render/graphic/ICEComponent.d.ts +0 -535
  148. package/dist/types/ice-render/graphic/ICEDotPath.d.mts +0 -99
  149. package/dist/types/ice-render/graphic/ICEDotPath.d.ts +0 -99
  150. package/dist/types/ice-render/graphic/ICEImage.d.mts +0 -17
  151. package/dist/types/ice-render/graphic/ICEImage.d.ts +0 -17
  152. package/dist/types/ice-render/graphic/ICEPath.d.mts +0 -46
  153. package/dist/types/ice-render/graphic/ICEPath.d.ts +0 -46
  154. package/dist/types/ice-render/graphic/container/ICEGroup.d.mts +0 -111
  155. package/dist/types/ice-render/graphic/container/ICEGroup.d.ts +0 -111
  156. package/dist/types/ice-render/graphic/link/ICEBezier.d.mts +0 -23
  157. package/dist/types/ice-render/graphic/link/ICEBezier.d.ts +0 -23
  158. package/dist/types/ice-render/graphic/link/ICELinkHook.d.mts +0 -52
  159. package/dist/types/ice-render/graphic/link/ICELinkHook.d.ts +0 -52
  160. package/dist/types/ice-render/graphic/link/ICELinkSlot.d.mts +0 -54
  161. package/dist/types/ice-render/graphic/link/ICELinkSlot.d.ts +0 -54
  162. package/dist/types/ice-render/graphic/link/ICELinkSlotManager.d.mts +0 -28
  163. package/dist/types/ice-render/graphic/link/ICELinkSlotManager.d.ts +0 -28
  164. package/dist/types/ice-render/graphic/link/ICEPolyLine.d.mts +0 -316
  165. package/dist/types/ice-render/graphic/link/ICEPolyLine.d.ts +0 -316
  166. package/dist/types/ice-render/graphic/link/ICEVisioLink.d.mts +0 -163
  167. package/dist/types/ice-render/graphic/link/ICEVisioLink.d.ts +0 -163
  168. package/dist/types/ice-render/graphic/shape/ICECircle.d.mts +0 -19
  169. package/dist/types/ice-render/graphic/shape/ICECircle.d.ts +0 -19
  170. package/dist/types/ice-render/graphic/shape/ICEEllipse.d.mts +0 -29
  171. package/dist/types/ice-render/graphic/shape/ICEEllipse.d.ts +0 -29
  172. package/dist/types/ice-render/graphic/shape/ICEIsogon.d.mts +0 -52
  173. package/dist/types/ice-render/graphic/shape/ICEIsogon.d.ts +0 -52
  174. package/dist/types/ice-render/graphic/shape/ICERect.d.mts +0 -10
  175. package/dist/types/ice-render/graphic/shape/ICERect.d.ts +0 -10
  176. package/dist/types/ice-render/graphic/shape/ICERose.d.mts +0 -41
  177. package/dist/types/ice-render/graphic/shape/ICERose.d.ts +0 -41
  178. package/dist/types/ice-render/graphic/shape/ICEStar.d.mts +0 -45
  179. package/dist/types/ice-render/graphic/shape/ICEStar.d.ts +0 -45
  180. package/dist/types/ice-render/graphic/text/ICEText.d.mts +0 -158
  181. package/dist/types/ice-render/graphic/text/ICEText.d.ts +0 -158
  182. package/dist/types/ice-render/index.d.mts +0 -59
  183. package/dist/types/ice-render/index.d.ts +0 -59
  184. package/dist/types/ice-render/layout/ICEBorderLayout.d.mts +0 -34
  185. package/dist/types/ice-render/layout/ICEBorderLayout.d.ts +0 -34
  186. package/dist/types/ice-render/layout/ICEBoxLayout.d.mts +0 -30
  187. package/dist/types/ice-render/layout/ICEBoxLayout.d.ts +0 -30
  188. package/dist/types/ice-render/layout/ICECardLayout.d.mts +0 -36
  189. package/dist/types/ice-render/layout/ICECardLayout.d.ts +0 -36
  190. package/dist/types/ice-render/layout/ICEFlowLayout.d.mts +0 -31
  191. package/dist/types/ice-render/layout/ICEFlowLayout.d.ts +0 -31
  192. package/dist/types/ice-render/layout/ICEGridLayout.d.mts +0 -33
  193. package/dist/types/ice-render/layout/ICEGridLayout.d.ts +0 -33
  194. package/dist/types/ice-render/layout/ICELayeredLayout.d.mts +0 -49
  195. package/dist/types/ice-render/layout/ICELayeredLayout.d.ts +0 -49
  196. package/dist/types/ice-render/layout/ICELayoutManager.d.mts +0 -33
  197. package/dist/types/ice-render/layout/ICELayoutManager.d.ts +0 -33
  198. package/dist/types/ice-render/layout/ICEOverlayLayout.d.mts +0 -25
  199. package/dist/types/ice-render/layout/ICEOverlayLayout.d.ts +0 -25
  200. package/dist/types/ice-render/persistence/Deserializer.d.mts +0 -43
  201. package/dist/types/ice-render/persistence/Deserializer.d.ts +0 -43
  202. package/dist/types/ice-render/persistence/Serializer.d.mts +0 -35
  203. package/dist/types/ice-render/persistence/Serializer.d.ts +0 -35
  204. package/dist/types/ice-render/plugin/PluginHost.d.mts +0 -86
  205. package/dist/types/ice-render/plugin/PluginHost.d.ts +0 -86
  206. package/dist/types/ice-render/renderer/CanvasRenderer.d.mts +0 -150
  207. package/dist/types/ice-render/renderer/CanvasRenderer.d.ts +0 -150
  208. package/dist/types/ice-render/renderer/ObjectCache.d.mts +0 -79
  209. package/dist/types/ice-render/renderer/ObjectCache.d.ts +0 -79
  210. package/dist/types/ice-render/renderer/dirty-rect-util.d.mts +0 -86
  211. package/dist/types/ice-render/renderer/dirty-rect-util.d.ts +0 -86
  212. package/dist/types/ice-render/theme/ICETheme.d.mts +0 -382
  213. package/dist/types/ice-render/theme/ICETheme.d.ts +0 -382
  214. package/dist/types/ice-render/util/ImageCache.d.mts +0 -19
  215. package/dist/types/ice-render/util/ImageCache.d.ts +0 -19
  216. package/dist/types/ice-render/util/data-util.d.mts +0 -43
  217. package/dist/types/ice-render/util/data-util.d.ts +0 -43
  218. package/dist/types/ice-render/util/gl-matrix-skew.d.mts +0 -14
  219. package/dist/types/ice-render/util/gl-matrix-skew.d.ts +0 -14
  220. package/dist/types/ice-render/util/lang.d.mts +0 -28
  221. package/dist/types/ice-render/util/lang.d.ts +0 -28
  222. package/dist/types/ice-render/util/uuid.d.mts +0 -1
  223. package/dist/types/ice-render/util/uuid.d.ts +0 -1
@@ -1,79 +0,0 @@
1
- export interface CachedSurface {
2
- canvas: any;
3
- ctx: any;
4
- /** 位图尺寸(设备像素,四周各含 1px 透明余量,用于吸收贴图取整误差)。 */
5
- pw: number;
6
- ph: number;
7
- /** 当前贴图落点(整数设备像素)。 */
8
- dx: number;
9
- dy: number;
10
- /** 建位图时的贴图落点;纯平移复用由 `dx0/dy0` 加「设备像素取整的位移」推出,不会累积漂移。 */
11
- dx0: number;
12
- dy0: number;
13
- /** 建位图时的世界盒左上角(paint pad 之后)。 */
14
- buildMinX: number;
15
- buildMinY: number;
16
- /** 建位图时的渲染视口:`device = world * rs + (ox, oy)`。视口一变,位图即失效。 */
17
- rs: number;
18
- ox: number;
19
- oy: number;
20
- contentKey: string;
21
- linearKey: string;
22
- }
23
- declare class ObjectCache {
24
- private ice;
25
- private map;
26
- /** 已缓存位图的累计字节数(用于总预算门控;WeakMap 不可遍历,故显式记账)。 */
27
- private __bytes;
28
- /** 上一帧的渲染视口(复用同一对象,避免每帧分配)。 */
29
- private __vp;
30
- /** 本帧的渲染视口是否与上一帧不同。视口变化帧一律不缓存,见 `beginFrame()`。 */
31
- private __vpChanged;
32
- constructor(ice: any);
33
- /** 渲染视口:世界 → 画布设备像素的仿射映射(`device = world * scale + (tx, ty)`)。 */
34
- private __rvp;
35
- /**
36
- * 渲染器每帧开头调用:记录「渲染视口是否相对上一帧发生了变化」。
37
- *
38
- * 视口一变,所有位图的栅格都要重算(重新光栅化),代价与「这一帧直接落墨」同阶;
39
- * 而缩放/平移过程中视口每帧都在变 —— 那时缓存只会白扫一遍整屏。因此视口变化的那一帧
40
- * 直接停用缓存(`isCachable` 返回 false),落到与旧引擎一致的直接绘制路径;
41
- * 手势停下后的第一帧再统一重建一次。
42
- */
43
- beginFrame(): void;
44
- /** 位图是否与当前渲染视口同源(缩放与平移都必须一致,否则栅格不再对齐)。 */
45
- private __sameViewport;
46
- /**
47
- * 组件是否走离屏缓存。v1 只缓存「非编辑态、可见」的 ICEText;后续可扩展到 dot-path /
48
- * 半透明 / ICEGroup 子树。
49
- */
50
- isCachable(component: any): boolean;
51
- has(component: any): boolean;
52
- /**
53
- * 内容指纹:决定位图是否需要重新光栅化。只涵盖影响文本外观的 state 字段,
54
- * 不包含 left/top/transform(由 linearKey 单独处理,以便纯平移复用)。
55
- */
56
- contentKey(component: any): string;
57
- private __styleKey;
58
- /** 线性变换指纹(composedMatrix 的 a,b,c,d);平移分量单独保存,供纯平移复用。 */
59
- linearKey(component: any): string;
60
- /**
61
- * 按缓存路径渲染组件。
62
- * @returns true = 已由缓存处理;false = 组件不可缓存,调用方应回退到 component.render()。
63
- */
64
- render(component: any): boolean;
65
- /** 组件的「真实落墨盒」(世界坐标):几何盒 + paint pad。 */
66
- private __paintBox;
67
- private build;
68
- /**
69
- * 纯平移复用:保持位图内容不变,把贴图落点按「设备像素取整的位移」挪过去。
70
- *
71
- * @returns false = 位图已罩不住新盒(或位移非设备像素对齐)→ 调用方必须重建。
72
- */
73
- private refreshPosition;
74
- /** 贴图:回到单位变换,按整数设备像素落点 1:1 拷贝位图(不传目标宽高 → 零重采样)。 */
75
- private draw;
76
- invalidate(component: any): void;
77
- clear(): void;
78
- }
79
- export default ObjectCache;
@@ -1,79 +0,0 @@
1
- export interface CachedSurface {
2
- canvas: any;
3
- ctx: any;
4
- /** 位图尺寸(设备像素,四周各含 1px 透明余量,用于吸收贴图取整误差)。 */
5
- pw: number;
6
- ph: number;
7
- /** 当前贴图落点(整数设备像素)。 */
8
- dx: number;
9
- dy: number;
10
- /** 建位图时的贴图落点;纯平移复用由 `dx0/dy0` 加「设备像素取整的位移」推出,不会累积漂移。 */
11
- dx0: number;
12
- dy0: number;
13
- /** 建位图时的世界盒左上角(paint pad 之后)。 */
14
- buildMinX: number;
15
- buildMinY: number;
16
- /** 建位图时的渲染视口:`device = world * rs + (ox, oy)`。视口一变,位图即失效。 */
17
- rs: number;
18
- ox: number;
19
- oy: number;
20
- contentKey: string;
21
- linearKey: string;
22
- }
23
- declare class ObjectCache {
24
- private ice;
25
- private map;
26
- /** 已缓存位图的累计字节数(用于总预算门控;WeakMap 不可遍历,故显式记账)。 */
27
- private __bytes;
28
- /** 上一帧的渲染视口(复用同一对象,避免每帧分配)。 */
29
- private __vp;
30
- /** 本帧的渲染视口是否与上一帧不同。视口变化帧一律不缓存,见 `beginFrame()`。 */
31
- private __vpChanged;
32
- constructor(ice: any);
33
- /** 渲染视口:世界 → 画布设备像素的仿射映射(`device = world * scale + (tx, ty)`)。 */
34
- private __rvp;
35
- /**
36
- * 渲染器每帧开头调用:记录「渲染视口是否相对上一帧发生了变化」。
37
- *
38
- * 视口一变,所有位图的栅格都要重算(重新光栅化),代价与「这一帧直接落墨」同阶;
39
- * 而缩放/平移过程中视口每帧都在变 —— 那时缓存只会白扫一遍整屏。因此视口变化的那一帧
40
- * 直接停用缓存(`isCachable` 返回 false),落到与旧引擎一致的直接绘制路径;
41
- * 手势停下后的第一帧再统一重建一次。
42
- */
43
- beginFrame(): void;
44
- /** 位图是否与当前渲染视口同源(缩放与平移都必须一致,否则栅格不再对齐)。 */
45
- private __sameViewport;
46
- /**
47
- * 组件是否走离屏缓存。v1 只缓存「非编辑态、可见」的 ICEText;后续可扩展到 dot-path /
48
- * 半透明 / ICEGroup 子树。
49
- */
50
- isCachable(component: any): boolean;
51
- has(component: any): boolean;
52
- /**
53
- * 内容指纹:决定位图是否需要重新光栅化。只涵盖影响文本外观的 state 字段,
54
- * 不包含 left/top/transform(由 linearKey 单独处理,以便纯平移复用)。
55
- */
56
- contentKey(component: any): string;
57
- private __styleKey;
58
- /** 线性变换指纹(composedMatrix 的 a,b,c,d);平移分量单独保存,供纯平移复用。 */
59
- linearKey(component: any): string;
60
- /**
61
- * 按缓存路径渲染组件。
62
- * @returns true = 已由缓存处理;false = 组件不可缓存,调用方应回退到 component.render()。
63
- */
64
- render(component: any): boolean;
65
- /** 组件的「真实落墨盒」(世界坐标):几何盒 + paint pad。 */
66
- private __paintBox;
67
- private build;
68
- /**
69
- * 纯平移复用:保持位图内容不变,把贴图落点按「设备像素取整的位移」挪过去。
70
- *
71
- * @returns false = 位图已罩不住新盒(或位移非设备像素对齐)→ 调用方必须重建。
72
- */
73
- private refreshPosition;
74
- /** 贴图:回到单位变换,按整数设备像素落点 1:1 拷贝位图(不传目标宽高 → 零重采样)。 */
75
- private draw;
76
- invalidate(component: any): void;
77
- clear(): void;
78
- }
79
- export default ObjectCache;
@@ -1,86 +0,0 @@
1
- /**
2
- * 脏矩形局部重绘(dirty-rect)的纯函数工具集。
3
- *
4
- * 本模块不依赖任何引擎实例/ctx,所有几何与阈值计算都可用 jest 直接单测。
5
- * 设计目标见 docs/architecture/04-rendering-performance.md「脏矩形局部重绘」章节。
6
- *
7
- * 盒的表示:一维数组 [minX, minY, maxX, maxY](世界/画布坐标,轴对齐,已含 paint pad)。
8
- */
9
- /** 抗锯齿兜底余量(px),覆盖 1px 级 AA 溢出与文字 baseline 溢出。 */
10
- export declare const PAD_AA = 2;
11
- /**
12
- * 命中预筛的包围盒容差(px)。
13
- *
14
- * 命中的第一道筛子用「渲染快照的世界盒」做 O(1) 拒绝;快照盒本身已含 paint pad
15
- * (含 AA 余量),但折线的命中判定自带 errorRange 容差,这里再放宽 1px 作为安全余量,
16
- * 确保预筛绝不误杀边界命中。
17
- */
18
- export declare const HIT_BOX_TOLERANCE = 1;
19
- /**
20
- * 计算组件「实际绘制会溢出几何边界多少像素」的保守 padding。
21
- * 依据 state(style.lineWidth / lineBorderWidth / shadow 等)实时估算,
22
- * 用于把几何包围盒扩成「真实落墨盒」。
23
- */
24
- export declare function stylePaintPad(state: any): number;
25
- export declare function boxWidth(box: number[]): number;
26
- export declare function boxHeight(box: number[]): number;
27
- export declare function boxArea(box: number[]): number;
28
- /**
29
- * 把 src 盒并进 target 盒(原地修改 target,减少分配)。
30
- * target 传入空盒([Infinity,Infinity,-Infinity,-Infinity])即可从 src 开始累加。
31
- */
32
- export declare function unionBoxes(target: number[], src: number[]): number[];
33
- /** 判断盒 a 与盒 b 是否相交(含边界相触)。 */
34
- export declare function intersects(a: number[], b: number[]): boolean;
35
- /**
36
- * 盒内是否有限(无 NaN/Infinity)。非法盒不得参与区域计算或写入快照。
37
- */
38
- export declare function isFiniteBox(box: number[]): boolean;
39
- /**
40
- * 生成一个「空盒」,可用作 unionBoxes 的起点。
41
- */
42
- export declare function emptyBox(): number[];
43
- /**
44
- * 把盒外扩到整像素边界(min 向下取整、max 向上取整),保证 clearRect/clip 用同一像素掩码,
45
- * 消除「清除区域与裁剪区域亚像素不一致」导致的接缝。
46
- */
47
- export declare function integerAlign(box: number[]): number[];
48
- /**
49
- * 合并两个盒为一个盒(取并集,不修改入参)。
50
- */
51
- export declare function mergeBox(a: number[], b: number[]): number[];
52
- export declare function coalesceRegions(boxes: number[][], maxRegions?: number): number[][];
53
- /**
54
- * 多块裁剪区的总面积占画布的比例(用于「接近整屏则回退全量」的判定)。
55
- * 各块互不相接,面积可直接相加。
56
- */
57
- export declare function regionsAreaRatio(regions: number[][], canvasWidth: number, canvasHeight: number): number;
58
- /**
59
- * 把「世界坐标盒」映射到「渲染坐标盒」(含 dpr),并向外取整。
60
- *
61
- * 渲染坐标 = 世界坐标 × 渲染视口 scale + 渲染视口 tx/ty,而 `ICE.getRenderViewport()` 已经
62
- * 把 dpr 乘进 scale 与 tx/ty(见 `ICE.getRenderViewport`)。`clearRect` / `clip` 用的正是这个
63
- * 坐标系,但脏区收集是在**世界坐标**里做的(上屏快照盒、组件几何盒都是世界盒),
64
- * 两者只在「视口为单位变换且 dpr === 1」时才重合 —— 这个函数就是它们之间唯一的换算点。
65
- *
66
- * 向外取整(min 向下、max 向上)保证映射后的区域不小于真实脏区,避免缩放时边缘出现接缝。
67
- */
68
- export declare function mapBoxToRender(box: number[], viewport: {
69
- scale: number;
70
- tx: number;
71
- ty: number;
72
- }, out?: number[]): number[];
73
- /**
74
- * 区域占画布总面积的比例,用于「接近整屏则回退全量」的判定。
75
- */
76
- export declare function regionRatio(box: number[], canvasWidth: number, canvasHeight: number): number;
77
- /**
78
- * 判断组件是否以「完全不透明、仅 source-over」的方式绘制。
79
- *
80
- * dirty-rect 用 clip 把补画限定在脏区域内;clip 边界与「半透明落墨(alpha 色 / 阴影 /
81
- * globalAlpha / 合成模式)」相交时,canvas 的 clip 会改变边界像素的子像素覆盖率,
82
- * 产生与全量渲染不一致的接缝。因此 v1 约定:本帧区域涉及任何非不透明落墨的组件时回退全量,
83
- * 局部重绘只服务于不透明场景(编辑器里的大多数实体/卡片/表格)。
84
- * 语义化渐变色(对象)视为不透明。
85
- */
86
- export declare function isOpaqueDrawing(state: any): boolean;
@@ -1,86 +0,0 @@
1
- /**
2
- * 脏矩形局部重绘(dirty-rect)的纯函数工具集。
3
- *
4
- * 本模块不依赖任何引擎实例/ctx,所有几何与阈值计算都可用 jest 直接单测。
5
- * 设计目标见 docs/architecture/04-rendering-performance.md「脏矩形局部重绘」章节。
6
- *
7
- * 盒的表示:一维数组 [minX, minY, maxX, maxY](世界/画布坐标,轴对齐,已含 paint pad)。
8
- */
9
- /** 抗锯齿兜底余量(px),覆盖 1px 级 AA 溢出与文字 baseline 溢出。 */
10
- export declare const PAD_AA = 2;
11
- /**
12
- * 命中预筛的包围盒容差(px)。
13
- *
14
- * 命中的第一道筛子用「渲染快照的世界盒」做 O(1) 拒绝;快照盒本身已含 paint pad
15
- * (含 AA 余量),但折线的命中判定自带 errorRange 容差,这里再放宽 1px 作为安全余量,
16
- * 确保预筛绝不误杀边界命中。
17
- */
18
- export declare const HIT_BOX_TOLERANCE = 1;
19
- /**
20
- * 计算组件「实际绘制会溢出几何边界多少像素」的保守 padding。
21
- * 依据 state(style.lineWidth / lineBorderWidth / shadow 等)实时估算,
22
- * 用于把几何包围盒扩成「真实落墨盒」。
23
- */
24
- export declare function stylePaintPad(state: any): number;
25
- export declare function boxWidth(box: number[]): number;
26
- export declare function boxHeight(box: number[]): number;
27
- export declare function boxArea(box: number[]): number;
28
- /**
29
- * 把 src 盒并进 target 盒(原地修改 target,减少分配)。
30
- * target 传入空盒([Infinity,Infinity,-Infinity,-Infinity])即可从 src 开始累加。
31
- */
32
- export declare function unionBoxes(target: number[], src: number[]): number[];
33
- /** 判断盒 a 与盒 b 是否相交(含边界相触)。 */
34
- export declare function intersects(a: number[], b: number[]): boolean;
35
- /**
36
- * 盒内是否有限(无 NaN/Infinity)。非法盒不得参与区域计算或写入快照。
37
- */
38
- export declare function isFiniteBox(box: number[]): boolean;
39
- /**
40
- * 生成一个「空盒」,可用作 unionBoxes 的起点。
41
- */
42
- export declare function emptyBox(): number[];
43
- /**
44
- * 把盒外扩到整像素边界(min 向下取整、max 向上取整),保证 clearRect/clip 用同一像素掩码,
45
- * 消除「清除区域与裁剪区域亚像素不一致」导致的接缝。
46
- */
47
- export declare function integerAlign(box: number[]): number[];
48
- /**
49
- * 合并两个盒为一个盒(取并集,不修改入参)。
50
- */
51
- export declare function mergeBox(a: number[], b: number[]): number[];
52
- export declare function coalesceRegions(boxes: number[][], maxRegions?: number): number[][];
53
- /**
54
- * 多块裁剪区的总面积占画布的比例(用于「接近整屏则回退全量」的判定)。
55
- * 各块互不相接,面积可直接相加。
56
- */
57
- export declare function regionsAreaRatio(regions: number[][], canvasWidth: number, canvasHeight: number): number;
58
- /**
59
- * 把「世界坐标盒」映射到「渲染坐标盒」(含 dpr),并向外取整。
60
- *
61
- * 渲染坐标 = 世界坐标 × 渲染视口 scale + 渲染视口 tx/ty,而 `ICE.getRenderViewport()` 已经
62
- * 把 dpr 乘进 scale 与 tx/ty(见 `ICE.getRenderViewport`)。`clearRect` / `clip` 用的正是这个
63
- * 坐标系,但脏区收集是在**世界坐标**里做的(上屏快照盒、组件几何盒都是世界盒),
64
- * 两者只在「视口为单位变换且 dpr === 1」时才重合 —— 这个函数就是它们之间唯一的换算点。
65
- *
66
- * 向外取整(min 向下、max 向上)保证映射后的区域不小于真实脏区,避免缩放时边缘出现接缝。
67
- */
68
- export declare function mapBoxToRender(box: number[], viewport: {
69
- scale: number;
70
- tx: number;
71
- ty: number;
72
- }, out?: number[]): number[];
73
- /**
74
- * 区域占画布总面积的比例,用于「接近整屏则回退全量」的判定。
75
- */
76
- export declare function regionRatio(box: number[], canvasWidth: number, canvasHeight: number): number;
77
- /**
78
- * 判断组件是否以「完全不透明、仅 source-over」的方式绘制。
79
- *
80
- * dirty-rect 用 clip 把补画限定在脏区域内;clip 边界与「半透明落墨(alpha 色 / 阴影 /
81
- * globalAlpha / 合成模式)」相交时,canvas 的 clip 会改变边界像素的子像素覆盖率,
82
- * 产生与全量渲染不一致的接缝。因此 v1 约定:本帧区域涉及任何非不透明落墨的组件时回退全量,
83
- * 局部重绘只服务于不透明场景(编辑器里的大多数实体/卡片/表格)。
84
- * 语义化渐变色(对象)视为不透明。
85
- */
86
- export declare function isOpaqueDrawing(state: any): boolean;