jGL
Loading...
Searching...
No Matches
Public Member Functions | List of all members
jGL::Vulkan::vkShader Class Reference

#include <vkShader.h>

Inheritance diagram for jGL::Vulkan::vkShader:
Inheritance graph
[legend]
Collaboration diagram for jGL::Vulkan::vkShader:
Collaboration graph
[legend]

Public Member Functions

 vkShader (const VkDevice &d, const char *vs, const char *fs)
 
 ~vkShader ()
 
std::vector< VkPipelineShaderStageCreateInfo > shaderStage () const
 
void use ()
 Use the shader.
 
- Public Member Functions inherited from jGL::Shader
 Shader (const char *v, const char *f)
 Construct a Shader from a vertex and fragment source.
 
 Shader ()
 Construct an empty Shader.
 
 Shader (std::string path, std::string name)
 Construct a Shader from source given by paths.
 
virtual ~Shader ()=default
 
bool operator== (const Shader &s)
 
bool lint ()
 Check for common shader errors.
 
template<class T >
void setUniform (std::string name, T value)
 Set a Uniform to a value.
 
const std::string & getVertex () const
 
const std::string & getFragment () const
 
template<class T >
jGLUniform< T > getUniform (std::string name)
 Get a Uniform by name.
 
std::vector< std::string > getUniformNames ()
 Get all the parsed uniforms in the Shader.
 
std::string displayVertexSource () const
 Display the vertex shader with line numbers.
 
std::string displayFragmentSource () const
 Display the fragment shader with line numbers.
 

Additional Inherited Members

- Protected Member Functions inherited from jGL::Shader
std::string parseShaderSource (std::ifstream &file)
 
bool parseUniforms ()
 
std::string formatWithLineNumbers (std::string shader) const
 
template<class T >
void detectUniformsAndCreate (std::string code)
 
virtual void setValue (jGLUniform< int > *u, int value)
 
virtual void setValue (jGLUniform< Sampler2D > *u, Sampler2D value)
 
virtual void setValue (jGLUniform< float > *u, float value)
 
virtual void setValue (jGLUniform< glm::vec2 > *u, glm::vec2 value)
 
virtual void setValue (jGLUniform< glm::vec4 > *u, glm::vec4 value)
 
virtual void setValue (jGLUniform< glm::mat4 > *u, glm::mat4 value)
 
- Protected Attributes inherited from jGL::Shader
std::string vertex
 
std::string fragment
 
std::unordered_map< std::string, std::shared_ptr< AbstractjGLUniform > > uniforms
 

Constructor & Destructor Documentation

◆ vkShader()

jGL::Vulkan::vkShader::vkShader ( const VkDevice &  d,
const char *  vs,
const char *  fs 
)
inline

◆ ~vkShader()

jGL::Vulkan::vkShader::~vkShader ( )

Member Function Documentation

◆ shaderStage()

std::vector< VkPipelineShaderStageCreateInfo > jGL::Vulkan::vkShader::shaderStage ( ) const

◆ use()

void jGL::Vulkan::vkShader::use ( )
inlinevirtual

Use the shader.

Remarks
Use will auto-compile if required.

Implements jGL::Shader.


The documentation for this class was generated from the following files: