@flighthq/bitmap 0.5.1-next.820.97b3830 → 0.5.1-next.903.f434bc2

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 (56) hide show
  1. package/README.md +2 -2
  2. package/dist/bitmap.d.ts +2 -1
  3. package/dist/bitmap.d.ts.map +1 -1
  4. package/dist/bitmap.js +24 -21
  5. package/dist/bitmap.js.map +1 -1
  6. package/dist/bitmapChannel.d.ts +2 -1
  7. package/dist/bitmapChannel.d.ts.map +1 -1
  8. package/dist/bitmapChannel.js +14 -11
  9. package/dist/bitmapChannel.js.map +1 -1
  10. package/dist/bitmapCrop.d.ts +1 -1
  11. package/dist/bitmapCrop.d.ts.map +1 -1
  12. package/dist/bitmapCrop.js +11 -32
  13. package/dist/bitmapCrop.js.map +1 -1
  14. package/dist/bitmapEncode.d.ts +3 -3
  15. package/dist/bitmapEncode.d.ts.map +1 -1
  16. package/dist/bitmapEncode.js +6 -11
  17. package/dist/bitmapEncode.js.map +1 -1
  18. package/dist/bitmapFingerprint.d.ts +2 -1
  19. package/dist/bitmapFingerprint.d.ts.map +1 -1
  20. package/dist/bitmapFingerprint.js +16 -4
  21. package/dist/bitmapFingerprint.js.map +1 -1
  22. package/dist/bitmapFrom.d.ts +4 -19
  23. package/dist/bitmapFrom.d.ts.map +1 -1
  24. package/dist/bitmapFrom.js +19 -32
  25. package/dist/bitmapFrom.js.map +1 -1
  26. package/dist/bitmapReadbackResolver.d.ts +2 -2
  27. package/dist/bitmapReadbackResolver.d.ts.map +1 -1
  28. package/dist/bitmapReadbackResolver.js +2 -8
  29. package/dist/bitmapReadbackResolver.js.map +1 -1
  30. package/dist/contract.d.ts +2 -2
  31. package/dist/contract.d.ts.map +1 -1
  32. package/dist/contract.js +2 -2
  33. package/dist/contract.js.map +1 -1
  34. package/dist/explainBitmapReadback.d.ts +2 -2
  35. package/dist/explainBitmapReadback.d.ts.map +1 -1
  36. package/dist/explainBitmapReadback.js +2 -6
  37. package/dist/explainBitmapReadback.js.map +1 -1
  38. package/dist/index.d.ts +1 -1
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +1 -1
  41. package/dist/index.js.map +1 -1
  42. package/package.json +4 -4
  43. package/src/bitmapEncode.test.ts +43 -67
  44. package/src/bitmapFrom.test.ts +14 -21
  45. package/src/bitmapReadbackResolver.test.ts +11 -16
  46. package/src/explainBitmapReadback.test.ts +25 -55
  47. package/dist/bitmapEncodeBackend.d.ts +0 -11
  48. package/dist/bitmapEncodeBackend.d.ts.map +0 -1
  49. package/dist/bitmapEncodeBackend.js +0 -58
  50. package/dist/bitmapEncodeBackend.js.map +0 -1
  51. package/dist/bitmapReadbackBackend.d.ts +0 -7
  52. package/dist/bitmapReadbackBackend.d.ts.map +0 -1
  53. package/dist/bitmapReadbackBackend.js +0 -21
  54. package/dist/bitmapReadbackBackend.js.map +0 -1
  55. package/src/bitmapEncodeBackend.test.ts +0 -146
  56. package/src/bitmapReadbackBackend.test.ts +0 -69
package/README.md CHANGED
@@ -13,5 +13,5 @@ Import the supported application-facing API from `@flighthq/bitmap`. The `@fligh
13
13
  This package is part of the locked-version Flight SDK graph. Applications may instead install and import `@flighthq/sdk` when package-level tree shaking is sufficient.
14
14
 
15
15
  - [Flight project](https://github.com/flighthq/flight)
16
- - [Source for @flighthq/bitmap@0.5.1-next.820.97b3830](https://github.com/flighthq/flight/tree/97b3830e843209d92da169e02a52c0574efe5c09/packages/bitmap)
17
- - [License](https://github.com/flighthq/flight/blob/97b3830e843209d92da169e02a52c0574efe5c09/LICENSE.md)
16
+ - [Source for @flighthq/bitmap@0.5.1-next.903.f434bc2](https://github.com/flighthq/flight/tree/f434bc233778d75aeea61995df3a8cfaec459a85/packages/bitmap)
17
+ - [License](https://github.com/flighthq/flight/blob/f434bc233778d75aeea61995df3a8cfaec459a85/LICENSE.md)
package/dist/bitmap.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { AlphaType, Bitmap } from '@flighthq/types/contract';
1
+ import type { AlphaType, Bitmap, EntityConstruction } from '@flighthq/types/contract';
2
2
  export declare function cloneBitmap(source: Readonly<Bitmap>): Bitmap;
3
3
  /**
4
4
  * Converts the alpha representation of `out` in place between `'straight'` and
@@ -13,5 +13,6 @@ export declare function cloneBitmap(source: Readonly<Bitmap>): Bitmap;
13
13
  */
14
14
  export declare function convertBitmapAlphaType(out: Bitmap, target: AlphaType): void;
15
15
  export declare function createBitmap(width: number, height: number, color?: number): Bitmap;
16
+ export declare function initializeBitmap(out: EntityConstruction<Bitmap>, width: number, height: number, color?: number): void;
16
17
  export declare function invalidateBitmap(bitmap: Bitmap): void;
17
18
  //# sourceMappingURL=bitmap.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bitmap.d.ts","sourceRoot":"","sources":["../src/bitmap.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAGlE,wBAAgB,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,CAW5D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CA6B3E;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,MAAM,CAwBrF;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAErD"}
1
+ {"version":3,"file":"bitmap.d.ts","sourceRoot":"","sources":["../src/bitmap.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAGtF,wBAAgB,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,CAW5D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CA6B3E;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,MAAM,CAIrF;AAED,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,kBAAkB,CAAC,MAAM,CAAC,EAC/B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,KAAK,GAAE,MAAU,GAChB,IAAI,CAsBN;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAErD"}
package/dist/bitmap.js CHANGED
@@ -1,16 +1,16 @@
1
- import { createEntity } from '@flighthq/entity/contract';
1
+ import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
2
2
  import { BitmapTextureSourceKind } from '@flighthq/types/contract';
3
3
  export function cloneBitmap(source) {
4
- return createEntity({
5
- alphaType: source.alphaType,
6
- gamut: source.gamut,
7
- data: new Uint8ClampedArray(source.data),
8
- format: source.format,
9
- height: source.height,
10
- kind: source.kind,
11
- version: 0,
12
- width: source.width,
13
- });
4
+ const out = allocateEntity();
5
+ out.alphaType = source.alphaType;
6
+ out.gamut = source.gamut;
7
+ out.data = new Uint8ClampedArray(source.data);
8
+ out.format = source.format;
9
+ out.height = source.height;
10
+ out.kind = source.kind;
11
+ out.version = 0;
12
+ out.width = source.width;
13
+ return finishEntity(out);
14
14
  }
15
15
  /**
16
16
  * Converts the alpha representation of `out` in place between `'straight'` and
@@ -57,6 +57,11 @@ export function convertBitmapAlphaType(out, target) {
57
57
  invalidateBitmap(out);
58
58
  }
59
59
  export function createBitmap(width, height, color = 0) {
60
+ const out = allocateEntity();
61
+ initializeBitmap(out, width, height, color);
62
+ return finishEntity(out);
63
+ }
64
+ export function initializeBitmap(out, width, height, color = 0) {
60
65
  const data = new Uint8ClampedArray(width * height * 4);
61
66
  if (color !== 0) {
62
67
  const r = (color >>> 24) & 0xff;
@@ -70,16 +75,14 @@ export function createBitmap(width, height, color = 0) {
70
75
  data[i + 3] = a;
71
76
  }
72
77
  }
73
- return createEntity({
74
- alphaType: 'straight',
75
- gamut: 'srgb',
76
- data,
77
- format: 'rgba8unorm',
78
- height,
79
- kind: BitmapTextureSourceKind,
80
- version: 0,
81
- width,
82
- });
78
+ out.alphaType = 'straight';
79
+ out.gamut = 'srgb';
80
+ out.data = data;
81
+ out.format = 'rgba8unorm';
82
+ out.height = height;
83
+ out.kind = BitmapTextureSourceKind;
84
+ out.version = 0;
85
+ out.width = width;
83
86
  }
84
87
  export function invalidateBitmap(bitmap) {
85
88
  bitmap.version = (bitmap.version + 1) >>> 0;
@@ -1 +1 @@
1
- {"version":3,"file":"bitmap.js","sourceRoot":"","sources":["../src/bitmap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bitmap.js","sourceRoot":"","sources":["../src/bitmap.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import type { Bitmap, BitmapRegion } from '@flighthq/types/contract';
1
+ import type { Bitmap, BitmapRegion, EntityConstruction } from '@flighthq/types/contract';
2
+ export declare function initializeBitmap(out: EntityConstruction<Bitmap>, alphaType: Bitmap['alphaType'], data: Uint8ClampedArray<ArrayBuffer>, format: Bitmap['format'], gamut: Bitmap['gamut'], height: number, width: number): void;
2
3
  /**
3
4
  * Merges four single-channel bitmaps (or any full-RGBA bitmaps) into `out`
4
5
  * by taking one channel from each input bitmap:
@@ -1 +1 @@
1
- {"version":3,"file":"bitmapChannel.d.ts","sourceRoot":"","sources":["../src/bitmapChannel.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAKrE;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,QAAQ,CAAC,YAAY,CAAC,EAC3B,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,EACzB,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,EACzB,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,EACzB,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,GACxB,IAAI,CAsDN;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAuC9F"}
1
+ {"version":3,"file":"bitmapChannel.d.ts","sourceRoot":"","sources":["../src/bitmapChannel.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAKzF,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,kBAAkB,CAAC,MAAM,CAAC,EAC/B,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,EAC9B,IAAI,EAAE,iBAAiB,CAAC,WAAW,CAAC,EACpC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,EACxB,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,EACtB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ,IAAI,CASN;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,QAAQ,CAAC,YAAY,CAAC,EAC3B,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,EACzB,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,EACzB,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,EACzB,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,GACxB,IAAI,CAsDN;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAuC9F"}
@@ -1,6 +1,16 @@
1
- import { createEntity } from '@flighthq/entity/contract';
1
+ import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
2
2
  import { BitmapTextureSourceKind } from '@flighthq/types/contract';
3
3
  import { invalidateBitmap } from './bitmap';
4
+ export function initializeBitmap(out, alphaType, data, format, gamut, height, width) {
5
+ out.alphaType = alphaType;
6
+ out.data = data;
7
+ out.format = format;
8
+ out.gamut = gamut;
9
+ out.height = height;
10
+ out.kind = BitmapTextureSourceKind;
11
+ out.version = 0;
12
+ out.width = width;
13
+ }
4
14
  /**
5
15
  * Merges four single-channel bitmaps (or any full-RGBA bitmaps) into `out`
6
16
  * by taking one channel from each input bitmap:
@@ -113,15 +123,8 @@ export function splitBitmapChannels(source) {
113
123
  ];
114
124
  }
115
125
  function makeBitmap(data, width, height, source) {
116
- return createEntity({
117
- alphaType: source.alphaType,
118
- gamut: source.gamut,
119
- data,
120
- format: source.format,
121
- height,
122
- kind: BitmapTextureSourceKind,
123
- version: 0,
124
- width,
125
- });
126
+ const out = allocateEntity();
127
+ initializeBitmap(out, source.alphaType, data, source.format, source.gamut, height, width);
128
+ return finishEntity(out);
126
129
  }
127
130
  //# sourceMappingURL=bitmapChannel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bitmapChannel.js","sourceRoot":"","sources":["../src/bitmapChannel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bitmapChannel.js","sourceRoot":"","sources":["../src/bitmapChannel.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { RectangleLike, Bitmap, BitmapEdgeMode } from '@flighthq/types/contract';
1
+ import type { Bitmap, BitmapEdgeMode, RectangleLike } from '@flighthq/types/contract';
2
2
  /**
3
3
  * Allocates a new `Bitmap` containing the pixels of `source` cropped to
4
4
  * `rect`. `rect` coordinates are relative to the `source` bitmap origin
@@ -1 +1 @@
1
- {"version":3,"file":"bitmapCrop.d.ts","sourceRoot":"","sources":["../src/bitmapCrop.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAGtF;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,aAAa,CAAC,GAAG,MAAM,CAiC1F;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,EACxB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,QAAQ,GAAE,cAA8B,EACxC,SAAS,SAAI,GACZ,MAAM,CAkDR;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,CAgC3D"}
1
+ {"version":3,"file":"bitmapCrop.d.ts","sourceRoot":"","sources":["../src/bitmapCrop.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAItF;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,aAAa,CAAC,GAAG,MAAM,CA0B1F;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,EACxB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,QAAQ,GAAE,cAA8B,EACxC,SAAS,SAAI,GACZ,MAAM,CA2CR;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,CAyB3D"}
@@ -1,5 +1,5 @@
1
- import { createEntity } from '@flighthq/entity/contract';
2
- import { BitmapTextureSourceKind } from '@flighthq/types/contract';
1
+ import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
2
+ import { initializeBitmap } from './bitmapChannel';
3
3
  /**
4
4
  * Allocates a new `Bitmap` containing the pixels of `source` cropped to
5
5
  * `rect`. `rect` coordinates are relative to the `source` bitmap origin
@@ -34,16 +34,9 @@ export function cropBitmap(source, rect) {
34
34
  data[di + 3] = sd[si + 3];
35
35
  }
36
36
  }
37
- return createEntity({
38
- alphaType: source.alphaType,
39
- gamut: source.gamut,
40
- data,
41
- format: source.format,
42
- height: rh,
43
- kind: BitmapTextureSourceKind,
44
- version: 0,
45
- width: rw,
46
- });
37
+ const out = allocateEntity();
38
+ initializeBitmap(out, source.alphaType, data, source.format, source.gamut, rh, rw);
39
+ return finishEntity(out);
47
40
  }
48
41
  /**
49
42
  * Allocates a new `Bitmap` with `source` padded by `left`, `top`, `right`,
@@ -100,16 +93,9 @@ export function extendBitmap(source, left, top, right, bottom, edgeMode = 'trans
100
93
  }
101
94
  }
102
95
  }
103
- return createEntity({
104
- alphaType: source.alphaType,
105
- gamut: source.gamut,
106
- data,
107
- format: source.format,
108
- height: dh,
109
- kind: BitmapTextureSourceKind,
110
- version: 0,
111
- width: dw,
112
- });
96
+ const out = allocateEntity();
97
+ initializeBitmap(out, source.alphaType, data, source.format, source.gamut, dh, dw);
98
+ return finishEntity(out);
113
99
  }
114
100
  /**
115
101
  * Allocates a new `Bitmap` with the transparent border of `source` removed.
@@ -141,16 +127,9 @@ export function trimBitmap(source) {
141
127
  }
142
128
  }
143
129
  if (maxX < 0) {
144
- return createEntity({
145
- alphaType: source.alphaType,
146
- gamut: source.gamut,
147
- data: new Uint8ClampedArray(4),
148
- format: source.format,
149
- height: 1,
150
- kind: BitmapTextureSourceKind,
151
- version: 0,
152
- width: 1,
153
- });
130
+ const out = allocateEntity();
131
+ initializeBitmap(out, source.alphaType, new Uint8ClampedArray(4), source.format, source.gamut, 1, 1);
132
+ return finishEntity(out);
154
133
  }
155
134
  return cropBitmap(source, { x: minX, y: minY, width: maxX - minX + 1, height: maxY - minY + 1 });
156
135
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bitmapCrop.js","sourceRoot":"","sources":["../src/bitmapCrop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bitmapCrop.js","sourceRoot":"","sources":["../src/bitmapCrop.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { Bitmap, BitmapEncodeFailureExplanation, ImageFormat } from '@flighthq/types/contract';
2
- export declare function encodeBitmap(source: Readonly<Bitmap>, format?: ImageFormat, quality?: number): Uint8Array | null;
3
- export declare function explainBitmapEncodeFailure(format: ImageFormat): BitmapEncodeFailureExplanation | null;
1
+ import type { Bitmap, BitmapEncodeFailureExplanation, HasGraphicsBitmapEncode, ImageFormat } from '@flighthq/types/contract';
2
+ export declare function encodeBitmap(host: Readonly<HasGraphicsBitmapEncode>, source: Readonly<Bitmap>, format?: ImageFormat, quality?: number): Uint8Array | null;
3
+ export declare function explainBitmapEncodeFailure(host: Readonly<HasGraphicsBitmapEncode>, format: ImageFormat): BitmapEncodeFailureExplanation | null;
4
4
  //# sourceMappingURL=bitmapEncode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bitmapEncode.d.ts","sourceRoot":"","sources":["../src/bitmapEncode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EAEN,8BAA8B,EAC9B,WAAW,EACZ,MAAM,0BAA0B,CAAC;AAIlC,wBAAgB,YAAY,CAC1B,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,EACxB,MAAM,GAAE,WAAmB,EAC3B,OAAO,GAAE,MAAY,GACpB,UAAU,GAAG,IAAI,CAInB;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,WAAW,GAAG,8BAA8B,GAAG,IAAI,CAGrG"}
1
+ {"version":3,"file":"bitmapEncode.d.ts","sourceRoot":"","sources":["../src/bitmapEncode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EACN,8BAA8B,EAC9B,uBAAuB,EACvB,WAAW,EACZ,MAAM,0BAA0B,CAAC;AAElC,wBAAgB,YAAY,CAC1B,IAAI,EAAE,QAAQ,CAAC,uBAAuB,CAAC,EACvC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,EACxB,MAAM,GAAE,WAAmB,EAC3B,OAAO,GAAE,MAAY,GACpB,UAAU,GAAG,IAAI,CAInB;AAED,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,QAAQ,CAAC,uBAAuB,CAAC,EACvC,MAAM,EAAE,WAAW,GAClB,8BAA8B,GAAG,IAAI,CAGvC"}
@@ -1,21 +1,16 @@
1
- import { getBitmapEncodeBackend } from './bitmapEncodeBackend';
2
- export function encodeBitmap(source, format = 'png', quality = 0.9) {
3
- const resolution = resolveBitmapEncode(format);
1
+ export function encodeBitmap(host, source, format = 'png', quality = 0.9) {
2
+ const resolution = resolveBitmapEncode(host, format);
4
3
  if (resolution.reason !== null)
5
4
  return null;
6
5
  return resolution.backend.encodeBitmap(source, resolution.format, quality);
7
6
  }
8
- export function explainBitmapEncodeFailure(format) {
9
- const resolution = resolveBitmapEncode(format);
7
+ export function explainBitmapEncodeFailure(host, format) {
8
+ const resolution = resolveBitmapEncode(host, format);
10
9
  return resolution.reason === null ? null : { format: resolution.format, reason: resolution.reason };
11
10
  }
12
- function resolveBitmapEncode(format) {
13
- // ImageFormat is currently the closed jpeg | png pair. Adding a third member makes this defensive
14
- // runtime fallback a defect: extend the mapping explicitly instead of silently encoding it as PNG.
11
+ function resolveBitmapEncode(host, format) {
15
12
  const normalizedFormat = format === 'jpeg' ? 'jpeg' : 'png';
16
- const backend = getBitmapEncodeBackend();
17
- if (backend === null)
18
- return { backend, format: normalizedFormat, reason: 'backend-not-installed' };
13
+ const backend = host.graphics.bitmapEncode;
19
14
  if (!backend.supportedFormats.includes(normalizedFormat)) {
20
15
  return { backend, format: normalizedFormat, reason: 'format-unsupported' };
21
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bitmapEncode.js","sourceRoot":"","sources":["../src/bitmapEncode.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,MAAM,UAAU,YAAY,CAC1B,MAAwB,EACxB,SAAsB,KAAK,EAC3B,UAAkB,GAAG;IAErB,MAAM,UAAU,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC/C,IAAI,UAAU,CAAC,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC5C,OAAO,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,MAAmB;IAC5D,MAAM,UAAU,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC/C,OAAO,UAAU,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC;AACtG,CAAC;AAcD,SAAS,mBAAmB,CAAC,MAAmB;IAC9C,kGAAkG;IAClG,mGAAmG;IACnG,MAAM,gBAAgB,GAAgB,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;IACzE,MAAM,OAAO,GAAG,sBAAsB,EAAE,CAAC;IACzC,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,uBAAuB,EAAE,CAAC;IACpG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACzD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC;IAC7E,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAC"}
1
+ {"version":3,"file":"bitmapEncode.js","sourceRoot":"","sources":["../src/bitmapEncode.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,YAAY,CAC1B,IAAuC,EACvC,MAAwB,EACxB,SAAsB,KAAK,EAC3B,UAAkB,GAAG;IAErB,MAAM,UAAU,GAAG,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACrD,IAAI,UAAU,CAAC,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC5C,OAAO,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,IAAuC,EACvC,MAAmB;IAEnB,MAAM,UAAU,GAAG,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACrD,OAAO,UAAU,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC;AACtG,CAAC;AAcD,SAAS,mBAAmB,CAAC,IAAuC,EAAE,MAAmB;IACvF,MAAM,gBAAgB,GAAgB,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;IACzE,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;IAC3C,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACzD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC;IAC7E,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { Bitmap, BitmapFingerprint } from '@flighthq/types/contract';
1
+ import type { Bitmap, BitmapFingerprint, EntityConstruction } from '@flighthq/types/contract';
2
2
  /**
3
3
  * Opaque identity of this module's fingerprint computation. Recorded in baseline provenance so a
4
4
  * change to the averaging, channel selection, or serialization invalidates every baseline produced
@@ -25,6 +25,7 @@ export declare function createBitmapFingerprint(source: Readonly<Bitmap>, gridSi
25
25
  * what gets committed as a regression baseline instead of a screenshot.
26
26
  */
27
27
  export declare function formatBitmapFingerprint(fingerprint: Readonly<BitmapFingerprint>): string;
28
+ export declare function initializeBitmapFingerprint(out: EntityConstruction<BitmapFingerprint>, gridSize: number, cells: Uint8Array): void;
28
29
  /**
29
30
  * Parses the text form produced by formatBitmapFingerprint. Returns `null` for malformed input
30
31
  * (wrong shape, odd hex length, or a cell count that is not gridSize × gridSize × 3) so callers can
@@ -1 +1 @@
1
- {"version":3,"file":"bitmapFingerprint.d.ts","sourceRoot":"","sources":["../src/bitmapFingerprint.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAM1E;;;;;;GAMG;AACH,eAAO,MAAM,iCAAiC,wBAAwB,CAAC;AAIvE;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,iBAAiB,CAAC,GAAG,MAAM,CAQhH;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,GAAE,MAAW,GAAG,iBAAiB,CAkC1G;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,QAAQ,CAAC,iBAAiB,CAAC,GAAG,MAAM,CAOxF;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAiB7E"}
1
+ {"version":3,"file":"bitmapFingerprint.d.ts","sourceRoot":"","sources":["../src/bitmapFingerprint.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAM9F;;;;;;GAMG;AACH,eAAO,MAAM,iCAAiC,wBAAwB,CAAC;AAIvE;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,iBAAiB,CAAC,GAAG,MAAM,CAQhH;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,GAAE,MAAW,GAAG,iBAAiB,CAyC1G;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,QAAQ,CAAC,iBAAiB,CAAC,GAAG,MAAM,CAOxF;AAED,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,EAC1C,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,UAAU,GAChB,IAAI,CAGN;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAmB7E"}
@@ -1,4 +1,4 @@
1
- import { createEntity } from '@flighthq/entity/contract';
1
+ import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
2
2
  // A coarse downscaled RGB fingerprint: the bitmap is averaged into a gridSize × gridSize grid, so
3
3
  // antialiasing jitter that breaks an exact hash washes out while gross changes still register. The
4
4
  // committed regression baseline is the hex-encoded form (formatBitmapFingerprint), not a PNG.
@@ -39,7 +39,11 @@ export function createBitmapFingerprint(source, gridSize = 16) {
39
39
  const cells = new Uint8Array(gridSize * gridSize * 3);
40
40
  const { width, height, data } = source;
41
41
  if (width === 0 || height === 0)
42
- return createEntity({ gridSize, cells });
42
+ return (() => {
43
+ const out = allocateEntity();
44
+ initializeBitmapFingerprint(out, gridSize, cells);
45
+ return finishEntity(out);
46
+ })();
43
47
  for (let cy = 0; cy < gridSize; cy++) {
44
48
  const y0 = Math.floor((cy * height) / gridSize);
45
49
  const y1 = Math.max(y0 + 1, Math.floor(((cy + 1) * height) / gridSize));
@@ -66,7 +70,9 @@ export function createBitmapFingerprint(source, gridSize = 16) {
66
70
  cells[c + 2] = count === 0 ? 0 : Math.round(sumB / count);
67
71
  }
68
72
  }
69
- return createEntity({ gridSize, cells });
73
+ const out = allocateEntity();
74
+ initializeBitmapFingerprint(out, gridSize, cells);
75
+ return finishEntity(out);
70
76
  }
71
77
  /**
72
78
  * Serializes a fingerprint to a compact, git-diffable text line: `<gridSize>:<hex cells>`. This is
@@ -80,6 +86,10 @@ export function formatBitmapFingerprint(fingerprint) {
80
86
  }
81
87
  return `${fingerprint.gridSize}:${hex}`;
82
88
  }
89
+ export function initializeBitmapFingerprint(out, gridSize, cells) {
90
+ out.gridSize = gridSize;
91
+ out.cells = cells;
92
+ }
83
93
  /**
84
94
  * Parses the text form produced by formatBitmapFingerprint. Returns `null` for malformed input
85
95
  * (wrong shape, odd hex length, or a cell count that is not gridSize × gridSize × 3) so callers can
@@ -103,6 +113,8 @@ export function parseBitmapFingerprint(text) {
103
113
  return null;
104
114
  cells[i] = (hi << 4) | lo;
105
115
  }
106
- return createEntity({ gridSize, cells });
116
+ const out = allocateEntity();
117
+ initializeBitmapFingerprint(out, gridSize, cells);
118
+ return finishEntity(out);
107
119
  }
108
120
  //# sourceMappingURL=bitmapFingerprint.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bitmapFingerprint.js","sourceRoot":"","sources":["../src/bitmapFingerprint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bitmapFingerprint.js","sourceRoot":"","sources":["../src/bitmapFingerprint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzE,kGAAkG;AAClG,mGAAmG;AACnG,8FAA8F;AAE9F;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,qBAAqB,CAAC;AAEvE,MAAM,GAAG,GAAG,kBAAkB,CAAC;AAE/B;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CAAC,CAA8B,EAAE,CAA8B;IACtG,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;IACnG,CAAC;IACD,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IACnC,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE;QAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAClF,OAAO,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;AAC9B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAAwB,EAAE,WAAmB,EAAE;IACrF,IAAI,QAAQ,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,uDAAuD,QAAQ,GAAG,CAAC,CAAC;IAEtG,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,QAAQ,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC;IACtD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;IACvC,IAAI,KAAK,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC;QAC7B,OAAO,CAAC,GAAG,EAAE;YACX,MAAM,GAAG,GAAG,cAAc,EAAqB,CAAC;YAChD,2BAA2B,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;YAClD,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC,CAAC,EAAE,CAAC;IAEP,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,QAAQ,EAAE,EAAE,EAAE,EAAE,CAAC;QACrC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC;QAChD,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;QACxE,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,QAAQ,EAAE,EAAE,EAAE,EAAE,CAAC;YACrC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC;YAC/C,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;YACvE,IAAI,IAAI,GAAG,CAAC,CAAC;YACb,IAAI,IAAI,GAAG,CAAC,CAAC;YACb,IAAI,IAAI,GAAG,CAAC,CAAC;YACb,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,KAAK,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3C,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;gBAC7B,KAAK,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC1C,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;oBAChB,IAAI,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBACpB,IAAI,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBACpB,KAAK,EAAE,CAAC;oBACR,CAAC,IAAI,CAAC,CAAC;gBACT,CAAC;YACH,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,QAAQ,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;YACnC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;YACtD,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;YAC1D,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IACD,MAAM,GAAG,GAAG,cAAc,EAAqB,CAAC;IAChD,2BAA2B,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAClD,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,WAAwC;IAC9E,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;IAChC,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,GAAG,WAAW,CAAC,QAAQ,IAAI,GAAG,EAAE,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,GAA0C,EAC1C,QAAgB,EAChB,KAAiB;IAEjB,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACxB,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC;AACpB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAY;IACjD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5B,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IAC3D,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAE7D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAClC,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ,GAAG,QAAQ,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAE5D,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACvC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAClC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;IAC5B,CAAC;IACD,MAAM,GAAG,GAAG,cAAc,EAAqB,CAAC;IAChD,2BAA2B,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAClD,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC"}
@@ -1,21 +1,6 @@
1
- import type { ImageResource, Bitmap } from '@flighthq/types/contract';
2
- /**
3
- * Reads a host-backed ImageResource into a newly allocated, CPU-readable Bitmap. Returns `null` when the
4
- * readback cannot complete — call `explainBitmapReadback` with `(resource.source, resource.width,
5
- * resource.height)` for the reason.
6
- */
7
- export declare function captureBitmapFromImageResource(resource: Readonly<ImageResource>): Bitmap | null;
1
+ import type { Bitmap, EntityConstruction, HasGraphicsBitmapReadback, ImageResource } from '@flighthq/types/contract';
2
+ export declare function captureBitmapFromImageResource(host: Readonly<HasGraphicsBitmapReadback>, resource: Readonly<ImageResource>): Bitmap | null;
8
3
  export declare function createBitmapFromCanvas(canvas: HTMLCanvasElement, x?: number, y?: number, width?: number, height?: number): Bitmap;
9
- /**
10
- * Reads a bitmap out of any `CanvasImageSource` by drawing it into a scratch 2D canvas. Unlike
11
- * createBitmapFromCanvas — which calls getContext('2d') and so only works on a 2D-rendered canvas —
12
- * this captures a Gl or Wgpu canvas too, giving one readback path for every render backend.
13
- * `width`/`height` are the device-pixel dimensions to capture (pass the render state's canvas size).
14
- * For a Gl/Wgpu source, draw before the browser composites the frame away (in tests, enable the
15
- * context's preserveDrawingBuffer, or read immediately after rendering).
16
- *
17
- * Returns `null` for the expected failures named by `explainBitmapReadback`. Faults during a selected
18
- * backend's full read or Bitmap allocation propagate instead of being mislabeled as source refusal.
19
- */
20
- export declare function createBitmapFromImageSource(source: CanvasImageSource, width: number, height: number): Bitmap | null;
4
+ export declare function createBitmapFromImageSource(host: Readonly<HasGraphicsBitmapReadback>, source: CanvasImageSource, width: number, height: number): Bitmap | null;
5
+ export declare function initializeBitmapFromCanvas(out: EntityConstruction<Bitmap>, canvas: HTMLCanvasElement, x?: number, y?: number, width?: number, height?: number): void;
21
6
  //# sourceMappingURL=bitmapFrom.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bitmapFrom.d.ts","sourceRoot":"","sources":["../src/bitmapFrom.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAKtE;;;;GAIG;AACH,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,QAAQ,CAAC,aAAa,CAAC,GAAG,MAAM,GAAG,IAAI,CAE/F;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,iBAAiB,EACzB,CAAC,GAAE,MAAU,EACb,CAAC,GAAE,MAAU,EACb,KAAK,CAAC,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,GACd,MAAM,CAeR;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEnH"}
1
+ {"version":3,"file":"bitmapFrom.d.ts","sourceRoot":"","sources":["../src/bitmapFrom.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAKrH,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,QAAQ,CAAC,yBAAyB,CAAC,EACzC,QAAQ,EAAE,QAAQ,CAAC,aAAa,CAAC,GAChC,MAAM,GAAG,IAAI,CAEf;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,iBAAiB,EACzB,CAAC,GAAE,MAAU,EACb,CAAC,GAAE,MAAU,EACb,KAAK,CAAC,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,GACd,MAAM,CAIR;AAED,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,QAAQ,CAAC,yBAAyB,CAAC,EACzC,MAAM,EAAE,iBAAiB,EACzB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,MAAM,GAAG,IAAI,CAEf;AAED,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,kBAAkB,CAAC,MAAM,CAAC,EAC/B,MAAM,EAAE,iBAAiB,EACzB,CAAC,GAAE,MAAU,EACb,CAAC,GAAE,MAAU,EACb,KAAK,CAAC,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,GACd,IAAI,CAaN"}
@@ -1,42 +1,29 @@
1
- import { createEntity } from '@flighthq/entity/contract';
1
+ import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
2
2
  import { BitmapTextureSourceKind } from '@flighthq/types/contract';
3
3
  import { resolveBitmapReadback } from './bitmapReadbackResolver';
4
- /**
5
- * Reads a host-backed ImageResource into a newly allocated, CPU-readable Bitmap. Returns `null` when the
6
- * readback cannot complete — call `explainBitmapReadback` with `(resource.source, resource.width,
7
- * resource.height)` for the reason.
8
- */
9
- export function captureBitmapFromImageResource(resource) {
10
- return createBitmapFromImageSource(resource.source, resource.width, resource.height);
4
+ export function captureBitmapFromImageResource(host, resource) {
5
+ return createBitmapFromImageSource(host, resource.source, resource.width, resource.height);
11
6
  }
12
7
  export function createBitmapFromCanvas(canvas, x = 0, y = 0, width, height) {
8
+ const out = allocateEntity();
9
+ initializeBitmapFromCanvas(out, canvas, x, y, width, height);
10
+ return finishEntity(out);
11
+ }
12
+ export function createBitmapFromImageSource(host, source, width, height) {
13
+ return resolveBitmapReadback(host, source, width, height, 'bitmap').bitmap;
14
+ }
15
+ export function initializeBitmapFromCanvas(out, canvas, x = 0, y = 0, width, height) {
13
16
  const w = width ?? canvas.width;
14
17
  const h = height ?? canvas.height;
15
18
  const ctx = canvas.getContext('2d');
16
19
  const raw = ctx.getImageData(x, y, w, h);
17
- return createEntity({
18
- alphaType: 'straight',
19
- gamut: raw.colorSpace,
20
- data: raw.data,
21
- format: 'rgba8unorm',
22
- height: raw.height,
23
- kind: BitmapTextureSourceKind,
24
- version: 0,
25
- width: raw.width,
26
- });
27
- }
28
- /**
29
- * Reads a bitmap out of any `CanvasImageSource` by drawing it into a scratch 2D canvas. Unlike
30
- * createBitmapFromCanvas — which calls getContext('2d') and so only works on a 2D-rendered canvas —
31
- * this captures a Gl or Wgpu canvas too, giving one readback path for every render backend.
32
- * `width`/`height` are the device-pixel dimensions to capture (pass the render state's canvas size).
33
- * For a Gl/Wgpu source, draw before the browser composites the frame away (in tests, enable the
34
- * context's preserveDrawingBuffer, or read immediately after rendering).
35
- *
36
- * Returns `null` for the expected failures named by `explainBitmapReadback`. Faults during a selected
37
- * backend's full read or Bitmap allocation propagate instead of being mislabeled as source refusal.
38
- */
39
- export function createBitmapFromImageSource(source, width, height) {
40
- return resolveBitmapReadback(source, width, height, 'bitmap').bitmap;
20
+ out.alphaType = 'straight';
21
+ out.gamut = raw.colorSpace;
22
+ out.data = raw.data;
23
+ out.format = 'rgba8unorm';
24
+ out.height = raw.height;
25
+ out.kind = BitmapTextureSourceKind;
26
+ out.version = 0;
27
+ out.width = raw.width;
41
28
  }
42
29
  //# sourceMappingURL=bitmapFrom.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bitmapFrom.js","sourceRoot":"","sources":["../src/bitmapFrom.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE;;;;GAIG;AACH,MAAM,UAAU,8BAA8B,CAAC,QAAiC;IAC9E,OAAO,2BAA2B,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;AACvF,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,MAAyB,EACzB,IAAY,CAAC,EACb,IAAY,CAAC,EACb,KAAc,EACd,MAAe;IAEf,MAAM,CAAC,GAAG,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC;IAChC,MAAM,CAAC,GAAG,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC;IAClC,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAE,CAAC;IACrC,MAAM,GAAG,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACzC,OAAO,YAAY,CAAC;QAClB,SAAS,EAAE,UAAU;QACrB,KAAK,EAAE,GAAG,CAAC,UAAmC;QAC9C,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,MAAM,EAAE,YAAY;QACpB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,IAAI,EAAE,uBAAuB;QAC7B,OAAO,EAAE,CAAC;QACV,KAAK,EAAE,GAAG,CAAC,KAAK;KACjB,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,2BAA2B,CAAC,MAAyB,EAAE,KAAa,EAAE,MAAc;IAClG,OAAO,qBAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,MAAM,CAAC;AACvE,CAAC"}
1
+ {"version":3,"file":"bitmapFrom.js","sourceRoot":"","sources":["../src/bitmapFrom.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,MAAM,UAAU,8BAA8B,CAC5C,IAAyC,EACzC,QAAiC;IAEjC,OAAO,2BAA2B,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC7F,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,MAAyB,EACzB,IAAY,CAAC,EACb,IAAY,CAAC,EACb,KAAc,EACd,MAAe;IAEf,MAAM,GAAG,GAAG,cAAc,EAAU,CAAC;IACrC,0BAA0B,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC7D,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,IAAyC,EACzC,MAAyB,EACzB,KAAa,EACb,MAAc;IAEd,OAAO,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,MAAM,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,GAA+B,EAC/B,MAAyB,EACzB,IAAY,CAAC,EACb,IAAY,CAAC,EACb,KAAc,EACd,MAAe;IAEf,MAAM,CAAC,GAAG,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC;IAChC,MAAM,CAAC,GAAG,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC;IAClC,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAE,CAAC;IACrC,MAAM,GAAG,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACzC,GAAG,CAAC,SAAS,GAAG,UAAU,CAAC;IAC3B,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,UAAmC,CAAC;IACpD,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IACpB,GAAG,CAAC,MAAM,GAAG,YAAY,CAAC;IAC1B,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;IACxB,GAAG,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACnC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC;IAChB,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;AACxB,CAAC"}
@@ -1,8 +1,8 @@
1
- import type { Bitmap, BitmapReadbackBlockReason, BitmapReadbackMode, HostImageSource } from '@flighthq/types/contract';
1
+ import type { Bitmap, BitmapReadbackBlockReason, BitmapReadbackMode, HasGraphicsBitmapReadback, HostImageSource } from '@flighthq/types/contract';
2
2
  interface BitmapReadbackResolution {
3
3
  readonly bitmap: Bitmap | null;
4
4
  readonly reason: BitmapReadbackBlockReason;
5
5
  }
6
- export declare function resolveBitmapReadback(source: HostImageSource, width: number, height: number, mode: BitmapReadbackMode): BitmapReadbackResolution;
6
+ export declare function resolveBitmapReadback(host: Readonly<HasGraphicsBitmapReadback>, source: HostImageSource, width: number, height: number, mode: BitmapReadbackMode): BitmapReadbackResolution;
7
7
  export {};
8
8
  //# sourceMappingURL=bitmapReadbackResolver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bitmapReadbackResolver.d.ts","sourceRoot":"","sources":["../src/bitmapReadbackResolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAIvH,UAAU,wBAAwB;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,yBAAyB,CAAC;CAC5C;AAID,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,kBAAkB,GACvB,wBAAwB,CAK1B"}
1
+ {"version":3,"file":"bitmapReadbackResolver.d.ts","sourceRoot":"","sources":["../src/bitmapReadbackResolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EACN,yBAAyB,EACzB,kBAAkB,EAClB,yBAAyB,EACzB,eAAe,EAChB,MAAM,0BAA0B,CAAC;AAElC,UAAU,wBAAwB;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,yBAAyB,CAAC;CAC5C;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,QAAQ,CAAC,yBAAyB,CAAC,EACzC,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,kBAAkB,GACvB,wBAAwB,CAG1B"}
@@ -1,12 +1,6 @@
1
- import { getBitmapReadbackBackend } from './bitmapReadbackBackend';
2
- // Package-private: both public projections route through this resolver, but it is deliberately absent
3
- // from the package barrels so callers cannot couple to the selection machinery.
4
- export function resolveBitmapReadback(source, width, height, mode) {
1
+ export function resolveBitmapReadback(host, source, width, height, mode) {
5
2
  if (width <= 0 || height <= 0)
6
3
  return { bitmap: null, reason: 'empty-size' };
7
- const backend = getBitmapReadbackBackend();
8
- if (backend === null)
9
- return { bitmap: null, reason: 'backend-not-installed' };
10
- return backend.readBitmap(source, width, height, mode);
4
+ return host.graphics.bitmapReadback.readBitmap(source, width, height, mode);
11
5
  }
12
6
  //# sourceMappingURL=bitmapReadbackResolver.js.map