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

#include <Swapchain.hpp>

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

Public Member Functions

 Swapchain (const API::Device &device)
 
 Swapchain (const Swapchain &)=delete
 
 Swapchain (Swapchain &&)=delete
 
Swapchainoperator= (const Swapchain &)=delete
 
Swapchainoperator= (Swapchain &&)=delete
 
 ~Swapchain ()=default
 
void setPreferences (const Renderer::Preferences::Swapchain &preferences)
 
void setSurface (VkSurfaceKHR surface)
 
void setMinImageCount (uint32_t minImageCount)
 
void setImageFormat (VkFormat imageFormat)
 
void setImageColorSpace (VkColorSpaceKHR imageColorSpace)
 
void setImageExtent (VkExtent2D imageExtent)
 
void setImageUsage (VkImageUsageFlags imageUsage)
 
void setExclusive (bool exclusive)
 
void setQueueFamilyIndices (const std::set< uint32_t > &queueFamilyIndices)
 
void setPreTransform (VkSurfaceTransformFlagBitsKHR preTransform)
 
void setCompositeAlpha (VkCompositeAlphaFlagBitsKHR compositeAlpha)
 
void setPresentMode (VkPresentModeKHR presentMode)
 
void setClipped (VkBool32 clipped)
 
void setOldSwapchain (VkSwapchainKHR oldSwapchain)
 
bool build (API::Swapchain &instance, VkResult *returnResult=nullptr)
 
std::unique_ptr< API::Swapchainbuild (VkResult *returnResult=nullptr)
 

Private Member Functions

bool setFromPreferences ()
 

Private Attributes

const API::Device_device
 
const Renderer::Preferences::Swapchain_preferences {nullptr}
 
VkSurfaceKHR _surface {VK_NULL_HANDLE}
 
uint32_t _minImageCount
 
VkFormat _imageFormat {VK_FORMAT_MAX_ENUM}
 
VkColorSpaceKHR _imageColorSpace {VK_COLOR_SPACE_MAX_ENUM_KHR}
 
VkExtent2D _imageExtent {}
 
VkImageUsageFlags _imageUsage {VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT}
 
bool _exclusive {false}
 
std::set< uint32_t > _queueFamilyIndices
 
VkSurfaceTransformFlagBitsKHR _preTransform {VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR}
 
VkCompositeAlphaFlagBitsKHR _compositeAlpha {VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR}
 
VkPresentModeKHR _presentMode {VK_PRESENT_MODE_MAX_ENUM_KHR}
 
VkBool32 _clipped {VK_TRUE}
 
VkSwapchainKHR _oldSwapchain {VK_NULL_HANDLE}
 

Detailed Description

Definition at line 18 of file Swapchain.hpp.

Constructor & Destructor Documentation

◆ Swapchain() [1/3]

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

Definition at line 12 of file Swapchain.cpp.

◆ Swapchain() [2/3]

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

◆ Swapchain() [3/3]

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

◆ ~Swapchain()

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

Member Function Documentation

◆ operator=() [1/2]

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

◆ operator=() [2/2]

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

◆ setPreferences()

void Swapchain::setPreferences ( const Renderer::Preferences::Swapchain preferences)
inline

Definition at line 1 of file Swapchain.inl.

◆ setSurface()

void Swapchain::setSurface ( VkSurfaceKHR  surface)
inline

Definition at line 5 of file Swapchain.inl.

◆ setMinImageCount()

void Swapchain::setMinImageCount ( uint32_t  minImageCount)
inline

Definition at line 9 of file Swapchain.inl.

◆ setImageFormat()

void Swapchain::setImageFormat ( VkFormat  imageFormat)
inline

Definition at line 13 of file Swapchain.inl.

◆ setImageColorSpace()

void Swapchain::setImageColorSpace ( VkColorSpaceKHR  imageColorSpace)
inline

Definition at line 17 of file Swapchain.inl.

◆ setImageExtent()

void Swapchain::setImageExtent ( VkExtent2D  imageExtent)
inline

Definition at line 21 of file Swapchain.inl.

◆ setImageUsage()

void Swapchain::setImageUsage ( VkImageUsageFlags  imageUsage)
inline

Definition at line 25 of file Swapchain.inl.

◆ setExclusive()

void Swapchain::setExclusive ( bool  exclusive)
inline

Definition at line 29 of file Swapchain.inl.

◆ setQueueFamilyIndices()

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

Definition at line 33 of file Swapchain.inl.

◆ setPreTransform()

void Swapchain::setPreTransform ( VkSurfaceTransformFlagBitsKHR  preTransform)
inline

Definition at line 37 of file Swapchain.inl.

◆ setCompositeAlpha()

void Swapchain::setCompositeAlpha ( VkCompositeAlphaFlagBitsKHR  compositeAlpha)
inline

Definition at line 41 of file Swapchain.inl.

◆ setPresentMode()

void Swapchain::setPresentMode ( VkPresentModeKHR  presentMode)
inline

Definition at line 45 of file Swapchain.inl.

◆ setClipped()

void Swapchain::setClipped ( VkBool32  clipped)
inline

Definition at line 49 of file Swapchain.inl.

◆ setOldSwapchain()

void Swapchain::setOldSwapchain ( VkSwapchainKHR  oldSwapchain)
inline

Definition at line 53 of file Swapchain.inl.

◆ build() [1/2]

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

Definition at line 85 of file Swapchain.cpp.

◆ build() [2/2]

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

Definition at line 144 of file Swapchain.cpp.

◆ setFromPreferences()

bool lug::Graphics::Vulkan::API::Builder::Swapchain::setFromPreferences ( )
private

Definition at line 14 of file Swapchain.cpp.

Member Data Documentation

◆ _device

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

Definition at line 54 of file Swapchain.hpp.

◆ _preferences

const Renderer::Preferences::Swapchain* lug::Graphics::Vulkan::API::Builder::Swapchain::_preferences {nullptr}
private

Definition at line 56 of file Swapchain.hpp.

◆ _surface

VkSurfaceKHR lug::Graphics::Vulkan::API::Builder::Swapchain::_surface {VK_NULL_HANDLE}
private

Definition at line 57 of file Swapchain.hpp.

◆ _minImageCount

uint32_t lug::Graphics::Vulkan::API::Builder::Swapchain::_minImageCount
private

Definition at line 58 of file Swapchain.hpp.

◆ _imageFormat

VkFormat lug::Graphics::Vulkan::API::Builder::Swapchain::_imageFormat {VK_FORMAT_MAX_ENUM}
private

Definition at line 59 of file Swapchain.hpp.

◆ _imageColorSpace

VkColorSpaceKHR lug::Graphics::Vulkan::API::Builder::Swapchain::_imageColorSpace {VK_COLOR_SPACE_MAX_ENUM_KHR}
private

Definition at line 60 of file Swapchain.hpp.

◆ _imageExtent

VkExtent2D lug::Graphics::Vulkan::API::Builder::Swapchain::_imageExtent {}
private

Definition at line 61 of file Swapchain.hpp.

◆ _imageUsage

VkImageUsageFlags lug::Graphics::Vulkan::API::Builder::Swapchain::_imageUsage {VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT}
private

Definition at line 62 of file Swapchain.hpp.

◆ _exclusive

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

Definition at line 63 of file Swapchain.hpp.

◆ _queueFamilyIndices

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

Definition at line 64 of file Swapchain.hpp.

◆ _preTransform

VkSurfaceTransformFlagBitsKHR lug::Graphics::Vulkan::API::Builder::Swapchain::_preTransform {VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR}
private

Definition at line 65 of file Swapchain.hpp.

◆ _compositeAlpha

VkCompositeAlphaFlagBitsKHR lug::Graphics::Vulkan::API::Builder::Swapchain::_compositeAlpha {VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR}
private

Definition at line 66 of file Swapchain.hpp.

◆ _presentMode

VkPresentModeKHR lug::Graphics::Vulkan::API::Builder::Swapchain::_presentMode {VK_PRESENT_MODE_MAX_ENUM_KHR}
private

Definition at line 67 of file Swapchain.hpp.

◆ _clipped

VkBool32 lug::Graphics::Vulkan::API::Builder::Swapchain::_clipped {VK_TRUE}
private

Definition at line 68 of file Swapchain.hpp.

◆ _oldSwapchain

VkSwapchainKHR lug::Graphics::Vulkan::API::Builder::Swapchain::_oldSwapchain {VK_NULL_HANDLE}
private

Definition at line 69 of file Swapchain.hpp.


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