13#include "glslang/Public/ShaderLang.h"
59 VulkanShader(
const std::string& vertexSrc,
const std::string& fragmentSrc);
70 virtual void Bind()
const override;
71 virtual void UnBind()
const override;
84 std::vector<uint32_t>
Compile(
const std::string& src,
const std::string& source, EShLanguage lang);
95 const std::vector<uint32_t>& GetVertSpirV()
const {
return vertSpirV; }
96 const std::vector<uint32_t>& GetFragSpirV()
const {
return fragSpirV; }
99 std::vector<uint32_t> vertSpirV;
100 std::vector<uint32_t> fragSpirV;
#define KARMA_API
Defining Karma's API macro for storage class information.
Definition Core.h:41
This file contains various classes and functions for various Karma's utilities.
This file contains the Shader class.
Shader()
A constructor.
Definition Shader.h:29
VulkanShader(const std::string &vertexSrc, const std::string &fragmentSrc)
Constructor that compiles vertex and fragment shaders from source code.
Definition VulkanShader.cpp:8
virtual void UnBind() const override
Undo the binding of shader program.
Definition VulkanShader.cpp:93
std::vector< uint32_t > Compile(const std::string &src, const std::string &source, EShLanguage lang)
Compiles GLSL source code to SPIR-V bytecode using GLSLANG.
Definition VulkanShader.cpp:22
virtual void Bind() const override
Installs a shader (vertex + fragment) and uniform program object as part of current rendering state.
Definition VulkanShader.cpp:90
void UploadUniformMat4(const std::string &name, const glm::mat4 &matrix)
Uploads a 4x4 matrix uniform to the shader.
Definition VulkanShader.cpp:96