supervision 0.2.8 → 0.2.10

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 (97) hide show
  1. package/dist/{depth-preview-probe-DG7McQEN.js → depth-preview-probe-BG0k-33U.js} +3 -3
  2. package/dist/{depth-preview-probe-DG7McQEN.js.map → depth-preview-probe-BG0k-33U.js.map} +1 -1
  3. package/dist/{depth-preview-track-BvgwNEE9.js → depth-preview-track-BEag1ZWF.js} +2 -2
  4. package/dist/{depth-preview-track-BvgwNEE9.js.map → depth-preview-track-BEag1ZWF.js.map} +1 -1
  5. package/dist/index.d.ts +2 -1
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +2261 -447
  8. package/dist/index.js.map +1 -1
  9. package/dist/mask-preparation.worker.js +166 -45
  10. package/dist/mask-preparation.worker.js.map +1 -1
  11. package/dist/media/display-pixel-ratio.d.ts +3 -8
  12. package/dist/media/display-pixel-ratio.d.ts.map +1 -1
  13. package/dist/media/video-engine-media-source.js +1 -1
  14. package/dist/render-preparation/mask-frame-artifact.d.ts +7 -1
  15. package/dist/render-preparation/mask-frame-artifact.d.ts.map +1 -1
  16. package/dist/render-preparation/mask-frame-compositor.d.ts +1 -1
  17. package/dist/render-preparation/mask-frame-compositor.d.ts.map +1 -1
  18. package/dist/render-preparation/mask-preparation-worker-protocol.d.ts +3 -0
  19. package/dist/render-preparation/mask-preparation-worker-protocol.d.ts.map +1 -1
  20. package/dist/render-preparation/prepared-render-window.d.ts +2 -0
  21. package/dist/render-preparation/prepared-render-window.d.ts.map +1 -1
  22. package/dist/renderers/annotation-fxaa.d.ts +37 -0
  23. package/dist/renderers/annotation-fxaa.d.ts.map +1 -0
  24. package/dist/renderers/id-mask-stroke-coverage.d.ts +2 -2
  25. package/dist/renderers/id-mask-stroke-coverage.d.ts.map +1 -1
  26. package/dist/renderers/mask-palette.d.ts +4 -8
  27. package/dist/renderers/mask-palette.d.ts.map +1 -1
  28. package/dist/renderers/media-clahe.d.ts +6 -0
  29. package/dist/renderers/media-clahe.d.ts.map +1 -0
  30. package/dist/renderers/media-renderer-core.d.ts.map +1 -1
  31. package/dist/renderers/media-renderer-scene.d.ts +1 -0
  32. package/dist/renderers/media-renderer-scene.d.ts.map +1 -1
  33. package/dist/renderers/pixi-annotation-antialias-layer.d.ts +15 -0
  34. package/dist/renderers/pixi-annotation-antialias-layer.d.ts.map +1 -0
  35. package/dist/renderers/pixi-annotation-antialias.d.ts +14 -0
  36. package/dist/renderers/pixi-annotation-antialias.d.ts.map +1 -0
  37. package/dist/renderers/pixi-annotation-overlay-layer.d.ts +6 -1
  38. package/dist/renderers/pixi-annotation-overlay-layer.d.ts.map +1 -1
  39. package/dist/renderers/pixi-box-layer.d.ts +6 -1
  40. package/dist/renderers/pixi-box-layer.d.ts.map +1 -1
  41. package/dist/renderers/pixi-filter-bindings.d.ts +6 -0
  42. package/dist/renderers/pixi-filter-bindings.d.ts.map +1 -0
  43. package/dist/renderers/pixi-focus-heatmap-cutout.d.ts +17 -0
  44. package/dist/renderers/pixi-focus-heatmap-cutout.d.ts.map +1 -0
  45. package/dist/renderers/pixi-focus-layer.d.ts +18 -1
  46. package/dist/renderers/pixi-focus-layer.d.ts.map +1 -1
  47. package/dist/renderers/pixi-heatmap-layer.d.ts +4 -1
  48. package/dist/renderers/pixi-heatmap-layer.d.ts.map +1 -1
  49. package/dist/renderers/pixi-id-mask-shader.d.ts +2 -1
  50. package/dist/renderers/pixi-id-mask-shader.d.ts.map +1 -1
  51. package/dist/renderers/pixi-interaction-presentation-layer.d.ts +5 -1
  52. package/dist/renderers/pixi-interaction-presentation-layer.d.ts.map +1 -1
  53. package/dist/renderers/pixi-label-layer.d.ts +8 -4
  54. package/dist/renderers/pixi-label-layer.d.ts.map +1 -1
  55. package/dist/renderers/pixi-mask-layer.d.ts +2 -1
  56. package/dist/renderers/pixi-mask-layer.d.ts.map +1 -1
  57. package/dist/renderers/pixi-mask-screen-stroke.d.ts +1 -1
  58. package/dist/renderers/pixi-mask-screen-stroke.d.ts.map +1 -1
  59. package/dist/renderers/pixi-mask-viewport.d.ts +21 -0
  60. package/dist/renderers/pixi-mask-viewport.d.ts.map +1 -0
  61. package/dist/renderers/pixi-media-inspection-filter.d.ts +8 -0
  62. package/dist/renderers/pixi-media-inspection-filter.d.ts.map +1 -0
  63. package/dist/renderers/pixi-media-scene.d.ts.map +1 -1
  64. package/dist/renderers/pixi-polygon-layer.d.ts +3 -0
  65. package/dist/renderers/pixi-polygon-layer.d.ts.map +1 -1
  66. package/dist/renderers/pixi-region-coverage-mask.d.ts +14 -3
  67. package/dist/renderers/pixi-region-coverage-mask.d.ts.map +1 -1
  68. package/dist/renderers/pixi-region-layer.d.ts +7 -1
  69. package/dist/renderers/pixi-region-layer.d.ts.map +1 -1
  70. package/dist/sessions/media-session.d.ts.map +1 -1
  71. package/dist/tracking.worker.js.map +1 -1
  72. package/dist/types/media-renderer.d.ts +1 -1
  73. package/dist/types/media-renderer.d.ts.map +1 -1
  74. package/dist/{video-engine-media-source-DOFsuGS4.js → video-engine-media-source-MFthAkbe.js} +4 -9
  75. package/dist/video-engine-media-source-MFthAkbe.js.map +1 -0
  76. package/node_modules/supervision-js-core/dist/index.d.ts +2 -2
  77. package/node_modules/supervision-js-core/dist/index.d.ts.map +1 -1
  78. package/node_modules/supervision-js-core/dist/index.js +57 -25
  79. package/node_modules/supervision-js-core/dist/index.js.map +1 -1
  80. package/node_modules/supervision-js-core/dist/styles/default-annotation-presentation.d.ts.map +1 -1
  81. package/node_modules/supervision-js-core/dist/styles/focus-style.d.ts +4 -3
  82. package/node_modules/supervision-js-core/dist/styles/focus-style.d.ts.map +1 -1
  83. package/node_modules/supervision-js-core/dist/styles/mask-style.d.ts.map +1 -1
  84. package/node_modules/supervision-js-core/dist/types/focus-style.d.ts +2 -1
  85. package/node_modules/supervision-js-core/dist/types/focus-style.d.ts.map +1 -1
  86. package/node_modules/supervision-js-core/dist/types/label-style.d.ts +4 -1
  87. package/node_modules/supervision-js-core/dist/types/label-style.d.ts.map +1 -1
  88. package/node_modules/supervision-js-core/dist/types/mask-style.d.ts +8 -1
  89. package/node_modules/supervision-js-core/dist/types/mask-style.d.ts.map +1 -1
  90. package/node_modules/supervision-js-core/dist/types/media-rendering.d.ts +18 -0
  91. package/node_modules/supervision-js-core/dist/types/media-rendering.d.ts.map +1 -1
  92. package/node_modules/supervision-js-core/dist/utils/detection-conversions.d.ts +1 -0
  93. package/node_modules/supervision-js-core/dist/utils/detection-conversions.d.ts.map +1 -1
  94. package/node_modules/supervision-js-core/dist/utils/id-mask-frame.d.ts +21 -7
  95. package/node_modules/supervision-js-core/dist/utils/id-mask-frame.d.ts.map +1 -1
  96. package/package.json +1 -1
  97. package/dist/video-engine-media-source-DOFsuGS4.js.map +0 -1
@@ -1,12 +1,7 @@
1
1
  /**
2
- * The pixel ratio a host's display box rasterizes at, for every grid that lands
3
- * in that box: the presentation surface, the mask rasters drawn onto it, and the
4
- * decode under both. The ceiling is what keeps a 3x display from costing nine
5
- * times the texels of a 1x one for sharpness nobody resolves on a moving
6
- * picture. An id raster carries a detection per pixel and can only be sampled
7
- * nearest, so a grid it does not share ragged its edges.
8
- *
9
- * A ceiling that is not a usable number states nothing, and takes the default.
2
+ * Base display density for the presentation surface and video decode.
3
+ * Annotation antialiasing can prepare mask rasters at a higher density.
4
+ * Invalid ceilings use the default maximum.
10
5
  */
11
6
  export declare function resolveDisplayPixelRatio(display: {
12
7
  readonly devicePixelRatio: number;
@@ -1 +1 @@
1
- {"version":3,"file":"display-pixel-ratio.d.ts","sourceRoot":"","sources":["../../src/media/display-pixel-ratio.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE;IAChD,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;CACvC,GAAG,MAAM,CAeT"}
1
+ {"version":3,"file":"display-pixel-ratio.d.ts","sourceRoot":"","sources":["../../src/media/display-pixel-ratio.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE;IAChD,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;CACvC,GAAG,MAAM,CAeT"}
@@ -1,3 +1,3 @@
1
- export { a as createWebVideoEngineMediaRendererSource, o as openWebVideoEngineMediaSource } from '../video-engine-media-source-DOFsuGS4.js';
1
+ export { a as createWebVideoEngineMediaRendererSource, o as openWebVideoEngineMediaSource } from '../video-engine-media-source-MFthAkbe.js';
2
2
  import 'supervision-js-core';
3
3
  //# sourceMappingURL=video-engine-media-source.js.map
@@ -1,3 +1,4 @@
1
+ import type { StrokeAlignment } from "supervision-js-core";
1
2
  export declare enum PreparedMaskFrameKind {
2
3
  IdMask = "idMask",
3
4
  RgbaImage = "rgbaImage"
@@ -57,12 +58,15 @@ export interface PreparedIdMaskFrame {
57
58
  readonly height: number;
58
59
  readonly key: string;
59
60
  readonly kind: PreparedMaskFrameKind.IdMask;
61
+ /** Largest outside stroke extent in CSS pixels. */
60
62
  readonly maxStrokeWidth: number;
61
63
  readonly raster: Uint8Array<ArrayBuffer>;
62
64
  readonly regionMaskCoverage?: PreparedRegionMaskCoverageFrame;
63
- /** The frame-wide mask width every stroke on this raster is scaled against. */
65
+ /** Original mask-plane width before optional raster reduction. */
64
66
  readonly sourceWidth: number;
65
67
  readonly strokePalette: Float32Array<ArrayBuffer>;
68
+ readonly strokeAlignments?: Float32Array<ArrayBuffer>;
69
+ /** Total stroke width in CSS pixels per palette ID. */
66
70
  readonly strokeWidths: Float32Array<ArrayBuffer>;
67
71
  readonly width: number;
68
72
  close(): void;
@@ -72,6 +76,8 @@ export interface PreparedMaskScreenStroke {
72
76
  readonly color: number;
73
77
  readonly alpha: number;
74
78
  readonly width: number;
79
+ readonly widthUnit?: "mask" | "screen";
80
+ readonly alignment?: StrokeAlignment;
75
81
  /** Closed contours in this artifact's raster coordinates, including holes. */
76
82
  readonly paths: readonly Float32Array<ArrayBuffer>[];
77
83
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mask-frame-artifact.d.ts","sourceRoot":"","sources":["../../src/render-preparation/mask-frame-artifact.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mask-frame-artifact.d.ts","sourceRoot":"","sources":["../../src/render-preparation/mask-frame-artifact.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ export interface CompositedMaskFrame {
9
9
  }
10
10
  /** Builds compact, independent alpha crops so overlapping masks stay exact. */
11
11
  export declare function createRegionMaskCoverageFrame(instructions: readonly SerializableMaskInstruction[]): PreparedRegionMaskCoverageFrame | undefined;
12
- export declare function compositeMaskFrame(instructions: readonly SerializableMaskInstruction[]): CompositedMaskFrame | undefined;
12
+ export declare function compositeMaskFrame(instructions: readonly SerializableMaskInstruction[], displayWidth?: number): CompositedMaskFrame | undefined;
13
13
  export declare function createIdMaskRasterFrame(instructions: readonly SerializableMaskInstruction[], maxRasterWidth?: number): IdMaskFrame | undefined;
14
14
  /**
15
15
  * Whether the palette has a slot for every detection this frame masks. An id
@@ -1 +1 @@
1
- {"version":3,"file":"mask-frame-compositor.d.ts","sourceRoot":"","sources":["../../src/render-preparation/mask-frame-compositor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,sDAAsD,CAAC;AACxG,OAAO,KAAK,EACV,mBAAmB,EAEnB,+BAA+B,EAC/B,wBAAwB,EACzB,MAAM,yCAAyC,CAAC;AAGjD,OAAO,EAQL,KAAK,WAAW,EACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,2BAA2B,EAC3B,wBAAwB,EACxB,iBAAiB,EACjB,KAAK,WAAW,GACjB,MAAM,qBAAqB,CAAC;AAsB7B,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC9C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,+EAA+E;AAC/E,wBAAgB,6BAA6B,CAC3C,YAAY,EAAE,SAAS,2BAA2B,EAAE,GACnD,+BAA+B,GAAG,SAAS,CAmB7C;AA6CD,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,SAAS,2BAA2B,EAAE,GACnD,mBAAmB,GAAG,SAAS,CAgBjC;AAED,wBAAgB,uBAAuB,CACrC,YAAY,EAAE,SAAS,2BAA2B,EAAE,EACpD,cAAc,CAAC,EAAE,MAAM,GACtB,WAAW,GAAG,SAAS,CAiBzB;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,SAAS,2BAA2B,EAAE,WAOrD;AAED,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,SAAS,2BAA2B,EAAE,EACpD,cAAc,CAAC,EAAE,MAAM,GACtB,mBAAmB,GAAG,SAAS,CAajC;AAyBD,wBAAgB,uBAAuB,CACrC,YAAY,EAAE,SAAS,2BAA2B,EAAE,EACpD,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,cAAc,CAAC,EAAE,UAAU,GAC1B,SAAS,wBAAwB,EAAE,GAAG,SAAS,CA0CjD"}
1
+ {"version":3,"file":"mask-frame-compositor.d.ts","sourceRoot":"","sources":["../../src/render-preparation/mask-frame-compositor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,sDAAsD,CAAC;AACxG,OAAO,KAAK,EACV,mBAAmB,EAEnB,+BAA+B,EAC/B,wBAAwB,EACzB,MAAM,yCAAyC,CAAC;AAGjD,OAAO,EAWL,KAAK,WAAW,EACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,2BAA2B,EAC3B,wBAAwB,EACxB,iBAAiB,EACjB,KAAK,WAAW,GACjB,MAAM,qBAAqB,CAAC;AAsB7B,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC9C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,+EAA+E;AAC/E,wBAAgB,6BAA6B,CAC3C,YAAY,EAAE,SAAS,2BAA2B,EAAE,GACnD,+BAA+B,GAAG,SAAS,CAmB7C;AA6CD,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,SAAS,2BAA2B,EAAE,EACpD,YAAY,CAAC,EAAE,MAAM,GACpB,mBAAmB,GAAG,SAAS,CA6BjC;AAED,wBAAgB,uBAAuB,CACrC,YAAY,EAAE,SAAS,2BAA2B,EAAE,EACpD,cAAc,CAAC,EAAE,MAAM,GACtB,WAAW,GAAG,SAAS,CAiBzB;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,SAAS,2BAA2B,EAAE,WAOrD;AAED,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,SAAS,2BAA2B,EAAE,EACpD,cAAc,CAAC,EAAE,MAAM,GACtB,mBAAmB,GAAG,SAAS,CAajC;AAuCD,wBAAgB,uBAAuB,CACrC,YAAY,EAAE,SAAS,2BAA2B,EAAE,EACpD,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,cAAc,CAAC,EAAE,UAAU,GAC1B,SAAS,wBAAwB,EAAE,GAAG,SAAS,CA4CjD"}
@@ -33,6 +33,8 @@ export interface MaskFramePreparationJob {
33
33
  readonly key: string;
34
34
  /** Widest id raster to cook; absent, the instructions' own resolution. */
35
35
  readonly maxRasterWidth?: number;
36
+ /** Fitted media width before DPR or annotation supersampling. */
37
+ readonly displayWidth?: number;
36
38
  }
37
39
  export interface MaskPreparationWorkerPrepareMessage {
38
40
  readonly job: MaskFramePreparationJob;
@@ -55,6 +57,7 @@ export interface MaskPreparationWorkerCompleteMessage {
55
57
  readonly sourceWidth?: number;
56
58
  readonly screenStrokes?: readonly PreparedMaskScreenStroke[];
57
59
  readonly strokePalette?: Float32Array<ArrayBuffer>;
60
+ readonly strokeAlignments?: Float32Array<ArrayBuffer>;
58
61
  readonly strokeWidths?: Float32Array<ArrayBuffer>;
59
62
  readonly type: MaskPreparationWorkerMessageType.Complete;
60
63
  readonly width?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"mask-preparation-worker-protocol.d.ts","sourceRoot":"","sources":["../../src/render-preparation/mask-preparation-worker-protocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mask-preparation-worker-protocol.d.ts","sourceRoot":"","sources":["../../src/render-preparation/mask-preparation-worker-protocol.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,7 @@ export interface PreparedRenderWindow {
28
28
  getArtifactRevision(mediaTime: number): number;
29
29
  /** Recooks the active frame and its targets after the display raster size changes. */
30
30
  invalidateRasterSize(): void;
31
+ invalidateMaskDisplayWidth(): void;
31
32
  /**
32
33
  * Whether this window's artifact for a media time is cooked, scheduling
33
34
  * nothing. True when there is nothing to cook: no style, no frame there.
@@ -96,5 +97,6 @@ export declare function createPreparedRenderWindow(options: {
96
97
  * exists, which is after this window does.
97
98
  */
98
99
  readonly resolveMaxRasterWidth?: () => number | undefined;
100
+ readonly resolveMaskDisplayWidth?: () => number | undefined;
99
101
  }): PreparedRenderWindow;
100
102
  //# sourceMappingURL=prepared-render-window.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prepared-render-window.d.ts","sourceRoot":"","sources":["../../src/render-preparation/prepared-render-window.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prepared-render-window.d.ts","sourceRoot":"","sources":["../../src/render-preparation/prepared-render-window.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,yCAAyC,CAAC;AAEjD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,sDAAsD,CAAC;AAOxG,OAAO,EAEL,KAAK,6BAA6B,EACnC,MAAM,8CAA8C,CAAC;AACtD,OAAO,EAEL,KAAK,yBAAyB,EAC/B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAGL,6BAA6B,EAI7B,KAAK,wBAAwB,EAC7B,KAAK,uCAAuC,EAC7C,MAAM,2BAA2B,CAAC;AAMnC,oBAAY,kBAAkB;IAC5B,MAAM,WAAW;IACjB,IAAI,SAAS;CACd;AA8BD,eAAO,MAAM,gCAAgC,IAAI,CAAC;AAqBlD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,SAAS,CAAC,EAAE,iBAAiB,CAAC;IACvC,QAAQ,CAAC,UAAU,EAAE,6BAA6B,CAAC;CACpD;AAED,oBAAY,6BAA6B;IACvC,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,QAAQ,aAAa;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS,CAAC;IAC7D,kFAAkF;IAClF,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/C,sFAAsF;IACtF,oBAAoB,IAAI,IAAI,CAAC;IAC7B,0BAA0B,IAAI,IAAI,CAAC;IACnC;;;OAGG;IACH,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IAC/C;;;;;OAKG;IACH,sBAAsB,IAAI,MAAM,CAAC;IACjC;;;;OAIG;IACH,qBAAqB,CACnB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,uCAAuC,GAC/C,OAAO,CAAC;IACX;;;;;OAKG;IACH,YAAY,CACV,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,uCAAuC,EAChD,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB;;;OAGG;IACH,iBAAiB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IACzC,kBAAkB,CAAC,OAAO,EAAE,6BAA6B,GAAG,IAAI,CAAC;IACjE,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CAAC;IAC5D,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,YAAY,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,YAAY,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AAEhF,6EAA6E;AAC7E,wBAAgB,+BAA+B,CAAC,OAAO,EAAE;IACvD,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,wBAAwB,CAAC;CACvD,UAOA;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE;IAClD,QAAQ,CAAC,YAAY,CAAC,EAAE,6BAA6B,CAAC;IACtD,QAAQ,CAAC,iBAAiB,EAAE,yBAAyB,CAAC;IACtD,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IACzC,sEAAsE;IACtE,QAAQ,CAAC,4BAA4B,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,MAAM,CAAC;IAC7E,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACtE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1C,8DAA8D;IAC9D,QAAQ,CAAC,sBAAsB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7C,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,iCAAiC,CAAC,EAAE,MAAM,CAAC;IACpD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,wBAAwB,CAAC;IACtD,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC,OAAO,EAAE;QACvC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;QAC/B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;QAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;KAC5B,KAAK,SAAS,2BAA2B,EAAE,CAAC;IAC7C;;;;OAIG;IACH,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IAC1D,QAAQ,CAAC,uBAAuB,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;CAC7D,GAAG,oBAAoB,CAsvDvB"}
@@ -0,0 +1,37 @@
1
+ /*!
2
+ * The FXAA algorithm is adapted from PixiJS v7.4.3's official shader:
3
+ * https://github.com/pixijs/pixijs/blob/v7.4.3/packages/filter-fxaa/src/fxaa.frag
4
+ * It includes alpha in contrast, filters premultiplied RGBA, clamps samples,
5
+ * limits the span to four pixels and mixes the center back for thin strokes.
6
+ *
7
+ * From: https://github.com/mitsuhiko/webgl-meincraft
8
+ * Copyright (c) 2011 by Armin Ronacher. Some rights reserved.
9
+ *
10
+ * Redistribution and use in source and binary forms, with or without
11
+ * modification, are permitted provided that the following conditions are met:
12
+ *
13
+ * Redistributions of source code must retain the above copyright notice,
14
+ * this list of conditions and the following disclaimer.
15
+ *
16
+ * Redistributions in binary form must reproduce the above copyright notice,
17
+ * this list of conditions and the following disclaimer in the documentation
18
+ * and/or other materials provided with the distribution.
19
+ *
20
+ * The names of the contributors may not be used to endorse or promote
21
+ * products derived from this software without specific prior written permission.
22
+ *
23
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
24
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
27
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
28
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
29
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
30
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
31
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
32
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
33
+ * POSSIBILITY OF SUCH DAMAGE.
34
+ */
35
+ export declare const annotationFxaaGl = "\nvec4 applyAnnotationFxaa(vec2 uv) {\n vec2 pixel = uInputPixel.zw;\n vec4 center = readColor(uv);\n float nw = contrastValue(readColor(uv + vec2(-1.0, -1.0) * pixel));\n float ne = contrastValue(readColor(uv + vec2( 1.0, -1.0) * pixel));\n float sw = contrastValue(readColor(uv + vec2(-1.0, 1.0) * pixel));\n float se = contrastValue(readColor(uv + vec2( 1.0, 1.0) * pixel));\n float middle = contrastValue(center);\n float low = min(middle, min(min(nw, ne), min(sw, se)));\n float high = max(middle, max(max(nw, ne), max(sw, se)));\n if (high - low < max(0.03125, high * 0.0625)) {\n return center;\n }\n vec2 direction = vec2(-((nw + ne) - (sw + se)), (nw + sw) - (ne + se));\n float reduction = max((nw + ne + sw + se) * 0.03125, 0.0078125);\n direction *= 1.0 / (min(abs(direction.x), abs(direction.y)) + reduction);\n direction = clamp(direction, vec2(-4.0), vec2(4.0)) * pixel;\n vec4 narrow = 0.5 * (\n readColor(uv - direction / 6.0) +\n readColor(uv + direction / 6.0)\n );\n vec4 wide = 0.5 * narrow + 0.25 * (\n readColor(uv - direction * 0.5) +\n readColor(uv + direction * 0.5)\n );\n float value = contrastValue(wide);\n vec4 filtered = value < low || value > high ? narrow : wide;\n return mix(center, filtered, 0.75);\n}\n";
36
+ export declare const annotationFxaaWgsl = "\nfn applyAnnotationFxaa(uv: vec2<f32>) -> vec4<f32> {\n let pixel = gfu.uInputPixel.zw;\n let center = readColor(uv);\n let nw = contrastValue(readColor(uv + vec2<f32>(-1.0, -1.0) * pixel));\n let ne = contrastValue(readColor(uv + vec2<f32>( 1.0, -1.0) * pixel));\n let sw = contrastValue(readColor(uv + vec2<f32>(-1.0, 1.0) * pixel));\n let se = contrastValue(readColor(uv + vec2<f32>( 1.0, 1.0) * pixel));\n let middle = contrastValue(center);\n let low = min(middle, min(min(nw, ne), min(sw, se)));\n let high = max(middle, max(max(nw, ne), max(sw, se)));\n if (high - low < max(0.03125, high * 0.0625)) { return center; }\n var direction = vec2<f32>(-((nw + ne) - (sw + se)), (nw + sw) - (ne + se));\n let reduction = max((nw + ne + sw + se) * 0.03125, 0.0078125);\n direction *= 1.0 / (min(abs(direction.x), abs(direction.y)) + reduction);\n direction = clamp(direction, vec2<f32>(-4.0), vec2<f32>(4.0)) * pixel;\n let narrow = 0.5 * (readColor(uv - direction / 6.0) + readColor(uv + direction / 6.0));\n let wide = 0.5 * narrow + 0.25 * (readColor(uv - direction * 0.5) + readColor(uv + direction * 0.5));\n let value = contrastValue(wide);\n let filtered = select(wide, narrow, value < low || value > high);\n return mix(center, filtered, 0.75);\n}\n";
37
+ //# sourceMappingURL=annotation-fxaa.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"annotation-fxaa.d.ts","sourceRoot":"","sources":["../../src/renderers/annotation-fxaa.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,eAAO,MAAM,gBAAgB,owCA8B5B,CAAC;AAEF,eAAO,MAAM,kBAAkB,owCAsB9B,CAAC"}
@@ -1,3 +1,3 @@
1
- export declare const idMaskStrokeCoverageGlsl = "\nfloat subtexelStrokeCoverage(float distance, float width, float pixelWidth) {\n \n return clamp(0.5 + (width - distance) / pixelWidth, 0.0, 1.0)\n - clamp(0.5 - (width + distance) / pixelWidth, 0.0, 1.0);\n\n}\n\nfloat neighborCellDistance(float offset, float position) {\n \n return max(max(offset - position, position - offset - 1.0), 0.0);\n\n}\n\nfloat strokeScanRadius(float maxWidth, float fractionalWidth, float pixelWidth) {\n \n if (fractionalWidth > 0.0) {\n return min(max(floor(maxWidth), ceil(fractionalWidth + pixelWidth * 0.5)), 16.0);\n }\n return min(floor(maxWidth), 16.0);\n\n}\n\nbool isBoundary(float centerId, vec2 texel) {\n return\n differs(sampleMaskId(vUV + vec2(texel.x, 0.0)), centerId) ||\n differs(sampleMaskId(vUV + vec2(-texel.x, 0.0)), centerId) ||\n differs(sampleMaskId(vUV + vec2(0.0, texel.y)), centerId) ||\n differs(sampleMaskId(vUV + vec2(0.0, -texel.y)), centerId);\n}\n\nfloat innerStrokeCoverage(float centerId, vec2 texel, vec2 cell, float width, float pixelWidth) {\n if (width >= 1.0) {\n return isBoundary(centerId, texel) ? 1.0 : 0.0;\n }\n\n float coverage = 0.0;\n if (differs(sampleMaskId(vUV + vec2(texel.x, 0.0)), centerId)) {\n coverage = max(coverage, subtexelStrokeCoverage(1.0 - cell.x, width, pixelWidth));\n }\n if (differs(sampleMaskId(vUV + vec2(-texel.x, 0.0)), centerId)) {\n coverage = max(coverage, subtexelStrokeCoverage(cell.x, width, pixelWidth));\n }\n if (differs(sampleMaskId(vUV + vec2(0.0, texel.y)), centerId)) {\n coverage = max(coverage, subtexelStrokeCoverage(1.0 - cell.y, width, pixelWidth));\n }\n if (differs(sampleMaskId(vUV + vec2(0.0, -texel.y)), centerId)) {\n coverage = max(coverage, subtexelStrokeCoverage(cell.y, width, pixelWidth));\n }\n return coverage;\n}\n\n// Descending offsets give the outer border its palette priority.\nvec2 findNeighborStroke(float centerId, vec2 texel, vec2 cell, float pixelWidth) {\n int radius = int(strokeScanRadius(uMaxStrokeWidth, uMaxFractionalStrokeWidth, pixelWidth));\n\n for (int offsetY = radius; offsetY >= -radius; offsetY -= 1) {\n for (int offsetX = radius; offsetX >= -radius; offsetX -= 1) {\n if (offsetX == 0 && offsetY == 0) {\n continue;\n }\n\n float maskId = sampleMaskId(vUV + vec2(float(offsetX), float(offsetY)) * texel);\n if (maskId < 0.5 || !differs(maskId, centerId)) {\n continue;\n }\n\n float width = readStrokeWidth(maskId);\n if (width >= 1.0) {\n float distance = max(abs(float(offsetX)), abs(float(offsetY)));\n if (width >= distance && readStroke(maskId).a > 0.0) {\n return vec2(maskId, 1.0);\n }\n } else if (width > 0.0 && readStroke(maskId).a > 0.0) {\n float distance = max(\n neighborCellDistance(float(offsetX), cell.x),\n neighborCellDistance(float(offsetY), cell.y)\n );\n float coverage = subtexelStrokeCoverage(distance, width, pixelWidth);\n if (coverage > 0.0) {\n return vec2(maskId, coverage);\n }\n }\n }\n }\n\n return vec2(0.0);\n}\n";
2
- export declare const idMaskStrokeCoverageWgsl = "\nfn subtexelStrokeCoverage(distance: f32, width: f32, pixelWidth: f32) -> f32 {\n \n return clamp(0.5 + (width - distance) / pixelWidth, 0.0, 1.0)\n - clamp(0.5 - (width + distance) / pixelWidth, 0.0, 1.0);\n\n}\n\nfn neighborCellDistance(offset: f32, position: f32) -> f32 {\n \n return max(max(offset - position, position - offset - 1.0), 0.0);\n\n}\n\nfn strokeScanRadius(maxWidth: f32, fractionalWidth: f32, pixelWidth: f32) -> f32 {\n \n if (fractionalWidth > 0.0) {\n return min(max(floor(maxWidth), ceil(fractionalWidth + pixelWidth * 0.5)), 16.0);\n }\n return min(floor(maxWidth), 16.0);\n\n}\n\nfn isBoundary(uv: vec2<f32>, centerId: f32, texel: vec2<f32>) -> bool {\n return\n differs(sampleMaskId(uv + vec2<f32>(texel.x, 0.0)), centerId) ||\n differs(sampleMaskId(uv + vec2<f32>(-texel.x, 0.0)), centerId) ||\n differs(sampleMaskId(uv + vec2<f32>(0.0, texel.y)), centerId) ||\n differs(sampleMaskId(uv + vec2<f32>(0.0, -texel.y)), centerId);\n}\n\nfn innerStrokeCoverage(uv: vec2<f32>, centerId: f32, texel: vec2<f32>, cell: vec2<f32>, width: f32, pixelWidth: f32) -> f32 {\n if (width >= 1.0) {\n if (isBoundary(uv, centerId, texel)) {\n return 1.0;\n }\n return 0.0;\n }\n\n var coverage = 0.0;\n if (differs(sampleMaskId(uv + vec2<f32>(texel.x, 0.0)), centerId)) {\n coverage = max(coverage, subtexelStrokeCoverage(1.0 - cell.x, width, pixelWidth));\n }\n if (differs(sampleMaskId(uv + vec2<f32>(-texel.x, 0.0)), centerId)) {\n coverage = max(coverage, subtexelStrokeCoverage(cell.x, width, pixelWidth));\n }\n if (differs(sampleMaskId(uv + vec2<f32>(0.0, texel.y)), centerId)) {\n coverage = max(coverage, subtexelStrokeCoverage(1.0 - cell.y, width, pixelWidth));\n }\n if (differs(sampleMaskId(uv + vec2<f32>(0.0, -texel.y)), centerId)) {\n coverage = max(coverage, subtexelStrokeCoverage(cell.y, width, pixelWidth));\n }\n return coverage;\n}\n\n// Descending offsets give the outer border its palette priority.\nfn findNeighborStroke(uv: vec2<f32>, centerId: f32, texel: vec2<f32>, cell: vec2<f32>, pixelWidth: f32) -> vec2<f32> {\n let radius = i32(strokeScanRadius(maskUniforms.uMaxStrokeWidth, maskUniforms.uMaxFractionalStrokeWidth, pixelWidth));\n\n for (var offsetY = radius; offsetY >= -radius; offsetY -= 1) {\n for (var offsetX = radius; offsetX >= -radius; offsetX -= 1) {\n if (offsetX == 0 && offsetY == 0) {\n continue;\n }\n\n let maskId = sampleMaskId(uv + vec2<f32>(f32(offsetX), f32(offsetY)) * texel);\n if (maskId < 0.5 || !differs(maskId, centerId)) {\n continue;\n }\n\n let width = readStrokeWidth(maskId);\n if (width >= 1.0) {\n let distance = max(abs(f32(offsetX)), abs(f32(offsetY)));\n if (width >= distance && readStroke(maskId).a > 0.0) {\n return vec2<f32>(maskId, 1.0);\n }\n } else if (width > 0.0 && readStroke(maskId).a > 0.0) {\n let distance = max(\n neighborCellDistance(f32(offsetX), cell.x),\n neighborCellDistance(f32(offsetY), cell.y)\n );\n let coverage = subtexelStrokeCoverage(distance, width, pixelWidth);\n if (coverage > 0.0) {\n return vec2<f32>(maskId, coverage);\n }\n }\n }\n }\n\n return vec2<f32>(0.0);\n}\n";
1
+ export declare const idMaskStrokeCoverageGlsl = "\nfloat sampleMaskIdCell(ivec2 cell) {\n int x = clamp(cell.x, 0, int(uTextureSize.x) - 1);\n int y = clamp(cell.y, 0, int(uTextureSize.y) - 1);\n return floor(texelFetch(uTexture, ivec2(x, y), 0).r * 255.0 + 0.5);\n}\n\nfloat subtexelStrokeCoverage(float distance, float width, float alignment, float pixelWidth) {\n \n return clamp(0.5 + (width * (1.0 - alignment) - distance) / pixelWidth, 0.0, 1.0)\n - clamp(0.5 - (width * alignment + distance) / pixelWidth, 0.0, 1.0);\n\n}\n\nfloat neighborCellDistance(float offset, float position) {\n \n return max(max(offset - position, position - offset - 1.0), 0.0);\n\n}\n\nfloat strokeScanRadius(float maxWidth, float pixelWidth) {\n \n if (maxWidth < 0.0) {\n return 0.0;\n }\n return min(ceil(maxWidth + pixelWidth * 0.5), 17.0);\n\n}\n\nfloat strokeWidthInTexels(float maskId, float pixelWidth) {\n float alignment = readStrokeAlignment(maskId);\n float sideFraction = max(alignment, 1.0 - alignment);\n return min(readStrokeWidth(maskId) * pixelWidth * uStrokePixelRatio, 16.0 / sideFraction);\n}\n\nfloat innerStrokeCoverage(float centerId, ivec2 sourceCell, vec2 cell, float width, float pixelWidth) {\n if (width <= 0.0) return 0.0;\n float alignment = readStrokeAlignment(centerId);\n int radius = int(strokeScanRadius(width * alignment, pixelWidth));\n float nearestDistance = width * alignment + pixelWidth * 0.5;\n float minimumDistance = min(min(cell.x, 1.0 - cell.x), min(cell.y, 1.0 - cell.y));\n\n for (int offsetY = radius; offsetY >= -radius; offsetY -= 1) {\n for (int offsetX = radius; offsetX >= -radius; offsetX -= 1) {\n if (offsetX == 0 && offsetY == 0) {\n continue;\n }\n float distance = max(\n neighborCellDistance(float(offsetX), cell.x),\n neighborCellDistance(float(offsetY), cell.y)\n );\n if (distance >= nearestDistance) {\n continue;\n }\n float maskId = sampleMaskIdCell(sourceCell + ivec2(offsetX, offsetY));\n if (differs(maskId, centerId)) {\n nearestDistance = distance;\n if (distance <= minimumDistance) {\n return subtexelStrokeCoverage(-distance, width, alignment, pixelWidth);\n }\n }\n }\n }\n return subtexelStrokeCoverage(-nearestDistance, width, alignment, pixelWidth);\n}\n\n// Descending offsets give the outer border its palette priority.\nvec2 findNeighborStroke(float centerId, ivec2 sourceCell, vec2 cell, float pixelWidth) {\n float maxWidth = min(uMaxStrokeWidth * pixelWidth * uStrokePixelRatio, 16.0);\n int radius = int(strokeScanRadius(maxWidth, pixelWidth));\n vec2 stroke = vec2(0.0);\n float nearestDistance = maxWidth + pixelWidth * 0.5;\n float minimumDistance = min(min(cell.x, 1.0 - cell.x), min(cell.y, 1.0 - cell.y));\n if (uBorderEnabled <= 0.5) return stroke;\n\n for (int offsetY = radius; offsetY >= -radius; offsetY -= 1) {\n for (int offsetX = radius; offsetX >= -radius; offsetX -= 1) {\n if (offsetX == 0 && offsetY == 0) {\n continue;\n }\n\n float distance = max(\n neighborCellDistance(float(offsetX), cell.x),\n neighborCellDistance(float(offsetY), cell.y)\n );\n if (distance >= nearestDistance) {\n continue;\n }\n float maskId = sampleMaskIdCell(sourceCell + ivec2(offsetX, offsetY));\n if (maskId < 0.5 || !differs(maskId, centerId) ||\n (stroke.x > 0.5 && differs(maskId, stroke.x))) {\n continue;\n }\n\n float width = strokeWidthInTexels(maskId, pixelWidth);\n if (width > 0.0 && readStroke(maskId).a > 0.0) {\n float coverage = subtexelStrokeCoverage(distance, width, readStrokeAlignment(maskId), pixelWidth);\n if (coverage > 0.0) {\n stroke = vec2(maskId, coverage);\n nearestDistance = distance;\n if (distance <= minimumDistance) {\n return stroke;\n }\n }\n }\n }\n }\n\n return stroke;\n}\n";
2
+ export declare const idMaskStrokeCoverageWgsl = "\nfn sampleMaskIdCell(cell: vec2<i32>) -> f32 {\n let x = clamp(cell.x, 0, i32(maskUniforms.uTextureSize.x) - 1);\n let y = clamp(cell.y, 0, i32(maskUniforms.uTextureSize.y) - 1);\n return floor(textureLoad(uTexture, vec2<i32>(x, y), 0).r * 255.0 + 0.5);\n}\n\nfn subtexelStrokeCoverage(distance: f32, width: f32, alignment: f32, pixelWidth: f32) -> f32 {\n \n return clamp(0.5 + (width * (1.0 - alignment) - distance) / pixelWidth, 0.0, 1.0)\n - clamp(0.5 - (width * alignment + distance) / pixelWidth, 0.0, 1.0);\n\n}\n\nfn neighborCellDistance(offset: f32, position: f32) -> f32 {\n \n return max(max(offset - position, position - offset - 1.0), 0.0);\n\n}\n\nfn strokeScanRadius(maxWidth: f32, pixelWidth: f32) -> f32 {\n \n if (maxWidth < 0.0) {\n return 0.0;\n }\n return min(ceil(maxWidth + pixelWidth * 0.5), 17.0);\n\n}\n\nfn strokeWidthInTexels(maskId: f32, pixelWidth: f32) -> f32 {\n let alignment = readStrokeAlignment(maskId);\n let sideFraction = max(alignment, 1.0 - alignment);\n return min(readStrokeWidth(maskId) * pixelWidth * maskUniforms.uStrokePixelRatio, 16.0 / sideFraction);\n}\n\nfn innerStrokeCoverage(centerId: f32, sourceCell: vec2<i32>, cell: vec2<f32>, width: f32, pixelWidth: f32) -> f32 {\n if (width <= 0.0) { return 0.0; }\n let alignment = readStrokeAlignment(centerId);\n let radius = i32(strokeScanRadius(width * alignment, pixelWidth));\n var nearestDistance = width * alignment + pixelWidth * 0.5;\n let minimumDistance = min(min(cell.x, 1.0 - cell.x), min(cell.y, 1.0 - cell.y));\n\n for (var offsetY = radius; offsetY >= -radius; offsetY -= 1) {\n for (var offsetX = radius; offsetX >= -radius; offsetX -= 1) {\n if (offsetX == 0 && offsetY == 0) {\n continue;\n }\n let distance = max(\n neighborCellDistance(f32(offsetX), cell.x),\n neighborCellDistance(f32(offsetY), cell.y)\n );\n if (distance >= nearestDistance) {\n continue;\n }\n let maskId = sampleMaskIdCell(sourceCell + vec2<i32>(offsetX, offsetY));\n if (differs(maskId, centerId)) {\n nearestDistance = distance;\n if (distance <= minimumDistance) {\n return subtexelStrokeCoverage(-distance, width, alignment, pixelWidth);\n }\n }\n }\n }\n return subtexelStrokeCoverage(-nearestDistance, width, alignment, pixelWidth);\n}\n\n// Descending offsets give the outer border its palette priority.\nfn findNeighborStroke(centerId: f32, sourceCell: vec2<i32>, cell: vec2<f32>, pixelWidth: f32) -> vec2<f32> {\n let maxWidth = min(maskUniforms.uMaxStrokeWidth * pixelWidth * maskUniforms.uStrokePixelRatio, 16.0);\n let radius = i32(strokeScanRadius(maxWidth, pixelWidth));\n var stroke = vec2<f32>(0.0);\n var nearestDistance = maxWidth + pixelWidth * 0.5;\n let minimumDistance = min(min(cell.x, 1.0 - cell.x), min(cell.y, 1.0 - cell.y));\n if (maskUniforms.uBorderEnabled <= 0.5) { return stroke; }\n\n for (var offsetY = radius; offsetY >= -radius; offsetY -= 1) {\n for (var offsetX = radius; offsetX >= -radius; offsetX -= 1) {\n if (offsetX == 0 && offsetY == 0) {\n continue;\n }\n\n let distance = max(\n neighborCellDistance(f32(offsetX), cell.x),\n neighborCellDistance(f32(offsetY), cell.y)\n );\n if (distance >= nearestDistance) {\n continue;\n }\n let maskId = sampleMaskIdCell(sourceCell + vec2<i32>(offsetX, offsetY));\n if (maskId < 0.5 || !differs(maskId, centerId) ||\n (stroke.x > 0.5 && differs(maskId, stroke.x))) {\n continue;\n }\n\n let width = strokeWidthInTexels(maskId, pixelWidth);\n if (width > 0.0 && readStroke(maskId).a > 0.0) {\n let coverage = subtexelStrokeCoverage(distance, width, readStrokeAlignment(maskId), pixelWidth);\n if (coverage > 0.0) {\n stroke = vec2<f32>(maskId, coverage);\n nearestDistance = distance;\n if (distance <= minimumDistance) {\n return stroke;\n }\n }\n }\n }\n }\n\n return stroke;\n}\n";
3
3
  //# sourceMappingURL=id-mask-stroke-coverage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"id-mask-stroke-coverage.d.ts","sourceRoot":"","sources":["../../src/renderers/id-mask-stroke-coverage.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,wBAAwB,0jGA8EpC,CAAC;AAEF,eAAO,MAAM,wBAAwB,+uGAiFpC,CAAC"}
1
+ {"version":3,"file":"id-mask-stroke-coverage.d.ts","sourceRoot":"","sources":["../../src/renderers/id-mask-stroke-coverage.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,wBAAwB,03HAoGpC,CAAC;AAEF,eAAO,MAAM,wBAAwB,i/HAoGpC,CAAC"}
@@ -1,14 +1,10 @@
1
- /**
2
- * GLSL charges a uniform array of scalars one uniform vector per element, the
3
- * same as an array of vec4, so the stroke widths ride four to a vector and an
4
- * entry costs 2.25 vectors instead of 3. The lanes only line up while the entry
5
- * count stays a multiple of four.
6
- */
1
+ /** Packs width and alignment scalars within the fragment uniform budget. */
7
2
  export declare const ID_MASK_STROKE_WIDTH_LANES: number;
8
- export declare const idMaskPaletteGlsl = "\nuniform vec4 uFillPalette[80];\nuniform vec4 uStrokePalette[80];\nuniform vec4 uStrokeWidths[20];\n\nint paletteIndex(float maskId) {\n return int(clamp(maskId, 0.0, float(79)));\n}\n\nvec4 readFill(float maskId) {\n return uFillPalette[paletteIndex(maskId)];\n}\n\nvec4 readStroke(float maskId) {\n return uStrokePalette[paletteIndex(maskId)];\n}\n\nfloat readStrokeWidth(float maskId) {\n int index = paletteIndex(maskId);\n\n return uStrokeWidths[index / 4][index % 4];\n}\n";
3
+ export declare const idMaskPaletteGlsl = "\nuniform vec4 uFillPalette[80];\nuniform vec4 uStrokePalette[80];\nuniform vec4 uStrokeWidths[20];\nuniform vec4 uStrokeAlignments[20];\n\nint paletteIndex(float maskId) {\n return int(clamp(maskId, 0.0, float(79)));\n}\n\nvec4 readFill(float maskId) {\n return uFillPalette[paletteIndex(maskId)];\n}\n\nvec4 readStroke(float maskId) {\n return uStrokePalette[paletteIndex(maskId)];\n}\n\nfloat readStrokeWidth(float maskId) {\n int index = paletteIndex(maskId);\n\n return uStrokeWidths[index / 4][index % 4];\n}\n\nfloat readStrokeAlignment(float maskId) {\n int index = paletteIndex(maskId);\n return uStrokeAlignments[index / 4][index % 4];\n}\n";
9
4
  export declare const idMaskFillPaletteWgslField = "uFillPalette: array<vec4<f32>, 80>,";
10
5
  export declare const idMaskStrokePaletteWgslField = "uStrokePalette: array<vec4<f32>, 80>,";
11
6
  export declare const idMaskStrokeWidthsWgslField = "uStrokeWidths: array<vec4<f32>, 20>,";
7
+ export declare const idMaskStrokeAlignmentsWgslField = "uStrokeAlignments: array<vec4<f32>, 20>,";
12
8
  /** Reads the uniform group a fragment stage must bind under the name maskUniforms. */
13
- export declare const idMaskPaletteWgsl = "\nfn paletteIndex(maskId: f32) -> i32 {\n return i32(clamp(maskId, 0.0, 79.0));\n}\n\nfn readFill(maskId: f32) -> vec4<f32> {\n return maskUniforms.uFillPalette[paletteIndex(maskId)];\n}\n\nfn readStroke(maskId: f32) -> vec4<f32> {\n return maskUniforms.uStrokePalette[paletteIndex(maskId)];\n}\n\nfn readStrokeWidth(maskId: f32) -> f32 {\n let index = paletteIndex(maskId);\n\n return maskUniforms.uStrokeWidths[index / 4][index % 4];\n}\n";
9
+ export declare const idMaskPaletteWgsl = "\nfn paletteIndex(maskId: f32) -> i32 {\n return i32(clamp(maskId, 0.0, 79.0));\n}\n\nfn readFill(maskId: f32) -> vec4<f32> {\n return maskUniforms.uFillPalette[paletteIndex(maskId)];\n}\n\nfn readStroke(maskId: f32) -> vec4<f32> {\n return maskUniforms.uStrokePalette[paletteIndex(maskId)];\n}\n\nfn readStrokeWidth(maskId: f32) -> f32 {\n let index = paletteIndex(maskId);\n\n return maskUniforms.uStrokeWidths[index / 4][index % 4];\n}\n\nfn readStrokeAlignment(maskId: f32) -> f32 {\n let index = paletteIndex(maskId);\n return maskUniforms.uStrokeAlignments[index / 4][index % 4];\n}\n";
14
10
  //# sourceMappingURL=mask-palette.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mask-palette.d.ts","sourceRoot":"","sources":["../../src/renderers/mask-palette.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,QAAkC,CAAC;AAE1E,eAAO,MAAM,iBAAiB,yeAsB7B,CAAC;AAEF,eAAO,MAAM,0BAA0B,wCAAoE,CAAC;AAE5G,eAAO,MAAM,4BAA4B,0CAAsE,CAAC;AAEhH,eAAO,MAAM,2BAA2B,yCAAoE,CAAC;AAE7G,sFAAsF;AACtF,eAAO,MAAM,iBAAiB,kcAkB7B,CAAC"}
1
+ {"version":3,"file":"mask-palette.d.ts","sourceRoot":"","sources":["../../src/renderers/mask-palette.ts"],"names":[],"mappings":"AAEA,4EAA4E;AAC5E,eAAO,MAAM,0BAA0B,QAAkC,CAAC;AAE1E,eAAO,MAAM,iBAAiB,spBA4B7B,CAAC;AAEF,eAAO,MAAM,0BAA0B,wCAAoE,CAAC;AAE5G,eAAO,MAAM,4BAA4B,0CAAsE,CAAC;AAEhH,eAAO,MAAM,2BAA2B,yCAAoE,CAAC;AAC7G,eAAO,MAAM,+BAA+B,6CAAwE,CAAC;AAErH,sFAAsF;AACtF,eAAO,MAAM,iBAAiB,0lBAuB7B,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare function computeMediaClahe(rgba: Uint8ClampedArray, width: number, height: number): {
2
+ luts: Uint8Array<ArrayBuffer>;
3
+ tilesX: number;
4
+ tilesY: number;
5
+ };
6
+ //# sourceMappingURL=media-clahe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-clahe.d.ts","sourceRoot":"","sources":["../../src/renderers/media-clahe.ts"],"names":[],"mappings":"AAIA,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,iBAAiB,EACvB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM;;;;EAwDf"}
@@ -1 +1 @@
1
- {"version":3,"file":"media-renderer-core.d.ts","sourceRoot":"","sources":["../../src/renderers/media-renderer-core.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EACV,kBAAkB,EAInB,MAAM,qBAAqB,CAAC;AAU7B,OAAO,EAIL,KAAK,aAAa,EAClB,KAAK,oBAAoB,EAE1B,MAAM,uBAAuB,CAAC;AAqC/B,OAAO,KAAK,EACV,kBAAkB,EAClB,yBAAyB,EAC1B,MAAM,wBAAwB,CAAC;AAOhC;;;;;;;GAOG;AACH,wBAAgB,sCAAsC,CACpD,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,MAAM,CASR;AAsBD,MAAM,WAAW,0BAA0B;IACzC,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC1E,WAAW,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;CAC9E;AAED,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,oBAAoB,EAC7B,SAAS,EAAE,0BAA0B,GACpC,OAAO,CAAC,aAAa,CAAC,CAi+CxB"}
1
+ {"version":3,"file":"media-renderer-core.d.ts","sourceRoot":"","sources":["../../src/renderers/media-renderer-core.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EACV,kBAAkB,EAInB,MAAM,qBAAqB,CAAC;AAU7B,OAAO,EAIL,KAAK,aAAa,EAClB,KAAK,oBAAoB,EAE1B,MAAM,uBAAuB,CAAC;AAqC/B,OAAO,KAAK,EACV,kBAAkB,EAClB,yBAAyB,EAC1B,MAAM,wBAAwB,CAAC;AAOhC;;;;;;;GAOG;AACH,wBAAgB,sCAAsC,CACpD,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,MAAM,CASR;AAsBD,MAAM,WAAW,0BAA0B;IACzC,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC1E,WAAW,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;CAC9E;AAED,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,oBAAoB,EAC7B,SAAS,EAAE,0BAA0B,GACpC,OAAO,CAAC,aAAa,CAAC,CAm+CxB"}
@@ -24,6 +24,7 @@ import type { PresentedFrameSource } from "./presented-frame-channel";
24
24
  import type { PreparedAnnotationWindowSnapshot } from "./prepared-annotation-window";
25
25
  import type { MediaRendererDisplay } from "#types/media-renderer-display";
26
26
  export interface MediaRendererSceneOptions {
27
+ readonly annotationAntialiasing?: MediaRendererPresentation["annotationAntialiasing"];
27
28
  readonly container: HTMLElement;
28
29
  readonly backgroundColor: MediaRendererPresentation["backgroundColor"];
29
30
  readonly fit: MediaRendererFit;
@@ -1 +1 @@
1
- {"version":3,"file":"media-renderer-scene.d.ts","sourceRoot":"","sources":["../../src/renderers/media-renderer-scene.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"media-renderer-scene.d.ts","sourceRoot":"","sources":["../../src/renderers/media-renderer-scene.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { Container, Filter } from "pixi.js";
2
+ import { type PixiSceneLayerSlot } from "./pixi-scene-layer-slot";
3
+ /** Keeps media pixels outside AA while retaining the scene's layer order. */
4
+ export declare function createPixiAnnotationAntialiasLayer(options: {
5
+ readonly Container: new () => Container;
6
+ readonly Filter: Pick<typeof Filter, "from">;
7
+ readonly defaultFilterVert: string;
8
+ readonly getEnabled: () => boolean;
9
+ }): {
10
+ getFxaaFilter(): Filter | null;
11
+ setResolution(resolution: number): void;
12
+ sync(scene: Container | undefined, slots: readonly PixiSceneLayerSlot[]): void;
13
+ destroy(): void;
14
+ };
15
+ //# sourceMappingURL=pixi-annotation-antialias-layer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pixi-annotation-antialias-layer.d.ts","sourceRoot":"","sources":["../../src/renderers/pixi-annotation-antialias-layer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjD,OAAO,EAGL,KAAK,kBAAkB,EACxB,MAAM,yBAAyB,CAAC;AAEjC,6EAA6E;AAC7E,wBAAgB,kCAAkC,CAAC,OAAO,EAAE;IAC1D,QAAQ,CAAC,SAAS,EAAE,UAAU,SAAS,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,MAAM,OAAO,CAAC;CACpC;qBAMoB,MAAM,GAAG,IAAI;8BAIJ,MAAM;gBAIpB,SAAS,GAAG,SAAS,SAAS,SAAS,kBAAkB,EAAE;;EAuD1E"}
@@ -0,0 +1,14 @@
1
+ import type { Filter as PixiFilter } from "pixi.js";
2
+ /** Smooths a captured annotation group without reading the media texture. */
3
+ export declare function createPixiAnnotationAntialiasFilter(options: {
4
+ readonly Filter: Pick<typeof PixiFilter, "from">;
5
+ readonly defaultFilterVert: string;
6
+ readonly resolution?: number;
7
+ readonly maskCoverage?: boolean;
8
+ }): PixiFilter;
9
+ /** Keeps Pixi's power-of-two capture textures within the backend's limit. */
10
+ export declare function resolvePixiAnnotationAntialiasResolution(outputResolution: number, viewport: {
11
+ readonly width: number;
12
+ readonly height: number;
13
+ }, maxTextureSize: number, captureScale?: 1 | 2): number;
14
+ //# sourceMappingURL=pixi-annotation-antialias.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pixi-annotation-antialias.d.ts","sourceRoot":"","sources":["../../src/renderers/pixi-annotation-antialias.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAgB,MAAM,SAAS,CAAC;AAGlE,6EAA6E;AAC7E,wBAAgB,mCAAmC,CAAC,OAAO,EAAE;IAC3D,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,UAAU,EAAE,MAAM,CAAC,CAAC;IACjD,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;CACjC,GAAG,UAAU,CA4Eb;AAED,6EAA6E;AAC7E,wBAAgB,wCAAwC,CACtD,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAC7D,cAAc,EAAE,MAAM,EACtB,YAAY,GAAE,CAAC,GAAG,CAAK,GACtB,MAAM,CAYR"}
@@ -1,9 +1,10 @@
1
- import { type AnnotationEditingEngine, type AnnotationOverlayStyle, type AnnotationVisibility, type DetectionFrame, type KeypointStyle, type Point, type PreviewOverlayData } from "supervision-js-core";
1
+ import { type AnnotationEditingEngine, type AnnotationOverlayStyle, type AnnotationVisibility, type DetectionFrame, type Detection, type KeypointStyle, type Point, type PreviewOverlayData, type Rect } from "supervision-js-core";
2
2
  import type { Graphics as PixiGraphics } from "pixi.js";
3
3
  export interface PixiAnnotationOverlayLayer {
4
4
  attachGraphics(graphics: PixiGraphics): void;
5
5
  setStyle(style: AnnotationOverlayStyle | null | undefined): void;
6
6
  setKeypointStyle(style: KeypointStyle | null | undefined): void;
7
+ getRenderedEditingBox(): PixiRenderedEditingBox | undefined;
7
8
  draw(context: {
8
9
  frame: DetectionFrame | undefined;
9
10
  selectedDetectionIds: readonly (string | number)[];
@@ -22,5 +23,9 @@ export interface PixiAnnotationOverlayLayer {
22
23
  now: number;
23
24
  }): void;
24
25
  }
26
+ export interface PixiRenderedEditingBox {
27
+ readonly detection: Detection;
28
+ readonly rect: Rect;
29
+ }
25
30
  export declare function createPixiAnnotationOverlayLayer(editingEngine?: AnnotationEditingEngine, initialStyle?: AnnotationOverlayStyle | null, initialKeypointStyle?: KeypointStyle | null): PixiAnnotationOverlayLayer;
26
31
  //# sourceMappingURL=pixi-annotation-overlay-layer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pixi-annotation-overlay-layer.d.ts","sourceRoot":"","sources":["../../src/renderers/pixi-annotation-overlay-layer.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,KAAK,uBAAuB,EAE5B,KAAK,sBAAsB,EAE3B,KAAK,oBAAoB,EAGzB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,KAAK,EACV,KAAK,kBAAkB,EACxB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,SAAS,CAAC;AAQxD,MAAM,WAAW,0BAA0B;IACzC,cAAc,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAC;IAC7C,QAAQ,CAAC,KAAK,EAAE,sBAAsB,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CAAC;IACjE,gBAAgB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CAAC;IAChE,IAAI,CAAC,OAAO,EAAE;QACZ,KAAK,EAAE,cAAc,GAAG,SAAS,CAAC;QAClC,oBAAoB,EAAE,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;QACnD,OAAO,EAAE,KAAK,GAAG,IAAI,CAAC;QACtB,OAAO,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,GAAG,IAAI,CAAC;QACxE,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,oBAAoB,CAAC;QAClC,cAAc,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;QAC3C,GAAG,EAAE,MAAM,CAAC;KACb,GAAG,IAAI,CAAC;CACV;AAED,wBAAgB,gCAAgC,CAC9C,aAAa,CAAC,EAAE,uBAAuB,EACvC,YAAY,CAAC,EAAE,sBAAsB,GAAG,IAAI,EAC5C,oBAAoB,CAAC,EAAE,aAAa,GAAG,IAAI,GAC1C,0BAA0B,CAyC5B"}
1
+ {"version":3,"file":"pixi-annotation-overlay-layer.d.ts","sourceRoot":"","sources":["../../src/renderers/pixi-annotation-overlay-layer.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,KAAK,uBAAuB,EAE5B,KAAK,sBAAsB,EAE3B,KAAK,oBAAoB,EAGzB,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,KAAK,EACV,KAAK,kBAAkB,EACvB,KAAK,IAAI,EACV,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,SAAS,CAAC;AAQxD,MAAM,WAAW,0BAA0B;IACzC,cAAc,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAC;IAC7C,QAAQ,CAAC,KAAK,EAAE,sBAAsB,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CAAC;IACjE,gBAAgB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CAAC;IAChE,qBAAqB,IAAI,sBAAsB,GAAG,SAAS,CAAC;IAC5D,IAAI,CAAC,OAAO,EAAE;QACZ,KAAK,EAAE,cAAc,GAAG,SAAS,CAAC;QAClC,oBAAoB,EAAE,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;QACnD,OAAO,EAAE,KAAK,GAAG,IAAI,CAAC;QACtB,OAAO,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,GAAG,IAAI,CAAC;QACxE,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,oBAAoB,CAAC;QAClC,cAAc,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;QAC3C,GAAG,EAAE,MAAM,CAAC;KACb,GAAG,IAAI,CAAC;CACV;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;CACrB;AAED,wBAAgB,gCAAgC,CAC9C,aAAa,CAAC,EAAE,uBAAuB,EACvC,YAAY,CAAC,EAAE,sBAAsB,GAAG,IAAI,EAC5C,oBAAoB,CAAC,EAAE,aAAa,GAAG,IAAI,GAC1C,0BAA0B,CA8C5B"}
@@ -1,7 +1,7 @@
1
1
  import { type BoxStyle } from "supervision-js-core";
2
2
  import type { BufferedDetectionTimeline } from "supervision-js-core";
3
3
  import type { DetectionFrame } from "supervision-js-core";
4
- import type { AnnotationStyleContext, Detection } from "supervision-js-core";
4
+ import type { AnnotationStyleContext, Detection, Rect } from "supervision-js-core";
5
5
  import type { Graphics as PixiGraphics } from "pixi.js";
6
6
  import type { Container as PixiContainer } from "pixi.js";
7
7
  export interface PixiBoxLayerState {
@@ -14,10 +14,15 @@ export interface PixiBoxLayerState {
14
14
  readonly activeDetectionCount: number;
15
15
  readonly activeDetectionIndexes: readonly number[];
16
16
  }
17
+ export interface PixiRenderedBoxFrame {
18
+ readonly frame: DetectionFrame;
19
+ readonly rects: ReadonlyMap<number, Rect>;
20
+ }
17
21
  export interface PixiBoxLayer {
18
22
  createContainer(): PixiContainer | undefined;
19
23
  attachGraphics(graphics: PixiGraphics): void;
20
24
  drawFrame(mediaTime: number, viewportScale?: number): PixiBoxLayerState;
25
+ getRenderedBoxes(): PixiRenderedBoxFrame | undefined;
21
26
  setBoxStyle(boxStyle: BoxStyle | null | undefined): void;
22
27
  invalidate(): void;
23
28
  invalidateDetection(id: string | number): void;
@@ -1 +1 @@
1
- {"version":3,"file":"pixi-box-layer.d.ts","sourceRoot":"","sources":["../../src/renderers/pixi-box-layer.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,QAAQ,EACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,sBAAsB,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,KAAK,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,SAAS,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,SAAS,CAAC;AAI1D,MAAM,WAAW,iBAAiB;IAChC;;yCAEqC;IACrC,QAAQ,CAAC,oBAAoB,EAAE,cAAc,GAAG,SAAS,CAAC;IAC1D,QAAQ,CAAC,wBAAwB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjD,QAAQ,CAAC,yBAAyB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClD,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,sBAAsB,EAAE,SAAS,MAAM,EAAE,CAAC;CACpD;AAED,MAAM,WAAW,YAAY;IAC3B,eAAe,IAAI,aAAa,GAAG,SAAS,CAAC;IAC7C,cAAc,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAC;IAC7C,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAAC;IACxE,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CAAC;IACzD,UAAU,IAAI,IAAI,CAAC;IACnB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC/C,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACxE;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE;IAC1C,QAAQ,CAAC,iBAAiB,EAAE,yBAAyB,CAAC;IACtD,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,SAAS,CAAC,EAAE,UAAU,aAAa,CAAC;IAC7C,QAAQ,CAAC,SAAS,CAAC,EAAE,aAAa,CAAC;IACnC,QAAQ,CAAC,QAAQ,CAAC,EAAE,UAAU,YAAY,CAAC;IAC3C,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAC7B,SAAS,EAAE,SAAS,KACjB,OAAO,CAAC,sBAAsB,CAAC,CAAC;CACtC,GAAG,YAAY,CA2If"}
1
+ {"version":3,"file":"pixi-box-layer.d.ts","sourceRoot":"","sources":["../../src/renderers/pixi-box-layer.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,QAAQ,EACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EACV,sBAAsB,EACtB,SAAS,EACT,IAAI,EACL,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,SAAS,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,SAAS,CAAC;AAI1D,MAAM,WAAW,iBAAiB;IAChC;;yCAEqC;IACrC,QAAQ,CAAC,oBAAoB,EAAE,cAAc,GAAG,SAAS,CAAC;IAC1D,QAAQ,CAAC,wBAAwB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjD,QAAQ,CAAC,yBAAyB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClD,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,sBAAsB,EAAE,SAAS,MAAM,EAAE,CAAC;CACpD;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,YAAY;IAC3B,eAAe,IAAI,aAAa,GAAG,SAAS,CAAC;IAC7C,cAAc,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAC;IAC7C,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAAC;IACxE,gBAAgB,IAAI,oBAAoB,GAAG,SAAS,CAAC;IACrD,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CAAC;IACzD,UAAU,IAAI,IAAI,CAAC;IACnB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC/C,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACxE;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE;IAC1C,QAAQ,CAAC,iBAAiB,EAAE,yBAAyB,CAAC;IACtD,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,SAAS,CAAC,EAAE,UAAU,aAAa,CAAC;IAC7C,QAAQ,CAAC,SAAS,CAAC,EAAE,aAAa,CAAC;IACnC,QAAQ,CAAC,QAAQ,CAAC,EAAE,UAAU,YAAY,CAAC;IAC3C,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAC7B,SAAS,EAAE,SAAS,KACjB,OAAO,CAAC,sBAAsB,CAAC,CAAC;CACtC,GAAG,YAAY,CAuKf"}
@@ -0,0 +1,6 @@
1
+ import type { Renderer } from "pixi.js";
2
+ type PixiFilterResources = Pick<typeof import("pixi.js"), "MaskFilter" | "UniformGroup">;
3
+ /** Keeps nested mask cutouts aligned and filter disposal scene-owned. */
4
+ export declare function installPixiFilterBindings(pixi: PixiFilterResources, renderer: Renderer): () => void;
5
+ export {};
6
+ //# sourceMappingURL=pixi-filter-bindings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pixi-filter-bindings.d.ts","sourceRoot":"","sources":["../../src/renderers/pixi-filter-bindings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAMV,QAAQ,EAET,MAAM,SAAS,CAAC;AAEjB,KAAK,mBAAmB,GAAG,IAAI,CAC7B,cAAc,SAAS,CAAC,EACxB,YAAY,GAAG,cAAc,CAC9B,CAAC;AAIF,yEAAyE;AACzE,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,mBAAmB,EACzB,QAAQ,EAAE,QAAQ,GACjB,MAAM,IAAI,CAgEZ"}
@@ -0,0 +1,17 @@
1
+ import type { InjectedMeshConstructor, InjectedMeshGeometryConstructor, InjectedShaderFactory } from "./injected-pixi";
2
+ import type { PixiFocusHeatmapArtifact } from "./pixi-focus-layer";
3
+ import type { Mesh, MeshGeometry, Shader } from "pixi.js";
4
+ type HeatmapCutoutMesh = Mesh<MeshGeometry, Shader>;
5
+ /** Follows visible heatmap samples while preserving faint anomaly interiors. */
6
+ export declare function createPixiFocusHeatmapCutout(options: {
7
+ readonly artifact: PixiFocusHeatmapArtifact;
8
+ readonly Mesh: InjectedMeshConstructor<HeatmapCutoutMesh>;
9
+ readonly MeshGeometry: InjectedMeshGeometryConstructor;
10
+ readonly Shader: InjectedShaderFactory;
11
+ }): {
12
+ display: HeatmapCutoutMesh;
13
+ render(artifact: PixiFocusHeatmapArtifact, antialiasing?: boolean): void;
14
+ destroy(): void;
15
+ };
16
+ export {};
17
+ //# sourceMappingURL=pixi-focus-heatmap-cutout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pixi-focus-heatmap-cutout.d.ts","sourceRoot":"","sources":["../../src/renderers/pixi-focus-heatmap-cutout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,+BAA+B,EAC/B,qBAAqB,EACtB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAgB,MAAM,SAAS,CAAC;AAExE,KAAK,iBAAiB,GAAG,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;AAEpD,gFAAgF;AAChF,wBAAgB,4BAA4B,CAAC,OAAO,EAAE;IACpD,QAAQ,CAAC,QAAQ,EAAE,wBAAwB,CAAC;IAC5C,QAAQ,CAAC,IAAI,EAAE,uBAAuB,CAAC,iBAAiB,CAAC,CAAC;IAC1D,QAAQ,CAAC,YAAY,EAAE,+BAA+B,CAAC;IACvD,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;CACxC;;qBA2BoB,wBAAwB;;EAoB5C"}
@@ -1,7 +1,9 @@
1
+ import { type PixiRectangleConstructor, type PixiViewportBounds } from "./pixi-mask-viewport";
1
2
  import type { PreparedIdMaskFrame } from "#render-preparation/mask-frame-artifact";
2
3
  import type { FocusStyle } from "supervision-js-core";
4
+ import type { HeatmapAnnotationRenderer, Rect } from "supervision-js-core";
3
5
  import type { DetectionPickResult } from "supervision-js-core";
4
- import type { Container as PixiContainer, ImageSource as PixiImageSource, Mesh as PixiMesh, MeshGeometry as PixiMeshGeometry, Shader as PixiShader, Texture as PixiTexture, UniformGroup as PixiUniformGroup } from "pixi.js";
6
+ import type { AlphaMask as PixiAlphaMask, Container as PixiContainer, ImageSource as PixiImageSource, Mesh as PixiMesh, MeshGeometry as PixiMeshGeometry, Shader as PixiShader, Texture as PixiTexture, Rectangle as PixiRectangle, UniformGroup as PixiUniformGroup } from "pixi.js";
5
7
  type PixiFocusMesh = PixiMesh<PixiMeshGeometry, PixiShader>;
6
8
  type GraphicsConstructor = new () => PixiFocusGraphics;
7
9
  type ContainerConstructor = new () => PixiContainer;
@@ -53,6 +55,7 @@ type UniformGroupConstructor = new (uniforms: Record<string, {
53
55
  value: Float32Array;
54
56
  }>) => PixiUniformGroup;
55
57
  type PixiFocusGraphics = {
58
+ boundsArea?: PixiRectangle;
56
59
  visible: boolean;
57
60
  clear(): PixiFocusGraphics;
58
61
  cut(): unknown;
@@ -69,6 +72,11 @@ export interface PixiFocusMaskArtifact {
69
72
  readonly frame: PreparedIdMaskFrame;
70
73
  readonly texture: PixiTexture;
71
74
  }
75
+ export interface PixiFocusHeatmapArtifact {
76
+ readonly detectionIndex: number;
77
+ readonly bounds: Rect;
78
+ readonly texture: PixiTexture;
79
+ }
72
80
  export interface PixiFocusLayerFrameContext {
73
81
  readonly frame: FocusDrawFrame | undefined;
74
82
  /**
@@ -79,6 +87,7 @@ export interface PixiFocusLayerFrameContext {
79
87
  readonly heldMaskFrameTime?: number | null;
80
88
  readonly hoveredPick: DetectionPickResult | null;
81
89
  readonly idMaskArtifact?: PixiFocusMaskArtifact | null;
90
+ readonly heatmapArtifacts?: readonly PixiFocusHeatmapArtifact[];
82
91
  readonly isMaskArtifactOwed?: boolean;
83
92
  readonly mediaTime: number;
84
93
  readonly selectedPick: DetectionPickResult | null;
@@ -91,19 +100,27 @@ export interface PixiFocusLayer {
91
100
  readonly height: number;
92
101
  }): PixiContainer | PixiFocusGraphics;
93
102
  drawFrame(context: PixiFocusLayerFrameContext): void;
103
+ syncViewportBounds(): void;
94
104
  releaseMaskTexture(texture: PixiTexture): void;
95
105
  tick(timestamp: number): void;
96
106
  setFocusStyle(focusStyle: FocusStyle | null | undefined): void;
97
107
  destroy(): void;
98
108
  }
99
109
  export declare function createPixiFocusLayer(options: {
110
+ readonly AlphaMask?: new (options: {
111
+ mask: PixiContainer;
112
+ }) => PixiAlphaMask;
100
113
  readonly Container?: ContainerConstructor;
101
114
  readonly Graphics: GraphicsConstructor;
115
+ readonly Rectangle?: PixiRectangleConstructor;
102
116
  readonly ImageSource?: ImageSourceConstructor;
103
117
  readonly Mesh?: MeshConstructor;
104
118
  readonly MeshGeometry?: MeshGeometryConstructor;
105
119
  readonly Shader?: ShaderFactory;
106
120
  readonly UniformGroup?: UniformGroupConstructor;
121
+ readonly getHeatmapRenderers?: () => readonly HeatmapAnnotationRenderer[];
122
+ readonly getAnnotationAntialiasing?: () => boolean;
123
+ readonly getViewportBounds?: () => PixiViewportBounds | undefined;
107
124
  readonly focusStyle?: FocusStyle | null;
108
125
  readonly isDetectionVisible?: (detection: DetectionPickResult["detection"]) => boolean;
109
126
  }): PixiFocusLayer;
@@ -1 +1 @@
1
- {"version":3,"file":"pixi-focus-layer.d.ts","sourceRoot":"","sources":["../../src/renderers/pixi-focus-layer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pixi-focus-layer.d.ts","sourceRoot":"","sources":["../../src/renderers/pixi-focus-layer.ts"],"names":[],"mappings":"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"}