@visactor/vrender-core 0.17.0-alpha.1 → 0.17.0-alpha.3

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 (228) hide show
  1. package/cjs/allocator/canvas-allocate.d.ts +2 -0
  2. package/cjs/allocator/canvas-allocate.js +12 -6
  3. package/cjs/allocator/canvas-allocate.js.map +1 -1
  4. package/cjs/common/Reflect-metadata.js +349 -358
  5. package/cjs/common/Reflect-metadata.js.map +1 -1
  6. package/cjs/common/inversify/annotation/inject.d.ts +1 -0
  7. package/cjs/common/inversify/annotation/inject.js +10 -0
  8. package/cjs/common/inversify/annotation/inject.js.map +1 -0
  9. package/cjs/common/inversify/annotation/inject_base.d.ts +14 -0
  10. package/cjs/common/inversify/annotation/inject_base.js +39 -0
  11. package/cjs/common/inversify/annotation/inject_base.js.map +1 -0
  12. package/cjs/common/inversify/annotation/injectable.d.ts +1 -0
  13. package/cjs/common/{inversify-lite/annotation/post_construct.js → inversify/annotation/injectable.js} +15 -5
  14. package/cjs/common/inversify/annotation/injectable.js.map +1 -0
  15. package/cjs/common/inversify/annotation/multi_inject.d.ts +1 -0
  16. package/cjs/common/inversify/annotation/multi_inject.js +10 -0
  17. package/cjs/common/inversify/annotation/multi_inject.js.map +1 -0
  18. package/cjs/common/inversify/annotation/named.d.ts +1 -0
  19. package/cjs/common/inversify/annotation/named.js +14 -0
  20. package/cjs/common/inversify/annotation/named.js.map +1 -0
  21. package/cjs/common/inversify/binding.d.ts +18 -0
  22. package/cjs/common/inversify/binding.js +26 -0
  23. package/cjs/common/inversify/binding.js.map +1 -0
  24. package/cjs/common/inversify/container.d.ts +28 -0
  25. package/cjs/common/inversify/container.js +155 -0
  26. package/cjs/common/inversify/container.js.map +1 -0
  27. package/cjs/common/inversify/cotainer-module.d.ts +6 -0
  28. package/cjs/common/inversify/cotainer-module.js +16 -0
  29. package/cjs/common/inversify/cotainer-module.js.map +1 -0
  30. package/cjs/common/inversify/index.d.ts +7 -0
  31. package/cjs/common/inversify/index.js +75 -0
  32. package/cjs/common/inversify/index.js.map +1 -0
  33. package/cjs/common/inversify/interfaces.d.ts +218 -0
  34. package/cjs/common/inversify/interfaces.js +6 -0
  35. package/cjs/common/inversify/interfaces.js.map +1 -0
  36. package/cjs/common/inversify/literal_types.d.ts +5 -0
  37. package/cjs/common/inversify/literal_types.js +34 -0
  38. package/cjs/common/inversify/literal_types.js.map +1 -0
  39. package/cjs/common/inversify/meta-data.d.ts +6 -0
  40. package/cjs/common/inversify/meta-data.js +19 -0
  41. package/cjs/common/inversify/meta-data.js.map +1 -0
  42. package/cjs/common/inversify/metadata_keys.d.ts +12 -0
  43. package/cjs/common/inversify/metadata_keys.js +15 -0
  44. package/cjs/common/inversify/metadata_keys.js.map +1 -0
  45. package/cjs/common/inversify/metadata_reader.d.ts +6 -0
  46. package/cjs/common/inversify/metadata_reader.js +28 -0
  47. package/cjs/common/inversify/metadata_reader.js.map +1 -0
  48. package/cjs/common/inversify/syntax/binding_in_syntax.d.ts +10 -0
  49. package/cjs/common/inversify/syntax/binding_in_syntax.js +29 -0
  50. package/cjs/common/inversify/syntax/binding_in_syntax.js.map +1 -0
  51. package/cjs/common/inversify/syntax/binding_to_syntax.d.ts +12 -0
  52. package/cjs/common/inversify/syntax/binding_to_syntax.js +40 -0
  53. package/cjs/common/inversify/syntax/binding_to_syntax.js.map +1 -0
  54. package/cjs/common/inversify/syntax/constraint_helpers.d.ts +2 -0
  55. package/cjs/common/inversify/syntax/constraint_helpers.js +18 -0
  56. package/cjs/common/inversify/syntax/constraint_helpers.js.map +1 -0
  57. package/cjs/common/inversify-lite/index.d.ts +1 -8
  58. package/cjs/common/inversify-lite/index.js +1 -64
  59. package/cjs/common/inversify-lite/index.js.map +1 -1
  60. package/cjs/common/utils.d.ts +1 -0
  61. package/cjs/common/utils.js +10 -1
  62. package/cjs/common/utils.js.map +1 -1
  63. package/cjs/core/global.d.ts +2 -0
  64. package/cjs/core/global.js +4 -3
  65. package/cjs/core/global.js.map +1 -1
  66. package/cjs/core/graphic-utils.d.ts +5 -2
  67. package/cjs/core/graphic-utils.js +14 -4
  68. package/cjs/core/graphic-utils.js.map +1 -1
  69. package/cjs/core/stage.d.ts +4 -1
  70. package/cjs/core/stage.js +31 -27
  71. package/cjs/core/stage.js.map +1 -1
  72. package/cjs/core/window.js +2 -2
  73. package/cjs/core/window.js.map +1 -1
  74. package/cjs/event/event-manager.js +3 -2
  75. package/cjs/event/event-manager.js.map +1 -1
  76. package/cjs/graphic/builtin-symbol/index.d.ts +1 -0
  77. package/cjs/graphic/builtin-symbol/index.js +8 -2
  78. package/cjs/graphic/builtin-symbol/index.js.map +1 -1
  79. package/cjs/graphic/config.js +4 -1
  80. package/cjs/graphic/config.js.map +1 -1
  81. package/cjs/graphic/richtext/paragraph.js +12 -11
  82. package/cjs/graphic/richtext/paragraph.js.map +1 -1
  83. package/cjs/graphic/symbol.js +3 -2
  84. package/cjs/graphic/symbol.js.map +1 -1
  85. package/cjs/graphic/text.d.ts +1 -0
  86. package/cjs/graphic/text.js +93 -7
  87. package/cjs/graphic/text.js.map +1 -1
  88. package/cjs/graphic/wrap-text.js +6 -5
  89. package/cjs/graphic/wrap-text.js.map +1 -1
  90. package/cjs/interface/global.d.ts +1 -0
  91. package/cjs/interface/global.js.map +1 -1
  92. package/cjs/interface/graphic/richText.d.ts +1 -1
  93. package/cjs/interface/graphic/richText.js.map +1 -1
  94. package/cjs/interface/graphic/text.d.ts +4 -1
  95. package/cjs/interface/graphic/text.js.map +1 -1
  96. package/cjs/render/contributions/render/area-render.d.ts +1 -0
  97. package/cjs/render/contributions/render/area-render.js +42 -5
  98. package/cjs/render/contributions/render/area-render.js.map +1 -1
  99. package/cjs/render/contributions/render/base-render.js +4 -10
  100. package/cjs/render/contributions/render/base-render.js.map +1 -1
  101. package/cjs/render/contributions/render/draw-contribution.d.ts +2 -0
  102. package/cjs/render/contributions/render/draw-contribution.js +18 -9
  103. package/cjs/render/contributions/render/draw-contribution.js.map +1 -1
  104. package/cjs/render/contributions/render/line-render.d.ts +1 -0
  105. package/cjs/render/contributions/render/line-render.js +21 -6
  106. package/cjs/render/contributions/render/line-render.js.map +1 -1
  107. package/cjs/render/contributions/render/module.js +7 -7
  108. package/cjs/render/contributions/render/module.js.map +1 -1
  109. package/cjs/render/contributions/render/text-render.js +12 -10
  110. package/cjs/render/contributions/render/text-render.js.map +1 -1
  111. package/dist/index.js +691 -1548
  112. package/dist/index.min.js +1 -1
  113. package/es/allocator/canvas-allocate.d.ts +2 -0
  114. package/es/allocator/canvas-allocate.js +12 -6
  115. package/es/allocator/canvas-allocate.js.map +1 -1
  116. package/es/common/Reflect-metadata.js +349 -358
  117. package/es/common/Reflect-metadata.js.map +1 -1
  118. package/es/common/inversify/annotation/inject.d.ts +1 -0
  119. package/es/common/inversify/annotation/inject.js +6 -0
  120. package/es/common/inversify/annotation/inject.js.map +1 -0
  121. package/es/common/inversify/annotation/inject_base.d.ts +14 -0
  122. package/es/common/inversify/annotation/inject_base.js +29 -0
  123. package/es/common/inversify/annotation/inject_base.js.map +1 -0
  124. package/es/common/inversify/annotation/injectable.d.ts +1 -0
  125. package/es/common/inversify/annotation/injectable.js +10 -0
  126. package/es/common/inversify/annotation/injectable.js.map +1 -0
  127. package/es/common/inversify/annotation/multi_inject.d.ts +1 -0
  128. package/es/common/inversify/annotation/multi_inject.js +6 -0
  129. package/es/common/inversify/annotation/multi_inject.js.map +1 -0
  130. package/es/common/inversify/annotation/named.d.ts +1 -0
  131. package/es/common/inversify/annotation/named.js +10 -0
  132. package/es/common/inversify/annotation/named.js.map +1 -0
  133. package/es/common/inversify/binding.d.ts +18 -0
  134. package/es/common/inversify/binding.js +22 -0
  135. package/es/common/inversify/binding.js.map +1 -0
  136. package/es/common/inversify/container.d.ts +28 -0
  137. package/es/common/inversify/container.js +155 -0
  138. package/es/common/inversify/container.js.map +1 -0
  139. package/es/common/inversify/cotainer-module.d.ts +6 -0
  140. package/es/common/inversify/cotainer-module.js +8 -0
  141. package/es/common/inversify/cotainer-module.js.map +1 -0
  142. package/es/common/inversify/index.d.ts +7 -0
  143. package/es/common/inversify/index.js +14 -0
  144. package/es/common/inversify/index.js.map +1 -0
  145. package/es/common/inversify/interfaces.d.ts +218 -0
  146. package/es/common/inversify/interfaces.js +2 -0
  147. package/es/common/inversify/interfaces.js.map +1 -0
  148. package/es/common/inversify/literal_types.d.ts +5 -0
  149. package/es/common/inversify/literal_types.js +20 -0
  150. package/es/common/inversify/literal_types.js.map +1 -0
  151. package/es/common/inversify/meta-data.d.ts +6 -0
  152. package/es/common/inversify/meta-data.js +11 -0
  153. package/es/common/inversify/meta-data.js.map +1 -0
  154. package/es/common/inversify/metadata_keys.d.ts +12 -0
  155. package/es/common/inversify/metadata_keys.js +28 -0
  156. package/es/common/inversify/metadata_keys.js.map +1 -0
  157. package/es/common/inversify/metadata_reader.d.ts +6 -0
  158. package/es/common/inversify/metadata_reader.js +18 -0
  159. package/es/common/inversify/metadata_reader.js.map +1 -0
  160. package/es/common/inversify/syntax/binding_in_syntax.d.ts +10 -0
  161. package/es/common/inversify/syntax/binding_in_syntax.js +24 -0
  162. package/es/common/inversify/syntax/binding_in_syntax.js.map +1 -0
  163. package/es/common/inversify/syntax/binding_to_syntax.d.ts +12 -0
  164. package/es/common/inversify/syntax/binding_to_syntax.js +36 -0
  165. package/es/common/inversify/syntax/binding_to_syntax.js.map +1 -0
  166. package/es/common/inversify/syntax/constraint_helpers.d.ts +2 -0
  167. package/es/common/inversify/syntax/constraint_helpers.js +16 -0
  168. package/es/common/inversify/syntax/constraint_helpers.js.map +1 -0
  169. package/es/common/inversify-lite/index.d.ts +1 -8
  170. package/es/common/inversify-lite/index.js +1 -15
  171. package/es/common/inversify-lite/index.js.map +1 -1
  172. package/es/common/utils.d.ts +1 -0
  173. package/es/common/utils.js +8 -1
  174. package/es/common/utils.js.map +1 -1
  175. package/es/core/global.d.ts +2 -0
  176. package/es/core/global.js +4 -2
  177. package/es/core/global.js.map +1 -1
  178. package/es/core/graphic-utils.d.ts +5 -2
  179. package/es/core/graphic-utils.js +14 -4
  180. package/es/core/graphic-utils.js.map +1 -1
  181. package/es/core/stage.d.ts +4 -1
  182. package/es/core/stage.js +31 -24
  183. package/es/core/stage.js.map +1 -1
  184. package/es/core/window.js +3 -3
  185. package/es/core/window.js.map +1 -1
  186. package/es/event/event-manager.js +3 -2
  187. package/es/event/event-manager.js.map +1 -1
  188. package/es/graphic/builtin-symbol/index.d.ts +1 -0
  189. package/es/graphic/builtin-symbol/index.js +8 -0
  190. package/es/graphic/builtin-symbol/index.js.map +1 -1
  191. package/es/graphic/config.js +4 -1
  192. package/es/graphic/config.js.map +1 -1
  193. package/es/graphic/richtext/paragraph.js +5 -2
  194. package/es/graphic/richtext/paragraph.js.map +1 -1
  195. package/es/graphic/symbol.js +4 -3
  196. package/es/graphic/symbol.js.map +1 -1
  197. package/es/graphic/text.d.ts +1 -0
  198. package/es/graphic/text.js +90 -9
  199. package/es/graphic/text.js.map +1 -1
  200. package/es/graphic/wrap-text.js +6 -4
  201. package/es/graphic/wrap-text.js.map +1 -1
  202. package/es/interface/global.d.ts +1 -0
  203. package/es/interface/global.js.map +1 -1
  204. package/es/interface/graphic/richText.d.ts +1 -1
  205. package/es/interface/graphic/richText.js.map +1 -1
  206. package/es/interface/graphic/text.d.ts +4 -1
  207. package/es/interface/graphic/text.js.map +1 -1
  208. package/es/render/contributions/render/area-render.d.ts +1 -0
  209. package/es/render/contributions/render/area-render.js +42 -5
  210. package/es/render/contributions/render/area-render.js.map +1 -1
  211. package/es/render/contributions/render/base-render.js +2 -14
  212. package/es/render/contributions/render/base-render.js.map +1 -1
  213. package/es/render/contributions/render/draw-contribution.d.ts +2 -0
  214. package/es/render/contributions/render/draw-contribution.js +18 -9
  215. package/es/render/contributions/render/draw-contribution.js.map +1 -1
  216. package/es/render/contributions/render/line-render.d.ts +1 -0
  217. package/es/render/contributions/render/line-render.js +21 -6
  218. package/es/render/contributions/render/line-render.js.map +1 -1
  219. package/es/render/contributions/render/module.js +21 -17
  220. package/es/render/contributions/render/module.js.map +1 -1
  221. package/es/render/contributions/render/text-render.js +13 -9
  222. package/es/render/contributions/render/text-render.js.map +1 -1
  223. package/package.json +4 -2
  224. package/cjs/common/inversify-lite/annotation/post_construct.d.ts +0 -4
  225. package/cjs/common/inversify-lite/annotation/post_construct.js.map +0 -1
  226. package/es/common/inversify-lite/annotation/post_construct.d.ts +0 -4
  227. package/es/common/inversify-lite/annotation/post_construct.js +0 -10
  228. package/es/common/inversify-lite/annotation/post_construct.js.map +0 -1
@@ -2,6 +2,8 @@ import type { ICanvas, Releaseable, IAllocate } from '../interface';
2
2
  export declare class DefaultCanvasAllocate implements IAllocate<ICanvas>, Releaseable {
3
3
  protected pools: ICanvas[];
4
4
  protected _commonCanvas: any;
5
+ protected allocatedCanvas: ICanvas[];
6
+ shareCanvas(): ICanvas;
5
7
  getCommonCanvas(): ICanvas;
6
8
  allocate(data: {
7
9
  width: number;
@@ -4,7 +4,10 @@ import { wrapCanvas } from "../canvas/util";
4
4
 
5
5
  export class DefaultCanvasAllocate {
6
6
  constructor() {
7
- this.pools = [];
7
+ this.pools = [], this.allocatedCanvas = [];
8
+ }
9
+ shareCanvas() {
10
+ return this.allocatedCanvas.length ? this.allocatedCanvas[0] : this.getCommonCanvas();
8
11
  }
9
12
  getCommonCanvas() {
10
13
  return this._commonCanvas || (this._commonCanvas = this.allocate({
@@ -14,9 +17,12 @@ export class DefaultCanvasAllocate {
14
17
  })), this._commonCanvas;
15
18
  }
16
19
  allocate(data) {
17
- if (!this.pools.length) return wrapCanvas(Object.assign({
18
- nativeCanvas: application.global.createCanvas(data)
19
- }, data));
20
+ if (!this.pools.length) {
21
+ const c = wrapCanvas(Object.assign({
22
+ nativeCanvas: application.global.createCanvas(data)
23
+ }, data));
24
+ return this.allocatedCanvas.push(c), c;
25
+ }
20
26
  const m = this.pools.pop();
21
27
  return m.resize(data.width, data.height), m.dpr = data.dpr, m;
22
28
  }
@@ -26,10 +32,10 @@ export class DefaultCanvasAllocate {
26
32
  width: canvas.width / canvas.dpr,
27
33
  height: canvas.height / canvas.dpr,
28
34
  dpr: canvas.dpr
29
- };
30
- return wrapCanvas(Object.assign({
35
+ }, c = wrapCanvas(Object.assign({
31
36
  nativeCanvas: application.global.createCanvas(data)
32
37
  }, data));
38
+ return this.allocatedCanvas.push(c), c;
33
39
  }
34
40
  const m = this.pools.pop();
35
41
  return m.width = canvas.width, m.height = canvas.height, m;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/allocator/canvas-allocate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,MAAM,OAAO,qBAAqB;IAAlC;QACY,UAAK,GAAc,EAAE,CAAC;IA8ClC,CAAC;IA5CC,eAAe;QACb,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;SACzE;QACD,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IACD,QAAQ,CAAC,IAAoD;QAC3D,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YACtB,OAAO,UAAU,iBACf,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAChD,IAAI,EACP,CAAC;SACJ;QACD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QAC3B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACjB,OAAO,CAAC,CAAC;IACX,CAAC;IACD,aAAa,CAAC,MAAe;QAC3B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YACtB,MAAM,IAAI,GAAG;gBACX,KAAK,EAAE,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG;gBAChC,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG;gBAClC,GAAG,EAAE,MAAM,CAAC,GAAG;aAChB,CAAC;YACF,OAAO,UAAU,iBACf,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAChD,IAAI,EACP,CAAC;SACJ;QACD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QAC3B,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QACvB,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QACzB,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,CAAC,CAAU;QACb,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;IACD,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;IACD,OAAO,CAAC,GAAG,MAAW;QACpB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IAClB,CAAC;CACF;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,qBAAqB,EAAE,CAAC","file":"canvas-allocate.js","sourcesContent":["import { application } from '../application';\nimport type { ICanvas, Releaseable, IAllocate } from '../interface';\nimport { wrapCanvas } from '../canvas/util';\n\nexport class DefaultCanvasAllocate implements IAllocate<ICanvas>, Releaseable {\n protected pools: ICanvas[] = [];\n protected _commonCanvas: any;\n getCommonCanvas(): ICanvas {\n if (!this._commonCanvas) {\n this._commonCanvas = this.allocate({ width: 100, height: 100, dpr: 2 });\n }\n return this._commonCanvas;\n }\n allocate(data: { width: number; height: number; dpr: number }): ICanvas {\n if (!this.pools.length) {\n return wrapCanvas({\n nativeCanvas: application.global.createCanvas(data),\n ...data\n });\n }\n const m = this.pools.pop();\n m.resize(data.width, data.height);\n m.dpr = data.dpr;\n return m;\n }\n allocateByObj(canvas: ICanvas): ICanvas {\n if (!this.pools.length) {\n const data = {\n width: canvas.width / canvas.dpr,\n height: canvas.height / canvas.dpr,\n dpr: canvas.dpr\n };\n return wrapCanvas({\n nativeCanvas: application.global.createCanvas(data),\n ...data\n });\n }\n const m = this.pools.pop();\n m.width = canvas.width;\n m.height = canvas.height;\n return m;\n }\n free(d: ICanvas) {\n this.pools.push(d);\n }\n get length(): number {\n return this.pools.length;\n }\n release(...params: any): void {\n this.pools = [];\n }\n}\n\nexport const canvasAllocate = new DefaultCanvasAllocate();\n"]}
1
+ {"version":3,"sources":["../src/allocator/canvas-allocate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,MAAM,OAAO,qBAAqB;IAAlC;QACY,UAAK,GAAc,EAAE,CAAC;QAGtB,oBAAe,GAAc,EAAE,CAAC;IAuD5C,CAAC;IAtDC,WAAW;QACT,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;YAC/B,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;SAChC;QACD,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;IAChC,CAAC;IACD,eAAe;QACb,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;SACzE;QACD,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IACD,QAAQ,CAAC,IAAoD;QAC3D,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YACtB,MAAM,CAAC,GAAG,UAAU,iBAClB,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAChD,IAAI,EACP,CAAC;YACH,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC7B,OAAO,CAAC,CAAC;SACV;QACD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QAC3B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACjB,OAAO,CAAC,CAAC;IACX,CAAC;IACD,aAAa,CAAC,MAAe;QAC3B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YACtB,MAAM,IAAI,GAAG;gBACX,KAAK,EAAE,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG;gBAChC,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG;gBAClC,GAAG,EAAE,MAAM,CAAC,GAAG;aAChB,CAAC;YACF,MAAM,CAAC,GAAG,UAAU,iBAClB,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAChD,IAAI,EACP,CAAC;YACH,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC7B,OAAO,CAAC,CAAC;SACV;QACD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QAC3B,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QACvB,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QACzB,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,CAAC,CAAU;QACb,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;IACD,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;IACD,OAAO,CAAC,GAAG,MAAW;QACpB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IAClB,CAAC;CACF;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,qBAAqB,EAAE,CAAC","file":"canvas-allocate.js","sourcesContent":["import { application } from '../application';\nimport type { ICanvas, Releaseable, IAllocate } from '../interface';\nimport { wrapCanvas } from '../canvas/util';\n\nexport class DefaultCanvasAllocate implements IAllocate<ICanvas>, Releaseable {\n protected pools: ICanvas[] = [];\n protected _commonCanvas: any;\n // 已经被分配出去的canvas\n protected allocatedCanvas: ICanvas[] = [];\n shareCanvas(): ICanvas {\n if (this.allocatedCanvas.length) {\n return this.allocatedCanvas[0];\n }\n return this.getCommonCanvas();\n }\n getCommonCanvas(): ICanvas {\n if (!this._commonCanvas) {\n this._commonCanvas = this.allocate({ width: 100, height: 100, dpr: 2 });\n }\n return this._commonCanvas;\n }\n allocate(data: { width: number; height: number; dpr: number }): ICanvas {\n if (!this.pools.length) {\n const c = wrapCanvas({\n nativeCanvas: application.global.createCanvas(data),\n ...data\n });\n this.allocatedCanvas.push(c);\n return c;\n }\n const m = this.pools.pop();\n m.resize(data.width, data.height);\n m.dpr = data.dpr;\n return m;\n }\n allocateByObj(canvas: ICanvas): ICanvas {\n if (!this.pools.length) {\n const data = {\n width: canvas.width / canvas.dpr,\n height: canvas.height / canvas.dpr,\n dpr: canvas.dpr\n };\n const c = wrapCanvas({\n nativeCanvas: application.global.createCanvas(data),\n ...data\n });\n this.allocatedCanvas.push(c);\n return c;\n }\n const m = this.pools.pop();\n m.width = canvas.width;\n m.height = canvas.height;\n return m;\n }\n free(d: ICanvas) {\n this.pools.push(d);\n }\n get length(): number {\n return this.pools.length;\n }\n release(...params: any): void {\n this.pools = [];\n }\n}\n\nexport const canvasAllocate = new DefaultCanvasAllocate();\n"]}