luna engine
software engine
Loading...
Searching...
No Matches
luna::renderer::shader Class Referenceabstract

#include <shader.h>

Inheritance diagram for luna::renderer::shader:
Collaboration diagram for luna::renderer::shader:

Public Member Functions

virtual ~shader ()=default
 
virtual void bind () const =0
 
virtual void unbind () const =0
 
virtual void createLayout ()=0
 
std::vector< uint32_t > self ()
 returns the shader compiled source. More...
 

Static Public Member Functions

static ref< shadercreate (const std::string &filepath, const shaderStage &stage)
 creates a shader from a filepath. More...
 
static ref< shadercreate (const std::vector< uint8_t > &shaderSrc, const shaderStage &stage)
 creates a shader from compiled code. More...
 

Public Attributes

std::string shaderName
 
std::vector< shaderResourceshaderLayout
 
shaderStage stage
 
std::vector< uint32_t > shaderSrc
 

Friends

class vulkanDevice
 

Constructor & Destructor Documentation

◆ ~shader()

virtual luna::renderer::shader::~shader ( )
virtualdefault

Member Function Documentation

◆ bind()

virtual void luna::renderer::shader::bind ( ) const
pure virtual

Implemented in luna::vulkan::vulkanShader.

◆ create() [1/2]

ref< shader > luna::renderer::shader::create ( const std::string &  filepath,
const shaderStage stage 
)
static

creates a shader from a filepath.

Parameters
filepath
Returns
a shader reference.

◆ create() [2/2]

ref< shader > luna::renderer::shader::create ( const std::vector< uint8_t > &  shaderSrc,
const shaderStage stage 
)
static

creates a shader from compiled code.

Parameters
shaderSrcthe shader compiled src code
Returns
a shader reference.

◆ createLayout()

virtual void luna::renderer::shader::createLayout ( )
pure virtual

Implemented in luna::vulkan::vulkanShader.

◆ self()

std::vector< uint32_t > luna::renderer::shader::self ( )
inline

returns the shader compiled source.

◆ unbind()

virtual void luna::renderer::shader::unbind ( ) const
pure virtual

Implemented in luna::vulkan::vulkanShader.

Friends And Related Function Documentation

◆ vulkanDevice

friend class vulkanDevice
friend

Member Data Documentation

◆ shaderLayout

std::vector<shaderResource> luna::renderer::shader::shaderLayout

◆ shaderName

std::string luna::renderer::shader::shaderName

◆ shaderSrc

std::vector<uint32_t> luna::renderer::shader::shaderSrc

◆ stage

shaderStage luna::renderer::shader::stage

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