1    type UniformBuffer =
2        inherit Buffer type = BufferType/Uniform
3                       offset = 0
4    
5        let device : VkDevice
6        val memory : VkMemory
7    
8        def discard =
9            vk/destroy_buffer device object null
10           vk/free_memory device memory null
11   
12   object UniformBuffer =
13       def create (size : u32) =
14           let instance : Instance @auto
15           let device = instance.device
16           let flags = MemoryPropertyFlags/HostVisible | MemoryPropertyFlags/HostCoherent
17           let usage = BufferUsageFlags/UniformBuffer | BufferUsageFlags/TransferDst
18           let (buffer, memory) = buffer/create instance.physical_device device
19                                                size.as<u64> usage flags
20           UniformBuffer object = buffer
21                         =size =usage =device =memory
22