You've already forked Nitro_Render_V3
mirror of
https://github.com/duckietm/Nitro_Render_V3.git
synced 2026-06-19 15:06:20 +00:00
🆙 Memory usage fixes
This commit is contained in:
@@ -315,6 +315,9 @@ export class AvatarImage implements IAvatarImage, IAvatarEffectListener
|
|||||||
|
|
||||||
const url = canvas.toDataURL('image/png');
|
const url = canvas.toDataURL('image/png');
|
||||||
|
|
||||||
|
canvas.width = 0;
|
||||||
|
canvas.height = 0;
|
||||||
|
|
||||||
return url;
|
return url;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+6
@@ -23,6 +23,12 @@ export class ImageData
|
|||||||
|
|
||||||
public dispose(): void
|
public dispose(): void
|
||||||
{
|
{
|
||||||
|
if(this._container)
|
||||||
|
{
|
||||||
|
this._container.destroy({ children: true });
|
||||||
|
this._container = null;
|
||||||
|
}
|
||||||
|
|
||||||
this._texture = null;
|
this._texture = null;
|
||||||
this._regPoint = null;
|
this._regPoint = null;
|
||||||
this._colorTransform = null;
|
this._colorTransform = null;
|
||||||
|
|||||||
@@ -117,7 +117,12 @@ export class RoomCameraWidgetManager implements IRoomCameraWidgetManager
|
|||||||
|
|
||||||
TextureUtils.writeToTexture(container, renderTexture);
|
TextureUtils.writeToTexture(container, renderTexture);
|
||||||
|
|
||||||
return await TextureUtils.generateImage(renderTexture);
|
const image = await TextureUtils.generateImage(renderTexture);
|
||||||
|
|
||||||
|
renderTexture.destroy(true);
|
||||||
|
container.destroy({ children: true });
|
||||||
|
|
||||||
|
return image;
|
||||||
}
|
}
|
||||||
|
|
||||||
public get effects(): Map<string, IRoomCameraWidgetEffect>
|
public get effects(): Map<string, IRoomCameraWidgetEffect>
|
||||||
|
|||||||
@@ -164,6 +164,18 @@ export class AvatarVisualization extends RoomObjectSpriteVisualization implement
|
|||||||
|
|
||||||
if(this._avatarImage) this._avatarImage.dispose();
|
if(this._avatarImage) this._avatarImage.dispose();
|
||||||
|
|
||||||
|
if(this._cachedAvatars)
|
||||||
|
{
|
||||||
|
for(const avatar of this._cachedAvatars.getValues()) avatar && avatar.dispose();
|
||||||
|
this._cachedAvatars.reset();
|
||||||
|
}
|
||||||
|
|
||||||
|
if(this._cachedAvatarEffects)
|
||||||
|
{
|
||||||
|
for(const avatar of this._cachedAvatarEffects.getValues()) avatar && avatar.dispose();
|
||||||
|
this._cachedAvatarEffects.reset();
|
||||||
|
}
|
||||||
|
|
||||||
if(this._reflectionOppositeTexture)
|
if(this._reflectionOppositeTexture)
|
||||||
{
|
{
|
||||||
this._reflectionOppositeTexture.destroy(true);
|
this._reflectionOppositeTexture.destroy(true);
|
||||||
|
|||||||
@@ -27,6 +27,17 @@ export class IsometricImageFurniVisualization extends FurnitureAnimatedVisualiza
|
|||||||
this._photoUrl = null;
|
this._photoUrl = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public dispose(): void {
|
||||||
|
if (this._thumbnailTexture instanceof RenderTexture) {
|
||||||
|
this._thumbnailTexture.destroy(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
this._thumbnailTexture = null;
|
||||||
|
this._thumbnailImageNormal = null;
|
||||||
|
|
||||||
|
super.dispose();
|
||||||
|
}
|
||||||
|
|
||||||
public get hasThumbnailImage(): boolean {
|
public get hasThumbnailImage(): boolean {
|
||||||
return !(this._thumbnailImageNormal == null);
|
return !(this._thumbnailImageNormal == null);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -158,6 +158,16 @@ export class RoomPlane implements IRoomPlane
|
|||||||
this._animationLayers = [];
|
this._animationLayers = [];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this._windowReflectionLastVisible.clear();
|
||||||
|
this._windowReflectionFadeOut.clear();
|
||||||
|
this._windowReflectionFirstSeenAt.clear();
|
||||||
|
|
||||||
|
if(this._maskFilter)
|
||||||
|
{
|
||||||
|
this._maskFilter.destroy();
|
||||||
|
this._maskFilter = null;
|
||||||
|
}
|
||||||
|
|
||||||
this._disposed = true;
|
this._disposed = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user