pacem 0.51.2 → 0.51.3-avaris
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 +15 -3
- package/dist/js/pacem-3d.js +83 -60
- 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
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* pacem v0.51.
|
|
2
|
+
* pacem v0.51.3-avaris (https://js.pacem.it)
|
|
3
3
|
* Copyright 2025 Pacem (https://pacem.it)
|
|
4
4
|
* Licensed under Apache-2.0
|
|
5
5
|
*/
|
|
@@ -385,7 +385,8 @@ declare namespace Pacem.Components.Drawing3D {
|
|
|
385
385
|
disconnectedCallback(): void;
|
|
386
386
|
get size(): Size;
|
|
387
387
|
private _resizeHandler;
|
|
388
|
-
render(item?: Pacem.Drawing3D.Renderable, deepUpdate?: boolean): void;
|
|
388
|
+
render(item?: Pacem.Drawing3D.Renderable, deepUpdate?: boolean, now?: number): void;
|
|
389
|
+
private _doRender;
|
|
389
390
|
}
|
|
390
391
|
}
|
|
391
392
|
declare namespace Pacem.Components.Drawing3D {
|
|
@@ -649,7 +650,17 @@ declare namespace Pacem.Drawing3D.WebGPU {
|
|
|
649
650
|
static createIndexed(device: GPUDevice, data: Uint16Array, label?: string): GPUBuffer;
|
|
650
651
|
}
|
|
651
652
|
class BufferLayouts {
|
|
653
|
+
/**
|
|
654
|
+
* Create one {@link GPUVertexBufferLayout} at the provided {@param shaderLocation} having the spcified {@param size}.
|
|
655
|
+
* @param shaderLocation {Number} Shader location index.
|
|
656
|
+
* @param size {Number} Float32Array size (defaults to 3 assuming a flattened array of 3D vectors as the most common case).
|
|
657
|
+
*/
|
|
652
658
|
static createVertex(shaderLocation: number, size?: number): GPUVertexBufferLayout;
|
|
659
|
+
/**
|
|
660
|
+
* Create one {@link GPUVertexBufferLayout} having the first defined shaderLocation at the provided {@param shaderLocationStart} index and the offsets obeying to the spcified {@param sizes}.
|
|
661
|
+
* @param shaderLocationStart {Number} First shader location index.
|
|
662
|
+
* @param sizes {Array} Ordered Float32Array sizes.
|
|
663
|
+
*/
|
|
653
664
|
static createVertex(shaderLocationStart: number, ...sizes: number[]): GPUVertexBufferLayout;
|
|
654
665
|
}
|
|
655
666
|
}
|
|
@@ -768,7 +779,7 @@ declare namespace Pacem.Drawing3D.WebGPU {
|
|
|
768
779
|
private static _memoizer;
|
|
769
780
|
static dispose(ctx: Context): void;
|
|
770
781
|
static createColorPicking(ctx: Context, items: RenderableBuffer[]): RenderPipeline | null;
|
|
771
|
-
static create(ctx: Context,
|
|
782
|
+
static create(ctx: Context, [mesh, camera, ...lights]: RenderableBuffer[], pipelineOptions?: Partial<PipelineOptions>): RenderPipeline;
|
|
772
783
|
}
|
|
773
784
|
}
|
|
774
785
|
declare namespace Pacem.Drawing3D.WebGPU {
|
|
@@ -820,6 +831,7 @@ declare namespace Pacem.Components.Drawing3D {
|
|
|
820
831
|
private _webGPUNotSupported;
|
|
821
832
|
initialize(scene: Pacem3DElement): Promise<HTMLCanvasElement | null>;
|
|
822
833
|
propertyChangedCallback(name: string, old: any, val: any, first?: boolean): void;
|
|
834
|
+
disconnectedCallback(): void;
|
|
823
835
|
dispose(scene: Pacem3DElement): void;
|
|
824
836
|
enableValidation: boolean;
|
|
825
837
|
private _ensureRenderer;
|
package/dist/js/pacem-3d.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* pacem v0.51.
|
|
2
|
+
* pacem v0.51.3-avaris (https://js.pacem.it)
|
|
3
3
|
* Copyright 2025 Pacem (https://pacem.it)
|
|
4
4
|
* Licensed under Apache-2.0
|
|
5
5
|
*/
|
|
@@ -825,13 +825,20 @@ var Pacem;
|
|
|
825
825
|
me.adapter.raycast(this, pixel, rect, callback);
|
|
826
826
|
};
|
|
827
827
|
this._resizeHandler = (evt) => {
|
|
828
|
-
const
|
|
828
|
+
const oldSize = this.#size;
|
|
829
|
+
const size = evt.detail;
|
|
830
|
+
if (!Pacem.Utils.isNull(oldSize) && oldSize.height === size.height && oldSize.width === size.width) {
|
|
831
|
+
return;
|
|
832
|
+
}
|
|
833
|
+
this.#size = size;
|
|
829
834
|
const adapter = this.adapter;
|
|
830
835
|
if (!Pacem.Utils.isNull(adapter)) {
|
|
831
836
|
this.adapter.invalidateSize(this, size);
|
|
832
837
|
this.dispatchEvent(new Components.ResizeEvent(size));
|
|
833
838
|
}
|
|
834
839
|
};
|
|
840
|
+
this.#then = 0;
|
|
841
|
+
this.#fps = 1000 / 60;
|
|
835
842
|
//#endregion
|
|
836
843
|
}
|
|
837
844
|
validate(item) {
|
|
@@ -962,6 +969,7 @@ var Pacem;
|
|
|
962
969
|
return false;
|
|
963
970
|
}
|
|
964
971
|
disconnectedCallback() {
|
|
972
|
+
cancelAnimationFrame(this.#handle);
|
|
965
973
|
const resizer = this._resizer, container = this._container;
|
|
966
974
|
if (!Pacem.Utils.isNull(container)) {
|
|
967
975
|
container.removeEventListener('click', this._clickHandler, false);
|
|
@@ -975,12 +983,11 @@ var Pacem;
|
|
|
975
983
|
}
|
|
976
984
|
super.disconnectedCallback();
|
|
977
985
|
}
|
|
986
|
+
#size;
|
|
978
987
|
get size() {
|
|
979
988
|
return this.#size;
|
|
980
989
|
}
|
|
981
|
-
|
|
982
|
-
#handle;
|
|
983
|
-
render(item, deepUpdate) {
|
|
990
|
+
render(item, deepUpdate, now = performance.now()) {
|
|
984
991
|
if (!Pacem.Utils.isNull(item)) {
|
|
985
992
|
const adapter = this.adapter;
|
|
986
993
|
if (!Pacem.Utils.isNull(adapter)) {
|
|
@@ -988,17 +995,25 @@ var Pacem;
|
|
|
988
995
|
}
|
|
989
996
|
}
|
|
990
997
|
else {
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
998
|
+
this._doRender(this.#then);
|
|
999
|
+
}
|
|
1000
|
+
}
|
|
1001
|
+
#handle;
|
|
1002
|
+
#then;
|
|
1003
|
+
#fps;
|
|
1004
|
+
_doRender(t = 0) {
|
|
1005
|
+
this.#handle = requestAnimationFrame(t => this._doRender(t));
|
|
1006
|
+
const now = t, fps = this.#fps;
|
|
1007
|
+
const delta = now - this.#then;
|
|
1008
|
+
if (delta > fps && !this.disabled && !Pacem.Utils.isNull(this.adapter)) {
|
|
1009
|
+
this.#then = now - (delta % fps);
|
|
1010
|
+
const scene = this.adapter.getScene(this);
|
|
1011
|
+
let cancelable = new CustomEvent('prerender', { detail: { scene }, cancelable: true });
|
|
1012
|
+
this.dispatchEvent(cancelable);
|
|
1013
|
+
if (!cancelable.defaultPrevented) {
|
|
1014
|
+
this.adapter.render(this);
|
|
1015
|
+
this.dispatchEvent(new CustomEvent('render', { detail: { scene } }));
|
|
1000
1016
|
}
|
|
1001
|
-
this.#handle = requestAnimationFrame(() => this.render());
|
|
1002
1017
|
}
|
|
1003
1018
|
}
|
|
1004
1019
|
};
|
|
@@ -2368,13 +2383,11 @@ var Pacem;
|
|
|
2368
2383
|
const lights = this.#lights;
|
|
2369
2384
|
const { hasTexture, shader } = data;
|
|
2370
2385
|
// TODO: consider backMap
|
|
2371
|
-
return `mesh-${shader}-${lights.map(l => l.type).join('-')}${(hasTexture ? '-map' : '-nomap')}`;
|
|
2386
|
+
//return `mesh-${shader}-${lights.map(l => l.type).join('-')}${(hasTexture ? '-map' : '-nomap')}`;
|
|
2387
|
+
return `mesh-${shader}${(hasTexture ? '-map' : '-nomap')}`;
|
|
2372
2388
|
}
|
|
2373
2389
|
bindgroup(type, key, index) {
|
|
2374
2390
|
const set = this.#bindgroups;
|
|
2375
|
-
if (!set.has(type)) {
|
|
2376
|
-
return null;
|
|
2377
|
-
}
|
|
2378
2391
|
const arr = set.get(type);
|
|
2379
2392
|
if (Pacem.Utils.isNull(arr)) {
|
|
2380
2393
|
return null;
|
|
@@ -2473,8 +2486,8 @@ var Pacem;
|
|
|
2473
2486
|
static { this._memoizer = new WeakMap(); }
|
|
2474
2487
|
static dispose(ctx) {
|
|
2475
2488
|
const memoizer = this._memoizer;
|
|
2476
|
-
|
|
2477
|
-
|
|
2489
|
+
const cache = memoizer.get(ctx);
|
|
2490
|
+
if (!Pacem.Utils.isNull(cache)) {
|
|
2478
2491
|
cache.clear();
|
|
2479
2492
|
memoizer.delete(ctx);
|
|
2480
2493
|
}
|
|
@@ -2488,16 +2501,16 @@ var Pacem;
|
|
|
2488
2501
|
}
|
|
2489
2502
|
return null;
|
|
2490
2503
|
}
|
|
2491
|
-
static create(ctx,
|
|
2504
|
+
static create(ctx, [mesh, camera, ...lights], pipelineOptions) {
|
|
2492
2505
|
const memoizer = RenderPipeline._memoizer;
|
|
2493
|
-
|
|
2494
|
-
|
|
2506
|
+
let cache = memoizer.get(ctx);
|
|
2507
|
+
if (Pacem.Utils.isNull(cache)) {
|
|
2508
|
+
memoizer.set(ctx, cache = new Map());
|
|
2495
2509
|
}
|
|
2496
|
-
const
|
|
2497
|
-
const
|
|
2498
|
-
|
|
2499
|
-
// find
|
|
2500
|
-
const mesh = items.find(i => Drawing3D.isMesh(i.item));
|
|
2510
|
+
//const camera = items.find(i => isCamera(i.item));
|
|
2511
|
+
//const lights = items.filter(i => isLight(i.item));
|
|
2512
|
+
//// find main object
|
|
2513
|
+
//const mesh = items.find(i => isMesh(i.item));
|
|
2501
2514
|
if (!Pacem.Utils.isNull(mesh)) {
|
|
2502
2515
|
const meshPipeline = new MeshRenderPipelineClass(ctx, mesh, camera, ...lights);
|
|
2503
2516
|
// cache peek for sudden return
|
|
@@ -2680,21 +2693,21 @@ var Pacem;
|
|
|
2680
2693
|
this.draw = (pass, ...buffers) => {
|
|
2681
2694
|
throw new Error('Deprecated.');
|
|
2682
2695
|
};
|
|
2683
|
-
this.frame = (pass, ...
|
|
2684
|
-
let meshBuffer, cameraBuffer, lightBuffers = [];
|
|
2685
|
-
for (let buffer of buffers) {
|
|
2686
|
-
|
|
2687
|
-
|
|
2688
|
-
|
|
2689
|
-
|
|
2690
|
-
|
|
2691
|
-
|
|
2692
|
-
|
|
2693
|
-
|
|
2694
|
-
|
|
2695
|
-
|
|
2696
|
-
|
|
2697
|
-
}
|
|
2696
|
+
this.frame = (pass, meshBuffer, cameraBuffer, ...lightBuffers) => {
|
|
2697
|
+
//let meshBuffer: RenderableBuffer, cameraBuffer: RenderableBuffer, lightBuffers: RenderableBuffer[] = [];
|
|
2698
|
+
//for (let buffer of buffers) {
|
|
2699
|
+
// if (Utils.isNull(meshBuffer) && isMesh(buffer.item)) {
|
|
2700
|
+
// meshBuffer = buffer;
|
|
2701
|
+
// continue;
|
|
2702
|
+
// }
|
|
2703
|
+
// if (Utils.isNull(cameraBuffer) && isCamera(buffer.item)) {
|
|
2704
|
+
// cameraBuffer = buffer;
|
|
2705
|
+
// continue;
|
|
2706
|
+
// }
|
|
2707
|
+
// if (isLight(buffer.item)) {
|
|
2708
|
+
// lightBuffers.push(buffer);
|
|
2709
|
+
// }
|
|
2710
|
+
//}
|
|
2698
2711
|
// same pass
|
|
2699
2712
|
const samePass = pass === this.#previousPass;
|
|
2700
2713
|
if (!samePass) {
|
|
@@ -4020,7 +4033,7 @@ var Pacem;
|
|
|
4020
4033
|
if (validationScope) {
|
|
4021
4034
|
device.pushErrorScope('validation');
|
|
4022
4035
|
}
|
|
4023
|
-
const renderables = [mesh, camera]
|
|
4036
|
+
const renderables = [mesh, camera, ...lights];
|
|
4024
4037
|
const pipeline = WebGPU.RenderPipeline.create(context, renderables, { multisample: true });
|
|
4025
4038
|
// render
|
|
4026
4039
|
pipeline.frame(pass, ...renderables);
|
|
@@ -4077,24 +4090,27 @@ var Pacem;
|
|
|
4077
4090
|
_createOrYieldRenderable(item, geometries = this.#geometries, materials = this.#materials) {
|
|
4078
4091
|
item.stage ??= this.#stage;
|
|
4079
4092
|
const store = this.#renderables;
|
|
4080
|
-
|
|
4081
|
-
|
|
4093
|
+
let found = store.get(item);
|
|
4094
|
+
if (Pacem.Utils.isNull(found)) {
|
|
4095
|
+
store.set(item, found = WebGPU.RenderableBuffer.create(item, geometries));
|
|
4082
4096
|
}
|
|
4083
|
-
return
|
|
4097
|
+
return found;
|
|
4084
4098
|
}
|
|
4085
4099
|
_createOrYieldGeometry(item) {
|
|
4086
4100
|
const store = this.#geometries;
|
|
4087
|
-
|
|
4088
|
-
|
|
4101
|
+
let found = store.get(item);
|
|
4102
|
+
if (Pacem.Utils.isNull(found)) {
|
|
4103
|
+
store.set(item, found = WebGPU.ManagedBuffer.create(item));
|
|
4089
4104
|
}
|
|
4090
|
-
return
|
|
4105
|
+
return found;
|
|
4091
4106
|
}
|
|
4092
4107
|
_createOrYieldMaterial(item) {
|
|
4093
4108
|
const store = this.#materials;
|
|
4094
|
-
|
|
4095
|
-
|
|
4109
|
+
let found = store.get(item);
|
|
4110
|
+
if (Pacem.Utils.isNull(found)) {
|
|
4111
|
+
store.set(item, found = WebGPU.ManagedBuffer.create(item));
|
|
4096
4112
|
}
|
|
4097
|
-
return
|
|
4113
|
+
return found;
|
|
4098
4114
|
}
|
|
4099
4115
|
_unwrapBuffers(grp, accumulator) {
|
|
4100
4116
|
accumulator ??= { meshes: [], lights: [], cameras: [], groups: [] };
|
|
@@ -4117,8 +4133,7 @@ var Pacem;
|
|
|
4117
4133
|
return accumulator;
|
|
4118
4134
|
}
|
|
4119
4135
|
;
|
|
4120
|
-
|
|
4121
|
-
const array = Array.from(items);
|
|
4136
|
+
_update(array) {
|
|
4122
4137
|
const groupBuffers = [];
|
|
4123
4138
|
const meshBuffers = [];
|
|
4124
4139
|
const lightBuffers = [];
|
|
@@ -4164,6 +4179,10 @@ var Pacem;
|
|
|
4164
4179
|
}
|
|
4165
4180
|
this.#looper = new WebGPU.RenderLooper(accumulator);
|
|
4166
4181
|
}
|
|
4182
|
+
update(...items) {
|
|
4183
|
+
const array = Array.from(items);
|
|
4184
|
+
this._update(array);
|
|
4185
|
+
}
|
|
4167
4186
|
dispose() {
|
|
4168
4187
|
if (this._disposeContext()) {
|
|
4169
4188
|
const { device } = this.#context;
|
|
@@ -4269,6 +4288,14 @@ var Pacem;
|
|
|
4269
4288
|
}
|
|
4270
4289
|
}
|
|
4271
4290
|
}
|
|
4291
|
+
disconnectedCallback() {
|
|
4292
|
+
const set = this.#renderers;
|
|
4293
|
+
for (let [_, renderer] of set) {
|
|
4294
|
+
renderer.dispose();
|
|
4295
|
+
}
|
|
4296
|
+
set.clear();
|
|
4297
|
+
super.disconnectedCallback();
|
|
4298
|
+
}
|
|
4272
4299
|
dispose(scene) {
|
|
4273
4300
|
const renderers = this.#renderers;
|
|
4274
4301
|
if (renderers.has(scene)) {
|
|
@@ -4278,10 +4305,6 @@ var Pacem;
|
|
|
4278
4305
|
}
|
|
4279
4306
|
_ensureRenderer(scene) {
|
|
4280
4307
|
const set = this.#renderers;
|
|
4281
|
-
if (!set.has(scene)) {
|
|
4282
|
-
return null;
|
|
4283
|
-
}
|
|
4284
|
-
// renderer
|
|
4285
4308
|
return set.get(scene);
|
|
4286
4309
|
}
|
|
4287
4310
|
_updatePipeline(scene) {
|