internal void AddPendingAssetRemoval(ProbeVolumeAsset asset) { var key = asset.GetSerializedFullPath(); if (m_PendingAssetsToBeUnloaded.ContainsKey(key)) { m_PendingAssetsToBeUnloaded.Remove(key); } m_PendingAssetsToBeUnloaded.Add(asset.GetSerializedFullPath(), asset); }
internal void AddPendingAssetLoading(ProbeVolumeAsset asset) { var key = asset.GetSerializedFullPath(); if (m_PendingAssetsToBeLoaded.ContainsKey(key)) { m_PendingAssetsToBeLoaded.Remove(key); } m_PendingAssetsToBeLoaded.Add(asset.GetSerializedFullPath(), asset); m_NeedLoadAsset = true; }
internal void RemovePendingAsset(ProbeVolumeAsset asset) { var key = asset.GetSerializedFullPath(); if (m_ActiveAssets.ContainsKey(key)) { m_ActiveAssets.Remove(key); } // Remove bricks and empty cells foreach (var cell in asset.cells) { if (cells.ContainsKey(cell.index)) { cells.Remove(cell.index); } } // Unload brick data if (m_AssetPathToBricks.ContainsKey(key)) { var regIds = m_AssetPathToBricks[key]; foreach (var regId in regIds) { ReleaseBricks(regId); } m_AssetPathToBricks.Remove(key); } }
private void LoadAsset(ProbeVolumeAsset asset) { var path = asset.GetSerializedFullPath(); m_AssetPathToBricks[path] = new List <RegId>(); foreach (var cell in asset.cells) { // Push data to HDRP bool compressed = false; var dataLocation = ProbeBrickPool.CreateDataLocation(cell.sh.Length, compressed); ProbeBrickPool.FillDataLocation(ref dataLocation, cell.sh); // TODO register ID of brick list List <ProbeBrickIndex.Brick> brickList = new List <ProbeBrickIndex.Brick>(); brickList.AddRange(cell.bricks); var regId = AddBricks(brickList, dataLocation); cells[cell.index] = cell; m_AssetPathToBricks[path].Add(regId); } }