12#include <vulkan/vulkan.h>
49 VkBufferUsageFlags usage,
50 VkMemoryPropertyFlags properties,
52 VramAllocation& bufferMemory);
57 VkImageLayout oldLayout,
58 VkImageLayout newLayout,
59 int32_t mipLevels = 1,
60 int32_t layerCount = 1,
61 VkCommandBuffer commandBuffer = VK_NULL_HANDLE);
84uint32_t
FindMemoryType(uint32_t typeFilter, VkMemoryPropertyFlags properties);
95void BeginDebugLabel(
const char* name, glm::vec4 color = { 1.0f, 1.0f, 1.0f, 1.0f });
106void FullPipelineBarrier();
uint16_t IndexType
Definition GraphicsTypes.h:122
PixelFormat
Definition GraphicsTypes.h:45
VertexType
Definition Vertex.h:7
BasicBlendState
Definition VulkanTypes.h:21
void CreateQuadResource(Quad *quad)
Definition VulkanUtils.cpp:2777
void WriteMaterialCustomUniformData(MaterialData &outData, Material *material)
Definition VulkanUtils.cpp:1039
void CopyBuffer(VkBuffer srcBuffer, VkBuffer dstBuffer, VkDeviceSize size)
Definition VulkanUtils.cpp:291
VkPipelineColorBlendAttachmentState GetBasicBlendState(BasicBlendState basicBlendState)
Definition VulkanUtils.cpp:1044
void CreatePolyResource(Poly *poly)
Definition VulkanUtils.cpp:3030
uint32_t GetFrameNumber()
Definition VulkanUtils.cpp:335
void UpdateTextResourceVertexData(Text *text)
Definition VulkanUtils.cpp:2987
void DestroySkeletalMeshResource(SkeletalMesh *skeletalMesh)
Definition VulkanUtils.cpp:1549
void ReallocateSkeletalMeshCompVertexBuffer(SkeletalMesh3D *skeletalMeshComp, uint32_t numVertices)
Definition VulkanUtils.cpp:1793
void DestroyTextMeshCompResource(TextMesh3D *textMeshComp)
Definition VulkanUtils.cpp:2206
void UpdateParticleCompVertexBuffer(Particle3D *particleComp, const std::vector< VertexParticle > &vertices)
Definition VulkanUtils.cpp:2672
void DestroyQuadResource(Quad *quad)
Definition VulkanUtils.cpp:2785
uint32_t GetFormatPixelSize(VkFormat format)
Definition VulkanUtils.cpp:421
VkCommandBuffer GetCommandBuffer()
Definition VulkanUtils.cpp:350
void DrawQuadBorder(Quad *quad)
Definition VulkanUtils.cpp:2872
void DestroyTextureResource(Texture *texture)
Definition VulkanUtils.cpp:1203
void UpdateTextMeshCompVertexBuffer(TextMesh3D *textMeshComp, const std::vector< Vertex > &vertices)
Definition VulkanUtils.cpp:2217
void UpdateTerrain3DResource(Terrain3D *terrain, const std::vector< VertexColor > &vertices, const std::vector< IndexType > &indices)
Definition VulkanUtils.cpp:2426
void DrawQuad(Quad *quad)
Definition VulkanUtils.cpp:2827
void DestroyStaticMeshResource(StaticMesh *staticMesh)
Definition VulkanUtils.cpp:1514
void BeginDebugLabel(const char *name, glm::vec4 color)
Definition VulkanUtils.cpp:821
void UpdateQuadResourceVertexData(Quad *quad)
Definition VulkanUtils.cpp:2796
void DestroyPolyResource(Poly *poly)
Definition VulkanUtils.cpp:3045
void BindGeometryDescriptorSet(StaticMesh3D *staticMeshComp)
Definition VulkanUtils.cpp:1586
void EndCommandBuffer(VkCommandBuffer commandBuffer)
Definition VulkanUtils.cpp:385
uint32_t FindMemoryType(uint32_t typeFilter, VkMemoryPropertyFlags properties)
Definition VulkanUtils.cpp:401
bool IsCpuSkinningRequired(SkeletalMesh3D *skeletalMeshComp)
Definition VulkanUtils.cpp:1989
void DrawTerrain3D(Terrain3D *terrain)
Definition VulkanUtils.cpp:2467
void UpdateVoxel3DResource(Voxel3D *voxel, const std::vector< VertexColor > &vertices, const std::vector< IndexType > &indices)
Definition VulkanUtils.cpp:2313
void DestroyStaticMeshCompResource(StaticMesh3D *staticMeshComp)
Definition VulkanUtils.cpp:1662
bool IsFormatBlockCompressed(VkFormat format)
Definition VulkanUtils.cpp:477
void CreateTextResource(Text *text)
Definition VulkanUtils.cpp:2906
void DrawTextMeshComp(TextMesh3D *textMeshComp)
Definition VulkanUtils.cpp:2240
uint32_t GetFrameIndex()
Definition VulkanUtils.cpp:330
void DrawParticleComp(Particle3D *particleComp)
Definition VulkanUtils.cpp:2734
void DrawTileMap2D(TileMap2D *tileMap)
Definition VulkanUtils.cpp:2580
void CreateTextResourceVertexBuffer(Text *text)
Definition VulkanUtils.cpp:2921
void UpdateTileMap2DResource(TileMap2D *tileMap, const std::vector< VertexColor > &vertices, const std::vector< IndexType > &indices)
Definition VulkanUtils.cpp:2541
void DestroyParticleCompResource(Particle3D *particleComp)
Definition VulkanUtils.cpp:2630
DestroyQueue * GetDestroyQueue()
Definition VulkanUtils.cpp:340
void DrawStaticMeshComp(StaticMesh3D *staticMeshComp, StaticMesh *meshOverride)
Definition VulkanUtils.cpp:1689
void DrawTextWidget(Text *text)
Definition VulkanUtils.cpp:3004
void BindSkeletalMeshResource(SkeletalMesh *skeletalMesh)
Definition VulkanUtils.cpp:1566
void DrawShadowMeshComp(ShadowMesh3D *shadowMeshComp)
Definition VulkanUtils.cpp:2011
void DestroyVoxel3DResource(Voxel3D *voxel)
Definition VulkanUtils.cpp:2296
void CreateTerrain3DResource(Terrain3D *terrain)
Definition VulkanUtils.cpp:2404
void WriteMaterialLiteUniformData(MaterialData &outData, MaterialLite *material)
Definition VulkanUtils.cpp:987
void CreateTextureResource(Texture *texture, uint8_t *pixels)
Definition VulkanUtils.cpp:1134
void DestroyMaterialResource(Material *material)
Definition VulkanUtils.cpp:1308
void DestroyTileMap2DResource(TileMap2D *tileMap)
Definition VulkanUtils.cpp:2524
void DrawPoly(Poly *poly)
Definition VulkanUtils.cpp:3110
void UpdateSkeletalMeshCompVertexBuffer(SkeletalMesh3D *skeletalMeshComp, const std::vector< Vertex > &skinnedVertices)
Definition VulkanUtils.cpp:1809
void DeviceWaitIdle()
Definition VulkanUtils.cpp:355
VkCommandBuffer BeginCommandBuffer()
Definition VulkanUtils.cpp:360
void UpdatePolyResourceVertexData(Poly *poly)
Definition VulkanUtils.cpp:3083
void CopyBufferToImage(VkBuffer buffer, VkImage image, uint32_t width, uint32_t height)
Definition VulkanUtils.cpp:302
void DrawVoxel3D(Voxel3D *voxel)
Definition VulkanUtils.cpp:2354
void DestroyTextResourceVertexBuffer(Text *text)
Definition VulkanUtils.cpp:2932
void CreateVoxel3DResource(Voxel3D *voxel)
Definition VulkanUtils.cpp:2291
std::vector< VkVertexInputBindingDescription > GetVertexBindingDescription(VertexType type)
Definition VulkanUtils.cpp:512
void UpdateStaticMeshCompResourceColors(StaticMesh3D *staticMeshComp)
Definition VulkanUtils.cpp:1624
void DestroyQuadBorderResource(Quad *quad)
Definition VulkanUtils.cpp:2855
void CreateBuffer(VkDeviceSize size, VkBufferUsageFlags usage, VkMemoryPropertyFlags properties, VkBuffer &buffer, VramAllocation &bufferMemory)
Definition VulkanUtils.cpp:100
void WriteGeometryUniformData(GeometryData &outData, World *world, Node3D *comp, const glm::mat4 &transform)
Definition VulkanUtils.cpp:850
void CreateMaterialResource(Material *material)
Definition VulkanUtils.cpp:1262
void BindStaticMeshResource(StaticMesh *staticMesh)
Definition VulkanUtils.cpp:1531
void DrawSkeletalMeshComp(SkeletalMesh3D *skeletalMeshComp)
Definition VulkanUtils.cpp:1872
VkImageAspectFlags GetFormatImageAspect(VkFormat format)
Definition VulkanUtils.cpp:490
void GatherGeometryLightUniformData(GeometryData &outData, Primitive3D *primitive, Material *material, bool isStaticMesh)
Definition VulkanUtils.cpp:888
void SetDebugObjectName(VkObjectType objectType, uint64_t object, const char *name)
Definition VulkanUtils.cpp:803
std::vector< VkVertexInputAttributeDescription > GetVertexAttributeDescriptions(VertexType type)
Definition VulkanUtils.cpp:569
uint32_t GetFormatBlockSize(VkFormat format)
Definition VulkanUtils.cpp:457
VkFormat ConvertPixelFormat(PixelFormat pixelFormat, bool srgb)
Definition VulkanUtils.cpp:40
void EndDebugLabel()
Definition VulkanUtils.cpp:840
UniformBlock WriteUniformBlock(void *data, uint32_t size)
Definition VulkanUtils.cpp:91
void DestroySkeletalMeshCompResource(SkeletalMesh3D *skeletalMeshComp)
Definition VulkanUtils.cpp:1782
void CreateSkeletalMeshResource(SkeletalMesh *skeletalMesh, uint32_t numVertices, VertexSkinned *vertices, uint32_t numIndices, IndexType *indices)
Definition VulkanUtils.cpp:1542
void CreateStaticMeshResource(StaticMesh *staticMesh, bool hasColor, uint32_t numVertices, void *vertices, uint32_t numIndices, IndexType *indices)
Definition VulkanUtils.cpp:1505
void DestroyTerrain3DResource(Terrain3D *terrain)
Definition VulkanUtils.cpp:2409
void BindSkeletalMeshResourceIndices(SkeletalMesh *skeletalMesh)
Definition VulkanUtils.cpp:1578
void UpdateQuadBorderResourceVertexData(Quad *quad)
Definition VulkanUtils.cpp:2866
void DrawInstancedMeshComp(InstancedMesh3D *instancedMeshComp)
Definition VulkanUtils.cpp:2085
void DrawStaticMesh(StaticMesh *mesh, Material *material, const glm::mat4 &transform, glm::vec4 color, uint32_t hitCheckId)
Definition VulkanUtils.cpp:3138
void BindMaterialResource(Material *material)
Definition VulkanUtils.cpp:1330
void CreateQuadBorderResource(Quad *quad)
Definition VulkanUtils.cpp:2847
void CreateTileMap2DResource(TileMap2D *tileMap)
Definition VulkanUtils.cpp:2519
void TransitionImageLayout(VkImage image, VkFormat format, VkImageLayout oldLayout, VkImageLayout newLayout, int32_t mipLevels, int32_t layerCount, VkCommandBuffer commandBuffer)
Definition VulkanUtils.cpp:131
VkDevice GetVulkanDevice()
Definition VulkanUtils.cpp:345
void DestroyTextResource(Text *text)
Definition VulkanUtils.cpp:2914
Definition InstancedMesh3d.h:17
Definition MaterialBase.h:14
Definition MaterialInstance.h:8
Definition MaterialLite.h:51
Definition Particle3d.h:34
Definition Primitive3d.h:46
Definition ShadowMesh3d.h:6
Definition SkeletalMesh3d.h:129
Definition SkeletalMesh.h:114
Definition StaticMesh3d.h:12
Definition StaticMesh.h:18
Definition Terrain3d.h:13
Definition TextMesh3d.h:10
Definition TileMap2d.h:23
Definition EngineTypes.h:213
Definition EngineTypes.h:204
Definition VulkanTypes.h:194
Definition VulkanTypes.h:261