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.
- package/dist/css/pacem-dark-content.min.css +1 -1
- package/dist/css/pacem-dark-shell.min.css +1 -1
- package/dist/css/pacem-dark.min.css +1 -1
- package/dist/css/pacem-light-content.min.css +1 -1
- package/dist/css/pacem-light-shell.min.css +1 -1
- package/dist/css/pacem-light.min.css +1 -1
- package/dist/css/pacem-phousys-content.min.css +1 -1
- package/dist/css/pacem-phousys-shell.min.css +1 -1
- package/dist/css/pacem-phousys.min.css +1 -1
- package/dist/js/azure-maps.d.ts +1 -1
- package/dist/js/pacem-2d.d.ts +1 -1
- package/dist/js/pacem-2d.js +1 -1
- package/dist/js/pacem-2d.min.js +1 -1
- package/dist/js/pacem-3d.d.ts +1 -1
- package/dist/js/pacem-3d.js +49 -27
- package/dist/js/pacem-3d.min.js +2 -2
- package/dist/js/pacem-charts.d.ts +1 -1
- package/dist/js/pacem-charts.js +1 -1
- package/dist/js/pacem-charts.min.js +1 -1
- package/dist/js/pacem-cms.d.ts +1 -1
- package/dist/js/pacem-cms.js +1 -1
- package/dist/js/pacem-cms.min.js +1 -1
- package/dist/js/pacem-core.d.ts +1 -1
- package/dist/js/pacem-core.js +1 -1
- package/dist/js/pacem-core.min.js +1 -1
- package/dist/js/pacem-foundation.d.ts +1 -1
- package/dist/js/pacem-foundation.js +1 -1
- package/dist/js/pacem-foundation.min.js +1 -1
- package/dist/js/pacem-fx.d.ts +1 -1
- package/dist/js/pacem-fx.js +1 -1
- package/dist/js/pacem-fx.min.js +1 -1
- package/dist/js/pacem-logging.d.ts +1 -1
- package/dist/js/pacem-logging.js +1 -1
- package/dist/js/pacem-logging.min.js +1 -1
- package/dist/js/pacem-maps.d.ts +1 -1
- package/dist/js/pacem-maps.js +1 -1
- package/dist/js/pacem-maps.min.js +1 -1
- package/dist/js/pacem-media.d.ts +1 -1
- package/dist/js/pacem-media.js +1 -1
- package/dist/js/pacem-media.min.js +1 -1
- package/dist/js/pacem-networking.d.ts +1 -1
- package/dist/js/pacem-networking.js +1 -1
- package/dist/js/pacem-networking.min.js +1 -1
- package/dist/js/pacem-numerical.d.ts +1 -1
- package/dist/js/pacem-numerical.js +1 -1
- package/dist/js/pacem-numerical.min.js +1 -1
- package/dist/js/pacem-plus.d.ts +1 -1
- package/dist/js/pacem-plus.js +1 -1
- package/dist/js/pacem-plus.min.js +1 -1
- package/dist/js/pacem-scaffolding.d.ts +1 -1
- package/dist/js/pacem-scaffolding.js +1 -1
- package/dist/js/pacem-scaffolding.min.js +1 -1
- package/dist/js/pacem-ui.d.ts +1 -1
- package/dist/js/pacem-ui.js +1 -1
- package/dist/js/pacem-ui.min.js +1 -1
- package/dist/js/swagger-types.d.ts +1 -1
- package/package.json +1 -1
package/dist/js/azure-maps.d.ts
CHANGED
package/dist/js/pacem-2d.d.ts
CHANGED
package/dist/js/pacem-2d.js
CHANGED
package/dist/js/pacem-2d.min.js
CHANGED
package/dist/js/pacem-3d.d.ts
CHANGED
package/dist/js/pacem-3d.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* pacem v0.53.0-
|
|
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
|
-
|
|
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
|
|
2835
|
-
set.set(label, retval
|
|
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, (
|
|
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
|
|
3341
|
-
|
|
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'),
|
|
3360
|
-
|
|
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'),
|
|
3381
|
-
|
|
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
|
-
|
|
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
|
|
3409
|
-
|
|
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
|
|
3786
|
-
|
|
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'),
|
|
3806
|
-
|
|
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'),
|
|
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
|
-
|
|
3848
|
+
// writes only if buffer is fresh
|
|
3849
|
+
PipelineUtils.writeBufferConditionally(device, positionsBuffer);
|
|
3831
3850
|
if (fatLines) {
|
|
3832
|
-
const lineBuffer = meshBuffer.buffer(ctx, 'line'),
|
|
3851
|
+
const lineBuffer = meshBuffer.buffer(ctx, 'line'), lineBufferBuffer = lineBuffer.buffer;
|
|
3833
3852
|
refresh ||= lineBuffer.fresh;
|
|
3834
3853
|
buffersInput.push(lineBufferBuffer);
|
|
3835
|
-
|
|
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'),
|
|
3848
|
-
|
|
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
|
-
|
|
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
|
};
|