pacem 0.53.0-markov → 0.53.0-pascal

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/dist/css/pacem-dark-content.min.css +1 -1
  2. package/dist/css/pacem-dark-shell.min.css +1 -1
  3. package/dist/css/pacem-dark.min.css +1 -1
  4. package/dist/css/pacem-light-content.min.css +1 -1
  5. package/dist/css/pacem-light-shell.min.css +1 -1
  6. package/dist/css/pacem-light.min.css +1 -1
  7. package/dist/css/pacem-phousys-content.min.css +1 -1
  8. package/dist/css/pacem-phousys-shell.min.css +1 -1
  9. package/dist/css/pacem-phousys.min.css +1 -1
  10. package/dist/js/azure-maps.d.ts +1 -1
  11. package/dist/js/pacem-2d.d.ts +1 -1
  12. package/dist/js/pacem-2d.js +1 -1
  13. package/dist/js/pacem-2d.min.js +1 -1
  14. package/dist/js/pacem-3d.d.ts +1 -1
  15. package/dist/js/pacem-3d.js +49 -27
  16. package/dist/js/pacem-3d.min.js +2 -2
  17. package/dist/js/pacem-charts.d.ts +1 -1
  18. package/dist/js/pacem-charts.js +1 -1
  19. package/dist/js/pacem-charts.min.js +1 -1
  20. package/dist/js/pacem-cms.d.ts +1 -1
  21. package/dist/js/pacem-cms.js +1 -1
  22. package/dist/js/pacem-cms.min.js +1 -1
  23. package/dist/js/pacem-core.d.ts +1 -1
  24. package/dist/js/pacem-core.js +1 -1
  25. package/dist/js/pacem-core.min.js +1 -1
  26. package/dist/js/pacem-foundation.d.ts +1 -1
  27. package/dist/js/pacem-foundation.js +1 -1
  28. package/dist/js/pacem-foundation.min.js +1 -1
  29. package/dist/js/pacem-fx.d.ts +1 -1
  30. package/dist/js/pacem-fx.js +1 -1
  31. package/dist/js/pacem-fx.min.js +1 -1
  32. package/dist/js/pacem-logging.d.ts +1 -1
  33. package/dist/js/pacem-logging.js +1 -1
  34. package/dist/js/pacem-logging.min.js +1 -1
  35. package/dist/js/pacem-maps.d.ts +1 -1
  36. package/dist/js/pacem-maps.js +1 -1
  37. package/dist/js/pacem-maps.min.js +1 -1
  38. package/dist/js/pacem-media.d.ts +1 -1
  39. package/dist/js/pacem-media.js +1 -1
  40. package/dist/js/pacem-media.min.js +1 -1
  41. package/dist/js/pacem-networking.d.ts +1 -1
  42. package/dist/js/pacem-networking.js +1 -1
  43. package/dist/js/pacem-networking.min.js +1 -1
  44. package/dist/js/pacem-numerical.d.ts +1 -1
  45. package/dist/js/pacem-numerical.js +1 -1
  46. package/dist/js/pacem-numerical.min.js +1 -1
  47. package/dist/js/pacem-plus.d.ts +1 -1
  48. package/dist/js/pacem-plus.js +1 -1
  49. package/dist/js/pacem-plus.min.js +1 -1
  50. package/dist/js/pacem-scaffolding.d.ts +1 -1
  51. package/dist/js/pacem-scaffolding.js +1 -1
  52. package/dist/js/pacem-scaffolding.min.js +1 -1
  53. package/dist/js/pacem-ui.d.ts +1 -1
  54. package/dist/js/pacem-ui.js +1 -1
  55. package/dist/js/pacem-ui.min.js +1 -1
  56. package/dist/js/swagger-types.d.ts +1 -1
  57. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  /**
2
- * pacem v0.53.0-markov (https://js.pacem.it)
2
+ * pacem v0.53.0-pascal (https://js.pacem.it)
3
3
  * Copyright 2026 Pacem (https://pacem.it)
4
4
  * Licensed under Apache-2.0
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * pacem v0.53.0-markov (https://js.pacem.it)
2
+ * pacem v0.53.0-pascal (https://js.pacem.it)
3
3
  * Copyright 2026 Pacem (https://pacem.it)
4
4
  * Licensed under Apache-2.0
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * pacem v0.53.0-markov (https://js.pacem.it)
2
+ * pacem v0.53.0-pascal (https://js.pacem.it)
3
3
  * Copyright 2026 Pacem (https://pacem.it)
4
4
  * Licensed under Apache-2.0
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * pacem v0.53.0-markov (https://js.pacem.it)
2
+ * pacem v0.53.0-pascal (https://js.pacem.it)
3
3
  * Copyright 2026 Pacem (https://pacem.it)
4
4
  * Licensed under Apache-2.0
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * pacem v0.53.0-markov (https://js.pacem.it)
2
+ * pacem v0.53.0-pascal (https://js.pacem.it)
3
3
  * Copyright 2026 Pacem (https://pacem.it)
4
4
  * Licensed under Apache-2.0
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * pacem v0.53.0-markov (https://js.pacem.it)
2
+ * pacem v0.53.0-pascal (https://js.pacem.it)
3
3
  * Copyright 2026 Pacem (https://pacem.it)
4
4
  * Licensed under Apache-2.0
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * pacem v0.53.0-markov (https://js.pacem.it)
2
+ * pacem v0.53.0-pascal (https://js.pacem.it)
3
3
  * Copyright 2026 Pacem (https://pacem.it)
4
4
  * Licensed under Apache-2.0
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * pacem v0.53.0-markov (https://js.pacem.it)
2
+ * pacem v0.53.0-pascal (https://js.pacem.it)
3
3
  * Copyright 2026 Pacem (https://pacem.it)
4
4
  * Licensed under Apache-2.0
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * pacem v0.53.0-markov (https://js.pacem.it)
2
+ * pacem v0.53.0-pascal (https://js.pacem.it)
3
3
  * Copyright 2026 Pacem (https://pacem.it)
4
4
  * Licensed under Apache-2.0
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * pacem v0.53.0-markov (https://js.pacem.it)
2
+ * pacem v0.53.0-pascal (https://js.pacem.it)
3
3
  * Copyright 2026 Pacem (https://pacem.it)
4
4
  * Licensed under Apache-2.0
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * pacem v0.53.0-markov (https://js.pacem.it)
2
+ * pacem v0.53.0-pascal (https://js.pacem.it)
3
3
  * Copyright 2026 Pacem (https://pacem.it)
4
4
  * Licensed under Apache-2.0
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * pacem v0.53.0-markov (https://js.pacem.it)
2
+ * pacem v0.53.0-pascal (https://js.pacem.it)
3
3
  * Copyright 2026 Pacem (https://pacem.it)
4
4
  * Licensed under Apache-2.0
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * pacem v0.53.0-markov (https://js.pacem.it)
2
+ * pacem v0.53.0-pascal (https://js.pacem.it)
3
3
  * Copyright 2026 Pacem (https://pacem.it)
4
4
  * Licensed under Apache-2.0
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * pacem v0.53.0-markov (https://js.pacem.it)
2
+ * pacem v0.53.0-pascal (https://js.pacem.it)
3
3
  * Copyright 2026 Pacem (https://pacem.it)
4
4
  * Licensed under Apache-2.0
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * pacem v0.53.0-markov (https://js.pacem.it)
2
+ * pacem v0.53.0-pascal (https://js.pacem.it)
3
3
  * Copyright 2026 Pacem (https://pacem.it)
4
4
  * Licensed under Apache-2.0
5
5
  */
@@ -2813,8 +2813,7 @@ var Pacem;
2813
2813
  if (Pacem.Utils.isNull(set)) {
2814
2814
  cache.set(key, set = new Map());
2815
2815
  }
2816
- let retval = set.get(label);
2817
- if (refresh || Pacem.Utils.isNull(retval)) {
2816
+ if (refresh || !set.has(label)) {
2818
2817
  const entries = buffers.map((item, index) => {
2819
2818
  const entry = {
2820
2819
  binding: index,
@@ -2831,10 +2830,13 @@ var Pacem;
2831
2830
  };
2832
2831
  // custom config happens here
2833
2832
  callback(descriptor);
2834
- const actual = device.createBindGroup(descriptor);
2835
- set.set(label, retval = actual);
2833
+ const retval = device.createBindGroup(descriptor);
2834
+ set.set(label, retval);
2835
+ return retval;
2836
+ }
2837
+ else {
2838
+ return set.get(label);
2836
2839
  }
2837
- return retval;
2838
2840
  }
2839
2841
  }
2840
2842
  class MeshWGSLBuilder {
@@ -3003,6 +3005,14 @@ var Pacem;
3003
3005
  }
3004
3006
  }
3005
3007
  }
3008
+ const PipelineUtils = {
3009
+ writeBufferConditionally: (device, buffer) => {
3010
+ if (!buffer.fresh) {
3011
+ return;
3012
+ }
3013
+ device.queue.writeBuffer(buffer.buffer, 0, buffer.value);
3014
+ }
3015
+ };
3006
3016
  class MeshRenderPipelineClass {
3007
3017
  constructor(_context, _builder, _cache = new RenderPipelineCache()) {
3008
3018
  this._context = _context;
@@ -3017,8 +3027,9 @@ var Pacem;
3017
3027
  if (layout.label !== (labelPrefix + 'material-bind-group-layout')) {
3018
3028
  throw new Error('BindGroupLayout mismatch!');
3019
3029
  }
3020
- return this._cache.ensureBindGroup(this._context, item, [buffer], refresh, layout, label, ({ entries }) => {
3030
+ return this._cache.ensureBindGroup(this._context, item, [buffer], refresh, layout, label, (descriptor) => {
3021
3031
  const { device } = this.context;
3032
+ const entries = descriptor.entries /* entries are build as array in the method */;
3022
3033
  if (texture) {
3023
3034
  entries.push({
3024
3035
  binding: WebGPU.SAMPLER_BINDING_INDEX, resource: device.createSampler({
@@ -3337,8 +3348,9 @@ var Pacem;
3337
3348
  if (Pacem.Utils.isNull(meshBuffer)) {
3338
3349
  throw new ReferenceError(`Null ${WebGPU.RenderableBuffer.name} bringing world transform buffer was provided.`);
3339
3350
  }
3340
- const worldTransform = meshBuffer.buffer(ctx, 'objectWorldTransform'), worldTransformBuffer = worldTransform.buffer, worldTransformArray = worldTransform.value;
3341
- device.queue.writeBuffer(worldTransformBuffer, 0, worldTransformArray);
3351
+ const worldTransform = meshBuffer.buffer(ctx, 'objectWorldTransform'), worldTransformBuffer = worldTransform.buffer;
3352
+ // writes only if buffer is fresh
3353
+ PipelineUtils.writeBufferConditionally(device, worldTransform);
3342
3354
  const { group } = wgsl.bindings(WebGPU.WGSLBindingType.Mesh, 'objectWorldTransform', 0);
3343
3355
  const bindGroup = this._ensureWorldTransformBindGroup(meshBuffer.item, worldTransformBuffer, worldTransform.fresh /*false*/ /* persist the same bindGroup, given the constant size */, group, raycasting);
3344
3356
  pass.setBindGroup(group, bindGroup);
@@ -3356,8 +3368,9 @@ var Pacem;
3356
3368
  if (Pacem.Utils.isNull(cameraBuffer)) {
3357
3369
  throw new ReferenceError(`Null ${WebGPU.RenderableBuffer.name} bringing view projection buffers was provided.`);
3358
3370
  }
3359
- const viewTransformBuffer = cameraBuffer.buffer(ctx, 'cameraViewTransform'), viewTransformArray = viewTransformBuffer.value, viewTransformBufferBuffer = viewTransformBuffer.buffer;
3360
- device.queue.writeBuffer(viewTransformBufferBuffer, 0, viewTransformArray);
3371
+ const viewTransformBuffer = cameraBuffer.buffer(ctx, 'cameraViewTransform'), viewTransformBufferBuffer = viewTransformBuffer.buffer;
3372
+ // writes only if buffer is fresh
3373
+ PipelineUtils.writeBufferConditionally(device, viewTransformBuffer);
3361
3374
  const { group } = wgsl.bindings(WebGPU.WGSLBindingType.Camera, 'cameraViewTransform', 0);
3362
3375
  const bindGroup = this._ensureCameraProjectionBindGroup(cameraBuffer.item, viewTransformBufferBuffer,
3363
3376
  /* viewTransformBuffer.fresh */ false /* persist the same bindGroup, given the constant size */, group, raycasting);
@@ -3377,8 +3390,9 @@ var Pacem;
3377
3390
  if (Pacem.Utils.isNull(meshBuffer)) {
3378
3391
  throw new ReferenceError(`Null ${WebGPU.RenderableBuffer.name} bringing vertex colors was provided.`);
3379
3392
  }
3380
- const vertexColorsBuffer = meshBuffer.buffer(ctx, 'material'), vertexColorsArray = vertexColorsBuffer.value, vertexColorsBufferBuffer = vertexColorsBuffer.buffer;
3381
- device.queue.writeBuffer(vertexColorsBufferBuffer, 0, vertexColorsArray);
3393
+ const vertexColorsBuffer = meshBuffer.buffer(ctx, 'material'), vertexColorsBufferBuffer = vertexColorsBuffer.buffer;
3394
+ // writes only if buffer is fresh
3395
+ PipelineUtils.writeBufferConditionally(device, vertexColorsBuffer);
3382
3396
  let tex = meshBuffer.texture(ctx);
3383
3397
  const texBmp = tex?.texture;
3384
3398
  const bindGroup = this._ensureMaterialBindGroup(meshBuffer.item, vertexColorsBufferBuffer, texBmp, vertexColorsBuffer.fresh, materialGroupIndex);
@@ -3394,7 +3408,8 @@ var Pacem;
3394
3408
  const lightBuffers = lightArray.map(l => { return { buffer: l.buffer(ctx, 'light'), id: l.item.key }; });
3395
3409
  const bindGroup = this._ensureLightingBindGroup(lightBuffers, lightArray.some(i => i.item.flags.length > 0), lightingGroupIndex);
3396
3410
  for (let lightBuffer of lightBuffers) {
3397
- device.queue.writeBuffer(lightBuffer.buffer.buffer, 0, lightBuffer.buffer.value);
3411
+ // writes only if buffer is fresh
3412
+ PipelineUtils.writeBufferConditionally(device, lightBuffer.buffer);
3398
3413
  }
3399
3414
  pass.setBindGroup(lightingGroupIndex, bindGroup);
3400
3415
  }
@@ -3405,8 +3420,9 @@ var Pacem;
3405
3420
  if (Pacem.Utils.isNull(meshBuffer)) {
3406
3421
  throw new ReferenceError(`Null ${WebGPU.RenderableBuffer.name} bringing world transform buffer was provided.`);
3407
3422
  }
3408
- const u32id = meshBuffer.buffer(ctx, 'u32id'), u32idBuffer = u32id.buffer, u32idArray = u32id.value;
3409
- device.queue.writeBuffer(u32idBuffer, 0, u32idArray);
3423
+ const u32id = meshBuffer.buffer(ctx, 'u32id'), u32idBuffer = u32id.buffer;
3424
+ // writes only if buffer is fresh
3425
+ PipelineUtils.writeBufferConditionally(device, u32id);
3410
3426
  const group = WebGPU.UNIFORM_GROUP_INDEX_COLORPICKING;
3411
3427
  const bindGroup = this._ensureU32idBindGroup(meshBuffer.item, u32idBuffer, false /* reuse u32id.fresh*/);
3412
3428
  pass.setBindGroup(group, bindGroup);
@@ -3782,8 +3798,9 @@ var Pacem;
3782
3798
  if (Pacem.Utils.isNull(meshBuffer)) {
3783
3799
  throw new ReferenceError(`Null ${WebGPU.RenderableBuffer.name} bringing world transform buffer was provided.`);
3784
3800
  }
3785
- const worldTransform = meshBuffer.buffer(ctx, 'objectWorldTransform'), worldTransformBuffer = worldTransform.buffer, worldTransformArray = worldTransform.value;
3786
- device.queue.writeBuffer(worldTransformBuffer, 0, worldTransformArray);
3801
+ const worldTransform = meshBuffer.buffer(ctx, 'objectWorldTransform'), worldTransformBuffer = worldTransform.buffer;
3802
+ // writes only if buffer is fresh
3803
+ PipelineUtils.writeBufferConditionally(device, worldTransform);
3787
3804
  const { group } = wgsl.bindings(WebGPU.WGSLBindingType.Mesh, 'objectWorldTransform', 0);
3788
3805
  const bindGroup = this._ensureLineWorldTransformBindGroup(meshBuffer.item, worldTransformBuffer,
3789
3806
  /*worldTransform.fresh*/ false /* persist the same bindGroup, given the constant size */, group, raycasting);
@@ -3802,8 +3819,9 @@ var Pacem;
3802
3819
  if (Pacem.Utils.isNull(cameraBuffer)) {
3803
3820
  throw new ReferenceError(`Null ${WebGPU.RenderableBuffer.name} bringing view projection buffers was provided.`);
3804
3821
  }
3805
- const viewTransformBuffer = cameraBuffer.buffer(ctx, 'cameraViewTransform'), viewTransformArray = viewTransformBuffer.value, viewTransformBufferBuffer = viewTransformBuffer.buffer;
3806
- device.queue.writeBuffer(viewTransformBufferBuffer, 0, viewTransformArray);
3822
+ const viewTransformBuffer = cameraBuffer.buffer(ctx, 'cameraViewTransform'), viewTransformBufferBuffer = viewTransformBuffer.buffer;
3823
+ // writes only if buffer is fresh
3824
+ PipelineUtils.writeBufferConditionally(device, viewTransformBuffer);
3807
3825
  const { group } = wgsl.bindings(WebGPU.WGSLBindingType.Camera, 'cameraViewTransform', 0);
3808
3826
  const bindGroup = this._ensureLineCameraProjectionBindGroup(cameraBuffer.item, viewTransformBufferBuffer,
3809
3827
  /*viewTransformBuffer.fresh*/ false, group, raycasting);
@@ -3824,15 +3842,17 @@ var Pacem;
3824
3842
  throw new ReferenceError(`Null ${WebGPU.RenderableBuffer.name} bringing vertex buffers was provided as index 0.`);
3825
3843
  }
3826
3844
  // storage buffer
3827
- const positionsBuffer = /* should have a storage buffer here */ meshBuffer.buffer(ctx, 'geometryPositions'), positionsArray = positionsBuffer.value, positionsBufferBuffer = positionsBuffer.buffer;
3845
+ const positionsBuffer = /* should have a storage buffer here */ meshBuffer.buffer(ctx, 'geometryPositions'), positionsBufferBuffer = positionsBuffer.buffer;
3828
3846
  let refresh = positionsBuffer.fresh;
3829
3847
  const buffersInput = [positionsBufferBuffer];
3830
- device.queue.writeBuffer(positionsBufferBuffer, 0, positionsArray);
3848
+ // writes only if buffer is fresh
3849
+ PipelineUtils.writeBufferConditionally(device, positionsBuffer);
3831
3850
  if (fatLines) {
3832
- const lineBuffer = meshBuffer.buffer(ctx, 'line'), lineArray = lineBuffer.value, lineBufferBuffer = lineBuffer.buffer;
3851
+ const lineBuffer = meshBuffer.buffer(ctx, 'line'), lineBufferBuffer = lineBuffer.buffer;
3833
3852
  refresh ||= lineBuffer.fresh;
3834
3853
  buffersInput.push(lineBufferBuffer);
3835
- device.queue.writeBuffer(lineBufferBuffer, 0, lineArray);
3854
+ // writes only if buffer is fresh
3855
+ PipelineUtils.writeBufferConditionally(device, lineBuffer);
3836
3856
  }
3837
3857
  const { group: groupIndex } = wgsl.bindings(WebGPU.WGSLBindingType.Mesh, 'line' /* or 'geometryPositions' */, 0);
3838
3858
  const bindGroup = this._ensureLinePositionsBindGroup(meshBuffer.item, buffersInput, refresh, groupIndex);
@@ -3844,8 +3864,9 @@ var Pacem;
3844
3864
  if (Pacem.Utils.isNull(meshBuffer)) {
3845
3865
  throw new ReferenceError(`Null ${WebGPU.RenderableBuffer.name} bringing vertex colors was provided.`);
3846
3866
  }
3847
- const vertexColorsBuffer = meshBuffer.buffer(ctx, 'material'), vertexColorsArray = vertexColorsBuffer.value, vertexColorsBufferBuffer = vertexColorsBuffer.buffer;
3848
- device.queue.writeBuffer(vertexColorsBufferBuffer, 0, vertexColorsArray);
3867
+ const vertexColorsBuffer = meshBuffer.buffer(ctx, 'material'), vertexColorsBufferBuffer = vertexColorsBuffer.buffer;
3868
+ // writes only if buffer is fresh
3869
+ PipelineUtils.writeBufferConditionally(device, vertexColorsBuffer);
3849
3870
  const bindGroup = this._ensureLineMaterialBindGroup(meshBuffer.item, vertexColorsBufferBuffer, vertexColorsBuffer.fresh, materialGroupIndex);
3850
3871
  pass.setBindGroup(materialGroupIndex, bindGroup);
3851
3872
  };
@@ -3856,7 +3877,8 @@ var Pacem;
3856
3877
  throw new ReferenceError(`Null ${WebGPU.RenderableBuffer.name} bringing world transform buffer was provided.`);
3857
3878
  }
3858
3879
  const u32id = meshBuffer.buffer(ctx, 'u32id'), u32idBuffer = u32id.buffer, u32idArray = u32id.value;
3859
- device.queue.writeBuffer(u32idBuffer, 0, u32idArray);
3880
+ // writes only if buffer is fresh
3881
+ PipelineUtils.writeBufferConditionally(device, u32id);
3860
3882
  const bindGroup = this._ensureLineU32idBindGroup(meshBuffer.item, u32idBuffer, /* reuse */ false /*u32id.fresh*/);
3861
3883
  pass.setBindGroup(raycastLayoutIndex, bindGroup);
3862
3884
  };