| 191 | } |
| 192 | |
| 193 | void ClearScene(Scene* scene) |
| 194 | { |
| 195 | if (!scene) |
| 196 | return; |
| 197 | if (!scene->m_OpaqueSceneData) |
| 198 | return; |
| 199 | |
| 200 | scene->m_DestroyFn(scene); |
| 201 | scene->m_OpaqueSceneData = 0; |
| 202 | |
| 203 | for (uint32_t i = 0; i < scene->m_Nodes.Size(); ++i) |
| 204 | DestroyNode(&scene->m_Nodes[i]); |
| 205 | scene->m_Nodes.SetCapacity(0); |
| 206 | |
| 207 | scene->m_RootNodes.SetCapacity(0); |
| 208 | |
| 209 | for (uint32_t i = 0; i < scene->m_Models.Size(); ++i) |
| 210 | DestroyModel(&scene->m_Models[i]); |
| 211 | scene->m_Models.SetCapacity(0); |
| 212 | |
| 213 | for (uint32_t i = 0; i < scene->m_Skins.Size(); ++i) |
| 214 | DestroySkin(&scene->m_Skins[i]); |
| 215 | scene->m_Skins.SetCapacity(0); |
| 216 | |
| 217 | for (uint32_t i = 0; i < scene->m_Animations.Size(); ++i) |
| 218 | DestroyAnimation(&scene->m_Animations[i]); |
| 219 | scene->m_Animations.SetCapacity(0); |
| 220 | |
| 221 | for (uint32_t i = 0; i < scene->m_Materials.Size(); ++i) |
| 222 | DestroyMaterial(&scene->m_Materials[i]); |
| 223 | scene->m_Materials.SetCapacity(0); |
| 224 | |
| 225 | for (uint32_t i = 0; i < scene->m_DynamicMaterials.Size(); ++i) |
| 226 | { |
| 227 | DestroyMaterial(scene->m_DynamicMaterials[i]); |
| 228 | delete scene->m_DynamicMaterials[i]; |
| 229 | } |
| 230 | scene->m_DynamicMaterials.SetCapacity(0); |
| 231 | |
| 232 | for (uint32_t i = 0; i < scene->m_Buffers.Size(); ++i) |
| 233 | DestroyBuffer(&scene->m_Buffers[i]); |
| 234 | scene->m_Buffers.SetCapacity(0); |
| 235 | |
| 236 | for (uint32_t i = 0; i < scene->m_Images.Size(); ++i) |
| 237 | DestroyImage(&scene->m_Images[i]); |
| 238 | scene->m_Images.SetCapacity(0); |
| 239 | |
| 240 | for (uint32_t i = 0; i < scene->m_Textures.Size(); ++i) |
| 241 | DestroyTexture(&scene->m_Textures[i]); |
| 242 | scene->m_Textures.SetCapacity(0); |
| 243 | |
| 244 | for (uint32_t i = 0; i < scene->m_Samplers.Size(); ++i) |
| 245 | DestroySampler(&scene->m_Samplers[i]); |
| 246 | scene->m_Samplers.SetCapacity(0); |
| 247 | |
| 248 | scene->m_LoadFinalizeFn = 0; |
| 249 | scene->m_ValidateFn = 0; |
| 250 | scene->m_DestroyFn = 0; |
no test coverage detected