@lexmata/micropdf 0.4.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 (170) hide show
  1. package/LICENSE +191 -0
  2. package/README.md +985 -0
  3. package/binding.gyp +73 -0
  4. package/dist/annot.d.ts +458 -0
  5. package/dist/annot.d.ts.map +1 -0
  6. package/dist/annot.js +697 -0
  7. package/dist/annot.js.map +1 -0
  8. package/dist/archive.d.ts +128 -0
  9. package/dist/archive.d.ts.map +1 -0
  10. package/dist/archive.js +268 -0
  11. package/dist/archive.js.map +1 -0
  12. package/dist/buffer.d.ts +572 -0
  13. package/dist/buffer.d.ts.map +1 -0
  14. package/dist/buffer.js +971 -0
  15. package/dist/buffer.js.map +1 -0
  16. package/dist/colorspace.d.ts +287 -0
  17. package/dist/colorspace.d.ts.map +1 -0
  18. package/dist/colorspace.js +542 -0
  19. package/dist/colorspace.js.map +1 -0
  20. package/dist/context.d.ts +184 -0
  21. package/dist/context.d.ts.map +1 -0
  22. package/dist/context.js +320 -0
  23. package/dist/context.js.map +1 -0
  24. package/dist/cookie.d.ts +164 -0
  25. package/dist/cookie.d.ts.map +1 -0
  26. package/dist/cookie.js +306 -0
  27. package/dist/cookie.js.map +1 -0
  28. package/dist/device.d.ts +169 -0
  29. package/dist/device.d.ts.map +1 -0
  30. package/dist/device.js +350 -0
  31. package/dist/device.js.map +1 -0
  32. package/dist/display-list.d.ts +202 -0
  33. package/dist/display-list.d.ts.map +1 -0
  34. package/dist/display-list.js +410 -0
  35. package/dist/display-list.js.map +1 -0
  36. package/dist/document.d.ts +637 -0
  37. package/dist/document.d.ts.map +1 -0
  38. package/dist/document.js +902 -0
  39. package/dist/document.js.map +1 -0
  40. package/dist/easy.d.ts +423 -0
  41. package/dist/easy.d.ts.map +1 -0
  42. package/dist/easy.js +644 -0
  43. package/dist/easy.js.map +1 -0
  44. package/dist/enhanced.d.ts +226 -0
  45. package/dist/enhanced.d.ts.map +1 -0
  46. package/dist/enhanced.js +368 -0
  47. package/dist/enhanced.js.map +1 -0
  48. package/dist/filter.d.ts +51 -0
  49. package/dist/filter.d.ts.map +1 -0
  50. package/dist/filter.js +381 -0
  51. package/dist/filter.js.map +1 -0
  52. package/dist/font.d.ts +222 -0
  53. package/dist/font.d.ts.map +1 -0
  54. package/dist/font.js +381 -0
  55. package/dist/font.js.map +1 -0
  56. package/dist/form.d.ts +214 -0
  57. package/dist/form.d.ts.map +1 -0
  58. package/dist/form.js +497 -0
  59. package/dist/form.js.map +1 -0
  60. package/dist/geometry.d.ts +469 -0
  61. package/dist/geometry.d.ts.map +1 -0
  62. package/dist/geometry.js +780 -0
  63. package/dist/geometry.js.map +1 -0
  64. package/dist/image.d.ts +172 -0
  65. package/dist/image.d.ts.map +1 -0
  66. package/dist/image.js +348 -0
  67. package/dist/image.js.map +1 -0
  68. package/dist/index.d.ts +171 -0
  69. package/dist/index.d.ts.map +1 -0
  70. package/dist/index.js +339 -0
  71. package/dist/index.js.map +1 -0
  72. package/dist/link.d.ts +168 -0
  73. package/dist/link.d.ts.map +1 -0
  74. package/dist/link.js +343 -0
  75. package/dist/link.js.map +1 -0
  76. package/dist/micropdf.d.ts +40 -0
  77. package/dist/micropdf.d.ts.map +1 -0
  78. package/dist/micropdf.js +45 -0
  79. package/dist/micropdf.js.map +1 -0
  80. package/dist/nanopdf.d.ts +40 -0
  81. package/dist/nanopdf.d.ts.map +1 -0
  82. package/dist/nanopdf.js +45 -0
  83. package/dist/nanopdf.js.map +1 -0
  84. package/dist/native.d.ts +242 -0
  85. package/dist/native.d.ts.map +1 -0
  86. package/dist/native.js +509 -0
  87. package/dist/native.js.map +1 -0
  88. package/dist/output.d.ts +166 -0
  89. package/dist/output.d.ts.map +1 -0
  90. package/dist/output.js +365 -0
  91. package/dist/output.js.map +1 -0
  92. package/dist/path.d.ts +420 -0
  93. package/dist/path.d.ts.map +1 -0
  94. package/dist/path.js +687 -0
  95. package/dist/path.js.map +1 -0
  96. package/dist/pdf/object.d.ts +489 -0
  97. package/dist/pdf/object.d.ts.map +1 -0
  98. package/dist/pdf/object.js +1045 -0
  99. package/dist/pdf/object.js.map +1 -0
  100. package/dist/pixmap.d.ts +315 -0
  101. package/dist/pixmap.d.ts.map +1 -0
  102. package/dist/pixmap.js +590 -0
  103. package/dist/pixmap.js.map +1 -0
  104. package/dist/profiler.d.ts +159 -0
  105. package/dist/profiler.d.ts.map +1 -0
  106. package/dist/profiler.js +380 -0
  107. package/dist/profiler.js.map +1 -0
  108. package/dist/render-options.d.ts +227 -0
  109. package/dist/render-options.d.ts.map +1 -0
  110. package/dist/render-options.js +130 -0
  111. package/dist/render-options.js.map +1 -0
  112. package/dist/resource-tracking.d.ts +332 -0
  113. package/dist/resource-tracking.d.ts.map +1 -0
  114. package/dist/resource-tracking.js +653 -0
  115. package/dist/resource-tracking.js.map +1 -0
  116. package/dist/simple.d.ts +276 -0
  117. package/dist/simple.d.ts.map +1 -0
  118. package/dist/simple.js +343 -0
  119. package/dist/simple.js.map +1 -0
  120. package/dist/stext.d.ts +290 -0
  121. package/dist/stext.d.ts.map +1 -0
  122. package/dist/stext.js +312 -0
  123. package/dist/stext.js.map +1 -0
  124. package/dist/stream.d.ts +174 -0
  125. package/dist/stream.d.ts.map +1 -0
  126. package/dist/stream.js +476 -0
  127. package/dist/stream.js.map +1 -0
  128. package/dist/text.d.ts +337 -0
  129. package/dist/text.d.ts.map +1 -0
  130. package/dist/text.js +454 -0
  131. package/dist/text.js.map +1 -0
  132. package/dist/typed-arrays.d.ts +127 -0
  133. package/dist/typed-arrays.d.ts.map +1 -0
  134. package/dist/typed-arrays.js +410 -0
  135. package/dist/typed-arrays.js.map +1 -0
  136. package/dist/types.d.ts +358 -0
  137. package/dist/types.d.ts.map +1 -0
  138. package/dist/types.js +216 -0
  139. package/dist/types.js.map +1 -0
  140. package/native/annot.cc +557 -0
  141. package/native/buffer.cc +204 -0
  142. package/native/colorspace.cc +166 -0
  143. package/native/context.cc +84 -0
  144. package/native/cookie.cc +179 -0
  145. package/native/device.cc +179 -0
  146. package/native/display_list.cc +179 -0
  147. package/native/document.cc +268 -0
  148. package/native/enhanced.cc +70 -0
  149. package/native/font.cc +282 -0
  150. package/native/form.cc +523 -0
  151. package/native/geometry.cc +255 -0
  152. package/native/image.cc +216 -0
  153. package/native/include/micropdf/enhanced.h +38 -0
  154. package/native/include/micropdf/types.h +36 -0
  155. package/native/include/micropdf.h +106 -0
  156. package/native/include/mupdf-ffi.h +39 -0
  157. package/native/include/mupdf.h +11 -0
  158. package/native/include/mupdf_minimal.h +381 -0
  159. package/native/lib/linux-x64/libmicropdf.a +0 -0
  160. package/native/link.cc +234 -0
  161. package/native/micropdf.cc +71 -0
  162. package/native/output.cc +229 -0
  163. package/native/page.cc +572 -0
  164. package/native/path.cc +259 -0
  165. package/native/pixmap.cc +240 -0
  166. package/native/stext.cc +610 -0
  167. package/native/stream.cc +239 -0
  168. package/package.json +120 -0
  169. package/scripts/build-from-rust.js +97 -0
  170. package/scripts/install.js +184 -0
package/dist/device.js ADDED
@@ -0,0 +1,350 @@
1
+ /**
2
+ * Device - PDF rendering device abstraction
3
+ *
4
+ * This module provides 100% API compatibility with MuPDF's device operations.
5
+ * Devices receive drawing commands and render them to various outputs.
6
+ */
7
+ import { Rect, Matrix } from './geometry.js';
8
+ /**
9
+ * Device types
10
+ */
11
+ export var DeviceType;
12
+ (function (DeviceType) {
13
+ DeviceType[DeviceType["Unknown"] = 0] = "Unknown";
14
+ DeviceType[DeviceType["Draw"] = 1] = "Draw";
15
+ DeviceType[DeviceType["BBox"] = 2] = "BBox";
16
+ DeviceType[DeviceType["Trace"] = 3] = "Trace";
17
+ DeviceType[DeviceType["List"] = 4] = "List";
18
+ DeviceType[DeviceType["Custom"] = 5] = "Custom";
19
+ })(DeviceType || (DeviceType = {}));
20
+ /**
21
+ * Device hints for optimization
22
+ */
23
+ export var DeviceHint;
24
+ (function (DeviceHint) {
25
+ DeviceHint[DeviceHint["NoCache"] = 1] = "NoCache";
26
+ DeviceHint[DeviceHint["NoPureColor"] = 2] = "NoPureColor";
27
+ })(DeviceHint || (DeviceHint = {}));
28
+ /**
29
+ * Blend modes for transparency
30
+ */
31
+ export var BlendMode;
32
+ (function (BlendMode) {
33
+ BlendMode[BlendMode["Normal"] = 0] = "Normal";
34
+ BlendMode[BlendMode["Multiply"] = 1] = "Multiply";
35
+ BlendMode[BlendMode["Screen"] = 2] = "Screen";
36
+ BlendMode[BlendMode["Overlay"] = 3] = "Overlay";
37
+ BlendMode[BlendMode["Darken"] = 4] = "Darken";
38
+ BlendMode[BlendMode["Lighten"] = 5] = "Lighten";
39
+ BlendMode[BlendMode["ColorDodge"] = 6] = "ColorDodge";
40
+ BlendMode[BlendMode["ColorBurn"] = 7] = "ColorBurn";
41
+ BlendMode[BlendMode["HardLight"] = 8] = "HardLight";
42
+ BlendMode[BlendMode["SoftLight"] = 9] = "SoftLight";
43
+ BlendMode[BlendMode["Difference"] = 10] = "Difference";
44
+ BlendMode[BlendMode["Exclusion"] = 11] = "Exclusion";
45
+ })(BlendMode || (BlendMode = {}));
46
+ /**
47
+ * Abstract base class for rendering devices
48
+ */
49
+ export class Device {
50
+ _refCount = 1;
51
+ _closed = false;
52
+ _type;
53
+ _hints = 0;
54
+ constructor(type) {
55
+ this._type = type;
56
+ }
57
+ // ============================================================================
58
+ // Reference Counting
59
+ // ============================================================================
60
+ keep() {
61
+ this._refCount++;
62
+ return this;
63
+ }
64
+ drop() {
65
+ if (this._refCount > 0) {
66
+ this._refCount--;
67
+ }
68
+ }
69
+ // ============================================================================
70
+ // Device Control
71
+ // ============================================================================
72
+ /**
73
+ * Close the device (finalize rendering)
74
+ */
75
+ close() {
76
+ this._closed = true;
77
+ this.onClose();
78
+ }
79
+ onClose() {
80
+ // Override in subclasses
81
+ }
82
+ get isClosed() {
83
+ return this._closed;
84
+ }
85
+ get type() {
86
+ return this._type;
87
+ }
88
+ isValid() {
89
+ return !this._closed;
90
+ }
91
+ // ============================================================================
92
+ // Hints
93
+ // ============================================================================
94
+ enableHints(hints) {
95
+ this._hints |= hints;
96
+ }
97
+ disableHints(hints) {
98
+ this._hints &= ~hints;
99
+ }
100
+ hasHint(hint) {
101
+ return (this._hints & hint) !== 0;
102
+ }
103
+ // ============================================================================
104
+ // Tiling
105
+ // ============================================================================
106
+ beginTile(area, view, xStep, yStep, ctm) {
107
+ this.onBeginTile(Rect.from(area), Rect.from(view), xStep, yStep, Matrix.from(ctm));
108
+ }
109
+ onBeginTile(_area, _view, _xStep, _yStep, _ctm) {
110
+ // Override in subclasses
111
+ }
112
+ endTile() {
113
+ this.onEndTile();
114
+ }
115
+ onEndTile() {
116
+ // Override in subclasses
117
+ }
118
+ // ============================================================================
119
+ // Path Drawing
120
+ // ============================================================================
121
+ fillPath(path, evenOdd, ctm, colorspace, color, alpha) {
122
+ this.onFillPath(path, evenOdd, Matrix.from(ctm), colorspace, color, alpha);
123
+ }
124
+ strokePath(path, stroke, ctm, colorspace, color, alpha) {
125
+ this.onStrokePath(path, stroke, Matrix.from(ctm), colorspace, color, alpha);
126
+ }
127
+ clipPath(path, evenOdd, ctm) {
128
+ this.onClipPath(path, evenOdd, Matrix.from(ctm));
129
+ }
130
+ onClipPath(_path, _evenOdd, _ctm) {
131
+ // Override in subclasses
132
+ }
133
+ clipStrokePath(path, stroke, ctm) {
134
+ this.onClipStrokePath(path, stroke, Matrix.from(ctm));
135
+ }
136
+ onClipStrokePath(_path, _stroke, _ctm) {
137
+ // Override in subclasses
138
+ }
139
+ // ============================================================================
140
+ // Text Drawing
141
+ // ============================================================================
142
+ fillText(text, ctm, colorspace, color, alpha) {
143
+ this.onFillText(text, Matrix.from(ctm), colorspace, color, alpha);
144
+ }
145
+ onFillText(_text, _ctm, _colorspace, _color, _alpha) {
146
+ // Override in subclasses
147
+ }
148
+ strokeText(text, stroke, ctm, colorspace, color, alpha) {
149
+ this.onStrokeText(text, stroke, Matrix.from(ctm), colorspace, color, alpha);
150
+ }
151
+ onStrokeText(_text, _stroke, _ctm, _colorspace, _color, _alpha) {
152
+ // Override in subclasses
153
+ }
154
+ clipText(text, ctm) {
155
+ this.onClipText(text, Matrix.from(ctm));
156
+ }
157
+ onClipText(_text, _ctm) {
158
+ // Override in subclasses
159
+ }
160
+ clipStrokeText(text, stroke, ctm) {
161
+ this.onClipStrokeText(text, stroke, Matrix.from(ctm));
162
+ }
163
+ onClipStrokeText(_text, _stroke, _ctm) {
164
+ // Override in subclasses
165
+ }
166
+ ignoreText(text, ctm) {
167
+ this.onIgnoreText(text, Matrix.from(ctm));
168
+ }
169
+ onIgnoreText(_text, _ctm) {
170
+ // Override in subclasses
171
+ }
172
+ // ============================================================================
173
+ // Image Drawing
174
+ // ============================================================================
175
+ fillImage(image, ctm, alpha) {
176
+ this.onFillImage(image, Matrix.from(ctm), alpha);
177
+ }
178
+ onFillImage(_image, _ctm, _alpha) {
179
+ // Override in subclasses
180
+ }
181
+ fillImageMask(image, ctm, colorspace, color, alpha) {
182
+ this.onFillImageMask(image, Matrix.from(ctm), colorspace, color, alpha);
183
+ }
184
+ onFillImageMask(_image, _ctm, _colorspace, _color, _alpha) {
185
+ // Override in subclasses
186
+ }
187
+ clipImageMask(image, ctm) {
188
+ this.onClipImageMask(image, Matrix.from(ctm));
189
+ }
190
+ onClipImageMask(_image, _ctm) {
191
+ // Override in subclasses
192
+ }
193
+ // ============================================================================
194
+ // Clipping
195
+ // ============================================================================
196
+ popClip() {
197
+ this.onPopClip();
198
+ }
199
+ onPopClip() {
200
+ // Override in subclasses
201
+ }
202
+ // ============================================================================
203
+ // Masking
204
+ // ============================================================================
205
+ beginMask(area, luminosity, colorspace, color) {
206
+ this.onBeginMask(Rect.from(area), luminosity, colorspace, color);
207
+ }
208
+ onBeginMask(_area, _luminosity, _colorspace, _color) {
209
+ // Override in subclasses
210
+ }
211
+ endMask() {
212
+ this.onEndMask();
213
+ }
214
+ onEndMask() {
215
+ // Override in subclasses
216
+ }
217
+ // ============================================================================
218
+ // Grouping
219
+ // ============================================================================
220
+ beginGroup(area, colorspace, isolated, knockout, blendMode, alpha) {
221
+ this.onBeginGroup(Rect.from(area), colorspace, isolated, knockout, blendMode, alpha);
222
+ }
223
+ onBeginGroup(_area, _colorspace, _isolated, _knockout, _blendMode, _alpha) {
224
+ // Override in subclasses
225
+ }
226
+ endGroup() {
227
+ this.onEndGroup();
228
+ }
229
+ onEndGroup() {
230
+ // Override in subclasses
231
+ }
232
+ }
233
+ /**
234
+ * Draw device - renders to a pixmap
235
+ */
236
+ export class DrawDevice extends Device {
237
+ _pixmap;
238
+ constructor(pixmap) {
239
+ super(DeviceType.Draw);
240
+ this._pixmap = pixmap;
241
+ }
242
+ static create(pixmap) {
243
+ return new DrawDevice(pixmap);
244
+ }
245
+ get pixmap() {
246
+ return this._pixmap;
247
+ }
248
+ onFillPath(_path, _evenOdd, _ctm, _colorspace, _color, _alpha) {
249
+ // Actual rendering would happen here
250
+ }
251
+ onStrokePath(_path, _stroke, _ctm, _colorspace, _color, _alpha) {
252
+ // Actual rendering would happen here
253
+ }
254
+ }
255
+ /**
256
+ * BBox device - calculates bounding boxes
257
+ */
258
+ export class BBoxDevice extends Device {
259
+ _bbox = Rect.EMPTY;
260
+ constructor() {
261
+ super(DeviceType.BBox);
262
+ }
263
+ static create() {
264
+ return new BBoxDevice();
265
+ }
266
+ get bbox() {
267
+ return this._bbox;
268
+ }
269
+ onFillPath(path, _evenOdd, ctm, _colorspace, _color, _alpha) {
270
+ const pathBounds = path.getBounds();
271
+ const transformedBounds = pathBounds.transform(ctm);
272
+ this._bbox = this._bbox.union(transformedBounds);
273
+ }
274
+ onStrokePath(path, _stroke, ctm, _colorspace, _color, _alpha) {
275
+ const pathBounds = path.getBounds();
276
+ const transformedBounds = pathBounds.transform(ctm);
277
+ this._bbox = this._bbox.union(transformedBounds);
278
+ }
279
+ }
280
+ /**
281
+ * Trace device - logs drawing operations
282
+ */
283
+ export class TraceDevice extends Device {
284
+ _log = [];
285
+ constructor() {
286
+ super(DeviceType.Trace);
287
+ }
288
+ static create() {
289
+ return new TraceDevice();
290
+ }
291
+ get log() {
292
+ return [...this._log];
293
+ }
294
+ onFillPath(_path, evenOdd, _ctm, colorspace, color, alpha) {
295
+ this._log.push(`fillPath(evenOdd=${evenOdd}, colorspace=${colorspace.type}, color=[${color}], alpha=${alpha})`);
296
+ }
297
+ onStrokePath(_path, stroke, _ctm, colorspace, color, alpha) {
298
+ this._log.push(`strokePath(width=${stroke.lineWidth}, colorspace=${colorspace.type}, color=[${color}], alpha=${alpha})`);
299
+ }
300
+ onFillText(text, _ctm, colorspace, color, alpha) {
301
+ this._log.push(`fillText("${text}", colorspace=${colorspace.type}, color=[${color}], alpha=${alpha})`);
302
+ }
303
+ onFillImage(image, _ctm, alpha) {
304
+ this._log.push(`fillImage(${image.width}x${image.height}, alpha=${alpha})`);
305
+ }
306
+ onBeginGroup(area, _colorspace, isolated, knockout, blendMode, alpha) {
307
+ this._log.push(`beginGroup(area=${area}, isolated=${isolated}, knockout=${knockout}, blend=${blendMode}, alpha=${alpha})`);
308
+ }
309
+ onEndGroup() {
310
+ this._log.push('endGroup()');
311
+ }
312
+ }
313
+ /**
314
+ * List device - records display list
315
+ */
316
+ export class ListDevice extends Device {
317
+ _commands = [];
318
+ constructor() {
319
+ super(DeviceType.List);
320
+ }
321
+ static create() {
322
+ return new ListDevice();
323
+ }
324
+ get commands() {
325
+ return [...this._commands];
326
+ }
327
+ onFillPath(path, evenOdd, ctm, colorspace, color, alpha) {
328
+ this._commands.push({
329
+ type: 'fillPath',
330
+ path: path.clone(),
331
+ evenOdd,
332
+ ctm,
333
+ colorspace,
334
+ color: [...color],
335
+ alpha
336
+ });
337
+ }
338
+ onStrokePath(path, stroke, ctm, colorspace, color, alpha) {
339
+ this._commands.push({
340
+ type: 'strokePath',
341
+ path: path.clone(),
342
+ stroke: stroke.clone(),
343
+ ctm,
344
+ colorspace,
345
+ color: [...color],
346
+ alpha
347
+ });
348
+ }
349
+ }
350
+ //# sourceMappingURL=device.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device.js","sourceRoot":"","sources":["../src/device.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,202 @@
1
+ /**
2
+ * DisplayList - Cached rendering commands
3
+ *
4
+ * This module provides 100% API compatibility with MuPDF's display list operations.
5
+ * Display lists cache drawing commands for efficient re-rendering.
6
+ */
7
+ import { Colorspace } from './colorspace.js';
8
+ import { Device } from './device.js';
9
+ import { Rect, Matrix, type RectLike, type MatrixLike } from './geometry.js';
10
+ import { Image } from './image.js';
11
+ import { Path, StrokeState } from './path.js';
12
+ import { Text } from './text.js';
13
+ /**
14
+ * Display list command types
15
+ */
16
+ declare enum CommandType {
17
+ FillPath = 0,
18
+ StrokePath = 1,
19
+ ClipPath = 2,
20
+ ClipStrokePath = 3,
21
+ FillText = 4,
22
+ StrokeText = 5,
23
+ ClipText = 6,
24
+ ClipStrokeText = 7,
25
+ IgnoreText = 8,
26
+ FillShade = 9,
27
+ FillImage = 10,
28
+ FillImageMask = 11,
29
+ ClipImageMask = 12,
30
+ PopClip = 13,
31
+ BeginMask = 14,
32
+ EndMask = 15,
33
+ BeginGroup = 16,
34
+ EndGroup = 17,
35
+ BeginTile = 18,
36
+ EndTile = 19
37
+ }
38
+ /**
39
+ * Command data for display list operations
40
+ * Using a flexible interface since commands can have various properties
41
+ */
42
+ interface CommandData {
43
+ path?: Path;
44
+ evenOdd?: boolean;
45
+ stroke?: StrokeState;
46
+ text?: Text;
47
+ image?: Image;
48
+ ctm?: Matrix;
49
+ colorspace?: Colorspace | null;
50
+ color?: number[];
51
+ alpha?: number;
52
+ area?: Rect;
53
+ luminosity?: boolean;
54
+ isolated?: boolean;
55
+ knockout?: boolean;
56
+ blendMode?: number;
57
+ view?: Rect;
58
+ scale?: number;
59
+ id?: number;
60
+ xStep?: number;
61
+ yStep?: number;
62
+ }
63
+ /**
64
+ * A single display list command
65
+ */
66
+ interface DisplayCommand {
67
+ type: CommandType;
68
+ data: CommandData;
69
+ }
70
+ /**
71
+ * A display list - a cached list of rendering commands
72
+ */
73
+ export declare class DisplayList {
74
+ private _commands;
75
+ private _bounds;
76
+ private _refCount;
77
+ constructor(bounds?: RectLike);
78
+ /**
79
+ * Create a new display list
80
+ */
81
+ static create(bounds?: RectLike): DisplayList;
82
+ keep(): this;
83
+ drop(): void;
84
+ /**
85
+ * Clone this display list
86
+ */
87
+ clone(): DisplayList;
88
+ /**
89
+ * Get the bounding box of all commands
90
+ */
91
+ getBounds(ctm?: MatrixLike): Rect;
92
+ /**
93
+ * Update bounds to include a rect
94
+ */
95
+ private updateBounds;
96
+ /**
97
+ * Add a command to the display list
98
+ */
99
+ private addCommand;
100
+ /**
101
+ * Count number of commands
102
+ */
103
+ countCommands(): number;
104
+ /**
105
+ * Check if display list is empty
106
+ */
107
+ isEmpty(): boolean;
108
+ /**
109
+ * Clear all commands
110
+ */
111
+ clear(): void;
112
+ /**
113
+ * Check if display list is valid
114
+ */
115
+ isValid(): boolean;
116
+ /**
117
+ * Record a fill path command
118
+ */
119
+ recordFillPath(path: Path, evenOdd: boolean, ctm: MatrixLike, colorspace: Colorspace, color: number[], alpha: number): void;
120
+ /**
121
+ * Record a stroke path command
122
+ */
123
+ recordStrokePath(path: Path, stroke: StrokeState, ctm: MatrixLike, colorspace: Colorspace, color: number[], alpha: number): void;
124
+ /**
125
+ * Record a clip path command
126
+ */
127
+ recordClipPath(path: Path, evenOdd: boolean, ctm: MatrixLike): void;
128
+ /**
129
+ * Record a clip stroke path command
130
+ */
131
+ recordClipStrokePath(path: Path, stroke: StrokeState, ctm: MatrixLike): void;
132
+ /**
133
+ * Record a fill text command
134
+ */
135
+ recordFillText(text: Text, ctm: MatrixLike, colorspace: Colorspace, color: number[], alpha: number): void;
136
+ /**
137
+ * Record a stroke text command
138
+ */
139
+ recordStrokeText(text: Text, stroke: StrokeState, ctm: MatrixLike, colorspace: Colorspace, color: number[], alpha: number): void;
140
+ /**
141
+ * Record a clip text command
142
+ */
143
+ recordClipText(text: Text, ctm: MatrixLike): void;
144
+ /**
145
+ * Record a clip stroke text command
146
+ */
147
+ recordClipStrokeText(text: Text, stroke: StrokeState, ctm: MatrixLike): void;
148
+ /**
149
+ * Record an ignore text command
150
+ */
151
+ recordIgnoreText(text: Text, ctm: MatrixLike): void;
152
+ /**
153
+ * Record a fill image command
154
+ */
155
+ recordFillImage(image: Image, ctm: MatrixLike, alpha: number): void;
156
+ /**
157
+ * Record a fill image mask command
158
+ */
159
+ recordFillImageMask(image: Image, ctm: MatrixLike, colorspace: Colorspace, color: number[], _alpha: number): void;
160
+ /**
161
+ * Record a clip image mask command
162
+ */
163
+ recordClipImageMask(image: Image, ctm: MatrixLike): void;
164
+ /**
165
+ * Record a pop clip command
166
+ */
167
+ recordPopClip(): void;
168
+ /**
169
+ * Record a begin mask command
170
+ */
171
+ recordBeginMask(area: RectLike, luminosity: boolean, colorspace: Colorspace | null, color: number[]): void;
172
+ /**
173
+ * Record an end mask command
174
+ */
175
+ recordEndMask(): void;
176
+ /**
177
+ * Record a begin group command
178
+ */
179
+ recordBeginGroup(area: RectLike, colorspace: Colorspace | null, isolated: boolean, knockout: boolean, blendMode: number, alpha: number): void;
180
+ /**
181
+ * Record an end group command
182
+ */
183
+ recordEndGroup(): void;
184
+ /**
185
+ * Record a begin tile command
186
+ */
187
+ recordBeginTile(area: RectLike, view: RectLike, xStep: number, yStep: number, ctm: MatrixLike): void;
188
+ /**
189
+ * Record an end tile command
190
+ */
191
+ recordEndTile(): void;
192
+ /**
193
+ * Run (replay) the display list to a device
194
+ */
195
+ run(device: Device, ctm?: MatrixLike): void;
196
+ /**
197
+ * Get all commands
198
+ */
199
+ getCommands(): DisplayCommand[];
200
+ }
201
+ export {};
202
+ //# sourceMappingURL=display-list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"display-list.d.ts","sourceRoot":"","sources":["../src/display-list.ts"],"names":[],"mappings":"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"}