Please enable JavaScript.
Coggle requires JavaScript to display documents.
Shader Life (Normal Load Then Unload Reverse Order Load Model Creates…
Shader Life
Normal Load Then Unload Reverse Order
Load Model Creates Shader
We now have a shader Object itself
We now add meshes to it
Now we add instances to ti
Delete instances
Delete meshes
Delete Shaders
done
Pipelines
Called RemoveShader on Surface for Shader1
Called RemoveShader on Surface for Shader2
Shader Data
Shader1
Shader2
Pipelines
Shader1
Shader2
Called RemoveMesh on Shader1 for Mesh1
Called RemoveMesh on Shader2 for Mesh2
Alternate More Detailed Version of Delete Mesh (Shader is similar to this one)
Call delete mesh
Delete Mesh calls RemoveMesh
2 more items...
Shader Data
Shader1
Shader2
Mesh Data
-> ~ Mesh1
Mesh2
Pipelines
Shader1 -> Mesh1
Shader2 -> Mesh2
Called delete mesh for Mesh1
Shader Data
Shader1
Shader2
Mesh Data
Mesh1
Mesh2
Pipelines
Shader1 -> Mesh1
Shader2 -> Mesh2
Called RemoveInstance on Mesh1 for Instance 1, and Instance 3
Called RemoveInstance on Mesh2 for Instance 2
Alternate More Detailed Version of Instance Deletion
Call delete instance
Delete Instance Calls RemoveInstance
RemoveInstance removes instance on mesh
2 more items...
Shader Data
Shader1
Shader2
Mesh Data
Mesh1
Mesh2
Instance Data
Instance1
Instance2
Instance3
Pipelines
Shader1 -> Mesh1-> [ Instance1, Instance 3 ]
Shader2 -> Mesh2-> Instance2
Called Delete Instance on Instance1
this->InstancePipeline->Remove()
Shader Data
Shader1
Shader2
Mesh Data
Mesh1
Mesh2
Instance Data
-> ~ Instance1
Instance2
Instance3
Pipelines
Shader1 -> Mesh1-> [ Instance1, Instance 3 ]
Shader2 -> Mesh2-> Instance2
Called Delete Instance on Instance1
Shader Data
Shader1
Shader2
Mesh Data
Mesh1
Mesh2
Instance Data
Instance1
Instance2
Instance3
Pipelines
Shader1 -> Mesh1-> [ Instance1, Instance 3 ]
Shader2 -> Mesh2-> Instance2
Shader Data
Shader1
Shader2
Mesh Data
Mesh1
Mesh2
Pipelines
Shader1 -> Mesh1
Shader2 -> Mesh2
Shader Data
Shader1
Shader2
Pipelines
Shader1
Shader2
Shader Data
Shader1
Shader2
Normal Load Then Out of Order Unload
Load Model Creates Shader
We now have a shader Object itself
We now add meshes to it
Now we add instances to it
Now lets try deleting an instance
Lets try deleting a Mesh
Lets try deleting a Shader
Even though we did successfully delete Instance 3 we did not delete anything else
Try Deleting a Shader
Check if the shader has children
2 more items...
Shader Data
Shader1
Shader2
Mesh Data
Mesh1
Mesh2
Instance Data
Instance1
Instance2
Pipelines
Shader1 -> Mesh1-> Instance1
Shader2 -> Mesh2-> Instance2
Try Deleting a Mesh
Check if the Mesh has Children
If yes
1 more item...
If No
1 more item...
Shader Data
Shader1
Shader2
Mesh Data
Mesh1
Mesh2
Instance Data
Instance1
Instance2
Pipelines
Shader1 -> Mesh1-> Instance1
Shader2 -> Mesh2-> Instance2
Delete Instance (HARD DELETE)
Non-Default Behavior,
normally done on Unload of Level
Try Deleting Instance Full
Remove the instance from the MeshPipeline
Call Remove on the MeshPipeline
Mesh Pipeline attempts to remove itself (specified above)
1 more item...
Shader Data
Shader1
Shader2
Mesh Data
Mesh1
Mesh2
Instance Data
Instance1
Instance2
Instance3
Pipelines
Shader1 -> Mesh1-> Instance1
Shader2 -> Mesh2-> Instance2
Shader Data
Shader1
Shader2
Mesh Data
Mesh1
Mesh2
Instance Data
Instance1
Instance2
Pipelines
Shader1 -> Mesh1-> Instance1
Shader2 -> Mesh2-> Instance2
Alternate Delete of Instance (SOFT DELETE), Default Behavior
Try Deleting Instance
Remove the instance from the MeshPipeline
Delete Instance Data
done
Shader Data
Shader1
Shader2
Mesh Data
Mesh1
Mesh2
Instance Data
Instance1
Instance2
Pipelines
Shader1 -> Mesh1-> Instance1
Shader2 -> Mesh2-> Instance2
Shader Data
Shader1
Shader2
Mesh Data
Mesh1
Mesh2
Instance Data
Instance1
Instance2
Instance3
Pipelines
Shader1 -> Mesh1-> Instance1
Shader2 -> Mesh2-> Instance2
Shader Data
Shader1
Shader2
Mesh Data
Mesh1
Mesh2
Instance Data
Instance1
Instance2
Instance3
Pipelines
Shader1 -> Mesh1-> [ Instance1, Instance 3 ]
Shader2 -> Mesh2-> Instance2
Shader Data
Shader1
Shader2
Mesh Data
Mesh1
Mesh2
Pipelines
Shader1 -> Mesh1
Shader2 -> Mesh2
Shader Data
Shader1
Shader2
Pipelines
Shader1
Shader2
Shader Data
Shader1
Shader2