2025-12-24 20:44:36 +08:00
|
|
|
using System;
|
2025-11-17 16:55:06 +08:00
|
|
|
using AlicizaX.ObjectPool;
|
|
|
|
|
|
|
|
|
|
namespace AlicizaX.UI.Runtime
|
|
|
|
|
{
|
|
|
|
|
internal class UIMetadataObject : ObjectBase
|
|
|
|
|
{
|
|
|
|
|
public static UIMetadataObject Create(UIMetadata target, string name)
|
|
|
|
|
{
|
|
|
|
|
UIMetadataObject obj = MemoryPool.Acquire<UIMetadataObject>();
|
|
|
|
|
obj.Initialize(name, target);
|
|
|
|
|
return obj;
|
|
|
|
|
}
|
|
|
|
|
|
2025-12-24 20:44:36 +08:00
|
|
|
public static UIMetadataObject Create(UIMetadata target, RuntimeTypeHandle handle)
|
|
|
|
|
{
|
|
|
|
|
UIMetadataObject obj = MemoryPool.Acquire<UIMetadataObject>();
|
|
|
|
|
// Use type handle hash code as name to avoid string allocation
|
|
|
|
|
obj.Initialize(handle.GetHashCode().ToString(), target);
|
|
|
|
|
return obj;
|
|
|
|
|
}
|
|
|
|
|
|
2025-11-17 16:55:06 +08:00
|
|
|
|
|
|
|
|
protected internal override void Release(bool isShutdown)
|
|
|
|
|
{
|
|
|
|
|
UIMetadata metadata = (UIMetadata)Target;
|
|
|
|
|
if (metadata != null)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|