Image::Image (const DeviceInterface& vk, const VkDevice device, Allocator& allocator, const VkImageCreateInfo& imageCreateInfo, const MemoryRequirement memoryRequirement) { m_image = createImage(vk, device, &imageCreateInfo); m_allocation = allocator.allocate(getImageMemoryRequirements(vk, device, *m_image), memoryRequirement); VK_CHECK(vk.bindImageMemory(device, *m_image, m_allocation->getMemory(), m_allocation->getOffset())); }
MovePtr<Allocation> bindImageDedicated (const InstanceInterface& vki, const DeviceInterface& vkd, const VkPhysicalDevice physDevice, const VkDevice device, const VkImage image, const MemoryRequirement requirement) { MovePtr<Allocation> alloc(allocateDedicated(vki, vkd, physDevice, device, image, requirement)); VK_CHECK(vkd.bindImageMemory(device, image, alloc->getMemory(), alloc->getOffset())); return alloc; }
MovePtr<Allocation> bindImage (const DeviceInterface& vk, const VkDevice device, Allocator& allocator, const VkImage image, const MemoryRequirement requirement) { MovePtr<Allocation> alloc = allocator.allocate(getImageMemoryRequirements(vk, device, image), requirement); VK_CHECK(vk.bindImageMemory(device, image, alloc->getMemory(), alloc->getOffset())); return alloc; }