LiteFX 0.4.1.2025
Computer Graphics Engine
Loading...
Searching...
No Matches
LiteFX::Rendering::Rasterizer Class Reference

Implements a IRasterizer. More...

#include <rendering_api.hpp>

Inherits LiteFX::Rendering::IRasterizer.

Inherited by LiteFX::Rendering::Backends::DirectX12Rasterizer, and LiteFX::Rendering::Backends::VulkanRasterizer.

Classes

class  RasterizerImpl
 

Public Member Functions

 ~Rasterizer () noexcept override
 Releases the rasterizer instance.
 
PolygonMode polygonMode () const noexcept override
 Returns the polygon mode of the rasterizer state.
Returns
The polygon mode of the rasterizer state.

 
CullMode cullMode () const noexcept override
 Returns the cull mode of the rasterizer state.
Returns
The cull mode of the rasterizer state.

 
CullOrder cullOrder () const noexcept override
 Returns the cull mode of the rasterizer state.
Returns
The cull mode of the rasterizer state.

 
Float lineWidth () const noexcept override
 Returns the line width of the rasterizer state.Note that line width is not supported in DirectX and is only emulated under Vulkan. Instead of forcing this value, it is recommended to use a custom shader for it.
 
const DepthStencilStatedepthStencilState () const noexcept override
 Returns the depth/stencil state of the rasterizer.
Returns
The depth/stencil state of the rasterizer.

 
- Public Member Functions inherited from LiteFX::Rendering::IRasterizer
 ~IRasterizer () noexcept override=default
 
- Public Member Functions inherited from LiteFX::SharedObject
virtual ~SharedObject () noexcept=default
 Destroys the shared object.
 
template<typename TSelf >
auto shared_from_this (this TSelf &&self) noexcept
 Returns a shared pointer to the current object instance.
 
template<typename TSelf >
auto weak_from_this (this TSelf &&self) noexcept -> WeakPtr< std::remove_reference_t< TSelf > >
 Returns a weak pointer to the current object instance.
 

Protected Member Functions

 Rasterizer (PolygonMode polygonMode, CullMode cullMode, CullOrder cullOrder, Float lineWidth=1.f, const DepthStencilState &depthStencilState={}) noexcept
 Initializes a new rasterizer instance.
 
 Rasterizer (const Rasterizer &_other)
 Creates a copy of a rasterizer.
 
 Rasterizer (Rasterizer &&_other) noexcept
 Takes over another instance of a rasterizer.
 
Rasterizeroperator= (const Rasterizer &_other)
 Assigns a rasterizer by copying it.
 
Rasterizeroperator= (Rasterizer &&_other) noexcept
 Assigns a rasterizer by taking it over.
 
virtual PolygonModepolygonMode () noexcept
 
virtual CullModecullMode () noexcept
 
virtual CullOrdercullOrder () noexcept
 
virtual FloatlineWidth () noexcept
 
virtual DepthStencilStatedepthStencilState () noexcept
 
- Protected Member Functions inherited from LiteFX::Rendering::IRasterizer
 IRasterizer () noexcept=default
 
 IRasterizer (const IRasterizer &)=default
 
 IRasterizer (IRasterizer &&) noexcept=default
 
IRasterizeroperator= (const IRasterizer &)=default
 
IRasterizeroperator= (IRasterizer &&) noexcept=default
 
- Protected Member Functions inherited from LiteFX::SharedObject
 SharedObject () noexcept=default
 Initializes a new shared object.
 
 SharedObject (SharedObject &&) noexcept=default
 
 SharedObject (const SharedObject &)=default
 
SharedObjectoperator= (SharedObject &&) noexcept=default
 
SharedObjectoperator= (const SharedObject &)=default
 

Additional Inherited Members

- Static Protected Member Functions inherited from LiteFX::SharedObject
template<typename T , typename... TArgs>
static auto create (TArgs &&... args) -> SharedPtr< T >
 Generic factory method used to create instances of the shared object.
 

Detailed Description

Implements a IRasterizer.

Constructor & Destructor Documentation

◆ Rasterizer() [1/3]

Rasterizer::Rasterizer ( PolygonMode polygonMode,
CullMode cullMode,
CullOrder cullOrder,
Float lineWidth = 1.f,
const DepthStencilState & depthStencilState = {} )
explicitprotectednoexcept

Initializes a new rasterizer instance.

Parameters
polygonModeThe polygon mode of the rasterizer state.
cullModeThe cull mode of the rasterizer state.
cullOrderThe cull order of the rasterizer state.
lineWidthThe line width of the rasterizer state.
depthStencilStateThe rasterizer depth/stencil state.

◆ Rasterizer() [2/3]

Rasterizer::Rasterizer ( const Rasterizer & _other)
protecteddefault

Creates a copy of a rasterizer.

Parameters
_otherThe rasterizer instance to copy.

◆ Rasterizer() [3/3]

Rasterizer::Rasterizer ( Rasterizer && _other)
protecteddefaultnoexcept

Takes over another instance of a rasterizer.

Parameters
_otherThe rasterizer instance to take over.

◆ ~Rasterizer()

Rasterizer::~Rasterizer ( )
overridedefaultnoexcept

Releases the rasterizer instance.

Member Function Documentation

◆ cullMode() [1/2]

CullMode Rasterizer::cullMode ( ) const
overridevirtualnoexcept

Returns the cull mode of the rasterizer state.

Returns
The cull mode of the rasterizer state.

Implements LiteFX::Rendering::IRasterizer.

◆ cullMode() [2/2]

CullMode & Rasterizer::cullMode ( )
protectedvirtualnoexcept

◆ cullOrder() [1/2]

CullOrder Rasterizer::cullOrder ( ) const
overridevirtualnoexcept

Returns the cull mode of the rasterizer state.

Returns
The cull mode of the rasterizer state.

Implements LiteFX::Rendering::IRasterizer.

◆ cullOrder() [2/2]

CullOrder & Rasterizer::cullOrder ( )
protectedvirtualnoexcept

◆ depthStencilState() [1/2]

const DepthStencilState & Rasterizer::depthStencilState ( ) const
overridevirtualnoexcept

Returns the depth/stencil state of the rasterizer.

Returns
The depth/stencil state of the rasterizer.

Implements LiteFX::Rendering::IRasterizer.

◆ depthStencilState() [2/2]

DepthStencilState & Rasterizer::depthStencilState ( )
protectedvirtualnoexcept

◆ lineWidth() [1/2]

Float Rasterizer::lineWidth ( ) const
overridevirtualnoexcept

Returns the line width of the rasterizer state.Note that line width is not supported in DirectX and is only emulated under Vulkan. Instead of forcing this value, it is recommended to use a custom shader for it.

Implements LiteFX::Rendering::IRasterizer.

◆ lineWidth() [2/2]

Float & Rasterizer::lineWidth ( )
protectedvirtualnoexcept

◆ operator=() [1/2]

Rasterizer & Rasterizer::operator= ( const Rasterizer & _other)
protecteddefault

Assigns a rasterizer by copying it.

Parameters
_otherThe rasterizer instance to copy.
Returns
A reference to the current rasterizer instance.

◆ operator=() [2/2]

Rasterizer & Rasterizer::operator= ( Rasterizer && _other)
protecteddefaultnoexcept

Assigns a rasterizer by taking it over.

Parameters
_otherThe rasterizer to take over.
Returns
A reference to the current rasterizer instance.

◆ polygonMode() [1/2]

PolygonMode Rasterizer::polygonMode ( ) const
overridevirtualnoexcept

Returns the polygon mode of the rasterizer state.

Returns
The polygon mode of the rasterizer state.

Implements LiteFX::Rendering::IRasterizer.

◆ polygonMode() [2/2]

PolygonMode & Rasterizer::polygonMode ( )
protectedvirtualnoexcept