@flighthq/render 0.2.0 → 0.2.1-next.410.a23f189

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.
@@ -1 +1 @@
1
- {"version":3,"file":"renderAppearance.d.ts","sourceRoot":"","sources":["../src/renderAppearance.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAuB,WAAW,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAIrF,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,CAAC,EAAE,WAAW,GAAG,OAAO,CAWpH"}
1
+ {"version":3,"file":"renderAppearance.d.ts","sourceRoot":"","sources":["../src/renderAppearance.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAqC,WAAW,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAInG,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,CAAC,EAAE,WAAW,GAAG,OAAO,CAWpH"}
@@ -1 +1 @@
1
- {"version":3,"file":"renderAppearance.js","sourceRoot":"","sources":["../src/renderAppearance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAG3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAEtD,MAAM,UAAU,2BAA2B,CAAC,KAAkB,EAAE,IAAiB,EAAE,UAAwB;IACzG,MAAM,YAAY,GAAG,yBAAyB,CAAC,IAAI,CAAC,MAAc,CAAC,CAAC;IACpE,IACE,CAAC,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,iBAAiB,KAAK,qBAAqB,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC;QAC1G,IAAI,CAAC,gBAAgB,KAAK,YAAY,EACtC,CAAC;QACD,qBAAqB,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;QAC/C,IAAI,CAAC,gBAAgB,GAAG,YAAY,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAkB,EAAE,IAAiB,EAAE,UAAwB;IAC5F,MAAM,MAAM,GAAG,IAAI,CAAC,MAAkC,CAAC;IACvD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC;QACpD,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;QAC7C,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC;YAAE,OAAO;QAC5B,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;IACpC,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC;QAC9C,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC;YAAE,OAAO;QAC5B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,eAAe,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;IAC7F,CAAC;IACD,IAAI,CAAC,iBAAiB,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC;AACvE,CAAC"}
1
+ {"version":3,"file":"renderAppearance.js","sourceRoot":"","sources":["../src/renderAppearance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAG3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAEtD,MAAM,UAAU,2BAA2B,CAAC,KAAkB,EAAE,IAAiB,EAAE,UAAwB;IACzG,MAAM,YAAY,GAAG,yBAAyB,CAAC,IAAI,CAAC,MAAc,CAAC,CAAC;IACpE,IACE,CAAC,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,iBAAiB,KAAK,qBAAqB,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC;QAC1G,IAAI,CAAC,gBAAgB,KAAK,YAAY,EACtC,CAAC;QACD,qBAAqB,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;QAC/C,IAAI,CAAC,gBAAgB,GAAG,YAAY,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAkB,EAAE,IAAiB,EAAE,UAAwB;IAC5F,MAAM,MAAM,GAAG,IAAI,CAAC,MAAiD,CAAC;IACtE,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC;QACpD,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;QAC7C,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC;YAAE,OAAO;QAC5B,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;IACpC,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC;QAC9C,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC;YAAE,OAAO;QAC5B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,eAAe,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;IAC7F,CAAC;IACD,IAAI,CAAC,iBAAiB,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC;AACvE,CAAC"}
@@ -1,12 +1,12 @@
1
1
  import { createMatrix, inverseMatrix, multiplyMatrix } from '@flighthq/geometry';
2
- import { getNodeLocalTransformMatrix } from '@flighthq/node';
2
+ import { getNodeLocalMatrix } from '@flighthq/node';
3
3
  /**
4
4
  * Writes into outRenderTransform the transform to set as state.renderTransform2D when
5
5
  * capturing source into a render target. Maps source content into target pixel space so
6
6
  * that the bounds origin lands at (contentX, contentY).
7
7
  */
8
8
  export function computeDisplayObjectRenderTargetTransform(outRenderTransform, source, bounds, contentX = 0, contentY = 0) {
9
- const localTransform = getNodeLocalTransformMatrix(source);
9
+ const localTransform = getNodeLocalMatrix(source);
10
10
  inverseMatrix(_tempInvLocal, localTransform);
11
11
  _tempTranslation.a = 1;
12
12
  _tempTranslation.b = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"renderTarget.js","sourceRoot":"","sources":["../src/renderTarget.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAQ7D;;;;GAIG;AACH,MAAM,UAAU,yCAAyC,CACvD,kBAA8B,EAC9B,MAAqB,EACrB,MAA+B,EAC/B,WAAmB,CAAC,EACpB,WAAmB,CAAC;IAEpB,MAAM,cAAc,GAAG,2BAA2B,CAAC,MAAM,CAAC,CAAC;IAC3D,aAAa,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;IAC7C,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC;IACvB,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC;IACvB,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC;IACvB,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC;IACvB,gBAAgB,CAAC,EAAE,GAAG,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC;IAC1C,gBAAgB,CAAC,EAAE,GAAG,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC;IAC1C,cAAc,CAAC,kBAAkB,EAAE,gBAAgB,EAAE,aAAa,CAAC,CAAC;AACtE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,2BAA2B,CACzC,iBAA6B,EAC7B,MAA+B,EAC/B,WAAmB,CAAC,EACpB,WAAmB,CAAC;IAEpB,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC;IACxB,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC;IACxB,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC;IACxB,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC;IACxB,iBAAiB,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,QAAQ,CAAC;IAC3C,iBAAiB,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,QAAQ,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,MAA+B,EAC/B,UAAkB,CAAC,EACnB,WAAmB,CAAC,EACpB,YAAoB,CAAC;IAErB,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;QAChE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;KACpE,CAAC;AACJ,CAAC;AAED,MAAM,aAAa,GAAG,YAAY,EAAE,CAAC;AACrC,MAAM,gBAAgB,GAAG,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"renderTarget.js","sourceRoot":"","sources":["../src/renderTarget.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAQpD;;;;GAIG;AACH,MAAM,UAAU,yCAAyC,CACvD,kBAA8B,EAC9B,MAAqB,EACrB,MAA+B,EAC/B,WAAmB,CAAC,EACpB,WAAmB,CAAC;IAEpB,MAAM,cAAc,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAClD,aAAa,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;IAC7C,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC;IACvB,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC;IACvB,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC;IACvB,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC;IACvB,gBAAgB,CAAC,EAAE,GAAG,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC;IAC1C,gBAAgB,CAAC,EAAE,GAAG,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC;IAC1C,cAAc,CAAC,kBAAkB,EAAE,gBAAgB,EAAE,aAAa,CAAC,CAAC;AACtE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,2BAA2B,CACzC,iBAA6B,EAC7B,MAA+B,EAC/B,WAAmB,CAAC,EACpB,WAAmB,CAAC;IAEpB,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC;IACxB,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC;IACxB,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC;IACxB,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC;IACxB,iBAAiB,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,QAAQ,CAAC;IAC3C,iBAAiB,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,QAAQ,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,MAA+B,EAC/B,UAAkB,CAAC,EACnB,WAAmB,CAAC,EACpB,YAAoB,CAAC;IAErB,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;QAChE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;KACpE,CAAC;AACJ,CAAC;AAED,MAAM,aAAa,GAAG,YAAY,EAAE,CAAC;AACrC,MAAM,gBAAgB,GAAG,YAAY,EAAE,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { copyMatrix, multiplyMatrix } from '@flighthq/geometry';
2
- import { getNodeLocalTransformMatrix, getNodeLocalTransformRevision } from '@flighthq/node';
2
+ import { getNodeLocalMatrix, getNodeLocalTransformRevision } from '@flighthq/node';
3
3
  import { getRenderStateRuntime } from './renderState';
4
4
  export function updateRenderProxy2DTransform(state, data, parentData) {
5
5
  const localTransformId = getNodeLocalTransformRevision(data.source);
@@ -13,7 +13,7 @@ export function updateRenderProxy2DTransform(state, data, parentData) {
13
13
  return false;
14
14
  }
15
15
  function recalculateRenderTransform2D(state, data, parentData) {
16
- const transform2D = getNodeLocalTransformMatrix(data.source);
16
+ const transform2D = getNodeLocalMatrix(data.source);
17
17
  const parentTransform2D = parentData !== undefined ? parentData.transform2D : state.renderTransform2D;
18
18
  if (parentTransform2D !== null) {
19
19
  multiplyMatrix(data.transform2D, parentTransform2D, transform2D);
@@ -1 +1 @@
1
- {"version":3,"file":"renderTransform2d.js","sourceRoot":"","sources":["../src/renderTransform2d.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,2BAA2B,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAC;AAG5F,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAEtD,MAAM,UAAU,4BAA4B,CAC1C,KAAkB,EAClB,IAAmB,EACnB,UAA0B;IAE1B,MAAM,gBAAgB,GAAG,6BAA6B,CAAC,IAAI,CAAC,MAAc,CAAC,CAAC;IAC5E,MAAM,WAAW,GACf,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,gBAAgB,KAAK,qBAAqB,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC;IAC1G,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,KAAK,gBAAgB,CAAC;IAElE,IAAI,WAAW,IAAI,UAAU,EAAE,CAAC;QAC9B,4BAA4B,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;QACtD,IAAI,CAAC,oBAAoB,GAAG,gBAAgB,CAAC;QAC7C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,4BAA4B,CAAC,KAAkB,EAAE,IAAmB,EAAE,UAA0B;IACvG,MAAM,WAAW,GAAG,2BAA2B,CAAC,IAAI,CAAC,MAA+B,CAAC,CAAC;IACtF,MAAM,iBAAiB,GAAG,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC;IACtG,IAAI,iBAAiB,KAAK,IAAI,EAAE,CAAC;QAC/B,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,iBAAiB,EAAE,WAAW,CAAC,CAAC;IACnE,CAAC;SAAM,CAAC;QACN,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,CAAC,gBAAgB,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC;AACtE,CAAC"}
1
+ {"version":3,"file":"renderTransform2d.js","sourceRoot":"","sources":["../src/renderTransform2d.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAC;AAGnF,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAEtD,MAAM,UAAU,4BAA4B,CAC1C,KAAkB,EAClB,IAAmB,EACnB,UAA0B;IAE1B,MAAM,gBAAgB,GAAG,6BAA6B,CAAC,IAAI,CAAC,MAAc,CAAC,CAAC;IAC5E,MAAM,WAAW,GACf,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,gBAAgB,KAAK,qBAAqB,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC;IAC1G,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,KAAK,gBAAgB,CAAC;IAElE,IAAI,WAAW,IAAI,UAAU,EAAE,CAAC;QAC9B,4BAA4B,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;QACtD,IAAI,CAAC,oBAAoB,GAAG,gBAAgB,CAAC;QAC7C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,4BAA4B,CAAC,KAAkB,EAAE,IAAmB,EAAE,UAA0B;IACvG,MAAM,WAAW,GAAG,kBAAkB,CAAC,IAAI,CAAC,MAA+B,CAAC,CAAC;IAC7E,MAAM,iBAAiB,GAAG,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC;IACtG,IAAI,iBAAiB,KAAK,IAAI,EAAE,CAAC;QAC/B,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,iBAAiB,EAAE,WAAW,CAAC,CAAC;IACnE,CAAC;SAAM,CAAC;QACN,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,CAAC,gBAAgB,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC;AACtE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"sceneRender.d.ts","sourceRoot":"","sources":["../src/sceneRender.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAGV,MAAM,EAQN,WAAW,EACX,eAAe,EACf,WAAW,EACX,SAAS,EACT,eAAe,EAEhB,MAAM,iBAAiB,CAAC;AA2BzB,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI,CAkE7F;AAcD,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,EAC1B,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,EACxB,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,GAC5B,eAAe,CAiBjB"}
1
+ {"version":3,"file":"sceneRender.d.ts","sourceRoot":"","sources":["../src/sceneRender.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAGV,MAAM,EASN,WAAW,EACX,eAAe,EACf,WAAW,EACX,SAAS,EACT,eAAe,EAEhB,MAAM,iBAAiB,CAAC;AA2BzB,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI,CAkE7F;AAcD,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,EAC1B,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,EACxB,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,GAC5B,eAAe,CA6BjB"}
@@ -1,6 +1,7 @@
1
+ import { unpackColorToLinear } from '@flighthq/color';
1
2
  import { createAabb, createFrustum, createMatrix4, isFrustumIntersectingAabb, multiplyMatrix4, setFrustumFromMatrix4, setOrthographicMatrix4, setPerspectiveMatrix4, transformAabbByMatrix4, } from '@flighthq/geometry';
2
- import { unpackColorToLinear } from '@flighthq/materials';
3
- import { getNodeRuntime, getNodeWorldTransformMatrix4 } from '@flighthq/node';
3
+ import { getNodeRuntime, getNodeWorldMatrix4 } from '@flighthq/node';
4
+ import { computeSkeleton3DJointMatrices } from '@flighthq/skeleton3d';
4
5
  import { MAX_FORWARD_LIGHTS, SCENE_LIGHT_AMBIENT_RADIANCE_OFFSET, SCENE_LIGHT_BLOCK_FLOATS, SCENE_LIGHT_DIRECTIONAL_DIRECTION_OFFSET, SCENE_LIGHT_DIRECTIONAL_RADIANCE_OFFSET, SCENE_LIGHT_HEMISPHERE_OFFSET, SCENE_LIGHT_HEMISPHERE_STRIDE, SCENE_LIGHT_POINT_OFFSET, SCENE_LIGHT_POINT_STRIDE, SCENE_LIGHT_SPOT_OFFSET, SCENE_LIGHT_SPOT_STRIDE, } from '@flighthq/types';
5
6
  // Packs the directional + ambient + punctual (point/spot/hemisphere) draw-arg lights into `out` (the
6
7
  // GPU-ready light block), converting each packed sRgb color to linear, premultiplied radiance
@@ -70,7 +71,7 @@ export function packSceneLightBlock(out, lights) {
70
71
  }
71
72
  // The per-frame preparation pass for a 3D scene, the 3D analog of prepareDisplayObjectRender. It is
72
73
  // backend-agnostic (no GPU context): it walks the SceneNode hierarchy rooted at `scene`, propagating
73
- // each node's worldMatrix (parentWorld x localMatrix, resolved lazily on the node runtime and
74
+ // each node's world matrix (parentWorld x local matrix, resolved lazily on the node runtime and
74
75
  // alias-safe), computes the draw camera's view-projection, frustum-culls every Mesh against its
75
76
  // world-space bounds, and packs `lights` into the shared SceneLightBlock (sRgb->linear at pack time).
76
77
  // The returned SceneRenderList is the render-ready frame the backend drawScene consumes — it only
@@ -92,12 +93,29 @@ export function prepareSceneRender(state, scene, camera, lights) {
92
93
  prepared.meshes.length = 0;
93
94
  collectVisibleMeshes(scene, prepared.frustum, prepared.worldBounds, prepared.meshes);
94
95
  list.meshCount = prepared.meshes.length;
96
+ // Refresh the GPU skin palette for every visible skinned mesh from its joints' current world
97
+ // transforms (jointWorld * inverseBind). The backend uploads skeleton.jointMatrices through the
98
+ // proxy and the HAS_SKIN vertex variant deforms from it, so the app poses the joints and this
99
+ // pass alone readies the palette — it need not call the CPU updateMeshSkin on a GPU backend
100
+ // (doing both would deform twice). Rigid meshes carry no skin and are skipped. Morph is driven by
101
+ // the GL backend's draw (updateMeshMorph in drawGlScene), not here, to keep render backend-neutral
102
+ // and free of a @flighthq/scene dependency.
103
+ for (let m = 0; m < prepared.meshes.length; m++) {
104
+ const skin = prepared.meshes[m].skin;
105
+ if (skin != null)
106
+ computeSkeleton3DJointMatrices(skin.skeleton);
107
+ }
95
108
  return list;
96
109
  }
97
110
  function collectVisibleMeshes(node, frustum, worldBounds, out) {
98
- if (!node.enabled) {
111
+ // `enabled` gates graph participation; `visible` gates rendering. A hidden subtree is skipped whole,
112
+ // so `visible` propagates (a hidden group hides its descendants) without a resolved-visibility cache.
113
+ if (!node.enabled || !node.visible) {
99
114
  return;
100
115
  }
116
+ // worldAlpha is not folded in this walk: it is lazily ensured on access (getSceneNodeWorldAlpha), the
117
+ // appearance analog of the ensure-on-access world matrix the renderer resolves at draw time. This walk
118
+ // is culling + mesh collection only.
101
119
  // A node is a drawable Mesh (not a transform-only group) when it carries geometry. Structural,
102
120
  // so it holds for Meshes created with a custom kind, not just MeshKind.
103
121
  const mesh = node;
@@ -156,7 +174,7 @@ function isMeshVisible(mesh, frustum, worldBounds) {
156
174
  // No cached local bounds: cannot cull, so conservatively keep the mesh.
157
175
  return true;
158
176
  }
159
- transformAabbByMatrix4(worldBounds, bounds, getNodeWorldTransformMatrix4(mesh));
177
+ transformAabbByMatrix4(worldBounds, bounds, getNodeWorldMatrix4(mesh));
160
178
  return isFrustumIntersectingAabb(frustum, worldBounds);
161
179
  }
162
180
  function packAmbientLight(data, ambient) {
@@ -1 +1 @@
1
- {"version":3,"file":"sceneRender.js","sourceRoot":"","sources":["../src/sceneRender.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sceneRender.js","sourceRoot":"","sources":["../src/sceneRender.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.2.0",
3
+ "version": "0.2.1-next.410.a23f189",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/flighthq/flight.git",
@@ -32,13 +32,15 @@
32
32
  "clean:dist": "tsx ../../scripts/clean-package-dist.ts"
33
33
  },
34
34
  "dependencies": {
35
- "@flighthq/entity": "0.2.0",
36
- "@flighthq/geometry": "0.2.0",
37
- "@flighthq/log": "0.2.0",
38
- "@flighthq/materials": "0.2.0",
39
- "@flighthq/node": "0.2.0",
40
- "@flighthq/signals": "0.2.0",
41
- "@flighthq/types": "0.2.0"
35
+ "@flighthq/color": "0.2.1-next.410.a23f189",
36
+ "@flighthq/entity": "0.2.1-next.410.a23f189",
37
+ "@flighthq/geometry": "0.2.1-next.410.a23f189",
38
+ "@flighthq/log": "0.2.1-next.410.a23f189",
39
+ "@flighthq/materials": "0.2.1-next.410.a23f189",
40
+ "@flighthq/node": "0.2.1-next.410.a23f189",
41
+ "@flighthq/signals": "0.2.1-next.410.a23f189",
42
+ "@flighthq/skeleton3d": "0.2.1-next.410.a23f189",
43
+ "@flighthq/types": "0.2.1-next.410.a23f189"
42
44
  },
43
45
  "devDependencies": {
44
46
  "@flighthq/adjustments": "*",
@@ -1,4 +1,5 @@
1
1
  import { createCamera, createPerspectiveProjection, setCameraViewMatrix4FromLookAt } from '@flighthq/camera';
2
+ import { unpackColorToLinear } from '@flighthq/color';
2
3
  import { createAabb } from '@flighthq/geometry';
3
4
  import {
4
5
  createAmbientLight,
@@ -7,10 +8,9 @@ import {
7
8
  createPointLight,
8
9
  createSpotLight,
9
10
  } from '@flighthq/lighting';
10
- import { unpackColorToLinear } from '@flighthq/materials';
11
11
  import { computeMeshGeometryBounds, createBoxMeshGeometry } from '@flighthq/mesh';
12
12
  import { addNodeChild, invalidateNodeLocalTransform } from '@flighthq/node';
13
- import { createMesh, createScene } from '@flighthq/scene';
13
+ import { createMesh, createSceneNode, SceneNodeKind, getSceneNodeWorldAlpha } from '@flighthq/scene';
14
14
  import type { Camera, Material, MeshGeometry, SceneLightBlock, SceneLights } from '@flighthq/types';
15
15
  import {
16
16
  SCENE_LIGHT_BLOCK_FLOATS,
@@ -207,7 +207,7 @@ describe('packSceneLightBlock', () => {
207
207
  describe('prepareSceneRender', () => {
208
208
  it('returns the lit, view-projected frame with the visible mesh', () => {
209
209
  const state = createRenderState();
210
- const scene = createScene();
210
+ const scene = createSceneNode(SceneNodeKind);
211
211
  const mesh = createMesh(boundedBox(), [null]);
212
212
  addNodeChild(scene, mesh);
213
213
 
@@ -224,7 +224,7 @@ describe('prepareSceneRender', () => {
224
224
 
225
225
  it('computes a non-identity view-projection', () => {
226
226
  const state = createRenderState();
227
- const scene = createScene();
227
+ const scene = createSceneNode(SceneNodeKind);
228
228
  const list = prepareSceneRender(state, scene, frontCamera(), emptyLights());
229
229
  // A perspective view-projection is not the identity matrix.
230
230
  expect(list.viewProjection.m[15]).not.toBe(1);
@@ -232,9 +232,9 @@ describe('prepareSceneRender', () => {
232
232
 
233
233
  it('culls a mesh placed far behind the camera', () => {
234
234
  const state = createRenderState();
235
- const scene = createScene();
235
+ const scene = createSceneNode(SceneNodeKind);
236
236
  const mesh = createMesh(boundedBox(), [null]);
237
- mesh.localMatrix.m[14] = 1000;
237
+ mesh.position.z = 1000;
238
238
  invalidateNodeLocalTransform(mesh);
239
239
  addNodeChild(scene, mesh);
240
240
 
@@ -244,10 +244,10 @@ describe('prepareSceneRender', () => {
244
244
 
245
245
  it('keeps a mesh whose geometry has no cached bounds', () => {
246
246
  const state = createRenderState();
247
- const scene = createScene();
247
+ const scene = createSceneNode(SceneNodeKind);
248
248
  const mesh = createMesh(createBoxMeshGeometry(), [null]);
249
249
  mesh.geometry.bounds = null;
250
- mesh.localMatrix.m[14] = 1000;
250
+ mesh.position.z = 1000;
251
251
  invalidateNodeLocalTransform(mesh);
252
252
  addNodeChild(scene, mesh);
253
253
 
@@ -257,8 +257,21 @@ describe('prepareSceneRender', () => {
257
257
 
258
258
  it('skips disabled subtrees', () => {
259
259
  const state = createRenderState();
260
- const scene = createScene();
261
- const group = createScene({ enabled: false });
260
+ const scene = createSceneNode(SceneNodeKind);
261
+ const group = createSceneNode(SceneNodeKind, { enabled: false });
262
+ const mesh = createMesh(boundedBox(), [null]);
263
+ addNodeChild(group, mesh);
264
+ addNodeChild(scene, group);
265
+
266
+ const list = prepareSceneRender(state, scene, frontCamera(), emptyLights());
267
+ expect(list.meshCount).toBe(0);
268
+ });
269
+
270
+ it('skips a hidden subtree (visible=false propagates to descendants)', () => {
271
+ const state = createRenderState();
272
+ const scene = createSceneNode(SceneNodeKind);
273
+ const group = createSceneNode(SceneNodeKind);
274
+ group.visible = false;
262
275
  const mesh = createMesh(boundedBox(), [null]);
263
276
  addNodeChild(group, mesh);
264
277
  addNodeChild(scene, group);
@@ -269,12 +282,12 @@ describe('prepareSceneRender', () => {
269
282
 
270
283
  it('resolves world transforms through nested groups', () => {
271
284
  const state = createRenderState();
272
- const scene = createScene();
273
- const group = createScene();
285
+ const scene = createSceneNode(SceneNodeKind);
286
+ const group = createSceneNode(SceneNodeKind);
274
287
  const mesh = createMesh(boundedBox(), [null]);
275
288
  addNodeChild(group, mesh);
276
289
  addNodeChild(scene, group);
277
- group.localMatrix.m[12] = 1;
290
+ group.position.x = 1;
278
291
  invalidateNodeLocalTransform(group);
279
292
 
280
293
  const list = prepareSceneRender(state, scene, frontCamera(), emptyLights());
@@ -282,9 +295,26 @@ describe('prepareSceneRender', () => {
282
295
  expect(list.visibleMeshes[0]).toBe(mesh);
283
296
  });
284
297
 
298
+ it('folds parent x self alpha into each node resolved worldAlpha', () => {
299
+ const state = createRenderState();
300
+ const scene = createSceneNode(SceneNodeKind);
301
+ const group = createSceneNode(SceneNodeKind);
302
+ const mesh = createMesh(boundedBox(), [null]);
303
+ addNodeChild(group, mesh);
304
+ addNodeChild(scene, group);
305
+ scene.alpha = 0.5;
306
+ group.alpha = 0.5;
307
+ mesh.alpha = 0.5;
308
+
309
+ prepareSceneRender(state, scene, frontCamera(), emptyLights());
310
+ expect(getSceneNodeWorldAlpha(scene)).toBeCloseTo(0.5);
311
+ expect(getSceneNodeWorldAlpha(group)).toBeCloseTo(0.25);
312
+ expect(getSceneNodeWorldAlpha(mesh)).toBeCloseTo(0.125);
313
+ });
314
+
285
315
  it('reuses the same list per render state across calls', () => {
286
316
  const state = createRenderState();
287
- const scene = createScene();
317
+ const scene = createSceneNode(SceneNodeKind);
288
318
  const first = prepareSceneRender(state, scene, frontCamera(), emptyLights());
289
319
  const second = prepareSceneRender(state, scene, frontCamera(), emptyLights());
290
320
  expect(second).toBe(first);
@@ -292,7 +322,7 @@ describe('prepareSceneRender', () => {
292
322
 
293
323
  it('honors a positional material on a mesh', () => {
294
324
  const state = createRenderState();
295
- const scene = createScene();
325
+ const scene = createSceneNode(SceneNodeKind);
296
326
  const material = { kind: 'TestMaterial' } as unknown as Material;
297
327
  const mesh = createMesh(boundedBox(), [material]);
298
328
  addNodeChild(scene, mesh);