Lugdunum  0.1.0
Public Member Functions | Private Attributes | List of all members
lug::Graphics::Vulkan::API::Builder::Image Class Reference

#include <Image.hpp>

Collaboration diagram for lug::Graphics::Vulkan::API::Builder::Image:
[legend]

Public Member Functions

 Image (const API::Device &device)
 
 Image (const Image &)=delete
 
 Image (Image &&)=delete
 
Imageoperator= (const Image &)=delete
 
Imageoperator= (Image &&)=delete
 
 ~Image ()=default
 
void setCreateFlags (VkImageCreateFlags createFlags)
 
void setImageType (VkImageType imageType)
 
void setPreferedFormats (const std::set< VkFormat > &preferedFormats)
 
void setFeatureFlags (VkFormatFeatureFlags featureFlags)
 
void setExtent (VkExtent3D extent)
 
void setMipLevels (uint32_t mipLevels)
 
void setArrayLayers (uint32_t arrayLayers)
 
void setSampleCount (VkSampleCountFlagBits sampleCount)
 
void setTiling (VkImageTiling tiling)
 
void setUsage (VkImageUsageFlags usage)
 
void setExclusive (bool exclusive)
 
void setQueueFamilyIndices (const std::set< uint32_t > &queueFamilyIndices)
 
bool build (API::Image &instance, VkResult *returnResult=nullptr)
 
std::unique_ptr< API::Imagebuild (VkResult *returnResult=nullptr)
 

Private Attributes

const API::Device_device
 
VkImageCreateFlags _createFlags {0}
 
VkImageType _imageType {VK_IMAGE_TYPE_2D}
 
std::set< VkFormat > _preferedFormats
 
VkFormatFeatureFlags _featureFlags {0}
 
VkExtent3D _extent {}
 
uint32_t _mipLevels {1}
 
uint32_t _arrayLayers {1}
 
VkSampleCountFlagBits _sampleCount {VK_SAMPLE_COUNT_1_BIT}
 
VkImageTiling _tiling {VK_IMAGE_TILING_OPTIMAL}
 
VkImageUsageFlags _usage {VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT}
 
bool _exclusive {false}
 
std::set< uint32_t > _queueFamilyIndices
 
VkImageLayout _initialLayout {VK_IMAGE_LAYOUT_UNDEFINED}
 

Detailed Description

Definition at line 16 of file Image.hpp.

Constructor & Destructor Documentation

◆ Image() [1/3]

lug::Graphics::Vulkan::API::Builder::Image::Image ( const API::Device device)

Definition at line 14 of file Image.cpp.

◆ Image() [2/3]

lug::Graphics::Vulkan::API::Builder::Image::Image ( const Image )
delete

◆ Image() [3/3]

lug::Graphics::Vulkan::API::Builder::Image::Image ( Image &&  )
delete

◆ ~Image()

lug::Graphics::Vulkan::API::Builder::Image::~Image ( )
default

Member Function Documentation

◆ operator=() [1/2]

Image& lug::Graphics::Vulkan::API::Builder::Image::operator= ( const Image )
delete

◆ operator=() [2/2]

Image& lug::Graphics::Vulkan::API::Builder::Image::operator= ( Image &&  )
delete

◆ setCreateFlags()

void Image::setCreateFlags ( VkImageCreateFlags  createFlags)
inline

Definition at line 1 of file Image.inl.

◆ setImageType()

void Image::setImageType ( VkImageType  imageType)
inline

Definition at line 5 of file Image.inl.

◆ setPreferedFormats()

void Image::setPreferedFormats ( const std::set< VkFormat > &  preferedFormats)
inline

Definition at line 9 of file Image.inl.

◆ setFeatureFlags()

void Image::setFeatureFlags ( VkFormatFeatureFlags  featureFlags)
inline

Definition at line 13 of file Image.inl.

◆ setExtent()

void Image::setExtent ( VkExtent3D  extent)
inline

Definition at line 17 of file Image.inl.

◆ setMipLevels()

void Image::setMipLevels ( uint32_t  mipLevels)
inline

Definition at line 21 of file Image.inl.

◆ setArrayLayers()

void Image::setArrayLayers ( uint32_t  arrayLayers)
inline

Definition at line 25 of file Image.inl.

◆ setSampleCount()

void Image::setSampleCount ( VkSampleCountFlagBits  sampleCount)
inline

Definition at line 29 of file Image.inl.

◆ setTiling()

void Image::setTiling ( VkImageTiling  tiling)
inline

Definition at line 33 of file Image.inl.

◆ setUsage()

void Image::setUsage ( VkImageUsageFlags  usage)
inline

Definition at line 37 of file Image.inl.

◆ setExclusive()

void Image::setExclusive ( bool  exclusive)
inline

Definition at line 41 of file Image.inl.

◆ setQueueFamilyIndices()

void Image::setQueueFamilyIndices ( const std::set< uint32_t > &  queueFamilyIndices)
inline

Definition at line 45 of file Image.inl.

◆ build() [1/2]

bool lug::Graphics::Vulkan::API::Builder::Image::build ( API::Image instance,
VkResult *  returnResult = nullptr 
)

Definition at line 16 of file Image.cpp.

◆ build() [2/2]

std::unique_ptr< API::Image > lug::Graphics::Vulkan::API::Builder::Image::build ( VkResult *  returnResult = nullptr)

Definition at line 67 of file Image.cpp.

Member Data Documentation

◆ _device

const API::Device& lug::Graphics::Vulkan::API::Builder::Image::_device
private

Definition at line 47 of file Image.hpp.

◆ _createFlags

VkImageCreateFlags lug::Graphics::Vulkan::API::Builder::Image::_createFlags {0}
private

Definition at line 49 of file Image.hpp.

◆ _imageType

VkImageType lug::Graphics::Vulkan::API::Builder::Image::_imageType {VK_IMAGE_TYPE_2D}
private

Definition at line 50 of file Image.hpp.

◆ _preferedFormats

std::set<VkFormat> lug::Graphics::Vulkan::API::Builder::Image::_preferedFormats
private

Definition at line 51 of file Image.hpp.

◆ _featureFlags

VkFormatFeatureFlags lug::Graphics::Vulkan::API::Builder::Image::_featureFlags {0}
private

Definition at line 52 of file Image.hpp.

◆ _extent

VkExtent3D lug::Graphics::Vulkan::API::Builder::Image::_extent {}
private

Definition at line 53 of file Image.hpp.

◆ _mipLevels

uint32_t lug::Graphics::Vulkan::API::Builder::Image::_mipLevels {1}
private

Definition at line 54 of file Image.hpp.

◆ _arrayLayers

uint32_t lug::Graphics::Vulkan::API::Builder::Image::_arrayLayers {1}
private

Definition at line 55 of file Image.hpp.

◆ _sampleCount

VkSampleCountFlagBits lug::Graphics::Vulkan::API::Builder::Image::_sampleCount {VK_SAMPLE_COUNT_1_BIT}
private

Definition at line 56 of file Image.hpp.

◆ _tiling

VkImageTiling lug::Graphics::Vulkan::API::Builder::Image::_tiling {VK_IMAGE_TILING_OPTIMAL}
private

Definition at line 57 of file Image.hpp.

◆ _usage

VkImageUsageFlags lug::Graphics::Vulkan::API::Builder::Image::_usage {VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT}
private

Definition at line 58 of file Image.hpp.

◆ _exclusive

bool lug::Graphics::Vulkan::API::Builder::Image::_exclusive {false}
private

Definition at line 59 of file Image.hpp.

◆ _queueFamilyIndices

std::set<uint32_t> lug::Graphics::Vulkan::API::Builder::Image::_queueFamilyIndices
private

Definition at line 60 of file Image.hpp.

◆ _initialLayout

VkImageLayout lug::Graphics::Vulkan::API::Builder::Image::_initialLayout {VK_IMAGE_LAYOUT_UNDEFINED}
private

Definition at line 61 of file Image.hpp.


The documentation for this class was generated from the following files: