using Ghost.Core; using Misaki.HighPerformance.LowLevel.Buffer; using Misaki.HighPerformance.LowLevel.Collections; namespace Ghost.Graphics.Data; internal struct CBufferCache : IDisposable { public UnsafeArray CpuData { get; set; } public Handle GpuResource { get; } private readonly uint _alignedSize; internal unsafe CBufferCache(Handle buffer, uint bufferSize) { _alignedSize = (bufferSize + 255u) & ~255u; CpuData = new((int)_alignedSize, Allocator.Persistent); GpuResource = buffer; } public readonly void Dispose() { CpuData.Dispose(); } }