public void RemoveAllAdditiveScenes() { var additiveSceneMeshes = managerData.gameEngineState.additiveSceneMeshes; var additiveScenes = managerData.gameEngineState.additiveScenes; var activeScene = managerData.gameEngineState.Scene().GetScene(); if (additiveSceneMeshes != null) { foreach (var additiveMesh in additiveSceneMeshes) { IntPtr sceneMesh = additiveMesh.Value; PhononCore.iplRemoveInstancedMesh(activeScene, sceneMesh); PhononCore.iplDestroyInstancedMesh(ref sceneMesh); } additiveSceneMeshes.Clear(); } if (additiveScenes != null) { foreach (var additiveScene in additiveScenes) { IntPtr scene = additiveScene.Value; PhononCore.iplDestroyScene(ref scene); } additiveScenes.Clear(); } }
public void Destroy() { if (editorAdditiveSceneMeshes != null) { for (int i = 0; i < editorAdditiveSceneMeshes.Count; ++i) { IntPtr additiveMesh = editorAdditiveSceneMeshes[i]; PhononCore.iplRemoveInstancedMesh(scene.GetScene(), additiveMesh); PhononCore.iplDestroyInstancedMesh(ref additiveMesh); } editorAdditiveSceneMeshes.Clear(); editorAdditiveSceneMeshes = null; } if (editorAdditiveScenes != null) { for (int i = 0; i < editorAdditiveScenes.Count; ++i) { IntPtr additiveScene = editorAdditiveScenes[i]; PhononCore.iplDestroyScene(ref additiveScene); } editorAdditiveScenes.Clear(); editorAdditiveScenes = null; } environment.Destroy(); probeManager.Destroy(); scene.Destroy(); computeDevice.Destroy(); PhononCore.iplDestroyContext(ref context); }
public void DestroyInstancedMesh(ref IntPtr instancedMesh) { if (instancedMesh == IntPtr.Zero) { return; } PhononCore.iplDestroyInstancedMesh(ref instancedMesh); }
public void RemoveAdditiveScene(UnityEngine.SceneManagement.Scene unityScene) { var additiveSceneMeshes = managerData.gameEngineState.additiveSceneMeshes; var additiveScenes = managerData.gameEngineState.additiveScenes; var activeScene = managerData.gameEngineState.Scene().GetScene(); if (additiveSceneMeshes != null && additiveSceneMeshes.ContainsKey(unityScene)) { IntPtr sceneMesh = additiveSceneMeshes[unityScene]; PhononCore.iplRemoveInstancedMesh(activeScene, sceneMesh); PhononCore.iplDestroyInstancedMesh(ref sceneMesh); additiveSceneMeshes.Remove(unityScene); } if (additiveScenes != null && additiveScenes.ContainsKey(unityScene)) { IntPtr scene = additiveScenes[unityScene]; PhononCore.iplDestroyScene(ref scene); additiveScenes.Remove(unityScene); } }