luna engine
software engine
Loading...
Searching...
No Matches
luna::vulkan::vulkanShader Class Reference

#include <vulkanShader.h>

Inheritance diagram for luna::vulkan::vulkanShader:
Collaboration diagram for luna::vulkan::vulkanShader:

Public Member Functions

 vulkanShader (const std::string &filepath, const renderer::shaderStage &stage)
 creates a vulkan shader from a filePath. More...
 
virtual ~vulkanShader ()
 
void bind () const override
 not implemented (reserved for future). More...
 
void unbind () const override
 not implemented (reserved for future). More...
 
void createLayout () override
 creates the shader layout. More...
 
- Public Member Functions inherited from luna::renderer::shader
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...
 

Private Member Functions

renderer::shaderResource getShaderResource (const spirv_cross::Resource &_shaderResource, const std::vector< uint32_t > &shaderSource, renderer::typeClass typeClass)
 get the shderResource information and returns a corresponding engine shaderresource. More...
 
void createOffsets (std::vector< renderer::shaderResource > *layout)
 create shader byte offsets. More...
 

Friends

class renderer::shader
 

Additional Inherited Members

- Static Public Member Functions inherited from luna::renderer::shader
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 inherited from luna::renderer::shader
std::string shaderName
 
std::vector< shaderResourceshaderLayout
 
shaderStage stage
 
std::vector< uint32_t > shaderSrc
 

Constructor & Destructor Documentation

◆ vulkanShader()

luna::vulkan::vulkanShader::vulkanShader ( const std::string &  filepath,
const renderer::shaderStage stage 
)

creates a vulkan shader from a filePath.

Parameters
filepaththe path to the source .GLSL file.

◆ ~vulkanShader()

virtual luna::vulkan::vulkanShader::~vulkanShader ( )
inlinevirtual

Member Function Documentation

◆ bind()

void luna::vulkan::vulkanShader::bind ( ) const
overridevirtual

not implemented (reserved for future).

Implements luna::renderer::shader.

◆ createLayout()

void luna::vulkan::vulkanShader::createLayout ( )
overridevirtual

creates the shader layout.

Implements luna::renderer::shader.

◆ createOffsets()

void luna::vulkan::vulkanShader::createOffsets ( std::vector< renderer::shaderResource > *  layout)
private

create shader byte offsets.

Parameters
std::vector<renderer::shaderResource>*layout;

◆ getShaderResource()

renderer::shaderResource luna::vulkan::vulkanShader::getShaderResource ( const spirv_cross::Resource &  _shaderResource,
const std::vector< uint32_t > &  shaderSource,
renderer::typeClass  typeClass 
)
private

get the shderResource information and returns a corresponding engine shaderresource.

Parameters
_shaderResource
shaderSource
typeClass
Returns

◆ unbind()

void luna::vulkan::vulkanShader::unbind ( ) const
overridevirtual

not implemented (reserved for future).

Implements luna::renderer::shader.

Friends And Related Function Documentation

◆ renderer::shader

friend class renderer::shader
friend

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