MAGE  v0.171.0
Matthias Advanced Game Engine
mage::rendering::CompiledShader Class Referenceabstract

#include <compiled_shader.hpp>

Inheritance diagram for mage::rendering::CompiledShader:
mage::rendering::BlobCompiledShader mage::rendering::BufferCompiledShader

Public Member Functions

virtual ~CompiledShader ()
 
CompiledShaderoperator= (const CompiledShader &compiled_shader) noexcept
 
CompiledShaderoperator= (CompiledShader &&compiled_shader) noexcept
 
virtual const U8GetBytecode () const noexcept=0
 
virtual std::size_t GetBytecodeSize () const noexcept=0
 

Protected Member Functions

 CompiledShader () noexcept
 
 CompiledShader (const CompiledShader &compiled_shader) noexcept
 
 CompiledShader (CompiledShader &&compiled_shader) noexcept
 

Detailed Description

A class of compiled shaders.

Constructor & Destructor Documentation

◆ ~CompiledShader()

mage::rendering::CompiledShader::~CompiledShader ( )
virtualdefault

Destructs this compiled shader.

◆ CompiledShader() [1/3]

mage::rendering::CompiledShader::CompiledShader ( )
protecteddefaultnoexcept

Constructs a compiled shader.

◆ CompiledShader() [2/3]

mage::rendering::CompiledShader::CompiledShader ( const CompiledShader compiled_shader)
protecteddefaultnoexcept

Constructs a compiled shader from the given compiled shader.

Parameters
[in]compiled_shaderA reference to the compiled shader to copy.

◆ CompiledShader() [3/3]

mage::rendering::CompiledShader::CompiledShader ( CompiledShader &&  compiled_shader)
protecteddefaultnoexcept

Constructs a compiled shader by moving the given compiled shader.

Parameters
[in]compiled_shaderA reference to the compiled shader to move.

Member Function Documentation

◆ GetBytecode()

virtual const U8* mage::rendering::CompiledShader::GetBytecode ( ) const
pure virtualnoexcept

Returns the shader bytecode of this compiled shader.

Returns
A pointer to the shader bytecode of this compiled shader.

Implemented in mage::rendering::BlobCompiledShader, and mage::rendering::BufferCompiledShader.

◆ GetBytecodeSize()

virtual std::size_t mage::rendering::CompiledShader::GetBytecodeSize ( ) const
pure virtualnoexcept

Returns the size of the shader bytecode (in bytes) of this compiled shader.

Returns
The size of the shader bytecode (in bytes) of this compiled shader.

Implemented in mage::rendering::BlobCompiledShader, and mage::rendering::BufferCompiledShader.

◆ operator=() [1/2]

CompiledShader & mage::rendering::CompiledShader::operator= ( const CompiledShader compiled_shader)
defaultnoexcept

Copies the given compiled shader to this compiled shader.

Parameters
[in]compiled_shaderA reference to the compiled shader to copy.
Returns
A reference to the copy of the given compiled shader (i.e. this compiled shader).

◆ operator=() [2/2]

CompiledShader & mage::rendering::CompiledShader::operator= ( CompiledShader &&  compiled_shader)
defaultnoexcept

Moves the given compiled shader to this compiled shader.

Parameters
[in]compiled_shaderA reference to the compiled shader to copy.
Returns
A reference to the moved compiled shader (i.e. this compiled shader).