Browse Source

Added disposal code for alias models

console
Nico de Poel 5 years ago
parent
commit
a19d9b546e
  1. 10
      Assets/Scripts/Modules/AliasModel.cs
  2. 17
      Assets/Scripts/Modules/RenderModule.cs

10
Assets/Scripts/Modules/AliasModel.cs

@ -59,6 +59,16 @@ public class AliasModel
return false; // Shouldn't happen
}
public void Dispose()
{
foreach (var mesh in animationMeshes)
{
UnityEngine.Object.Destroy(mesh.Item2);
}
animationMeshes.Clear();
}
public void ImportMeshData(QAliasHeader header, QTriVertex[][] poseVertices, QTriangle[] triangles, QSTVert[] stVertices)
{
// Massage the input data for easier conversion

17
Assets/Scripts/Modules/RenderModule.cs

@ -1,9 +1,11 @@
using UnityEngine;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Rendering;
public partial class RenderModule
{
private readonly UniQuake uq;
private readonly List<AliasModel> aliasModels = new List<AliasModel>();
public RenderModule(UniQuake uniQuake)
{
@ -11,6 +13,18 @@ public partial class RenderModule
BuildCallbacks();
}
public override void Destroy()
{
base.Destroy();
foreach (var aliasModel in aliasModels)
{
// aliasModel.Dispose(); // TODO: reactivate when done testing in editor
}
aliasModels.Clear();
}
private float xPos = -8f;
private int UploadAliasModel(string name, QAliasHeader header,
@ -21,6 +35,7 @@ public partial class RenderModule
string modelName = System.IO.Path.GetFileNameWithoutExtension(name);
AliasModel aliasModel = new AliasModel(modelName);
aliasModel.ImportMeshData(header, poseVertices, triangles, stVertices);
aliasModels.Add(aliasModel);
var go = new GameObject(modelName);
go.transform.SetPositionAndRotation(new Vector3(xPos, 0, 0), Quaternion.Euler(-90, 90, 0));

Loading…
Cancel
Save