Merge pull request #863 from openglobus/memclear

frequently clear memory and pass parameters for that
This commit is contained in:
Michael Gevlich 2025-04-30 17:33:58 +04:00 committed by GitHub
commit a529debb5e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 10 additions and 3 deletions

View File

@ -55,6 +55,8 @@ export interface IGlobeParams {
fontsSrc?: string;
resourcesSrc?: string;
atmosphereParameters?: IAtmosphereParams;
minDistanceBeforeMemClear?: number;
vectorTileSize?: number;
gamma?: number;
exposure?: number;
}
@ -252,6 +254,8 @@ class Globe {
atmosphereEnabled: options.atmosphereEnabled,
transitionOpacityEnabled: options.transitionOpacityEnabled,
atmosphereParameters: options.atmosphereParameters,
minDistanceBeforeMemClear: options.minDistanceBeforeMemClear,
vectorTileSize: options.vectorTileSize,
});
// Attach terrain provider (can be one object or array)

View File

@ -64,6 +64,8 @@ export interface IPlanetParams {
atmosphereEnabled?: boolean;
transitionOpacityEnabled?: boolean;
atmosphereParameters?: IAtmosphereParams;
minDistanceBeforeMemClear?: number;
vectorTileSize?: number;
}
export type PlanetEventsList = [
@ -399,6 +401,7 @@ export class Planet extends RenderNode {
protected _transitionOpacityEnabled: boolean;
protected _atmosphere: Atmosphere;
private _minDistanceBeforeMemClear: number = 0;
constructor(options: IPlanetParams = {}) {
super(options.name);
@ -515,7 +518,7 @@ export class Planet extends RenderNode {
this._geoImageCreator = new GeoImageCreator(this);
this._vectorTileCreator = new VectorTileCreator(this);
this._vectorTileCreator = new VectorTileCreator(this, options.vectorTileSize, options.vectorTileSize);
this._normalMapCreator = new NormalMapCreator(this);
@ -1382,7 +1385,7 @@ export class Planet extends RenderNode {
cam.checkFly();
// free memory
if (this._createdNodesCount > MAX_NODES && this._distBeforeMemClear > 1000.0) {
if (this._createdNodesCount > MAX_NODES && this._distBeforeMemClear > this._minDistanceBeforeMemClear) {
this.terrain!.clearCache();
this.memClear();
}

View File

@ -19,7 +19,7 @@ export class VectorTileCreator {
protected _queue: Material[];
protected _handler: Handler | null;
constructor(planet: Planet, width: number = 512, height: number = 512) {
constructor(planet: Planet, width: number = 256, height: number = 256) {
this._width = width;
this._height = height;
this._planet = planet;