@flighthq/render 0.5.1-next.731.0ae0aa4 → 0.5.1-next.799.62ef0c7

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.
package/README.md CHANGED
@@ -13,5 +13,5 @@ Import the supported application-facing API from `@flighthq/render`. 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/render@0.5.1-next.731.0ae0aa4](https://github.com/flighthq/flight/tree/0ae0aa49d8251d23b546f64bc242f3ad59a98dcb/packages/render)
17
- - [License](https://github.com/flighthq/flight/blob/0ae0aa49d8251d23b546f64bc242f3ad59a98dcb/LICENSE.md)
16
+ - [Source for @flighthq/render@0.5.1-next.799.62ef0c7](https://github.com/flighthq/flight/tree/62ef0c74f09f24177aac3695b2487b2d743d4fe6/packages/render)
17
+ - [License](https://github.com/flighthq/flight/blob/62ef0c74f09f24177aac3695b2487b2d743d4fe6/LICENSE.md)
@@ -1 +1 @@
1
- {"version":3,"file":"raster2DSurface.d.ts","sourceRoot":"","sources":["../src/raster2DSurface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAE7G,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAK3F;AAKD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAKrE;AAED,wBAAgB,8BAA8B,IAAI,kBAAkB,CAQnE;AAED,wBAAgB,0BAA0B,IAAI,QAAQ,CAAC,uBAAuB,CAAC,CAE9E;AAED,wBAAgB,8BAA8B,IAAI,OAAO,CAExD;AAED,wBAAgB,kCAAkC,CAAC,QAAQ,EAAE,QAAQ,CAAC,uBAAuB,CAAC,GAAG,IAAI,CAMpG;AAED,wBAAgB,mCAAmC,IAAI,IAAI,CAI1D;AAED,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,QAAQ,CAAC,uBAAuB,CAAC,GAAG,IAAI,GAAG,IAAI,CAEnG"}
1
+ {"version":3,"file":"raster2DSurface.d.ts","sourceRoot":"","sources":["../src/raster2DSurface.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAU,eAAe,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAErH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAK3F;AAKD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAKrE;AAED,wBAAgB,8BAA8B,IAAI,kBAAkB,CAQnE;AAED,wBAAgB,0BAA0B,IAAI,QAAQ,CAAC,uBAAuB,CAAC,CAE9E;AAED,wBAAgB,8BAA8B,IAAI,OAAO,CAExD;AAED,wBAAgB,kCAAkC,CAAC,QAAQ,EAAE,QAAQ,CAAC,uBAAuB,CAAC,GAAG,IAAI,CAMpG;AAED,wBAAgB,mCAAmC,IAAI,IAAI,CAI1D;AAED,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,QAAQ,CAAC,uBAAuB,CAAC,GAAG,IAAI,GAAG,IAAI,CAEnG"}
@@ -1,3 +1,4 @@
1
+ import { createEntity } from '@flighthq/entity/contract';
1
2
  export function createRaster2DSurface(width, height) {
2
3
  const provider = getRaster2DSurfaceProvider();
3
4
  const surface = provider.createRaster2DSurface(width, height);
@@ -46,12 +47,12 @@ export function resetRaster2DSurfaceProviderForTest() {
46
47
  export function setRaster2DSurfaceProvider(provider) {
47
48
  _custom = provider;
48
49
  }
49
- const _sentinel = {
50
+ const _sentinel = createEntity({
50
51
  createRaster2DSurface() {
51
52
  return null;
52
53
  },
53
54
  destroyRaster2DSurface() { },
54
- };
55
+ });
55
56
  const _surfaceProviders = new WeakMap();
56
57
  let _custom = null;
57
58
  let _host = null;
@@ -1 +1 @@
1
- {"version":3,"file":"raster2DSurface.js","sourceRoot":"","sources":["../src/raster2DSurface.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,qBAAqB,CAAC,KAAa,EAAE,MAAc;IACjE,MAAM,QAAQ,GAAG,0BAA0B,EAAE,CAAC;IAC9C,MAAM,OAAO,GAAG,QAAQ,CAAC,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC9D,IAAI,OAAO,KAAK,IAAI;QAAE,iBAAiB,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC/D,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,sGAAsG;AACtG,uGAAuG;AACvG,8EAA8E;AAC9E,MAAM,UAAU,sBAAsB,CAAC,OAAwB;IAC7D,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAChD,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO;IACnC,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClC,QAAQ,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,8BAA8B;IAC5C,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;IAChG,CAAC;IACD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;IAC9F,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;AAClG,CAAC;AAED,MAAM,UAAU,0BAA0B;IACxC,OAAO,OAAO,IAAI,KAAK,IAAI,SAAS,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,8BAA8B;IAC5C,OAAO,KAAK,KAAK,IAAI,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,kCAAkC,CAAC,QAA2C;IAC5F,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,IAAI,KAAK,KAAK,QAAQ;YAAE,aAAa,GAAG,IAAI,CAAC;QAC7C,OAAO;IACT,CAAC;IACD,KAAK,GAAG,QAAQ,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,mCAAmC;IACjD,OAAO,GAAG,IAAI,CAAC;IACf,KAAK,GAAG,IAAI,CAAC;IACb,aAAa,GAAG,KAAK,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,QAAkD;IAC3F,OAAO,GAAG,QAAQ,CAAC;AACrB,CAAC;AAED,MAAM,SAAS,GAAsC;IACnD,qBAAqB;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,sBAAsB,KAAI,CAAC;CAC5B,CAAC;AAEF,MAAM,iBAAiB,GAAG,IAAI,OAAO,EAAsD,CAAC;AAC5F,IAAI,OAAO,GAA6C,IAAI,CAAC;AAC7D,IAAI,KAAK,GAA6C,IAAI,CAAC;AAC3D,IAAI,aAAa,GAAG,KAAK,CAAC"}
1
+ {"version":3,"file":"raster2DSurface.js","sourceRoot":"","sources":["../src/raster2DSurface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,MAAM,UAAU,qBAAqB,CAAC,KAAa,EAAE,MAAc;IACjE,MAAM,QAAQ,GAAG,0BAA0B,EAAE,CAAC;IAC9C,MAAM,OAAO,GAAG,QAAQ,CAAC,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC9D,IAAI,OAAO,KAAK,IAAI;QAAE,iBAAiB,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC/D,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,sGAAsG;AACtG,uGAAuG;AACvG,8EAA8E;AAC9E,MAAM,UAAU,sBAAsB,CAAC,OAAwB;IAC7D,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAChD,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO;IACnC,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClC,QAAQ,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,8BAA8B;IAC5C,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;IAChG,CAAC;IACD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;IAC9F,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;AAClG,CAAC;AAED,MAAM,UAAU,0BAA0B;IACxC,OAAO,OAAO,IAAI,KAAK,IAAI,SAAS,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,8BAA8B;IAC5C,OAAO,KAAK,KAAK,IAAI,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,kCAAkC,CAAC,QAA2C;IAC5F,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,IAAI,KAAK,KAAK,QAAQ;YAAE,aAAa,GAAG,IAAI,CAAC;QAC7C,OAAO;IACT,CAAC;IACD,KAAK,GAAG,QAAQ,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,mCAAmC;IACjD,OAAO,GAAG,IAAI,CAAC;IACf,KAAK,GAAG,IAAI,CAAC;IACb,aAAa,GAAG,KAAK,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,QAAkD;IAC3F,OAAO,GAAG,QAAQ,CAAC;AACrB,CAAC;AAED,MAAM,SAAS,GAAsC,YAAY,CAA8C;IAC7G,qBAAqB;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,sBAAsB,KAAI,CAAC;CAC5B,CAAC,CAAC;AAEH,MAAM,iBAAiB,GAAG,IAAI,OAAO,EAAsD,CAAC;AAC5F,IAAI,OAAO,GAA6C,IAAI,CAAC;AAC7D,IAAI,KAAK,GAA6C,IAAI,CAAC;AAC3D,IAAI,aAAa,GAAG,KAAK,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"renderCache.d.ts","sourceRoot":"","sources":["../src/renderCache.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,kBAAkB,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACnH,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAK3D,OAAO,EAAE,eAAe,EAAE,CAAC;AAE3B;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,WAAW,CAE/C;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,GAAE,WAAW,GAAG,IAAW,GAAG,kBAAkB,CAmB7F;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAEjF;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,GAAG,WAAW,GAAG,IAAI,CAG9F;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,WAAW,CAEpE;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,kBAAkB,CAOhF;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAExF;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,GAAG,kBAAkB,CAS7G"}
1
+ {"version":3,"file":"renderCache.d.ts","sourceRoot":"","sources":["../src/renderCache.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACX,kBAAkB,EAClB,QAAQ,EAER,WAAW,EACZ,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAK3D,OAAO,EAAE,eAAe,EAAE,CAAC;AAE3B;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,WAAW,CAE/C;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,GAAE,WAAW,GAAG,IAAW,GAAG,kBAAkB,CAsB7F;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAEjF;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,GAAG,WAAW,GAAG,IAAI,CAG9F;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,WAAW,CAEpE;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,kBAAkB,CAOhF;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAExF;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,GAAG,kBAAkB,CAS7G"}
@@ -19,7 +19,10 @@ export function createRenderCache() {
19
19
  * traversed. Returns null from `adapt` (renders normally) until a cache is attached.
20
20
  */
21
21
  export function createRenderCacheAdapter(cache = null) {
22
- const adapter = {
22
+ // Built through createEntity like createRenderCache above it, so the adapter carries the standard
23
+ // runtime slot. `adapt` closes over `adapter` rather than `this`: createEntity returns the same
24
+ // object it was given, and the closure only runs long after construction.
25
+ const adapter = createEntity({
23
26
  cache,
24
27
  signals: null,
25
28
  adapt(_state, _source, node) {
@@ -35,7 +38,7 @@ export function createRenderCacheAdapter(cache = null) {
35
38
  multiplyMatrix(node.transform2D, node.transform2D, attached.transform);
36
39
  return false;
37
40
  },
38
- };
41
+ });
39
42
  return adapter;
40
43
  }
41
44
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"renderCache.js","sourceRoot":"","sources":["../src/renderCache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"renderCache.js","sourceRoot":"","sources":["../src/renderCache.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,5 @@
1
1
  import type { Renderable, RenderProxy2D, RenderProxyAdapter, RenderState } from '@flighthq/types/contract';
2
- export declare function applyRenderProxyAdapter(state: RenderState, source: Renderable, data: RenderProxy2D & {
3
- traverseChildren: boolean;
4
- }): void;
2
+ export declare function applyRenderProxyAdapter(state: RenderState, source: Renderable, data: RenderProxy2D): void;
5
3
  export declare function getRenderProxyAdapter(state: RenderState, source: Renderable): RenderProxyAdapter | null;
6
4
  export declare function setRenderProxyAdapter(state: RenderState, source: Renderable, adapter: RenderProxyAdapter | null): void;
7
5
  //# sourceMappingURL=renderProxyAdapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderProxyAdapter.d.ts","sourceRoot":"","sources":["../src/renderProxyAdapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAQ,UAAU,EAAE,aAAa,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAKjH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,aAAa,GAAG;IAAE,gBAAgB,EAAE,OAAO,CAAA;CAAE,GAClD,IAAI,CAWN;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,GAAG,kBAAkB,GAAG,IAAI,CAEvG;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,kBAAkB,GAAG,IAAI,GACjC,IAAI,CAWN"}
1
+ {"version":3,"file":"renderProxyAdapter.d.ts","sourceRoot":"","sources":["../src/renderProxyAdapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAQ,UAAU,EAAE,aAAa,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAKjH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI,CAWzG;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,GAAG,kBAAkB,GAAG,IAAI,CAEvG;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,kBAAkB,GAAG,IAAI,GACjC,IAAI,CAWN"}
@@ -1 +1 @@
1
- {"version":3,"file":"renderProxyAdapter.js","sourceRoot":"","sources":["../src/renderProxyAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAGnE,OAAO,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAClF,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAEtD,MAAM,UAAU,uBAAuB,CACrC,KAAkB,EAClB,MAAkB,EAClB,IAAmD;IAEnD,MAAM,aAAa,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;IAC7F,IAAI,gBAAgB,GAAG,IAAI,CAAC;IAC5B,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QACxD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,gBAAgB,GAAG,MAAM,CAAC;YAC1B,yBAAyB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IACD,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAkB,EAAE,MAAkB;IAC1E,OAAO,qBAAqB,CAAC,KAAK,CAAC,CAAC,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;AAChF,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,KAAkB,EAClB,MAAkB,EAClB,OAAkC;IAElC,IAAI,qBAAqB,CAAC,KAAK,CAAC,CAAC,eAAe,KAAK,uBAAuB,EAAE,CAAC;QAC7E,sBAAsB,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;IACzD,CAAC;IACD,MAAM,OAAO,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAC7C,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO,CAAC,qBAAqB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,qBAAqB,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IACD,wBAAwB,CAAC,MAAc,CAAC,CAAC;AAC3C,CAAC"}
1
+ {"version":3,"file":"renderProxyAdapter.js","sourceRoot":"","sources":["../src/renderProxyAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAGnE,OAAO,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAClF,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAEtD,MAAM,UAAU,uBAAuB,CAAC,KAAkB,EAAE,MAAkB,EAAE,IAAmB;IACjG,MAAM,aAAa,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;IAC7F,IAAI,gBAAgB,GAAG,IAAI,CAAC;IAC5B,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QACxD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,gBAAgB,GAAG,MAAM,CAAC;YAC1B,yBAAyB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IACD,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAkB,EAAE,MAAkB;IAC1E,OAAO,qBAAqB,CAAC,KAAK,CAAC,CAAC,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;AAChF,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,KAAkB,EAClB,MAAkB,EAClB,OAAkC;IAElC,IAAI,qBAAqB,CAAC,KAAK,CAAC,CAAC,eAAe,KAAK,uBAAuB,EAAE,CAAC;QAC7E,sBAAsB,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;IACzD,CAAC;IACD,MAAM,OAAO,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAC7C,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO,CAAC,qBAAqB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,qBAAqB,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IACD,wBAAwB,CAAC,MAAc,CAAC,CAAC;AAC3C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"renderQueue.d.ts","sourceRoot":"","sources":["../src/renderQueue.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,UAAU,EACV,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,WAAW,EACZ,MAAM,0BAA0B,CAAC;AAWlC,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,WAAW,GAAG,IAAI,CA0B/F;AAID,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAEzD;AAGD,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAE1F;AAID,wBAAgB,iBAAiB,IAAI,WAAW,CAE/C;AAUD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,GAAG,aAAa,CAKrG;AAID,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,CAQzG;AAMD,wBAAgB,eAAe,CAC7B,KAAK,EAAE,WAAW,EAClB,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,gBAAgB,KAAK,MAAM,GAC7D,IAAI,CAON"}
1
+ {"version":3,"file":"renderQueue.d.ts","sourceRoot":"","sources":["../src/renderQueue.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,UAAU,EACV,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,WAAW,EACZ,MAAM,0BAA0B,CAAC;AAWlC,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,WAAW,GAAG,IAAI,CA0B/F;AAID,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAEzD;AAGD,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAE1F;AAID,wBAAgB,iBAAiB,IAAI,WAAW,CAE/C;AAUD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,GAAG,aAAa,CAKrG;AAID,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,CAQzG;AAMD,wBAAgB,eAAe,CAC7B,KAAK,EAAE,WAAW,EAClB,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,gBAAgB,KAAK,MAAM,GAC7D,IAAI,CAON"}
@@ -1,3 +1,4 @@
1
+ import { createEntity } from '@flighthq/entity/contract';
1
2
  import { getNodeRuntime } from '@flighthq/node/contract';
2
3
  import { getRenderStateRuntime } from './renderState';
3
4
  // Fills `out` by walking the prepared subtree rooted at `source` and pushing one entry per visible
@@ -48,7 +49,7 @@ export function compareRenderQueueEntries(a, b) {
48
49
  // Creates a new empty RenderQueue. The entries array is pre-allocated empty; entries grow as
49
50
  // pushRenderQueueEntry or buildRenderQueue populates it. Cleared between frames by clearRenderQueue.
50
51
  export function createRenderQueue() {
51
- return { entries: [], entryCount: 0 };
52
+ return createEntity({ entries: [], entryCount: 0 });
52
53
  }
53
54
  // Packs a layer index, a normalized depth (0..1), and an opaque flag into a single sort key
54
55
  // float. Layer is the most-significant axis; within a layer, opaque geometry sorts before
@@ -1 +1 @@
1
- {"version":3,"file":"renderQueue.js","sourceRoot":"","sources":["../src/renderQueue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"renderQueue.js","sourceRoot":"","sources":["../src/renderQueue.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"renderViewport.d.ts","sourceRoot":"","sources":["../src/renderViewport.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,gBAAgB,EAAiB,MAAM,0BAA0B,CAAC;AAKlH,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,GAAG,GAAG,GAAG,GAAG,OAAO,GAAG,QAAQ,CAAC,EACpD,MAAM,EAAE,OAAO,GACd,OAAO,CAQT;AAGD,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAE5G;AAOD,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EACpC,iBAAiB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,GAC1C,OAAO,CAoBT;AAID,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,QAAQ,CAAC,aAAa,CAAC,EAC9B,QAAQ,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EACpC,iBAAiB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,GAC1C,OAAO,CAET"}
1
+ {"version":3,"file":"renderViewport.d.ts","sourceRoot":"","sources":["../src/renderViewport.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,gBAAgB,EAAiB,MAAM,0BAA0B,CAAC;AAKlH,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,GAAG,GAAG,GAAG,GAAG,OAAO,GAAG,QAAQ,CAAC,EACpD,MAAM,EAAE,OAAO,GACd,OAAO,CAQT;AAGD,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAE5G;AAOD,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EACpC,iBAAiB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,GAC1C,OAAO,CAoBT;AAID,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,QAAQ,CAAC,aAAa,CAAC,EAC9B,QAAQ,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EACpC,iBAAiB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,GAC1C,OAAO,CAET"}
@@ -1,3 +1,4 @@
1
+ import { createEntity } from '@flighthq/entity/contract';
1
2
  import { createRectangle, matrixTransformRectangle } from '@flighthq/geometry/contract';
2
3
  import { getNodeWorldBoundsRectangle } from '@flighthq/node/contract';
3
4
  // Writes the world-space axis-aligned bounding box of `source` into `out`. Returns true when
@@ -15,7 +16,7 @@ export function computeRenderProxyWorldBounds(out, source) {
15
16
  }
16
17
  // Allocates and returns a new RenderViewport2D with the given screen-space region.
17
18
  export function createRenderViewport2D(x, y, width, height) {
18
- return { height, width, x, y };
19
+ return createEntity({ height, width, x, y });
19
20
  }
20
21
  // Returns true when `source` may be visible within `viewport`. Conservative: returns true when
21
22
  // the source carries no spatial traits (bounds unknown). When spatial bounds are available, uses
@@ -1 +1 @@
1
- {"version":3,"file":"renderViewport.js","sourceRoot":"","sources":["../src/renderViewport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACxF,OAAO,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAGtE,6FAA6F;AAC7F,0FAA0F;AAC1F,mDAAmD;AACnD,MAAM,UAAU,6BAA6B,CAC3C,GAAoD,EACpD,MAAe;IAEf,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3C,MAAM,WAAW,GAAG,2BAA2B,CAAC,MAAM,CAAC,CAAC;IACxD,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;IACtB,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;IACtB,GAAG,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;IAC9B,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;IAChC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,sBAAsB,CAAC,CAAS,EAAE,CAAS,EAAE,KAAa,EAAE,MAAc;IACxF,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACjC,CAAC;AAED,+FAA+F;AAC/F,iGAAiG;AACjG,+FAA+F;AAC/F,6FAA6F;AAC7F,yDAAyD;AACzD,MAAM,UAAU,sBAAsB,CACpC,MAAe,EACf,QAAoC,EACpC,iBAA2C;IAE3C,IAAI,CAAC,6BAA6B,CAAC,cAAc,EAAE,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IAExE,IAAI,MAAM,GAAG,cAAc,CAAC;IAC5B,IAAI,iBAAiB,IAAI,IAAI,EAAE,CAAC;QAC9B,wBAAwB,CAAC,mBAAmB,EAAE,iBAAiB,EAAE,cAAc,CAAC,CAAC;QACjF,MAAM,GAAG,mBAAmB,CAAC;IAC/B,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC;IACzB,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC;IACzB,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;IACxC,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;IAEzC,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC;IAC1B,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC;IAC1B,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;IAC3C,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;IAE5C,OAAO,CAAC,CAAC,OAAO,GAAG,MAAM,IAAI,OAAO,GAAG,MAAM,IAAI,OAAO,GAAG,MAAM,IAAI,OAAO,GAAG,MAAM,CAAC,CAAC;AACzF,CAAC;AAED,6FAA6F;AAC7F,mDAAmD;AACnD,MAAM,UAAU,uBAAuB,CACrC,KAA8B,EAC9B,QAAoC,EACpC,iBAA2C;IAE3C,OAAO,sBAAsB,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC;AAC3E,CAAC;AAED,sGAAsG;AACtG,gGAAgG;AAChG,wEAAwE;AACxE,SAAS,eAAe,CAAC,MAAe;IACtC,OAAO,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,QAAQ,IAAI,MAAM,IAAI,OAAO,IAAI,MAAM,CAAC;AAClG,CAAC;AAED,oGAAoG;AACpG,MAAM,cAAc,GAAG,eAAe,EAAE,CAAC;AACzC,MAAM,mBAAmB,GAAG,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"renderViewport.js","sourceRoot":"","sources":["../src/renderViewport.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flighthq/render",
3
- "version": "0.5.1-next.731.0ae0aa4",
3
+ "version": "0.5.1-next.799.62ef0c7",
4
4
  "author": "Joshua Granick and other contributors",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -38,17 +38,17 @@
38
38
  "clean:dist": "tsx ../../scripts/clean-package-dist.ts"
39
39
  },
40
40
  "dependencies": {
41
- "@flighthq/adjustments": "0.5.1-next.731.0ae0aa4",
42
- "@flighthq/color": "0.5.1-next.731.0ae0aa4",
43
- "@flighthq/entity": "0.5.1-next.731.0ae0aa4",
44
- "@flighthq/geometry": "0.5.1-next.731.0ae0aa4",
45
- "@flighthq/log": "0.5.1-next.731.0ae0aa4",
46
- "@flighthq/materials": "0.5.1-next.731.0ae0aa4",
47
- "@flighthq/mesh": "0.5.1-next.731.0ae0aa4",
48
- "@flighthq/node": "0.5.1-next.731.0ae0aa4",
49
- "@flighthq/registry": "0.5.1-next.731.0ae0aa4",
50
- "@flighthq/signals": "0.5.1-next.731.0ae0aa4",
51
- "@flighthq/types": "0.5.1-next.731.0ae0aa4"
41
+ "@flighthq/adjustments": "0.5.1-next.799.62ef0c7",
42
+ "@flighthq/color": "0.5.1-next.799.62ef0c7",
43
+ "@flighthq/entity": "0.5.1-next.799.62ef0c7",
44
+ "@flighthq/geometry": "0.5.1-next.799.62ef0c7",
45
+ "@flighthq/log": "0.5.1-next.799.62ef0c7",
46
+ "@flighthq/materials": "0.5.1-next.799.62ef0c7",
47
+ "@flighthq/mesh": "0.5.1-next.799.62ef0c7",
48
+ "@flighthq/node": "0.5.1-next.799.62ef0c7",
49
+ "@flighthq/registry": "0.5.1-next.799.62ef0c7",
50
+ "@flighthq/signals": "0.5.1-next.799.62ef0c7",
51
+ "@flighthq/types": "0.5.1-next.799.62ef0c7"
52
52
  },
53
53
  "devDependencies": {
54
54
  "@flighthq/camera": "*",
@@ -1,4 +1,5 @@
1
- import type { Raster2DSurface } from '@flighthq/types/contract';
1
+ import { createEntity } from '@flighthq/entity/contract';
2
+ import type { Entity, Raster2DSurface, Raster2DSurfaceProvider } from '@flighthq/types/contract';
2
3
 
3
4
  import {
4
5
  createRaster2DSurface,
@@ -15,11 +16,15 @@ afterEach(() => {
15
16
  resetRaster2DSurfaceProviderForTest();
16
17
  });
17
18
 
19
+ function entityProvider(fields: Omit<Raster2DSurfaceProvider, keyof Entity>): Raster2DSurfaceProvider {
20
+ return createEntity(fields);
21
+ }
22
+
18
23
  describe('createRaster2DSurface', () => {
19
24
  it('passes exact dimensions through the selected provider and preserves its result', () => {
20
25
  const surface = {} as Raster2DSurface;
21
26
  const createSurface = vi.fn(() => surface);
22
- setRaster2DSurfaceProvider({ createRaster2DSurface: createSurface, destroyRaster2DSurface() {} });
27
+ setRaster2DSurfaceProvider(entityProvider({ createRaster2DSurface: createSurface, destroyRaster2DSurface() {} }));
23
28
 
24
29
  expect(createRaster2DSurface(30, 40)).toBe(surface);
25
30
  expect(createSurface).toHaveBeenCalledOnce();
@@ -27,7 +32,7 @@ describe('createRaster2DSurface', () => {
27
32
  });
28
33
 
29
34
  it('preserves provider refusal as expected absence', () => {
30
- setRaster2DSurfaceProvider({ createRaster2DSurface: () => null, destroyRaster2DSurface() {} });
35
+ setRaster2DSurfaceProvider(entityProvider({ createRaster2DSurface: () => null, destroyRaster2DSurface() {} }));
31
36
  expect(createRaster2DSurface(10, 20)).toBeNull();
32
37
  });
33
38
  });
@@ -38,16 +43,20 @@ describe('destroyRaster2DSurface', () => {
38
43
  const secondSurface = {} as Raster2DSurface;
39
44
  const firstDestroy = vi.fn();
40
45
  const secondDestroy = vi.fn();
41
- setRaster2DSurfaceProvider({
42
- createRaster2DSurface: () => firstSurface,
43
- destroyRaster2DSurface: firstDestroy,
44
- });
46
+ setRaster2DSurfaceProvider(
47
+ entityProvider({
48
+ createRaster2DSurface: () => firstSurface,
49
+ destroyRaster2DSurface: firstDestroy,
50
+ }),
51
+ );
45
52
  expect(createRaster2DSurface(10, 20)).toBe(firstSurface);
46
53
 
47
- setRaster2DSurfaceProvider({
48
- createRaster2DSurface: () => secondSurface,
49
- destroyRaster2DSurface: secondDestroy,
50
- });
54
+ setRaster2DSurfaceProvider(
55
+ entityProvider({
56
+ createRaster2DSurface: () => secondSurface,
57
+ destroyRaster2DSurface: secondDestroy,
58
+ }),
59
+ );
51
60
  expect(createRaster2DSurface(30, 40)).toBe(secondSurface);
52
61
 
53
62
  destroyRaster2DSurface(firstSurface);
@@ -60,10 +69,12 @@ describe('destroyRaster2DSurface', () => {
60
69
  it('is a no-op after the creator has destroyed the surface once', () => {
61
70
  const surface = {} as Raster2DSurface;
62
71
  const destroySurface = vi.fn();
63
- setRaster2DSurfaceProvider({
64
- createRaster2DSurface: () => surface,
65
- destroyRaster2DSurface: destroySurface,
66
- });
72
+ setRaster2DSurfaceProvider(
73
+ entityProvider({
74
+ createRaster2DSurface: () => surface,
75
+ destroyRaster2DSurface: destroySurface,
76
+ }),
77
+ );
67
78
  expect(createRaster2DSurface(10, 20)).toBe(surface);
68
79
 
69
80
  destroyRaster2DSurface(surface);
@@ -84,8 +95,8 @@ describe('explainRaster2DSurfaceProvider', () => {
84
95
  });
85
96
 
86
97
  it('reports a competing host installation without replacing the first host', () => {
87
- const first = { createRaster2DSurface: () => null, destroyRaster2DSurface() {} };
88
- const second = { createRaster2DSurface: () => null, destroyRaster2DSurface() {} };
98
+ const first = entityProvider({ createRaster2DSurface: () => null, destroyRaster2DSurface() {} });
99
+ const second = entityProvider({ createRaster2DSurface: () => null, destroyRaster2DSurface() {} });
89
100
  installRaster2DSurfaceHostProvider(first);
90
101
  installRaster2DSurfaceHostProvider(second);
91
102
 
@@ -101,8 +112,8 @@ describe('getRaster2DSurfaceProvider', () => {
101
112
  });
102
113
 
103
114
  it('selects a custom provider over the host provider', () => {
104
- const host = { createRaster2DSurface: () => null, destroyRaster2DSurface() {} };
105
- const custom = { createRaster2DSurface: () => null, destroyRaster2DSurface() {} };
115
+ const host = entityProvider({ createRaster2DSurface: () => null, destroyRaster2DSurface() {} });
116
+ const custom = entityProvider({ createRaster2DSurface: () => null, destroyRaster2DSurface() {} });
106
117
  installRaster2DSurfaceHostProvider(host);
107
118
  setRaster2DSurfaceProvider(custom);
108
119
 
@@ -112,18 +123,22 @@ describe('getRaster2DSurfaceProvider', () => {
112
123
 
113
124
  describe('hasRaster2DSurfaceHostProvider', () => {
114
125
  it('reports only the host slot', () => {
115
- setRaster2DSurfaceProvider({ createRaster2DSurface: () => null, destroyRaster2DSurface() {} });
126
+ setRaster2DSurfaceProvider(entityProvider({ createRaster2DSurface: () => null, destroyRaster2DSurface() {} }));
116
127
  expect(hasRaster2DSurfaceHostProvider()).toBe(false);
117
- installRaster2DSurfaceHostProvider({ createRaster2DSurface: () => null, destroyRaster2DSurface() {} });
128
+ installRaster2DSurfaceHostProvider(
129
+ entityProvider({ createRaster2DSurface: () => null, destroyRaster2DSurface() {} }),
130
+ );
118
131
  expect(hasRaster2DSurfaceHostProvider()).toBe(true);
119
132
  });
120
133
  });
121
134
 
122
135
  describe('installRaster2DSurfaceHostProvider', () => {
123
136
  it('keeps the first host provider', () => {
124
- const first = { createRaster2DSurface: () => null, destroyRaster2DSurface() {} };
137
+ const first = entityProvider({ createRaster2DSurface: () => null, destroyRaster2DSurface() {} });
125
138
  installRaster2DSurfaceHostProvider(first);
126
- installRaster2DSurfaceHostProvider({ createRaster2DSurface: () => null, destroyRaster2DSurface() {} });
139
+ installRaster2DSurfaceHostProvider(
140
+ entityProvider({ createRaster2DSurface: () => null, destroyRaster2DSurface() {} }),
141
+ );
127
142
 
128
143
  expect(getRaster2DSurfaceProvider()).toBe(first);
129
144
  });
@@ -131,9 +146,13 @@ describe('installRaster2DSurfaceHostProvider', () => {
131
146
 
132
147
  describe('resetRaster2DSurfaceProviderForTest', () => {
133
148
  it('clears custom, host, and conflict state', () => {
134
- installRaster2DSurfaceHostProvider({ createRaster2DSurface: () => null, destroyRaster2DSurface() {} });
135
- installRaster2DSurfaceHostProvider({ createRaster2DSurface: () => null, destroyRaster2DSurface() {} });
136
- setRaster2DSurfaceProvider({ createRaster2DSurface: () => null, destroyRaster2DSurface() {} });
149
+ installRaster2DSurfaceHostProvider(
150
+ entityProvider({ createRaster2DSurface: () => null, destroyRaster2DSurface() {} }),
151
+ );
152
+ installRaster2DSurfaceHostProvider(
153
+ entityProvider({ createRaster2DSurface: () => null, destroyRaster2DSurface() {} }),
154
+ );
155
+ setRaster2DSurfaceProvider(entityProvider({ createRaster2DSurface: () => null, destroyRaster2DSurface() {} }));
137
156
 
138
157
  resetRaster2DSurfaceProviderForTest();
139
158
 
@@ -146,9 +165,11 @@ describe('setRaster2DSurfaceProvider', () => {
146
165
  it('reveals the host provider again when custom is cleared', () => {
147
166
  const hostSurface = { width: 1 } as Raster2DSurface;
148
167
  const customSurface = { width: 2 } as Raster2DSurface;
149
- const host = { createRaster2DSurface: () => hostSurface, destroyRaster2DSurface() {} };
168
+ const host = entityProvider({ createRaster2DSurface: () => hostSurface, destroyRaster2DSurface() {} });
150
169
  installRaster2DSurfaceHostProvider(host);
151
- setRaster2DSurfaceProvider({ createRaster2DSurface: () => customSurface, destroyRaster2DSurface() {} });
170
+ setRaster2DSurfaceProvider(
171
+ entityProvider({ createRaster2DSurface: () => customSurface, destroyRaster2DSurface() {} }),
172
+ );
152
173
 
153
174
  expect(createRaster2DSurface(1, 1)).toBe(customSurface);
154
175
  setRaster2DSurfaceProvider(null);
@@ -1,5 +1,6 @@
1
1
  import { createDisplayObject } from '@flighthq/scene2d/contract';
2
2
  import { connectSignal } from '@flighthq/signals/contract';
3
+ import { EntityRuntimeKey } from '@flighthq/types/contract';
3
4
 
4
5
  import {
5
6
  createRenderCache,
@@ -24,6 +25,32 @@ describe('createRenderCache', () => {
24
25
  });
25
26
  });
26
27
 
28
+ describe('createRenderCacheAdapter', () => {
29
+ it('returns an Entity, so the adapter can carry runtime state like every other SDK object', () => {
30
+ // Pinned on the KEY rather than on a helper: an adapter built by a plain object literal satisfies
31
+ // the RenderCacheAdapter type and every behavioural test below, and only the missing runtime slot
32
+ // tells it apart from one built through createEntity.
33
+ const adapter = createRenderCacheAdapter();
34
+ expect(EntityRuntimeKey in adapter).toBe(true);
35
+ expect(adapter[EntityRuntimeKey]).toBeUndefined();
36
+ });
37
+
38
+ it('gives each adapter its own runtime slot rather than a shared one', () => {
39
+ const first = createRenderCacheAdapter();
40
+ const second = createRenderCacheAdapter();
41
+ expect(Object.hasOwn(first, EntityRuntimeKey)).toBe(true);
42
+ expect(Object.hasOwn(second, EntityRuntimeKey)).toBe(true);
43
+ expect(first).not.toBe(second);
44
+ });
45
+
46
+ it('still starts detached and still adopts the cache it was given', () => {
47
+ expect(createRenderCacheAdapter().cache).toBeNull();
48
+ const cache = createRenderCache();
49
+ expect(createRenderCacheAdapter(cache).cache).toBe(cache);
50
+ expect(createRenderCacheAdapter().signals).toBeNull();
51
+ });
52
+ });
53
+
27
54
  describe('createRenderCacheAdapter', () => {
28
55
  it('adapt returns null and renders normally when no cache is attached', () => {
29
56
  const state = createRenderState();
@@ -1,3 +1,4 @@
1
+ import { createEntity } from '@flighthq/entity/contract';
1
2
  import { createMatrix, createRectangle } from '@flighthq/geometry/contract';
2
3
  import {
3
4
  addNodeChild,
@@ -46,7 +47,7 @@ function makeRenderer() {
46
47
  }
47
48
 
48
49
  function makeClipRegion(): ClipRegion {
49
- return { contours: null, rect: createRectangle(0, 0, 10, 10), winding: 'nonZero', version: 0 };
50
+ return createEntity({ contours: null, rect: createRectangle(0, 0, 10, 10), winding: 'nonZero', version: 0 });
50
51
  }
51
52
 
52
53
  function markRenderProxyClean<Traits extends object>(data: RenderProxy, source: Node<Traits>): void {
@@ -1,5 +1,5 @@
1
1
  import { createDisplayObject } from '@flighthq/scene2d/contract';
2
- import type { RenderProxyAdapter } from '@flighthq/types/contract';
2
+ import type { RenderProxy2D, RenderProxyAdapter } from '@flighthq/types/contract';
3
3
 
4
4
  import { registerRenderer } from './renderer';
5
5
  import { createRenderProxy2D } from './renderProxy';
@@ -7,6 +7,10 @@ import { applyRenderProxyAdapter, getRenderProxyAdapter, setRenderProxyAdapter }
7
7
  import { createRenderState } from './renderState';
8
8
 
9
9
  describe('applyRenderProxyAdapter', () => {
10
+ it('accepts the canonical RenderProxy2D type without a redundant refinement', () => {
11
+ expectTypeOf(applyRenderProxyAdapter).parameter(2).toEqualTypeOf<RenderProxy2D>();
12
+ });
13
+
10
14
  it('sets traverseChildren to true when no resolver is attached', () => {
11
15
  const state = createRenderState();
12
16
  const source = createDisplayObject();
@@ -95,19 +95,19 @@ describe('createRenderViewport2D', () => {
95
95
  describe('isRenderableInViewport', () => {
96
96
  it('returns true for a source without spatial traits (conservative)', () => {
97
97
  const source = { kind: 'Fake' } as any;
98
- const vp: RenderViewport2D = { x: 0, y: 0, width: 100, height: 100 };
98
+ const vp = createRenderViewport2D(0, 0, 100, 100);
99
99
  expect(isRenderableInViewport(source, vp)).toBe(true);
100
100
  });
101
101
 
102
102
  it('returns true for a display object within the viewport', () => {
103
103
  const obj = makeObjectWithBounds(10, 10, 50, 30);
104
- const vp: RenderViewport2D = { x: 0, y: 0, width: 800, height: 600 };
104
+ const vp = createRenderViewport2D(0, 0, 800, 600);
105
105
  expect(isRenderableInViewport(obj, vp)).toBe(true);
106
106
  });
107
107
 
108
108
  it('returns false for a display object whose world bounds are outside the viewport', () => {
109
109
  const obj = makeObjectWithBounds(100, 100, 50, 50);
110
- const vp: RenderViewport2D = { x: 2000, y: 2000, width: 100, height: 100 };
110
+ const vp = createRenderViewport2D(2000, 2000, 100, 100);
111
111
  expect(isRenderableInViewport(obj, vp)).toBe(false);
112
112
  });
113
113
 
@@ -119,42 +119,42 @@ describe('isRenderableInViewport', () => {
119
119
  const child = makeObjectWithBounds(0, 0, 20, 20);
120
120
  addNodeChild(parent, child);
121
121
 
122
- const vp: RenderViewport2D = { x: 0, y: 0, width: 100, height: 100 };
122
+ const vp = createRenderViewport2D(0, 0, 100, 100);
123
123
  expect(isRenderableInViewport(child, vp)).toBe(false);
124
124
 
125
- const largeVp: RenderViewport2D = { x: 0, y: 0, width: 600, height: 600 };
125
+ const largeVp = createRenderViewport2D(0, 0, 600, 600);
126
126
  expect(isRenderableInViewport(child, largeVp)).toBe(true);
127
127
  });
128
128
 
129
129
  it('culls an object at origin when the viewport is far away', () => {
130
130
  const obj = makeObjectWithBounds(0, 0, 30, 30);
131
- const vp: RenderViewport2D = { x: 5000, y: 5000, width: 100, height: 100 };
131
+ const vp = createRenderViewport2D(5000, 5000, 100, 100);
132
132
  expect(isRenderableInViewport(obj, vp)).toBe(false);
133
133
  });
134
134
 
135
135
  it('includes an object exactly at the viewport edge (inclusive)', () => {
136
136
  const obj = makeObjectWithBounds(0, 0, 100, 100);
137
- const vp: RenderViewport2D = { x: 100, y: 100, width: 100, height: 100 };
137
+ const vp = createRenderViewport2D(100, 100, 100, 100);
138
138
  expect(isRenderableInViewport(obj, vp)).toBe(true);
139
139
  });
140
140
 
141
141
  it('applies render transform when provided', () => {
142
142
  const obj = makeObjectWithBounds(0, 0, 50, 50);
143
- const vp: RenderViewport2D = { x: 0, y: 0, width: 60, height: 60 };
143
+ const vp = createRenderViewport2D(0, 0, 60, 60);
144
144
 
145
145
  expect(isRenderableInViewport(obj, vp)).toBe(true);
146
146
 
147
147
  const scale2x = createMatrix(2, 0, 0, 2, 0, 0);
148
148
  expect(isRenderableInViewport(obj, vp, scale2x)).toBe(true);
149
149
 
150
- const farVp: RenderViewport2D = { x: 0, y: 0, width: 60, height: 60 };
150
+ const farVp = createRenderViewport2D(0, 0, 60, 60);
151
151
  const offsetTransform = createMatrix(1, 0, 0, 1, 200, 200);
152
152
  expect(isRenderableInViewport(obj, farVp, offsetTransform)).toBe(false);
153
153
  });
154
154
 
155
155
  it('works correctly with null render transform', () => {
156
156
  const obj = makeObjectWithBounds(10, 10, 50, 50);
157
- const vp: RenderViewport2D = { x: 0, y: 0, width: 800, height: 600 };
157
+ const vp = createRenderViewport2D(0, 0, 800, 600);
158
158
  expect(isRenderableInViewport(obj, vp, null)).toBe(true);
159
159
  });
160
160
 
@@ -166,10 +166,10 @@ describe('isRenderableInViewport', () => {
166
166
  const child = makeObjectWithBounds(0, 0, 50, 50);
167
167
  addNodeChild(parent, child);
168
168
 
169
- const vp: RenderViewport2D = { x: 80, y: 80, width: 50, height: 50 };
169
+ const vp = createRenderViewport2D(80, 80, 50, 50);
170
170
  expect(isRenderableInViewport(child, vp)).toBe(true);
171
171
 
172
- const smallVp: RenderViewport2D = { x: 200, y: 200, width: 50, height: 50 };
172
+ const smallVp = createRenderViewport2D(200, 200, 50, 50);
173
173
  expect(isRenderableInViewport(child, smallVp)).toBe(false);
174
174
  });
175
175
  });
@@ -177,7 +177,7 @@ describe('isRenderableInViewport', () => {
177
177
  describe('isRenderProxyInViewport', () => {
178
178
  it('returns true when the proxy source has no spatial traits', () => {
179
179
  const proxy = makeMinimalProxy();
180
- const vp: RenderViewport2D = { x: 0, y: 0, width: 100, height: 100 };
180
+ const vp = createRenderViewport2D(0, 0, 100, 100);
181
181
  expect(isRenderProxyInViewport(proxy, vp)).toBe(true);
182
182
  });
183
183
 
@@ -186,7 +186,7 @@ describe('isRenderProxyInViewport', () => {
186
186
  const obj = makeObjectWithBounds(10, 10, 50, 50);
187
187
  prepareScene2DRender(state, obj);
188
188
  const proxy = createRenderProxy2D(state, obj);
189
- const vp: RenderViewport2D = { x: 0, y: 0, width: 800, height: 600 };
189
+ const vp = createRenderViewport2D(0, 0, 800, 600);
190
190
  expect(isRenderProxyInViewport(proxy, vp)).toBe(true);
191
191
  });
192
192
  });