using Ghost.Core; namespace Ghost.Graphics.Core; public readonly struct GPUResource : IHandleType; public readonly struct Texture : IHandleType; public readonly struct GraphicsBuffer : IHandleType; public readonly struct Sampler : IIdentifierType; public static class ResourceHandleExtensions { public static Handle AsResource(this Handle texture) { return new Handle(texture.ID, texture.Generation); } public static Handle AsResource(this Handle buffer) { return new Handle(buffer.ID, buffer.Generation); } internal static Handle AsTexture(this Handle resource) { return new Handle(resource.ID, resource.Generation); } internal static Handle AsGraphicsBuffer(this Handle resource) { return new Handle(resource.ID, resource.Generation); } }