Fling Engine  0.00.1
Fling Engine is a game engine written in Vulkan
GraphicsHelpers.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "FlingVulkan.h"
4 #include "FlingTypes.h"
5 
6 namespace Fling
7 {
8  namespace GraphicsHelpers
9  {
18  UINT32 FindMemoryType(VkPhysicalDevice t_PhysicalDevice, UINT32 t_Filter, VkMemoryPropertyFlags t_Props);
19 
20  void CreateBuffer(VkDevice t_Device, VkPhysicalDevice t_PhysicalDevice, VkDeviceSize t_Size, VkBufferUsageFlags t_Usage, VkMemoryPropertyFlags t_Properties, VkBuffer& t_Buffer, VkDeviceMemory& t_BuffMemory);
21 
22  VkCommandBuffer BeginSingleTimeCommands();
23 
24  void EndSingleTimeCommands(VkCommandBuffer t_CommandBuffer);
25 
26  void CreateVkImage(
27  UINT32 t_Width,
28  UINT32 t_Height,
29  VkFormat t_Format,
30  VkImageTiling t_Tiling,
31  VkImageUsageFlags t_Useage,
32  VkMemoryPropertyFlags t_Props,
33  VkImage& t_Image,
34  VkDeviceMemory& t_Memory
35  );
36 
40  VkImageView CreateVkImageView(VkImage t_Image, VkFormat t_Format, VkImageAspectFlags t_AspectFalgs);
41 
42  VkFormat FindSupportedFormat(const std::vector<VkFormat>& t_Candidates, VkImageTiling t_Tiling, VkFormatFeatureFlags t_Features);
43 
44  void TransitionImageLayout(VkImage t_Image, VkFormat t_Format, VkImageLayout t_oldLayout, VkImageLayout t_NewLayout);
45 
49  bool HasStencilComponent(VkFormat t_format);
50 
51  } // namespace GraphicsHelpers
52 } // namespace Fling
VkFormat FindSupportedFormat(const std::vector< VkFormat > &t_Candidates, VkImageTiling t_Tiling, VkFormatFeatureFlags t_Features)
Definition: GraphicsHelpers.cpp:184
bool HasStencilComponent(VkFormat t_format)
Returns true if the given format has a stencil component.
Definition: GraphicsHelpers.cpp:283
void CreateBuffer(VkDevice t_Device, VkPhysicalDevice t_PhysicalDevice, VkDeviceSize t_Size, VkBufferUsageFlags t_Usage, VkMemoryPropertyFlags t_Properties, VkBuffer &t_Buffer, VkDeviceMemory &t_BuffMemory)
Definition: GraphicsHelpers.cpp:28
void TransitionImageLayout(VkImage t_Image, VkFormat t_Format, VkImageLayout t_oldLayout, VkImageLayout t_NewLayout)
Definition: GraphicsHelpers.cpp:206
VkImageView CreateVkImageView(VkImage t_Image, VkFormat t_Format, VkImageAspectFlags t_AspectFalgs)
Create a an image view for vulkan with the given format.
Definition: GraphicsHelpers.cpp:157
UINT32 FindMemoryType(VkPhysicalDevice t_PhysicalDevice, UINT32 t_Filter, VkMemoryPropertyFlags t_Props)
Find a suitable memory type for use on the current device.
Definition: GraphicsHelpers.cpp:9
uint32_t UINT32
Definition: FlingTypes.h:10
Definition: Engine.h:13
void EndSingleTimeCommands(VkCommandBuffer t_CommandBuffer)
Definition: GraphicsHelpers.cpp:85
void CreateVkImage(UINT32 t_Width, UINT32 t_Height, VkFormat t_Format, VkImageTiling t_Tiling, VkImageUsageFlags t_Useage, VkMemoryPropertyFlags t_Props, VkImage &t_Image, VkDeviceMemory &t_Memory)
Definition: GraphicsHelpers.cpp:104
VkCommandBuffer BeginSingleTimeCommands()
Definition: GraphicsHelpers.cpp:63