@heliguy-xyz/splat-viewer 1.0.0-rc.2 → 1.0.0-rc.3

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":"SplatViewerCore.d.ts","sourceRoot":"","sources":["../../src/web-component/SplatViewerCore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SplatViewerCore.d.ts","sourceRoot":"","sources":["../../src/web-component/SplatViewerCore.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,eAAe,EACf,UAAU,EACV,SAAS,EACT,eAAe,EACf,cAAc,EACd,WAAW,EACX,UAAU,EACV,SAAS,EACT,SAAS,EACT,aAAa,EAEb,qBAAqB,EAErB,gBAAgB,EAChB,aAAa,EACb,wBAAwB,EACxB,sBAAsB,EACtB,iBAAiB,EAEjB,aAAa,EACb,OAAO,EACR,MAAM,SAAS,CAAA;AAGhB,qBAAa,eAAgB,YAAW,wBAAwB;IACvD,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAO;IACvC,GAAG,EAAE,qBAAqB,GAAG,IAAI,CAAO;IACxC,QAAQ,EAAE;QACf,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAAA;QAC/B,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAA;QAC9B,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAA;KAC/B,CAIA;IACM,WAAW,EAAE,OAAO,CAAQ;IAC5B,SAAS,EAAE,OAAO,CAAO;IACzB,SAAS,EAAE,OAAO,CAAQ;IAC1B,QAAQ,EAAE,OAAO,CAAQ;IACzB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAO;IAElC,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,IAAI,CAAmB;IAC/B,OAAO,CAAC,kBAAkB,CAAiC;IAC3D,OAAO,CAAC,aAAa,CAA4B;IACjD,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,eAAe,CAA8B;IACrD,OAAO,CAAC,cAAc,CAA4B;IAClD,OAAO,CAAC,cAAc,CAAC,CAA4B;IACnD,OAAO,CAAC,QAAQ,CAAC,CAAyB;IAC1C,OAAO,CAAC,eAAe,CAAC,CAAY;IACpC,OAAO,CAAC,SAAS,CAAC,CAA8B;IAChD,OAAO,CAAC,qBAAqB,CAAuB;IACpD,OAAO,CAAC,qBAAqB,CAAY;IAGzC,OAAO,CAAC,aAAa,CAA4B;IAGjD,OAAO,CAAC,gBAAgB,CAA+B;IAGvD,OAAO,CAAC,mBAAmB,CAAkC;IAG7D,OAAO,CAAC,eAAe,CAAoD;gBAE/D,OAAO,GAAE,sBAA2B;IAmBzC,IAAI,CAAC,MAAM,EAAE,iBAAiB,GAAG,eAAe;IAyE1C,IAAI,CACf,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,EAC5B,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,UAAU,CAAC;IAwNf,KAAK,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,IAAI;IAgD7C;;OAEG;IACH,OAAO,CAAC,eAAe;IAyBvB;;OAEG;IACH,OAAO,CAAC,cAAc;IAYtB;;;;;OAKG;IACU,QAAQ,CACnB,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,EAC5B,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,SAAS,CAAC;IAQrB;;;OAGG;IACI,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAUzC;;;OAGG;IACI,SAAS,IAAI,SAAS,EAAE;IAQ/B;;;;OAIG;IACI,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa;IAUpD;;;OAGG;IACI,gBAAgB,IAAI,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;IAQxD;;;OAGG;IACI,aAAa,IAAI,aAAa;IAqBrC;;;;OAIG;IACI,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI;IA0BrE;;;;OAIG;IACI,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI;IAsBjE;;;;OAIG;IACI,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI;IAsBjE;;;;OAIG;IACI,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAsB3D;;;;OAIG;IACI,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa;IAsBxD;;;OAGG;IACI,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAsB1C,KAAK,IAAI,IAAI;IA6Bb,OAAO,IAAI,IAAI;IA6Df,SAAS,IAAI,SAAS;IA2CtB,EAAE,CAAC,CAAC,SAAS,iBAAiB,EACnC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAChB,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,GAC3B,IAAI;IAOA,GAAG,CAAC,CAAC,SAAS,iBAAiB,EACpC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAChB,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,GAC3B,IAAI;IAUA,IAAI,CAAC,CAAC,SAAS,iBAAiB,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAajD,iBAAiB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAe1C,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAoBtC,WAAW,IAAI,IAAI;IA2BnB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAQrC,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAK/B,YAAY,IAAI,MAAM;IAMhB,gBAAgB,CAC3B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC;IAKT,kBAAkB,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IAKpC,kBAAkB,IAAI,GAAG;IAKnB,sBAAsB,CACjC,WAAW,EAAE,GAAG,EAChB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC;IAKT,aAAa,IAAI,UAAU;IAI3B,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI;IAI1D,kBAAkB,IAAI,eAAe,GAAG,IAAI;IAI5C,iBAAiB,IAAI,cAAc,GAAG,IAAI;IAIjD,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,cAAc;IAetB,OAAO,CAAC,iBAAiB;IA6FzB,OAAO,CAAC,WAAW;IAkDnB,OAAO,CAAC,gBAAgB;CAuGzB;AAED,eAAe,eAAe,CAAA"}
@@ -140826,33 +140826,93 @@ class SplatViewerCore {
140826
140826
  if (!this.app)
140827
140827
  return;
140828
140828
  const canvas = this.app.graphicsDevice.canvas;
140829
- // Set the canvas resolution to match the display size with device pixel ratio
140829
+ // Ensure canvas and its parent fill available space by default (non-destructive)
140830
+ if (!canvas.style.display)
140831
+ canvas.style.display = 'block';
140832
+ if (!canvas.style.width)
140833
+ canvas.style.width = '100%';
140834
+ if (!canvas.style.height)
140835
+ canvas.style.height = '100%';
140836
+ if (canvas.parentElement) {
140837
+ const ps = canvas.parentElement.style;
140838
+ if (!ps.width)
140839
+ ps.width = '100%';
140840
+ if (!ps.height)
140841
+ ps.height = '100%';
140842
+ }
140843
+ // Helper: apply resolution and notify dependents
140844
+ const applyResolution = (width, height) => {
140845
+ if (canvas.width === width && canvas.height === height)
140846
+ return;
140847
+ canvas.width = width;
140848
+ canvas.height = height;
140849
+ this.app.resizeCanvas(width, height);
140850
+ if (this._orbit &&
140851
+ this._orbit.navigationCube &&
140852
+ typeof this._orbit.navigationCube.onCanvasResize === 'function') {
140853
+ this._orbit.navigationCube.onCanvasResize();
140854
+ }
140855
+ };
140856
+ // Fallback: compute from CSS box * devicePixelRatio
140830
140857
  const updateResolution = () => {
140831
140858
  const rect = canvas.getBoundingClientRect();
140832
140859
  const pixelRatio = window.devicePixelRatio || 1;
140833
- // Set canvas internal resolution to match display size * pixel ratio
140834
140860
  const width = Math.floor(rect.width * pixelRatio);
140835
140861
  const height = Math.floor(rect.height * pixelRatio);
140836
- if (canvas.width !== width || canvas.height !== height) {
140837
- canvas.width = width;
140838
- canvas.height = height;
140839
- // Update PlayCanvas app resolution
140840
- this.app.resizeCanvas(width, height);
140841
- // Notify navigation cube about canvas resize
140842
- if (this._orbit &&
140843
- this._orbit.navigationCube &&
140844
- typeof this._orbit.navigationCube.onCanvasResize ===
140845
- 'function') {
140846
- this._orbit.navigationCube.onCanvasResize();
140862
+ applyResolution(width, height);
140863
+ };
140864
+ // Prefer ResizeObserver entry data (devicePixelContentBoxSize when available)
140865
+ const updateFromEntry = (entry) => {
140866
+ let width = null;
140867
+ let height = null;
140868
+ const dpcb = entry.devicePixelContentBoxSize;
140869
+ if (dpcb && dpcb.length > 0) {
140870
+ width = Math.ceil(dpcb[0].inlineSize);
140871
+ height = Math.ceil(dpcb[0].blockSize);
140872
+ }
140873
+ else {
140874
+ const cbs = entry.contentBoxSize;
140875
+ if (cbs && cbs.length > 0) {
140876
+ const pixelRatio = window.devicePixelRatio || 1;
140877
+ width = Math.ceil(cbs[0].inlineSize * pixelRatio);
140878
+ height = Math.ceil(cbs[0].blockSize * pixelRatio);
140847
140879
  }
140848
140880
  }
140881
+ if (width !== null && height !== null) {
140882
+ applyResolution(width, height);
140883
+ }
140884
+ else {
140885
+ updateResolution();
140886
+ }
140849
140887
  };
140850
140888
  // Initial resolution setup
140851
140889
  updateResolution();
140852
140890
  // Set up resize observer for automatic resolution updates
140853
140891
  if (window.ResizeObserver) {
140854
- this._resizeObserver = new ResizeObserver(() => {
140855
- updateResolution();
140892
+ this._resizeObserver = new ResizeObserver((entries) => {
140893
+ if (!entries || entries.length === 0) {
140894
+ updateResolution();
140895
+ return;
140896
+ }
140897
+ const canvasEntry = entries.find(e => e.target === canvas);
140898
+ if (canvasEntry) {
140899
+ updateFromEntry(canvasEntry);
140900
+ }
140901
+ else {
140902
+ // Fall back to the first entry if canvas wasn't explicitly included
140903
+ if (entries.length > 0) {
140904
+ const firstEntry = entries[0];
140905
+ if (firstEntry) {
140906
+ updateFromEntry(firstEntry);
140907
+ }
140908
+ else {
140909
+ updateResolution();
140910
+ }
140911
+ }
140912
+ else {
140913
+ updateResolution();
140914
+ }
140915
+ }
140856
140916
  });
140857
140917
  // Observe both the canvas and its parent container for resize events
140858
140918
  this._resizeObserver.observe(canvas);
@@ -140860,11 +140920,11 @@ class SplatViewerCore {
140860
140920
  this._resizeObserver.observe(canvas.parentElement);
140861
140921
  }
140862
140922
  }
140863
- else {
140864
- // Fallback for browsers without ResizeObserver
140865
- window.addEventListener('resize', updateResolution);
140866
- this._resizeHandler = updateResolution;
140867
- }
140923
+ // Additionally listen to window resize to handle viewport changes
140924
+ // (e.g., when resizing dev tools). This mirrors superSplat behavior
140925
+ // and ensures the canvas always matches the available space.
140926
+ window.addEventListener('resize', updateResolution);
140927
+ this._resizeHandler = updateResolution;
140868
140928
  }
140869
140929
  }
140870
140930