galaxy 1.0.0
Real-Time C++23 Game Programming Framework. Built on data-driven design principles and agile software engineering.
Loading...
Searching...
No Matches
galaxy::graphics::FilmicGrain Class Referencefinal

Film grain effect. More...

#include <FilmicGrain.hpp>

+ Inheritance diagram for galaxy::graphics::FilmicGrain:
+ Collaboration diagram for galaxy::graphics::FilmicGrain:

Public Member Functions

 FilmicGrain (const int width, const int height)
 Argument constructor.
 
virtual ~FilmicGrain ()=default
 Destructor.
 
void resize (const int width, const int height) override
 Resize framebuffers.
 
unsigned int render (const unsigned int input) override
 Render effect to input texture.
 
void set_amount (const float amount)
 Set intensity of film grain effect.
 
bool is_enabled () override
 Is this effect enabled?
 
- Public Member Functions inherited from galaxy::graphics::PostEffect
virtual ~PostEffect ()=default
 Destructor.
 

Private Member Functions

 FilmicGrain ()=delete
 Constructor.
 

Private Attributes

Shader m_shader
 Shader for post processing effect.
 
RenderTexture m_fb
 Framebuffer to render aberration.
 
float m_amount
 Film grain intensity.
 

Additional Inherited Members

- Protected Member Functions inherited from galaxy::graphics::PostEffect
 PostEffect ()=default
 Constructor.
 
 PostEffect (const PostEffect &)=default
 Copy constructor.
 
 PostEffect (PostEffect &&)=default
 Move constructor.
 
PostEffectoperator= (const PostEffect &)=default
 Copy assignment operator.
 
PostEffectoperator= (PostEffect &&)=default
 Move assignment operator.
 

Detailed Description

Film grain effect.

Run after Anti-Aliasing.

Definition at line 24 of file FilmicGrain.hpp.

Constructor & Destructor Documentation

◆ FilmicGrain() [1/2]

galaxy::graphics::FilmicGrain::FilmicGrain ( const int width,
const int height )

Argument constructor.

Parameters
widthWidth of internal framebuffer.
heightHeight of internal framebuffer.

Definition at line 92 of file FilmicGrain.cpp.

+ Here is the call graph for this function:

◆ ~FilmicGrain()

virtual galaxy::graphics::FilmicGrain::~FilmicGrain ( )
virtualdefault

Destructor.

◆ FilmicGrain() [2/2]

galaxy::graphics::FilmicGrain::FilmicGrain ( )
privatedelete

Constructor.

Member Function Documentation

◆ resize()

void galaxy::graphics::FilmicGrain::resize ( const int width,
const int height )
overridevirtual

Resize framebuffers.

Parameters
widthNew width of internal framebuffer.
heightNew height of internal framebuffer.

Implements galaxy::graphics::PostEffect.

Definition at line 107 of file FilmicGrain.cpp.

+ Here is the call graph for this function:

◆ render()

unsigned int galaxy::graphics::FilmicGrain::render ( const unsigned int input)
nodiscardoverridevirtual

Render effect to input texture.

Parameters
inputInput texture from previous effect or window framebuffer.
Returns
Returns output texture for next effect or final framebuffer.

Implements galaxy::graphics::PostEffect.

Definition at line 112 of file FilmicGrain.cpp.

+ Here is the call graph for this function:

◆ set_amount()

void galaxy::graphics::FilmicGrain::set_amount ( const float amount)

Set intensity of film grain effect.

Parameters
amountLower value is less intense.

Definition at line 126 of file FilmicGrain.cpp.

+ Here is the call graph for this function:

◆ is_enabled()

bool galaxy::graphics::FilmicGrain::is_enabled ( )
nodiscardoverridevirtual

Is this effect enabled?

Returns
True if effect is enabled. Otherwise false.

Implements galaxy::graphics::PostEffect.

Definition at line 132 of file FilmicGrain.cpp.

Member Data Documentation

◆ m_shader

Shader galaxy::graphics::FilmicGrain::m_shader
private

Shader for post processing effect.

Definition at line 83 of file FilmicGrain.hpp.

◆ m_fb

RenderTexture galaxy::graphics::FilmicGrain::m_fb
private

Framebuffer to render aberration.

Definition at line 88 of file FilmicGrain.hpp.

◆ m_amount

float galaxy::graphics::FilmicGrain::m_amount
private

Film grain intensity.

Definition at line 93 of file FilmicGrain.hpp.


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