MAGE  v0.171.0
Matthias Advanced Game Engine
mage::rendering::BlobCompiledShader Class Reference

#include <compiled_shader.hpp>

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

Public Member Functions

 BlobCompiledShader (std::wstring_view fname) noexcept
 
 BlobCompiledShader (const BlobCompiledShader &compiled_shader) noexcept
 
 BlobCompiledShader (BlobCompiledShader &&compiled_shader) noexcept
 
virtual ~BlobCompiledShader ()
 
BlobCompiledShaderoperator= (const BlobCompiledShader &compiled_shader) noexcept
 
BlobCompiledShaderoperator= (BlobCompiledShader &&compiled_shader) noexcept
 
virtual const U8GetBytecode () const noexcept override
 
virtual std::size_t GetBytecodeSize () const noexcept override
 
- Public Member Functions inherited from mage::rendering::CompiledShader
virtual ~CompiledShader ()
 
CompiledShaderoperator= (const CompiledShader &compiled_shader) noexcept
 
CompiledShaderoperator= (CompiledShader &&compiled_shader) noexcept
 

Private Attributes

ComPtr< ID3DBlob > m_shader_blob
 

Additional Inherited Members

- Protected Member Functions inherited from mage::rendering::CompiledShader
 CompiledShader () noexcept
 
 CompiledShader (const CompiledShader &compiled_shader) noexcept
 
 CompiledShader (CompiledShader &&compiled_shader) noexcept
 

Detailed Description

A class of blob compiled shaders.

Constructor & Destructor Documentation

◆ BlobCompiledShader() [1/3]

mage::rendering::BlobCompiledShader::BlobCompiledShader ( std::wstring_view  fname)
explicitnoexcept

Constructs a blob compiled shader.

Parameters
[in]fnameThe filename.
Exceptions
ExceptionFailed to load the compiled shader from the given file.

◆ BlobCompiledShader() [2/3]

mage::rendering::BlobCompiledShader::BlobCompiledShader ( const BlobCompiledShader compiled_shader)
defaultnoexcept

Constructs a blob compiled shader from the given blob compiled shader.

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

◆ BlobCompiledShader() [3/3]

mage::rendering::BlobCompiledShader::BlobCompiledShader ( BlobCompiledShader &&  compiled_shader)
defaultnoexcept

Constructs a blob compiled shader by moving the given blob compiled shader.

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

◆ ~BlobCompiledShader()

mage::rendering::BlobCompiledShader::~BlobCompiledShader ( )
virtualdefault

Destructs this blob compiled shader.

Member Function Documentation

◆ GetBytecode()

virtual const U8* mage::rendering::BlobCompiledShader::GetBytecode ( ) const
overridevirtualnoexcept

Returns the shader bytecode of this blob compiled shader.

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

Implements mage::rendering::CompiledShader.

◆ GetBytecodeSize()

virtual std::size_t mage::rendering::BlobCompiledShader::GetBytecodeSize ( ) const
overridevirtualnoexcept

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

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

Implements mage::rendering::CompiledShader.

◆ operator=() [1/2]

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

Copies the given blob compiled shader to this blob compiled shader.

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

◆ operator=() [2/2]

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

Moves the given blob compiled shader to this blob compiled shader.

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

Member Data Documentation

◆ m_shader_blob

ComPtr< ID3DBlob > mage::rendering::BlobCompiledShader::m_shader_blob
private

A pointer to the shader blob of this blob compiled shader.