File utils.hpp
File List > atlas > drivers > vulkan-cpp > utilties > utils.hpp
Go to the documentation of this file
#pragma once
#include <span>
#include <vulkan/vulkan_core.h>
#include <drivers/vulkan-cpp/vk_types.hpp>
#include <drivers/vulkan-cpp/vk_command_buffer.hpp>
namespace atlas::vk {
void begin_command_buffer(const VkCommandBuffer& p_command_buffer,
VkCommandBufferUsageFlags p_usage_flags);
void end_command_buffer(const VkCommandBuffer& p_command_buffer);
VkCommandPool create_single_command_pool();
VkCommandBuffer create_single_command_buffer(
const VkCommandPool& p_command_pool);
void copy(vk_command_buffer& p_command_buffer,
VkImage& p_image,
VkBuffer& p_buffer,
uint32_t p_width,
uint32_t p_height);
void copy(const vk_buffer& p_src,
const vk_buffer& p_dst,
size_t p_size_of_bytes);
void write(const vk_buffer& p_buffer,
const void* p_data,
size_t p_size_in_bytes);
void write(const vk_buffer& p_buffer,
const std::span<uint32_t>& p_in_buffer);
void write(const vk_buffer& p_buffer,
const std::span<vertex_input>& p_in_buffer);
void transition_image_layout(VkImage& p_image,
VkFormat p_format,
VkImageLayout p_old,
VkImageLayout p_new);
void transition_image_layout(VkCommandBuffer& p_command_buffer,
VkImage& p_image,
VkFormat p_format,
VkImageLayout p_old,
VkImageLayout p_new);
void image_memory_barrier(VkCommandBuffer& p_command_buffer,
VkImage& p_image,
VkFormat p_format,
VkImageLayout p_old,
VkImageLayout p_new);
//
void queue_submit(const VkQueue& p_queue_handle,
const std::span<VkCommandBuffer>& p_commands);
};