Added resize callback to restart simulation new if canvas is resized

This commit is contained in:
2026-02-21 10:25:20 +01:00
parent 2bfa8ba9a1
commit 5721b2e48e
4 changed files with 14 additions and 6 deletions

View File

@@ -8,7 +8,7 @@ import {MatSelect} from '@angular/material/select';
import {AlgorithmInformation} from '../information/information.models';
import {UrlConstants} from '../../../constants/UrlConstants';
import {FormsModule} from '@angular/forms';
import {BabylonCanvas, RenderCallback, RenderConfig, SceneReadyEvent} from '../../../shared/rendering/canvas/babylon-canvas.component';
import {BabylonCanvas, RenderCallback, RenderConfig, SceneEventData} from '../../../shared/rendering/canvas/babylon-canvas.component';
import {FRACTAL2D_FRAGMENT, FRACTAL2D_VERTEX} from './fractal.shader';
import {PointerEventTypes, PointerInfo, Scene, ShaderMaterial, Vector2} from '@babylonjs/core';
import {MatButton} from '@angular/material/button';
@@ -155,7 +155,7 @@ export class FractalComponent implements OnInit {
}
}
onSceneReady(event: SceneReadyEvent): void {
onSceneReady(event: SceneEventData): void {
event.scene.onPointerObservable.add((pointerInfo) => {
switch (pointerInfo.type) {

View File

@@ -6,6 +6,7 @@
<app-babylon-canvas
[config]="renderConfig"
(sceneReady)="onSceneReady($event)"
(sceneResized)="onSceneReady($event)"
/>
</mat-card-content>
</mat-card>

View File

@@ -1,5 +1,5 @@
import {Component} from '@angular/core';
import {BabylonCanvas, RenderConfig, SceneReadyEvent} from '../../../shared/rendering/canvas/babylon-canvas.component';
import {BabylonCanvas, RenderConfig, SceneEventData} from '../../../shared/rendering/canvas/babylon-canvas.component';
import {MatCard, MatCardContent, MatCardHeader, MatCardTitle} from '@angular/material/card';
import {ComputeShader, ShaderLanguage, StorageBuffer} from '@babylonjs/core';
import {PENDULUM_FRAGMENT_SHADER_WGSL, PENDULUM_PHYSIC_COMPUTE_SHADER_WGSL, PENDULUM_RENDER_COMPUTE_SHADER_WGSL, PENDULUM_VERTEX_SHADER_WGSL} from './pendulum.shader';
@@ -42,7 +42,7 @@ export class PendulumComponent {
trailDecay: 0.98
};
onSceneReady(event: SceneReadyEvent) {
onSceneReady(event: SceneEventData) {
const { engine, scene } = event;
engine.resize();
@@ -113,4 +113,5 @@ export class PendulumComponent {
csRender.dispatch(dispatchCount, 1, 1);
});
}
}