Polyphase Game Engine
Loading...
Searching...
No Matches
VulkanUtils.cpp File Reference

Functions

VkFormat ConvertPixelFormat (PixelFormat pixelFormat, bool srgb)
 
VkCullModeFlags ConvertCullMode (CullMode cullMode)
 
UniformBlock WriteUniformBlock (void *data, uint32_t size)
 
void CreateBuffer (VkDeviceSize size, VkBufferUsageFlags usage, VkMemoryPropertyFlags properties, VkBuffer &buffer, VramAllocation &bufferMemory)
 
void TransitionImageLayout (VkImage image, VkFormat format, VkImageLayout oldLayout, VkImageLayout newLayout, int32_t mipLevels, int32_t layerCount, VkCommandBuffer commandBuffer)
 
void CopyBuffer (VkBuffer srcBuffer, VkBuffer dstBuffer, VkDeviceSize size)
 
void CopyBufferToImage (VkBuffer buffer, VkImage image, uint32_t width, uint32_t height)
 
uint32_t GetFrameIndex ()
 
uint32_t GetFrameNumber ()
 
DestroyQueue * GetDestroyQueue ()
 
VkDevice GetVulkanDevice ()
 
VkCommandBuffer GetCommandBuffer ()
 
void DeviceWaitIdle ()
 
VkCommandBuffer BeginCommandBuffer ()
 
void EndCommandBuffer (VkCommandBuffer commandBuffer)
 
uint32_t FindMemoryType (uint32_t typeFilter, VkMemoryPropertyFlags properties)
 
uint32_t GetFormatPixelSize (VkFormat format)
 
uint32_t GetFormatBlockSize (VkFormat format)
 
bool IsFormatBlockCompressed (VkFormat format)
 
VkImageAspectFlags GetFormatImageAspect (VkFormat format)
 
std::vector< VkVertexInputBindingDescription > GetVertexBindingDescription (VertexType type)
 
std::vector< VkVertexInputAttributeDescription > GetVertexAttributeDescriptions (VertexType type)
 
void SetDebugObjectName (VkObjectType objectType, uint64_t object, const char *name)
 
void BeginDebugLabel (const char *name, glm::vec4 color)
 
void EndDebugLabel ()
 
void WriteGeometryUniformData (GeometryData &outData, World *world, Node3D *comp, const glm::mat4 &transform)
 
void GatherGeometryLightUniformData (GeometryData &outData, Primitive3D *primitive, Material *material, bool isStaticMesh)
 
void WriteMaterialLiteUniformData (MaterialData &outData, MaterialLite *material)
 
void WriteMaterialCustomUniformData (MaterialData &outData, Material *material)
 
VkPipelineColorBlendAttachmentState GetBasicBlendState (BasicBlendState basicBlendState)
 
void CreateTextureResource (Texture *texture, uint8_t *pixels)
 
void DestroyTextureResource (Texture *texture)
 
void BindForwardVertexType (VertexType vertType, Material *material, bool instanced=false)
 
void CreateMaterialResource (Material *material)
 
void DestroyMaterialResource (Material *material)
 
void BindMaterialResource (Material *material)
 
void BindMaterialDescriptorSet (Material *material)
 
void CreateStaticMeshResource (StaticMesh *staticMesh, bool hasColor, uint32_t numVertices, void *vertices, uint32_t numIndices, IndexType *indices)
 
void DestroyStaticMeshResource (StaticMesh *staticMesh)
 
void BindStaticMeshResource (StaticMesh *staticMesh)
 
void CreateSkeletalMeshResource (SkeletalMesh *skeletalMesh, uint32_t numVertices, VertexSkinned *vertices, uint32_t numIndices, IndexType *indices)
 
void DestroySkeletalMeshResource (SkeletalMesh *skeletalMesh)
 
void BindSkeletalMeshResource (SkeletalMesh *skeletalMesh)
 
void BindSkeletalMeshResourceIndices (SkeletalMesh *skeletalMesh)
 
void BindGeometryDescriptorSet (StaticMesh3D *staticMeshComp)
 
void UpdateStaticMeshCompResourceColors (StaticMesh3D *staticMeshComp)
 
void DestroyStaticMeshCompResource (StaticMesh3D *staticMeshComp)
 
void DrawStaticMeshComp (StaticMesh3D *staticMeshComp, StaticMesh *meshOverride)
 
void DestroySkeletalMeshCompResource (SkeletalMesh3D *skeletalMeshComp)
 
void ReallocateSkeletalMeshCompVertexBuffer (SkeletalMesh3D *skeletalMeshComp, uint32_t numVertices)
 
void UpdateSkeletalMeshCompVertexBuffer (SkeletalMesh3D *skeletalMeshComp, const std::vector< Vertex > &skinnedVertices)
 
void BindGeometryDescriptorSet (SkeletalMesh3D *skeletalMeshComp)
 
void DrawSkeletalMeshComp (SkeletalMesh3D *skeletalMeshComp)
 
bool IsCpuSkinningRequired (SkeletalMesh3D *skeletalMeshComp)
 
void DrawShadowMeshComp (ShadowMesh3D *shadowMeshComp)
 
void DrawInstancedMeshComp (InstancedMesh3D *instancedMeshComp)
 
void DestroyTextMeshCompResource (TextMesh3D *textMeshComp)
 
void UpdateTextMeshCompVertexBuffer (TextMesh3D *textMeshComp, const std::vector< Vertex > &vertices)
 
void DrawTextMeshComp (TextMesh3D *textMeshComp)
 
void BindGeometryDescriptorSet (TextMesh3D *textMeshComp)
 
void CreateVoxel3DResource (Voxel3D *voxel)
 
void DestroyVoxel3DResource (Voxel3D *voxel)
 
void UpdateVoxel3DResource (Voxel3D *voxel, const std::vector< VertexColor > &vertices, const std::vector< IndexType > &indices)
 
void DrawVoxel3D (Voxel3D *voxel)
 
void BindGeometryDescriptorSet (Voxel3D *voxel)
 
void CreateTerrain3DResource (Terrain3D *terrain)
 
void DestroyTerrain3DResource (Terrain3D *terrain)
 
void UpdateTerrain3DResource (Terrain3D *terrain, const std::vector< VertexColor > &vertices, const std::vector< IndexType > &indices)
 
void DrawTerrain3D (Terrain3D *terrain)
 
void BindGeometryDescriptorSet (Terrain3D *terrain)
 
void CreateTileMap2DResource (TileMap2D *tileMap)
 
void DestroyTileMap2DResource (TileMap2D *tileMap)
 
void UpdateTileMap2DResource (TileMap2D *tileMap, const std::vector< VertexColor > &vertices, const std::vector< IndexType > &indices)
 
void DrawTileMap2D (TileMap2D *tileMap)
 
void BindGeometryDescriptorSet (TileMap2D *tileMap)
 
void DestroyParticleCompResource (Particle3D *particleComp)
 
void BindGeometryDescriptorSet (Particle3D *particleComp)
 
void UpdateParticleCompVertexBuffer (Particle3D *particleComp, const std::vector< VertexParticle > &vertices)
 
void DrawParticleComp (Particle3D *particleComp)
 
void CreateQuadResource (Quad *quad)
 
void DestroyQuadResource (Quad *quad)
 
void UpdateQuadResourceVertexData (Quad *quad)
 
void BindGeometryDescriptorSet (Quad *quad)
 
void DrawQuad (Quad *quad)
 
void CreateQuadBorderResource (Quad *quad)
 
void DestroyQuadBorderResource (Quad *quad)
 
void UpdateQuadBorderResourceVertexData (Quad *quad)
 
void DrawQuadBorder (Quad *quad)
 
void CreateTextResource (Text *text)
 
void DestroyTextResource (Text *text)
 
void CreateTextResourceVertexBuffer (Text *text)
 
void DestroyTextResourceVertexBuffer (Text *text)
 
void BindGeometryDescriptorSet (Text *text)
 
void UpdateTextResourceVertexData (Text *text)
 
void DrawTextWidget (Text *text)
 
void CreatePolyResource (Poly *poly)
 
void DestroyPolyResource (Poly *poly)
 
void BindGeometryDescriptorSet (Poly *poly)
 
void UpdatePolyResourceVertexData (Poly *poly)
 
void DrawPoly (Poly *poly)
 
void DrawStaticMesh (StaticMesh *mesh, Material *material, const glm::mat4 &transform, glm::vec4 color, uint32_t hitCheckId)
 

Variables

PFN_vkCmdBeginDebugUtilsLabelEXT CmdBeginDebugUtilsLabelEXT
 
PFN_vkCmdEndDebugUtilsLabelEXT CmdEndDebugUtilsLabelEXT
 
PFN_vkCmdInsertDebugUtilsLabelEXT CmdInsertDebugUtilsLabelEXT
 
PFN_vkSetDebugUtilsObjectNameEXT SetDebugUtilsObjectNameEXT
 

Function Documentation

◆ BeginCommandBuffer()

VkCommandBuffer BeginCommandBuffer ( )

◆ BeginDebugLabel()

void BeginDebugLabel ( const char *  name,
glm::vec4  color 
)

◆ BindForwardVertexType()

void BindForwardVertexType ( VertexType  vertType,
Material material,
bool  instanced = false 
)

◆ BindGeometryDescriptorSet() [1/10]

void BindGeometryDescriptorSet ( Particle3D particleComp)

◆ BindGeometryDescriptorSet() [2/10]

void BindGeometryDescriptorSet ( Poly poly)

◆ BindGeometryDescriptorSet() [3/10]

void BindGeometryDescriptorSet ( Quad quad)

◆ BindGeometryDescriptorSet() [4/10]

void BindGeometryDescriptorSet ( SkeletalMesh3D skeletalMeshComp)

◆ BindGeometryDescriptorSet() [5/10]

void BindGeometryDescriptorSet ( StaticMesh3D staticMeshComp)

◆ BindGeometryDescriptorSet() [6/10]

void BindGeometryDescriptorSet ( Terrain3D terrain)

◆ BindGeometryDescriptorSet() [7/10]

void BindGeometryDescriptorSet ( Text text)

◆ BindGeometryDescriptorSet() [8/10]

void BindGeometryDescriptorSet ( TextMesh3D textMeshComp)

◆ BindGeometryDescriptorSet() [9/10]

void BindGeometryDescriptorSet ( TileMap2D tileMap)

◆ BindGeometryDescriptorSet() [10/10]

void BindGeometryDescriptorSet ( Voxel3D voxel)

◆ BindMaterialDescriptorSet()

void BindMaterialDescriptorSet ( Material material)

◆ BindMaterialResource()

void BindMaterialResource ( Material material)

◆ BindSkeletalMeshResource()

void BindSkeletalMeshResource ( SkeletalMesh skeletalMesh)

◆ BindSkeletalMeshResourceIndices()

void BindSkeletalMeshResourceIndices ( SkeletalMesh skeletalMesh)

◆ BindStaticMeshResource()

void BindStaticMeshResource ( StaticMesh staticMesh)

◆ ConvertCullMode()

VkCullModeFlags ConvertCullMode ( CullMode  cullMode)

◆ ConvertPixelFormat()

VkFormat ConvertPixelFormat ( PixelFormat  pixelFormat,
bool  srgb 
)

◆ CopyBuffer()

void CopyBuffer ( VkBuffer  srcBuffer,
VkBuffer  dstBuffer,
VkDeviceSize  size 
)

◆ CopyBufferToImage()

void CopyBufferToImage ( VkBuffer  buffer,
VkImage  image,
uint32_t  width,
uint32_t  height 
)

◆ CreateBuffer()

void CreateBuffer ( VkDeviceSize  size,
VkBufferUsageFlags  usage,
VkMemoryPropertyFlags  properties,
VkBuffer &  buffer,
VramAllocation &  bufferMemory 
)

◆ CreateMaterialResource()

void CreateMaterialResource ( Material material)

◆ CreatePolyResource()

void CreatePolyResource ( Poly poly)

◆ CreateQuadBorderResource()

void CreateQuadBorderResource ( Quad quad)

◆ CreateQuadResource()

void CreateQuadResource ( Quad quad)

◆ CreateSkeletalMeshResource()

void CreateSkeletalMeshResource ( SkeletalMesh skeletalMesh,
uint32_t  numVertices,
VertexSkinned vertices,
uint32_t  numIndices,
IndexType indices 
)

◆ CreateStaticMeshResource()

void CreateStaticMeshResource ( StaticMesh staticMesh,
bool  hasColor,
uint32_t  numVertices,
void *  vertices,
uint32_t  numIndices,
IndexType indices 
)

◆ CreateTerrain3DResource()

void CreateTerrain3DResource ( Terrain3D terrain)

◆ CreateTextResource()

void CreateTextResource ( Text text)

◆ CreateTextResourceVertexBuffer()

void CreateTextResourceVertexBuffer ( Text text)

◆ CreateTextureResource()

void CreateTextureResource ( Texture texture,
uint8_t *  pixels 
)

◆ CreateTileMap2DResource()

void CreateTileMap2DResource ( TileMap2D tileMap)

◆ CreateVoxel3DResource()

void CreateVoxel3DResource ( Voxel3D voxel)

◆ DestroyMaterialResource()

void DestroyMaterialResource ( Material material)

◆ DestroyParticleCompResource()

void DestroyParticleCompResource ( Particle3D particleComp)

◆ DestroyPolyResource()

void DestroyPolyResource ( Poly poly)

◆ DestroyQuadBorderResource()

void DestroyQuadBorderResource ( Quad quad)

◆ DestroyQuadResource()

void DestroyQuadResource ( Quad quad)

◆ DestroySkeletalMeshCompResource()

void DestroySkeletalMeshCompResource ( SkeletalMesh3D skeletalMeshComp)

◆ DestroySkeletalMeshResource()

void DestroySkeletalMeshResource ( SkeletalMesh skeletalMesh)

◆ DestroyStaticMeshCompResource()

void DestroyStaticMeshCompResource ( StaticMesh3D staticMeshComp)

◆ DestroyStaticMeshResource()

void DestroyStaticMeshResource ( StaticMesh staticMesh)

◆ DestroyTerrain3DResource()

void DestroyTerrain3DResource ( Terrain3D terrain)

◆ DestroyTextMeshCompResource()

void DestroyTextMeshCompResource ( TextMesh3D textMeshComp)

◆ DestroyTextResource()

void DestroyTextResource ( Text text)

◆ DestroyTextResourceVertexBuffer()

void DestroyTextResourceVertexBuffer ( Text text)

◆ DestroyTextureResource()

void DestroyTextureResource ( Texture texture)

◆ DestroyTileMap2DResource()

void DestroyTileMap2DResource ( TileMap2D tileMap)

◆ DestroyVoxel3DResource()

void DestroyVoxel3DResource ( Voxel3D voxel)

◆ DeviceWaitIdle()

void DeviceWaitIdle ( )

◆ DrawInstancedMeshComp()

void DrawInstancedMeshComp ( InstancedMesh3D instancedMeshComp)

◆ DrawParticleComp()

void DrawParticleComp ( Particle3D particleComp)

◆ DrawPoly()

void DrawPoly ( Poly poly)

◆ DrawQuad()

void DrawQuad ( Quad quad)

◆ DrawQuadBorder()

void DrawQuadBorder ( Quad quad)

◆ DrawShadowMeshComp()

void DrawShadowMeshComp ( ShadowMesh3D shadowMeshComp)

◆ DrawSkeletalMeshComp()

void DrawSkeletalMeshComp ( SkeletalMesh3D skeletalMeshComp)

◆ DrawStaticMesh()

void DrawStaticMesh ( StaticMesh mesh,
Material material,
const glm::mat4 &  transform,
glm::vec4  color,
uint32_t  hitCheckId 
)

◆ DrawStaticMeshComp()

void DrawStaticMeshComp ( StaticMesh3D staticMeshComp,
StaticMesh meshOverride 
)

◆ DrawTerrain3D()

void DrawTerrain3D ( Terrain3D terrain)

◆ DrawTextMeshComp()

void DrawTextMeshComp ( TextMesh3D textMeshComp)

◆ DrawTextWidget()

void DrawTextWidget ( Text text)

◆ DrawTileMap2D()

void DrawTileMap2D ( TileMap2D tileMap)

◆ DrawVoxel3D()

void DrawVoxel3D ( Voxel3D voxel)

◆ EndCommandBuffer()

void EndCommandBuffer ( VkCommandBuffer  commandBuffer)

◆ EndDebugLabel()

void EndDebugLabel ( )

◆ FindMemoryType()

uint32_t FindMemoryType ( uint32_t  typeFilter,
VkMemoryPropertyFlags  properties 
)

◆ GatherGeometryLightUniformData()

void GatherGeometryLightUniformData ( GeometryData outData,
Primitive3D primitive,
Material material,
bool  isStaticMesh 
)

◆ GetBasicBlendState()

VkPipelineColorBlendAttachmentState GetBasicBlendState ( BasicBlendState  basicBlendState)

◆ GetCommandBuffer()

VkCommandBuffer GetCommandBuffer ( )

◆ GetDestroyQueue()

DestroyQueue * GetDestroyQueue ( )

◆ GetFormatBlockSize()

uint32_t GetFormatBlockSize ( VkFormat  format)

◆ GetFormatImageAspect()

VkImageAspectFlags GetFormatImageAspect ( VkFormat  format)

◆ GetFormatPixelSize()

uint32_t GetFormatPixelSize ( VkFormat  format)

◆ GetFrameIndex()

uint32_t GetFrameIndex ( )

◆ GetFrameNumber()

uint32_t GetFrameNumber ( )

◆ GetVertexAttributeDescriptions()

std::vector< VkVertexInputAttributeDescription > GetVertexAttributeDescriptions ( VertexType  type)

◆ GetVertexBindingDescription()

std::vector< VkVertexInputBindingDescription > GetVertexBindingDescription ( VertexType  type)

◆ GetVulkanDevice()

VkDevice GetVulkanDevice ( )

◆ IsCpuSkinningRequired()

bool IsCpuSkinningRequired ( SkeletalMesh3D skeletalMeshComp)

◆ IsFormatBlockCompressed()

bool IsFormatBlockCompressed ( VkFormat  format)

◆ ReallocateSkeletalMeshCompVertexBuffer()

void ReallocateSkeletalMeshCompVertexBuffer ( SkeletalMesh3D skeletalMeshComp,
uint32_t  numVertices 
)

◆ SetDebugObjectName()

void SetDebugObjectName ( VkObjectType  objectType,
uint64_t  object,
const char *  name 
)

◆ TransitionImageLayout()

void TransitionImageLayout ( VkImage  image,
VkFormat  format,
VkImageLayout  oldLayout,
VkImageLayout  newLayout,
int32_t  mipLevels,
int32_t  layerCount,
VkCommandBuffer  commandBuffer 
)

◆ UpdateParticleCompVertexBuffer()

void UpdateParticleCompVertexBuffer ( Particle3D particleComp,
const std::vector< VertexParticle > &  vertices 
)

◆ UpdatePolyResourceVertexData()

void UpdatePolyResourceVertexData ( Poly poly)

◆ UpdateQuadBorderResourceVertexData()

void UpdateQuadBorderResourceVertexData ( Quad quad)

◆ UpdateQuadResourceVertexData()

void UpdateQuadResourceVertexData ( Quad quad)

◆ UpdateSkeletalMeshCompVertexBuffer()

void UpdateSkeletalMeshCompVertexBuffer ( SkeletalMesh3D skeletalMeshComp,
const std::vector< Vertex > &  skinnedVertices 
)

◆ UpdateStaticMeshCompResourceColors()

void UpdateStaticMeshCompResourceColors ( StaticMesh3D staticMeshComp)

◆ UpdateTerrain3DResource()

void UpdateTerrain3DResource ( Terrain3D terrain,
const std::vector< VertexColor > &  vertices,
const std::vector< IndexType > &  indices 
)

◆ UpdateTextMeshCompVertexBuffer()

void UpdateTextMeshCompVertexBuffer ( TextMesh3D textMeshComp,
const std::vector< Vertex > &  vertices 
)

◆ UpdateTextResourceVertexData()

void UpdateTextResourceVertexData ( Text text)

◆ UpdateTileMap2DResource()

void UpdateTileMap2DResource ( TileMap2D tileMap,
const std::vector< VertexColor > &  vertices,
const std::vector< IndexType > &  indices 
)

◆ UpdateVoxel3DResource()

void UpdateVoxel3DResource ( Voxel3D voxel,
const std::vector< VertexColor > &  vertices,
const std::vector< IndexType > &  indices 
)

◆ WriteGeometryUniformData()

void WriteGeometryUniformData ( GeometryData outData,
World world,
Node3D comp,
const glm::mat4 &  transform 
)

◆ WriteMaterialCustomUniformData()

void WriteMaterialCustomUniformData ( MaterialData outData,
Material material 
)

◆ WriteMaterialLiteUniformData()

void WriteMaterialLiteUniformData ( MaterialData outData,
MaterialLite material 
)

◆ WriteUniformBlock()

UniformBlock WriteUniformBlock ( void *  data,
uint32_t  size 
)

Variable Documentation

◆ CmdBeginDebugUtilsLabelEXT

PFN_vkCmdBeginDebugUtilsLabelEXT CmdBeginDebugUtilsLabelEXT
extern

◆ CmdEndDebugUtilsLabelEXT

PFN_vkCmdEndDebugUtilsLabelEXT CmdEndDebugUtilsLabelEXT
extern

◆ CmdInsertDebugUtilsLabelEXT

PFN_vkCmdInsertDebugUtilsLabelEXT CmdInsertDebugUtilsLabelEXT
extern

◆ SetDebugUtilsObjectNameEXT

PFN_vkSetDebugUtilsObjectNameEXT SetDebugUtilsObjectNameEXT
extern