6#ifndef INCLUDE_VULKANENGINE_IMAGE_H_
7#define INCLUDE_VULKANENGINE_IMAGE_H_
9#include <VulkanEngine/ImageBase.h>
10#include <VulkanEngine/StagedBufferDestination.h>
13#pragma clang diagnostic push
14#pragma clang diagnostic ignored "-Wnullability-completeness"
16#include <vk_mem_alloc.h>
18#pragma clang diagnostic pop
29template <vk::Format format, vk::ImageType image_type, vk::ImageTiling tiling,
30 vk::SampleCountFlagBits
42 Image(vk::ImageLayout initial_layout, vk::ImageUsageFlags usage_flags,
43 VmaMemoryUsage vma_memory_usage, uint32_t _width, uint32_t _height,
44 uint32_t _depth,
size_t pixel_size,
bool generate_mip_maps);
57 vk::ImageAspectFlags image_aspect_flags);
65 const vk::CommandBuffer& command_buffer =
nullptr);
84 const vk::Buffer& source_buffer);
94 void createImage(vk::ImageUsageFlags usage_flags, VmaMemoryUsage vma_usage);
99 void generateMipmaps(
const vk::CommandBuffer& command_buffer);
Base class for image types.
Definition: ImageBase.h:14
uint32_t mipmap_levels
The number of mipmap images to generate.
Definition: Image.h:115
vk::ImageView vk_image_view
The vk::ImageView created in createImageView().
Definition: Image.h:124
virtual size_t getStagingBufferSize() const
Definition: Image.cpp:251
void transitionImageLayout(vk::ImageLayout new_layout, const vk::CommandBuffer &command_buffer=nullptr)
Definition: Image.cpp:96
size_t data_size
The total size of Image's data.
Definition: Image.h:112
VkImageCreateInfo image_create_info
VkImageCreateInfo.
Definition: Image.h:127
void setImageData(const void *data)
Definition: Image.cpp:63
uint32_t height
The height of the Image.
Definition: Image.h:106
vk::Image vk_image
Internal vk_image.
Definition: Image.h:121
vk::ImageLayout vk_image_layout
The current vk::ImageLayout.
Definition: Image.h:118
const vk::Format getVkFormat() const
Get the vk::Format of the image.
Definition: Image.cpp:184
virtual vk::ImageView getVkImageView() const
Get the vk::ImageView.
Definition: Image.cpp:206
void createImageView(vk::ImageViewType image_view_type, vk::ImageAspectFlags image_aspect_flags)
Definition: Image.cpp:70
const vk::SampleCountFlagBits getVkSampleCountFlags() const
Get vk::SampleCountFlagBits.
Definition: Image.cpp:192
virtual ~Image()
Destructor.
Definition: Image.cpp:53
uint32_t depth
The depth of the Image.
Definition: Image.h:109
virtual vk::Image getVkImage() const
Get the interal vulkan image.
Definition: Image.cpp:199
uint32_t width
The width of the Image.
Definition: Image.h:103
virtual void insertTransferCommand(const vk::CommandBuffer &command_buffer, const vk::Buffer &source_buffer)
Definition: Image.cpp:213
Definition: StagedBufferDestination.h:19
TODO development of this class is in progress.
Definition: Attribute.h:13