Method: Vulkan::Buffer#initialize
- Defined in:
- lib/vulkan/buffer.rb
#initialize(vk, physical_device, size:, usage:, sharing_mode: VK_SHARING_MODE_EXCLUSIVE, flags: 0, **memory_args) ⇒ Buffer
Returns a new instance of Buffer.
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/vulkan/buffer.rb', line 11 def initialize(vk, physical_device, size:, usage:, sharing_mode: VK_SHARING_MODE_EXCLUSIVE, flags: 0, **memory_args) @vk = vk @size = size @mapped = Vulkan.create_value('void *', nil) buffer_info = VkBufferCreateInfo.malloc buffer_info.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO buffer_info.size = size buffer_info.usage = syms_to_buffer_usage_flags(usage) buffer_info.sharingMode = sharing_mode buffer_info.flags = flags handle_p = Vulkan.create_value('void *', nil) check_result @vk.vkCreateBuffer(vk.device, buffer_info, nil, handle_p) @handle = handle_p.value @memory = Vulkan::BufferMemory.new(@vk, physical_device, owner: self, **memory_args) finalize_with @vk, :vkDestroyBuffer, vk.device, @handle, nil end |