| 167 | #if USE_EDITOR |
| 168 | |
| 169 | bool AnimationGraph::SaveSurface(const BytesContainer& data) |
| 170 | { |
| 171 | if (OnCheckSave()) |
| 172 | return true; |
| 173 | ScopeLock lock(Locker); |
| 174 | |
| 175 | if (IsVirtual()) |
| 176 | { |
| 177 | MemoryReadStream readStream(data.Get(), data.Length()); |
| 178 | return Graph.Load(&readStream, USE_EDITOR); |
| 179 | } |
| 180 | |
| 181 | // Release all chunks |
| 182 | for (int32 i = 0; i < ASSET_FILE_DATA_CHUNKS; i++) |
| 183 | ReleaseChunk(i); |
| 184 | |
| 185 | // Set Visject Surface data |
| 186 | auto visjectSurfaceChunk = GetOrCreateChunk(0); |
| 187 | ASSERT(visjectSurfaceChunk != nullptr); |
| 188 | visjectSurfaceChunk->Data.Copy(data); |
| 189 | |
| 190 | // Save |
| 191 | AssetInitData assetData; |
| 192 | assetData.SerializedVersion = 1; |
| 193 | if (SaveAsset(assetData)) |
| 194 | { |
| 195 | LOG(Error, "Cannot save \'{0}\'", ToString()); |
| 196 | return true; |
| 197 | } |
| 198 | |
| 199 | return false; |
| 200 | } |
| 201 | |
| 202 | void AnimationGraph::FindDependencies(AnimGraphBase* graph) |
| 203 | { |