@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 +2 -2
- package/dist/raster2DSurface.d.ts.map +1 -1
- package/dist/raster2DSurface.js +3 -2
- package/dist/raster2DSurface.js.map +1 -1
- package/dist/renderCache.d.ts.map +1 -1
- package/dist/renderCache.js +5 -2
- package/dist/renderCache.js.map +1 -1
- package/dist/renderProxyAdapter.d.ts +1 -3
- package/dist/renderProxyAdapter.d.ts.map +1 -1
- package/dist/renderProxyAdapter.js.map +1 -1
- package/dist/renderQueue.d.ts.map +1 -1
- package/dist/renderQueue.js +2 -1
- package/dist/renderQueue.js.map +1 -1
- package/dist/renderViewport.d.ts.map +1 -1
- package/dist/renderViewport.js +2 -1
- package/dist/renderViewport.js.map +1 -1
- package/package.json +12 -12
- package/src/raster2DSurface.test.ts +49 -28
- package/src/renderCache.test.ts +27 -0
- package/src/renderProxy.test.ts +2 -1
- package/src/renderProxyAdapter.test.ts +5 -1
- package/src/renderViewport.test.ts +14 -14
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.
|
|
17
|
-
- [License](https://github.com/flighthq/flight/blob/
|
|
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":"
|
|
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"}
|
package/dist/raster2DSurface.js
CHANGED
|
@@ -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":"
|
|
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,
|
|
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"}
|
package/dist/renderCache.js
CHANGED
|
@@ -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
|
-
|
|
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
|
/**
|
package/dist/renderCache.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderCache.js","sourceRoot":"","sources":["../src/renderCache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;
|
|
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,
|
|
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,
|
|
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":"
|
|
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"}
|
package/dist/renderQueue.js
CHANGED
|
@@ -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
|
package/dist/renderQueue.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderQueue.js","sourceRoot":"","sources":["../src/renderQueue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAWzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAEtD,mGAAmG;AACnG,kGAAkG;AAClG,gGAAgG;AAChG,oGAAoG;AACpG,EAAE;AACF,+EAA+E;AAC/E,gDAAgD;AAChD,MAAM,UAAU,gBAAgB,CAAC,KAAkB,EAAE,MAAkB,EAAE,GAAgB;IACvF,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACtB,MAAM,OAAO,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAC7C,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;IAC9C,MAAM,KAAK,GAAG,WAAW,CAAC;IAC1B,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;IAClB,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,OAAO,WAAW,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;QAClC,IAAI,CAAC,KAAK,CAAC,OAAO;YAAE,SAAS;QAC7B,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC5B,oBAAoB,CAAC,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QAC/C,CAAC;QACD,UAAU,EAAE,CAAC;QACb,gGAAgG;QAChG,uFAAuF;QACvF,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAkB,CAAC,CAAC,QAAQ,CAAC;QAC7D,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9C,KAAK,CAAC,WAAW,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,6FAA6F;AAC7F,wEAAwE;AACxE,MAAM,UAAU,gBAAgB,CAAC,KAAkB;IACjD,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC;AACvB,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,yBAAyB,CAAC,CAAmB,EAAE,CAAmB;IAChF,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;AAC/B,CAAC;AAED,6FAA6F;AAC7F,qGAAqG;AACrG,MAAM,UAAU,iBAAiB;IAC/B,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;
|
|
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":"
|
|
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"}
|
package/dist/renderViewport.js
CHANGED
|
@@ -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;
|
|
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.
|
|
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.
|
|
42
|
-
"@flighthq/color": "0.5.1-next.
|
|
43
|
-
"@flighthq/entity": "0.5.1-next.
|
|
44
|
-
"@flighthq/geometry": "0.5.1-next.
|
|
45
|
-
"@flighthq/log": "0.5.1-next.
|
|
46
|
-
"@flighthq/materials": "0.5.1-next.
|
|
47
|
-
"@flighthq/mesh": "0.5.1-next.
|
|
48
|
-
"@flighthq/node": "0.5.1-next.
|
|
49
|
-
"@flighthq/registry": "0.5.1-next.
|
|
50
|
-
"@flighthq/signals": "0.5.1-next.
|
|
51
|
-
"@flighthq/types": "0.5.1-next.
|
|
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
|
|
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
|
-
|
|
43
|
-
|
|
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
|
-
|
|
49
|
-
|
|
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
|
-
|
|
65
|
-
|
|
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(
|
|
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(
|
|
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(
|
|
135
|
-
|
|
136
|
-
|
|
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(
|
|
170
|
+
setRaster2DSurfaceProvider(
|
|
171
|
+
entityProvider({ createRaster2DSurface: () => customSurface, destroyRaster2DSurface() {} }),
|
|
172
|
+
);
|
|
152
173
|
|
|
153
174
|
expect(createRaster2DSurface(1, 1)).toBe(customSurface);
|
|
154
175
|
setRaster2DSurfaceProvider(null);
|
package/src/renderCache.test.ts
CHANGED
|
@@ -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();
|
package/src/renderProxy.test.ts
CHANGED
|
@@ -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
|
|
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
|
|
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
|
|
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
|
|
122
|
+
const vp = createRenderViewport2D(0, 0, 100, 100);
|
|
123
123
|
expect(isRenderableInViewport(child, vp)).toBe(false);
|
|
124
124
|
|
|
125
|
-
const largeVp
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
169
|
+
const vp = createRenderViewport2D(80, 80, 50, 50);
|
|
170
170
|
expect(isRenderableInViewport(child, vp)).toBe(true);
|
|
171
171
|
|
|
172
|
-
const smallVp
|
|
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
|
|
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
|
|
189
|
+
const vp = createRenderViewport2D(0, 0, 800, 600);
|
|
190
190
|
expect(isRenderProxyInViewport(proxy, vp)).toBe(true);
|
|
191
191
|
});
|
|
192
192
|
});
|