Refactor asset streaming & resource management system
- Introduce Ghost.Engine.Streaming namespace and split asset entry logic into type-specific classes (TextureAssetEntry, MeshAssetEntry, SceneAssetEntry) - Make AssetEntry abstract; add AssetEntryFactory for type dispatch - Update AssetManager and ResourceStreamingProcessor for new entry model, supporting uploadable and processable assets - Redesign scene/mesh asset loading, serialization, and binary formats with versioning (SceneContentHeader, MeshContentHeader) - Move SceneLoadingType to Ghost.Engine and make public - Inline performance-critical APIs with MethodImplOptions.AggressiveInlining - Add deep cloning and improved resource management for Mesh and meshlet data - Allow nullable log messages in Logger - Update Misaki.HighPerformance package references - Remove obsolete files (Asset.cs, ActivationHandler.cs, old mesh logic) - Improve resource release logic in ResourceManager - Update RenderContext and ResourceStreamingContext for new streaming model - Add UnsafeArray/UnsafeList clone utilities - Update scene serialization/deserialization for new format - Update tests for new APIs, asset states, and formats
This commit is contained in:
@@ -1,9 +1,21 @@
|
||||
namespace Ghost.Core;
|
||||
|
||||
public interface ICloneable<T>
|
||||
where T : ICloneable<T>
|
||||
{
|
||||
/// <summary>
|
||||
/// Deep copy the object to create a new instance that contains the same value.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// This often does not clone any gpu resources if the object holds any.
|
||||
/// </remarks>
|
||||
T Clone();
|
||||
}
|
||||
|
||||
public class Wrapper<T>
|
||||
{
|
||||
public T? Value
|
||||
{
|
||||
get; set;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user