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

#include <Image.hpp>

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

Classes

struct  Extent
 

Public Member Functions

 Image ()=default
 
 Image (const Image &)=delete
 
 Image (Image &&Image)
 
Imageoperator= (const Image &)=delete
 
Imageoperator= (Image &&Image)
 
 ~Image ()
 
 operator VkImage () const
 
const ExtentgetExtent () const
 
void destroy ()
 
void bindMemory (const DeviceMemory &deviceMemory, VkDeviceSize memoryOffset=0)
 
const VkMemoryRequirements & getRequirements () const
 
const DeviceMemorygetDeviceMemory () const
 
VkDeviceSize getDeviceMemoryOffset () const
 
VkFormat getFormat () const
 

Static Public Member Functions

static VkFormat findSupportedFormat (const Device &device, const std::set< VkFormat > &formats, VkImageTiling tiling, VkFormatFeatureFlags features)
 

Private Member Functions

 Image (VkImage Image, const Device *device, const Extent &extent, VkFormat format, bool swapchainImage)
 

Static Private Member Functions

static bool isFormatSupported (const Device &device, VkFormat format, VkImageTiling tiling, VkFormatFeatureFlags features)
 

Private Attributes

VkImage _image {VK_NULL_HANDLE}
 
const Device_device {nullptr}
 
const DeviceMemory_deviceMemory {nullptr}
 
VkDeviceSize _deviceMemoryOffset {0}
 
Extent _extent
 
VkFormat _format
 
VkImageAspectFlags _aspect
 
bool _swapchainImage
 
VkMemoryRequirements _requirements {}
 

Friends

class Builder::Image
 
class Swapchain
 

Detailed Description

Definition at line 21 of file Image.hpp.

Constructor & Destructor Documentation

◆ Image() [1/4]

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

◆ Image() [2/4]

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

◆ Image() [3/4]

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

Definition at line 19 of file Image.cpp.

◆ ~Image()

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

Definition at line 61 of file Image.cpp.

◆ Image() [4/4]

lug::Graphics::Vulkan::API::Image::Image ( VkImage  Image,
const Device device,
const Extent extent,
VkFormat  format,
bool  swapchainImage 
)
explicitprivate

Definition at line 12 of file Image.cpp.

Member Function Documentation

◆ operator=() [1/2]

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

◆ operator=() [2/2]

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

Definition at line 38 of file Image.cpp.

◆ operator VkImage()

lug::Graphics::Vulkan::API::Image::operator VkImage ( ) const
inlineexplicit

Definition at line 43 of file Image.hpp.

◆ getExtent()

const Extent& lug::Graphics::Vulkan::API::Image::getExtent ( ) const
inline

Definition at line 47 of file Image.hpp.

◆ destroy()

void lug::Graphics::Vulkan::API::Image::destroy ( )

Definition at line 68 of file Image.cpp.

◆ bindMemory()

void lug::Graphics::Vulkan::API::Image::bindMemory ( const DeviceMemory deviceMemory,
VkDeviceSize  memoryOffset = 0 
)

Definition at line 75 of file Image.cpp.

◆ getRequirements()

const VkMemoryRequirements & Image::getRequirements ( ) const
inline

Definition at line 1 of file Image.inl.

◆ getDeviceMemory()

const DeviceMemory * Image::getDeviceMemory ( ) const
inline

Definition at line 5 of file Image.inl.

◆ getDeviceMemoryOffset()

VkDeviceSize Image::getDeviceMemoryOffset ( ) const
inline

Definition at line 9 of file Image.inl.

◆ getFormat()

VkFormat Image::getFormat ( ) const
inline

Definition at line 13 of file Image.inl.

◆ findSupportedFormat()

VkFormat lug::Graphics::Vulkan::API::Image::findSupportedFormat ( const Device device,
const std::set< VkFormat > &  formats,
VkImageTiling  tiling,
VkFormatFeatureFlags  features 
)
static

Definition at line 82 of file Image.cpp.

◆ isFormatSupported()

bool lug::Graphics::Vulkan::API::Image::isFormatSupported ( const Device device,
VkFormat  format,
VkImageTiling  tiling,
VkFormatFeatureFlags  features 
)
staticprivate

Definition at line 93 of file Image.cpp.

Friends And Related Function Documentation

◆ Builder::Image

friend class Builder::Image
friend

Definition at line 22 of file Image.hpp.

◆ Swapchain

friend class Swapchain
friend

Definition at line 23 of file Image.hpp.

Member Data Documentation

◆ _image

VkImage lug::Graphics::Vulkan::API::Image::_image {VK_NULL_HANDLE}
private

Definition at line 69 of file Image.hpp.

◆ _device

const Device* lug::Graphics::Vulkan::API::Image::_device {nullptr}
private

Definition at line 70 of file Image.hpp.

◆ _deviceMemory

const DeviceMemory* lug::Graphics::Vulkan::API::Image::_deviceMemory {nullptr}
private

Definition at line 72 of file Image.hpp.

◆ _deviceMemoryOffset

VkDeviceSize lug::Graphics::Vulkan::API::Image::_deviceMemoryOffset {0}
private

Definition at line 73 of file Image.hpp.

◆ _extent

Extent lug::Graphics::Vulkan::API::Image::_extent
private

Definition at line 75 of file Image.hpp.

◆ _format

VkFormat lug::Graphics::Vulkan::API::Image::_format
private

Definition at line 76 of file Image.hpp.

◆ _aspect

VkImageAspectFlags lug::Graphics::Vulkan::API::Image::_aspect
private

Definition at line 77 of file Image.hpp.

◆ _swapchainImage

bool lug::Graphics::Vulkan::API::Image::_swapchainImage
private

Definition at line 78 of file Image.hpp.

◆ _requirements

VkMemoryRequirements lug::Graphics::Vulkan::API::Image::_requirements {}
private

Definition at line 80 of file Image.hpp.


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