Rehti MMORPG  1.0.0
Rehti MMORPG is a free and open source MMORPG game.
GraphicsObjectManager Class Reference

Graphics object manager manages different types of objects that have memory and can be drawn. More...

#include <GraphicsObjectManager.hpp>

Collaboration diagram for GraphicsObjectManager:
Collaboration graph

Classes

struct  CommandUnit
 Command unit represents everything needed to allocate, submit, record and execute commands. More...
 

Public Member Functions

 GraphicsObjectManager (VkInstance instance, VkPhysicalDevice gpu, VkDevice logDevice, VkQueue graphicsQueue, std::shared_mutex &graphicsMutex, uint32_t graphicsQueueFamily, const uint32_t frameCount)
 Creates a graphics object manager. More...
 
 ~GraphicsObjectManager ()
 Destructor. More...
 
void addTransferQueueFamilyAccess (const uint32_t transferQueueFamily, VkQueue transferQueue)
 Adds the given transfer queue to the manager. More...
 
bool addCharacter (int characterID, const std::vector< CharacterVertex > &vertices, const std::vector< uint32_t > &indices, ImageData &texture, glm::mat4 transformation, glm::mat4 bindPose[MAX_BONES], VkSampler imgSampler, PhongMaterial material=PhongMaterial::getDefaultMaterial())
 Adds a character to the buffer manager with the given parameters. More...
 
bool addGameObject (int objectId, const std::vector< Vertex > &vertices, const std::vector< uint32_t > &indices, ImageData &texture, glm::mat4 transformation, VkSampler imgSampler, PhongMaterial material=PhongMaterial::getDefaultMaterial())
 Adds a game object to the buffer manager. More...
 
bool addTestObject (int id, const std::vector< SimpleVertex > &vertices, const std::vector< uint32_t > &indices, glm::mat4 transformation)
 Adds a test object to the buffer manager. More...
 
bool addArea (const std::vector< Vertex > &vertices, const std::vector< uint32_t > &indices, std::array< ImageData, 6 > textures, VkSampler texSampler)
 Adds an area object to the buffer manager. More...
 
bool cleanResources (int id, ObjectType type)
 Cleans resources of the given id, if they exists. More...
 
void updateTestObject (int id, const void *srcData, uint32_t frame)
 Updates test object data. More...
 
void updateObjectDescriptor (int id, const void *srcData, uint32_t frame)
 Updates the object descriptor with the given data. More...
 
void updateCharacterDescriptor (int id, const void *transformSrcData, const void *boneSrcData, uint32_t frame)
 
VkDescriptorSet getSunDescriptorSet (uint32_t frame) const
 Returns the descriptor set of the sun for the given frame. More...
 
VkDescriptorSetLayout getSunLayout () const
 Returns the descriptor set layout of the sun. More...
 
void updateSunDescriptor (const void *srcData, uint32_t frame)
 Updates the sun descriptor with the given data. More...
 
void updateCameraDescriptor (const void *srcData, uint32_t frame)
 Updates the camera descriptor with the given data. More...
 
AllocatedImage createDepthImage (uint32_t width, uint32_t height, VkFormat depthFormat)
 Creates a depth image. More...
 
void destroyImage (AllocatedImage image)
 Interface for destroying an image That is owned by the user of this class. More...
 
void transitionDepthImageLayout (AllocatedImage depthImage, VkFormat depthFormat, VkImageLayout srcLayout, VkImageLayout dstLayout)
 Transitions the given image to the given layout using graphics queue. More...
 
VkImageView createImageView (VkImage image, VkFormat format, VkImageAspectFlags aspectFlags=VK_IMAGE_ASPECT_COLOR_BIT)
 Creates an image view for the given image and format. More...
 
CombinedImage createCombinedImage (uint32_t width, uint32_t height, VkFormat format)
 Creates an image for the given data and stores the memory to this class. More...
 
void copyBuffer (AllocatedBuffer allocBuffer, const void *srcData)
 Copies the given data to the given buffer. More...
 
void copyImage (AllocatedImage allocImage, const ImageData &srcData)
 Copies the given data to the given image. More...
 
VkDescriptorSetLayout getLayout (ObjectType type) const
 Returns the descriptor set layout for the given object type. More...
 
uint32_t getLayoutCount (ObjectType type) const
 Returns the number of descriptor layouts of the given type. Currently not a very useful function. However, it might be useful in the future. More...
 
std::vector< DrawableObjectgetDrawableObjects (ObjectType type, uint32_t frame) const
 Returns drawable objects of the given type. More...
 

Private Member Functions

AllocatedBuffer createBuffer (VkDeviceSize size, VkBufferUsageFlags usage, VmaAllocationInfo &info, VmaMemoryUsage memUsage=VMA_MEMORY_USAGE_AUTO, VmaAllocationCreateFlags vmaCreationFlags=0, VkMemoryPropertyFlags requiredFlags=0, VkMemoryPropertyFlags preferredFlags=0)
 Creates a buffer with the given parameters. More...
 
AllocatedBuffer createBuffer (VkDeviceSize size, VkBufferUsageFlags usage, VmaMemoryUsage memUsage=VMA_MEMORY_USAGE_AUTO, VmaAllocationCreateFlags vmaCreationFlags=0, VkMemoryPropertyFlags requiredFlags=0, VkMemoryPropertyFlags preferredFlags=0)
 
AllocatedImage createImage (uint32_t width, uint32_t height, VkFormat format, VkImageTiling tiling=VK_IMAGE_TILING_OPTIMAL, VkImageUsageFlags usage=VK_IMAGE_USAGE_TRANSFER_DST_BIT|VK_IMAGE_USAGE_SAMPLED_BIT, VmaMemoryUsage memUsage=VMA_MEMORY_USAGE_AUTO, VmaAllocationCreateFlags vmaCreationFlags=0, VkMemoryPropertyFlags requiredFlags=0, VkMemoryPropertyFlags preferredFlags=0)
 Creates an allocated image. The standard parameters make it easy to create a texture image on the GPU. More specific use cases must be specified through the parameters. More...
 
void createDescriptorBuilder ()
 Initializes the descriptorBuilder member. More...
 
uint32_t getQueueFamilyCount ()
 Returns number of queue families. More...
 
VkSharingMode getSharingMode ()
 Returns the sharing mode of created resources. More...
 
VkCommandBuffer startCommandBuffer (bool preferTransfer)
 Allocates and begins a command buffer. More...
 
bool endCommandBuffer (VkCommandBuffer commandBuffer, VkFence fence=VK_NULL_HANDLE)
 Submits the given command buffer to be executed on the gpu. More...
 
void transitionImageLayout (VkImage image, VkFormat format, VkImageLayout oldLayout, VkImageLayout newLayout, VkCommandBuffer commandBuffer, VkImageAspectFlags aspectFlags=VK_IMAGE_ASPECT_COLOR_BIT, std::pair< uint32_t, uint32_t > srcAndDstQueueFamilies={VK_QUEUE_FAMILY_IGNORED, VK_QUEUE_FAMILY_IGNORED})
 Records image layout transition barrier to the given command buffer. More...
 
std::pair< uint32_t, uint32_t > getQueueTransitionFamilies ()
 Queue families should be transferred, if the resources are using multiple queues, and the sharingmode is exclusive, or the desired stage is available only to another queue. todo could be updated in the future. More...
 
bool getPipelineAndAccessFlags (VkImageLayout srcLayout, VkImageLayout dstLayout, std::pair< VkAccessFlags, VkAccessFlags > &srcAndDstAccessMasks, std::pair< VkPipelineStageFlags, VkPipelineStageFlags > &srcAndDstStages)
 Fills access masks and pipeline stages when given source and destination layouts for an image. More...
 
AllocatedBuffer createStagingBuffer (VkDeviceSize size, VmaAllocationInfo &allocInfo)
 Helper for creating a staging buffer. More...
 
void createSun ()
 Creates necessary memory allocations and mappings for a sun. More...
 

Private Attributes

VkDevice logDeviceM
 
VmaAllocator allocatorM
 
VkDeviceSize minOffsetM
 Minimum offset alignment for uniform buffers. More...
 
std::shared_mutex & graphicsQueueMutexM
 
CommandUnit graphicsCommandUnitM
 
std::optional< CommandUnittransferCommandUnitM
 
std::optional< CommandUnitactiveCommandUnitM
 
std::unique_ptr< DescriptorBuilderpBuilderM
 
std::unordered_map< int, CharacterObjectcharacterObjectsM
 
std::unordered_map< int, GameObjectgameObjectsM
 
std::unordered_map< int, TestObjecttestObjectsM
 
std::vector< AreaObjectareaObjectsM
 
LightObject sunM
 
VkDescriptorSetLayout sunLayoutM
 
std::vector< CombinedImageallocatedImagesM
 
uint32_t frameCountM
 
std::array< VkDescriptorSetLayout, OBJECT_TYPE_COUNTdescriptorSetLayoutsM
 

Detailed Description

Graphics object manager manages different types of objects that have memory and can be drawn.

Constructor & Destructor Documentation

◆ GraphicsObjectManager()

GraphicsObjectManager::GraphicsObjectManager ( VkInstance  instance,
VkPhysicalDevice  gpu,
VkDevice  logDevice,
VkQueue  graphicsQueue,
std::shared_mutex &  graphicsMutex,
uint32_t  graphicsQueueFamily,
const uint32_t  frameCount 
)

Creates a graphics object manager.

Parameters
instanceis a Vulkan instance.
gpuis the physical device.
logDeviceis the logical device.
graphicsQueueis the queue for graphics operations.
graphicsMutexis a mutex for graphics operations.
graphicsQueueFamilyis the family index of the graphics queue.
frameCountis the number of frames.

◆ ~GraphicsObjectManager()

GraphicsObjectManager::~GraphicsObjectManager ( )

Destructor.

Member Function Documentation

◆ addArea()

bool GraphicsObjectManager::addArea ( const std::vector< Vertex > &  vertices,
const std::vector< uint32_t > &  indices,
std::array< ImageData, 6 >  textures,
VkSampler  texSampler 
)

Adds an area object to the buffer manager.

Parameters
verticesof the area
indicesof the area
texturesof the area
Returns
boolean indicating success
Here is the call graph for this function:

◆ addCharacter()

bool GraphicsObjectManager::addCharacter ( int  characterID,
const std::vector< CharacterVertex > &  vertices,
const std::vector< uint32_t > &  indices,
ImageData texture,
glm::mat4  transformation,
glm::mat4  bindPose[MAX_BONES],
VkSampler  imgSampler,
PhongMaterial  material = PhongMaterial::getDefaultMaterial() 
)

Adds a character to the buffer manager with the given parameters.

Parameters
characterIDis the id of the character
verticesof the character
indicesof the character
textureof the character
transformationto be applied to the character
bindPoseis the bind pose bone data of the character
imgSampleris the sampler for the texture of the character
Returns
boolean indicating success of the operation
Here is the call graph for this function:

◆ addGameObject()

bool GraphicsObjectManager::addGameObject ( int  objectId,
const std::vector< Vertex > &  vertices,
const std::vector< uint32_t > &  indices,
ImageData texture,
glm::mat4  transformation,
VkSampler  imgSampler,
PhongMaterial  material = PhongMaterial::getDefaultMaterial() 
)

Adds a game object to the buffer manager.

Parameters
objectId
verticesof the object
indicesof the points making up triangles
textureof the object
transformationto be applied to the object
imgSampleris the sampler for the texture of the gameobject
Returns
boolean indicating success of the operation
Here is the call graph for this function:

◆ addTestObject()

bool GraphicsObjectManager::addTestObject ( int  id,
const std::vector< SimpleVertex > &  vertices,
const std::vector< uint32_t > &  indices,
glm::mat4  transformation 
)

Adds a test object to the buffer manager.

Parameters
idof the object
vertices
indices
transformation
Returns
boolean indicating success
Here is the call graph for this function:

◆ addTransferQueueFamilyAccess()

void GraphicsObjectManager::addTransferQueueFamilyAccess ( const uint32_t  transferQueueFamily,
VkQueue  transferQueue 
)

Adds the given transfer queue to the manager.

Parameters
transferQueueFamilyis the family index of the transfer queue.
transferQueueis the transfer queue.

◆ cleanResources()

bool GraphicsObjectManager::cleanResources ( int  id,
ObjectType  type 
)

Cleans resources of the given id, if they exists.

Parameters
idis the id of the object.
typeis the type of the object.
Returns
boolean indicating success

◆ copyBuffer()

void GraphicsObjectManager::copyBuffer ( AllocatedBuffer  allocBuffer,
const void *  srcData 
)

Copies the given data to the given buffer.

Parameters
allocBufferis the buffer to which the data is copied.
srcDatais the source data.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ copyImage()

void GraphicsObjectManager::copyImage ( AllocatedImage  allocImage,
const ImageData srcData 
)

Copies the given data to the given image.

Parameters
allocImageis the image to copy to.
srcDatais the source image data.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ createBuffer() [1/2]

AllocatedBuffer GraphicsObjectManager::createBuffer ( VkDeviceSize  size,
VkBufferUsageFlags  usage,
VmaAllocationInfo &  info,
VmaMemoryUsage  memUsage = VMA_MEMORY_USAGE_AUTO,
VmaAllocationCreateFlags  vmaCreationFlags = 0,
VkMemoryPropertyFlags  requiredFlags = 0,
VkMemoryPropertyFlags  preferredFlags = 0 
)
private

Creates a buffer with the given parameters.

Parameters
sizeis the size of the buffer in bytes.
usageis the usage of the buffer.
infois the allocation info of the buffer to be filled.
memUsageis the memory usage of the buffer.
vmaCreationFlagsare the flags for the creation of the buffer.
requiredFlagsare the required memory property flags.
preferredFlagsare the preferred memory property flags.
Returns
The allocated buffer.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ createBuffer() [2/2]

AllocatedBuffer GraphicsObjectManager::createBuffer ( VkDeviceSize  size,
VkBufferUsageFlags  usage,
VmaMemoryUsage  memUsage = VMA_MEMORY_USAGE_AUTO,
VmaAllocationCreateFlags  vmaCreationFlags = 0,
VkMemoryPropertyFlags  requiredFlags = 0,
VkMemoryPropertyFlags  preferredFlags = 0 
)
private
Here is the call graph for this function:

◆ createCombinedImage()

CombinedImage GraphicsObjectManager::createCombinedImage ( uint32_t  width,
uint32_t  height,
VkFormat  format 
)

Creates an image for the given data and stores the memory to this class.

Parameters
dataof the image
Returns
combined image struct (image allocation, image view and vkimage)
Here is the call graph for this function:

◆ createDepthImage()

AllocatedImage GraphicsObjectManager::createDepthImage ( uint32_t  width,
uint32_t  height,
VkFormat  depthFormat 
)

Creates a depth image.

Parameters
widthis the width of the image.
heightis the height of the image.
depthFormatis the format of the depth image.
Returns
AllocatedImage object.
Here is the call graph for this function:

◆ createDescriptorBuilder()

void GraphicsObjectManager::createDescriptorBuilder ( )
private

Initializes the descriptorBuilder member.

◆ createImage()

AllocatedImage GraphicsObjectManager::createImage ( uint32_t  width,
uint32_t  height,
VkFormat  format,
VkImageTiling  tiling = VK_IMAGE_TILING_OPTIMAL,
VkImageUsageFlags  usage = VK_IMAGE_USAGE_TRANSFER_DST_BIT | VK_IMAGE_USAGE_SAMPLED_BIT,
VmaMemoryUsage  memUsage = VMA_MEMORY_USAGE_AUTO,
VmaAllocationCreateFlags  vmaCreationFlags = 0,
VkMemoryPropertyFlags  requiredFlags = 0,
VkMemoryPropertyFlags  preferredFlags = 0 
)
private

Creates an allocated image. The standard parameters make it easy to create a texture image on the GPU. More specific use cases must be specified through the parameters.

Parameters
widthThe width of the image.
heightThe height of the image.
formatThe format of the image.
tilingThe tiling of the image.
usageThe usage of the image.
memUsageThe VMA memory usage of the image.
vmaCreationFlagsThe VMA creation flags of the image.
requiredFlagsThe required memory property flags.
preferredFlagsThe preferred memory property flags.
Returns
The allocated image.
Here is the caller graph for this function:

◆ createImageView()

VkImageView GraphicsObjectManager::createImageView ( VkImage  image,
VkFormat  format,
VkImageAspectFlags  aspectFlags = VK_IMAGE_ASPECT_COLOR_BIT 
)

Creates an image view for the given image and format.

Parameters
imageThe image for which to create a view.
formatThe format of the image view.
Returns
The created image view. The caller is responsible for the destruction of the allocated resource.
Here is the caller graph for this function:

◆ createStagingBuffer()

AllocatedBuffer GraphicsObjectManager::createStagingBuffer ( VkDeviceSize  size,
VmaAllocationInfo &  allocInfo 
)
private

Helper for creating a staging buffer.

Parameters
sizeof the staging buffer
allocInfoto be filled
Returns
The allocated buffer
Here is the call graph for this function:
Here is the caller graph for this function:

◆ createSun()

void GraphicsObjectManager::createSun ( )
private

Creates necessary memory allocations and mappings for a sun.

Here is the call graph for this function:

◆ destroyImage()

void GraphicsObjectManager::destroyImage ( AllocatedImage  image)

Interface for destroying an image That is owned by the user of this class.

Parameters
image

◆ endCommandBuffer()

bool GraphicsObjectManager::endCommandBuffer ( VkCommandBuffer  commandBuffer,
VkFence  fence = VK_NULL_HANDLE 
)
private

Submits the given command buffer to be executed on the gpu.

Parameters
commandBufferto end
fenceto set signal.
Returns
boolean indicating success
Here is the caller graph for this function:

◆ getDrawableObjects()

std::vector< DrawableObject > GraphicsObjectManager::getDrawableObjects ( ObjectType  type,
uint32_t  frame 
) const

Returns drawable objects of the given type.

Parameters
typeof object desired for drawing
Returns
List of drawableobject structs

◆ getLayout()

VkDescriptorSetLayout GraphicsObjectManager::getLayout ( ObjectType  type) const

Returns the descriptor set layout for the given object type.

Parameters
type
Returns

◆ getLayoutCount()

uint32_t GraphicsObjectManager::getLayoutCount ( ObjectType  type) const

Returns the number of descriptor layouts of the given type. Currently not a very useful function. However, it might be useful in the future.

Parameters
typeof object to be queried for.
Returns
number of layouts

◆ getPipelineAndAccessFlags()

bool GraphicsObjectManager::getPipelineAndAccessFlags ( VkImageLayout  srcLayout,
VkImageLayout  dstLayout,
std::pair< VkAccessFlags, VkAccessFlags > &  srcAndDstAccessMasks,
std::pair< VkPipelineStageFlags, VkPipelineStageFlags > &  srcAndDstStages 
)
private

Fills access masks and pipeline stages when given source and destination layouts for an image.

Parameters
srcLayoutof the image
dstLayoutof the image
srcAndDstAccessMasksto be filled
srcAndDstStagesto be filled
Returns
boolean indicating if the given layout pair is valid
Here is the caller graph for this function:

◆ getQueueFamilyCount()

uint32_t GraphicsObjectManager::getQueueFamilyCount ( )
private

Returns number of queue families.

Returns
Here is the caller graph for this function:

◆ getQueueTransitionFamilies()

std::pair< uint32_t, uint32_t > GraphicsObjectManager::getQueueTransitionFamilies ( )
private

Queue families should be transferred, if the resources are using multiple queues, and the sharingmode is exclusive, or the desired stage is available only to another queue. todo could be updated in the future.

◆ getSharingMode()

VkSharingMode GraphicsObjectManager::getSharingMode ( )
private

Returns the sharing mode of created resources.

Parameters
idof the object
Returns
VK_SHARING_MODE_CONCURRENT if separate graphics queue is set.
VK_SHARING_MODE_EXCLUSIVE if transfer queue is the graphics queue.
Here is the caller graph for this function:

◆ getSunDescriptorSet()

VkDescriptorSet GraphicsObjectManager::getSunDescriptorSet ( uint32_t  frame) const

Returns the descriptor set of the sun for the given frame.

Parameters
frameto get the descriptor set for.
Returns
VkDescriptorSet of the sun.

◆ getSunLayout()

VkDescriptorSetLayout GraphicsObjectManager::getSunLayout ( ) const

Returns the descriptor set layout of the sun.

Returns

◆ startCommandBuffer()

VkCommandBuffer GraphicsObjectManager::startCommandBuffer ( bool  preferTransfer)
private

Allocates and begins a command buffer.

Parameters
preferTransferindicates if the transfer unit should be used.
Returns
The allocated command buffer.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ transitionDepthImageLayout()

void GraphicsObjectManager::transitionDepthImageLayout ( AllocatedImage  depthImage,
VkFormat  depthFormat,
VkImageLayout  srcLayout,
VkImageLayout  dstLayout 
)

Transitions the given image to the given layout using graphics queue.

Parameters
depthImage
depthFormat
srcLayout
dstLayout
Here is the call graph for this function:

◆ transitionImageLayout()

void GraphicsObjectManager::transitionImageLayout ( VkImage  image,
VkFormat  format,
VkImageLayout  oldLayout,
VkImageLayout  newLayout,
VkCommandBuffer  commandBuffer,
VkImageAspectFlags  aspectFlags = VK_IMAGE_ASPECT_COLOR_BIT,
std::pair< uint32_t, uint32_t >  srcAndDstQueueFamilies = {VK_QUEUE_FAMILY_IGNORED, VK_QUEUE_FAMILY_IGNORED} 
)
private

Records image layout transition barrier to the given command buffer.

Parameters
imageto transition
formatof the image
oldLayoutof the image
newLayoutof the image
commandBufferto record the transition to
srcQueueFamilyIndex& dstQueueFamilyIndex of the source family. Use the default value if you do not want to change queue ownership
Here is the call graph for this function:
Here is the caller graph for this function:

◆ updateCameraDescriptor()

void GraphicsObjectManager::updateCameraDescriptor ( const void *  srcData,
uint32_t  frame 
)

Updates the camera descriptor with the given data.

Parameters
srcDatais the data to be copied
frameis the frame of the update

◆ updateCharacterDescriptor()

void GraphicsObjectManager::updateCharacterDescriptor ( int  id,
const void *  transformSrcData,
const void *  boneSrcData,
uint32_t  frame 
)
Parameters
idof the character
transformSrcDatais the transformation data to be copied to the buffer (4x4 matrix)
boneSrcDatais the bone data to be copied (list of matrixes)
frameis the frame of the update

◆ updateObjectDescriptor()

void GraphicsObjectManager::updateObjectDescriptor ( int  id,
const void *  srcData,
uint32_t  frame 
)

Updates the object descriptor with the given data.

Parameters
idof the object to update
srcDatais the data to be copied to the buffer (4x4 matrix)
frameis the frame of the update

◆ updateSunDescriptor()

void GraphicsObjectManager::updateSunDescriptor ( const void *  srcData,
uint32_t  frame 
)

Updates the sun descriptor with the given data.

Parameters
srcDatais the data to be copied
frameis the frame of the update

◆ updateTestObject()

void GraphicsObjectManager::updateTestObject ( int  id,
const void *  srcData,
uint32_t  frame 
)

Updates test object data.

Parameters
idis the ID of the object.
srcDatais the source data.
frameis the frame number.

Member Data Documentation

◆ activeCommandUnitM

std::optional<CommandUnit> GraphicsObjectManager::activeCommandUnitM
private

◆ allocatedImagesM

std::vector<CombinedImage> GraphicsObjectManager::allocatedImagesM
private

◆ allocatorM

VmaAllocator GraphicsObjectManager::allocatorM
private

◆ areaObjectsM

std::vector<AreaObject> GraphicsObjectManager::areaObjectsM
private

◆ characterObjectsM

std::unordered_map<int, CharacterObject> GraphicsObjectManager::characterObjectsM
private

◆ descriptorSetLayoutsM

std::array<VkDescriptorSetLayout, OBJECT_TYPE_COUNT> GraphicsObjectManager::descriptorSetLayoutsM
private

◆ frameCountM

uint32_t GraphicsObjectManager::frameCountM
private

◆ gameObjectsM

std::unordered_map<int, GameObject> GraphicsObjectManager::gameObjectsM
private

◆ graphicsCommandUnitM

CommandUnit GraphicsObjectManager::graphicsCommandUnitM
private

◆ graphicsQueueMutexM

std::shared_mutex& GraphicsObjectManager::graphicsQueueMutexM
private

◆ logDeviceM

VkDevice GraphicsObjectManager::logDeviceM
private

◆ minOffsetM

VkDeviceSize GraphicsObjectManager::minOffsetM
private

Minimum offset alignment for uniform buffers.

◆ pBuilderM

std::unique_ptr<DescriptorBuilder> GraphicsObjectManager::pBuilderM
private

◆ sunLayoutM

VkDescriptorSetLayout GraphicsObjectManager::sunLayoutM
private

◆ sunM

LightObject GraphicsObjectManager::sunM
private

◆ testObjectsM

std::unordered_map<int, TestObject> GraphicsObjectManager::testObjectsM
private

◆ transferCommandUnitM

std::optional<CommandUnit> GraphicsObjectManager::transferCommandUnitM
private

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