12#include "components/ErrorUtils.hpp"
14#include "components/PathUtils.hpp"
34 const std::string& vertShaderPath,
35 const std::string& fragShaderPath,
36 const VkVertexInputBindingDescription& bindingDescription,
37 const std::vector<VkVertexInputAttributeDescription>& attributeDescriptions
47 const std::string& vertShaderPath,
48 const std::string& fragShaderPath,
49 const VkVertexInputBindingDescription& bindingDescription,
50 const std::vector<VkVertexInputAttributeDescription>& attributeDescriptions
60 const std::string& vertShaderPath,
61 const std::string& fragShaderPath,
62 const VkVertexInputBindingDescription& bindingDescription,
63 const std::vector<VkVertexInputAttributeDescription>& attributeDescriptions
74 const std::string& vertPath,
75 const std::string& fragPath,
87 const std::string& vertShaderPath,
88 const std::string& fragShaderPath,
89 const VkVertexInputBindingDescription& bindingDesc,
90 const std::vector<VkVertexInputAttributeDescription>& attrDesc);
97 const std::string& vertPath,
98 const std::string& fragPath);
102 VkPipeline
get()
const {
return m_pipeline; }
106 VkPipelineLayout
layout()
const {
return m_layout; }
118 void createDebugPipeline(
const std::string& vertPath,
const std::string& fragPath);
122 VkPipeline m_pipeline = VK_NULL_HANDLE;
123 VkPipelineLayout m_layout = VK_NULL_HANDLE;
125 glm::uvec2 m_currentRenderResolution;
130 std::vector<char>
readFile(
const std::string& filename);
This file defines structs needed for UI rendering.
VkPipelineLayout layout() const
Returns the VkPipelineLayout handle.
void createMaskedPipeline(const std::string &vertShaderPath, const std::string &fragShaderPath, const VkVertexInputBindingDescription &bindingDescription, const std::vector< VkVertexInputAttributeDescription > &attributeDescriptions)
Creates a Masked Graphics Pipeline (Alpha Cutout).
void createUIPipeline(const std::string &vertShaderPath, const std::string &fragShaderPath, const VkVertexInputBindingDescription &bindingDesc, const std::vector< VkVertexInputAttributeDescription > &attrDesc)
Creates a UI Pipeline.
std::vector< char > readFile(const std::string &filename)
Reads a file and returns its contents as a vector of characters.
VulkanPipeline(VulkanContext &r_context)
Constructor for VulkanPipeline.
VulkanContext & m_r_context
Creates a debug VkPipeline.
VkPipeline get() const
Returns the VkPipeline handle.
void updateViewport(glm::uvec2 resolution)
Updates viewport to new resolution.
void createSpritePipeline(const std::string &vertPath, const std::string &fragPath, bool isTransparent, bool isInstanced)
Creates a Sprite Graphics Pipeline (used for Billboards and Particles).
void createGraphicsPipeline(const std::string &vertShaderPath, const std::string &fragShaderPath, const VkVertexInputBindingDescription &bindingDescription, const std::vector< VkVertexInputAttributeDescription > &attributeDescriptions)
Creates a standard Opaque Graphics Pipeline.
void createFullscreenPipeline(const std::string &vertPath, const std::string &fragPath)
Creates a Fullscreen Quad Pipeline.
void createTransparentPipeline(const std::string &vertShaderPath, const std::string &fragShaderPath, const VkVertexInputBindingDescription &bindingDescription, const std::vector< VkVertexInputAttributeDescription > &attributeDescriptions)
Creates a Transparent Graphics Pipeline.
This file defines struct holding all vulkan data, like device, surface, swapchain,...
Struct holding all vulkan data, like device, surface, swapchain, images, views, and more.