Divide Framework 0.1
A free and open-source 3D Framework under heavy development
Loading...
Searching...
No Matches
Divide::PostAAPreRenderOperator Class Referencefinal

#include <PostAAPreRenderOperator.h>

+ Inheritance diagram for Divide::PostAAPreRenderOperator:

Public Member Functions

 PostAAPreRenderOperator (GFXDevice &context, PreRenderBatch &parent)
 
 ~PostAAPreRenderOperator ()
 
bool execute (PlayerIndex idx, const CameraSnapshot &cameraSnapshot, const RenderTargetHandle &input, const RenderTargetHandle &output, GFX::CommandBuffer &bufferInOut) override
 This is tricky as we use our screen as both input and output.
 
void reshape (U16 width, U16 height) override
 
 PROPERTY_RW (U8, postAAQualityLevel, 2u)
 
 PROPERTY_RW (bool, useSMAA, false)
 
bool ready () const noexcept override
 
- Public Member Functions inherited from Divide::PreRenderOperator
 PreRenderOperator (GFXDevice &context, PreRenderBatch &parent, FilterType operatorType)
 
virtual ~PreRenderOperator ()=default
 
virtual bool execute (PlayerIndex idx, const CameraSnapshot &cameraSnapshot, const RenderTargetHandle &input, const RenderTargetHandle &output, GFX::CommandBuffer &bufferInOut)
 Return true if we rendered into "output".
 
virtual void reshape (U16 width, U16 height)
 
virtual void prepare (PlayerIndex idx, GFX::CommandBuffer &bufferInOut)
 
FilterType operatorType () const noexcept
 
virtual void onToggle (bool state)
 
virtual bool ready () const noexcept
 

Private Member Functions

 PROPERTY_INTERNAL (U8, currentPostAAQualityLevel, 2u)
 
 PROPERTY_INTERNAL (bool, currentUseSMAA, false)
 

Private Attributes

Handle< ShaderProgram_fxaa = INVALID_HANDLE<ShaderProgram>
 
Handle< ShaderProgram_smaaWeightComputation = INVALID_HANDLE<ShaderProgram>
 
Handle< ShaderProgram_smaaBlend = INVALID_HANDLE<ShaderProgram>
 
Handle< Texture_searchTexture = INVALID_HANDLE<Texture>
 
Handle< Texture_areaTexture = INVALID_HANDLE<Texture>
 
RenderTargetHandle _smaaWeights
 
Pipeline_fxaaPipeline = nullptr
 
Pipeline_smaaWeightPipeline = nullptr
 
Pipeline_smaaBlendPipeline = nullptr
 

Additional Inherited Members

- Protected Attributes inherited from Divide::PreRenderOperator
GFXDevice_context
 
PreRenderBatch_parent
 
RTDrawDescriptor _screenOnlyDraw {}
 
FilterType _operatorType = FilterType::FILTER_COUNT
 
bool _enabled = true
 

Detailed Description

Definition at line 44 of file PostAAPreRenderOperator.h.

Constructor & Destructor Documentation

◆ PostAAPreRenderOperator()

Divide::PostAAPreRenderOperator::PostAAPreRenderOperator ( GFXDevice context,
PreRenderBatch parent 
)
explicit

Definition at line 18 of file PostAAPreRenderOperator.cpp.

◆ ~PostAAPreRenderOperator()

Divide::PostAAPreRenderOperator::~PostAAPreRenderOperator ( )

Definition at line 131 of file PostAAPreRenderOperator.cpp.

Member Function Documentation

◆ execute()

bool Divide::PostAAPreRenderOperator::execute ( PlayerIndex  idx,
const CameraSnapshot cameraSnapshot,
const RenderTargetHandle input,
const RenderTargetHandle output,
GFX::CommandBuffer bufferInOut 
)
overridevirtual

This is tricky as we use our screen as both input and output.

Reimplemented from Divide::PreRenderOperator.

Definition at line 160 of file PostAAPreRenderOperator.cpp.

◆ PROPERTY_INTERNAL() [1/2]

Divide::PostAAPreRenderOperator::PROPERTY_INTERNAL ( bool  ,
currentUseSMAA  ,
false   
)
private

◆ PROPERTY_INTERNAL() [2/2]

Divide::PostAAPreRenderOperator::PROPERTY_INTERNAL ( U8  ,
currentPostAAQualityLevel  ,
2u   
)
private

◆ PROPERTY_RW() [1/2]

Divide::PostAAPreRenderOperator::PROPERTY_RW ( bool  ,
useSMAA  ,
false   
)

◆ PROPERTY_RW() [2/2]

Divide::PostAAPreRenderOperator::PROPERTY_RW ( U8  ,
postAAQualityLevel  ,
2u   
)

◆ ready()

bool Divide::PostAAPreRenderOperator::ready ( ) const
overridevirtualnoexcept

Reimplemented from Divide::PreRenderOperator.

Definition at line 141 of file PostAAPreRenderOperator.cpp.

◆ reshape()

void Divide::PostAAPreRenderOperator::reshape ( U16  width,
U16  height 
)
overridevirtual

Reimplemented from Divide::PreRenderOperator.

Definition at line 154 of file PostAAPreRenderOperator.cpp.

Member Data Documentation

◆ _areaTexture

Handle<Texture> Divide::PostAAPreRenderOperator::_areaTexture = INVALID_HANDLE<Texture>
private

Definition at line 66 of file PostAAPreRenderOperator.h.

◆ _fxaa

Handle<ShaderProgram> Divide::PostAAPreRenderOperator::_fxaa = INVALID_HANDLE<ShaderProgram>
private

Definition at line 61 of file PostAAPreRenderOperator.h.

◆ _fxaaPipeline

Pipeline* Divide::PostAAPreRenderOperator::_fxaaPipeline = nullptr
private

Definition at line 70 of file PostAAPreRenderOperator.h.

◆ _searchTexture

Handle<Texture> Divide::PostAAPreRenderOperator::_searchTexture = INVALID_HANDLE<Texture>
private

Definition at line 65 of file PostAAPreRenderOperator.h.

◆ _smaaBlend

Handle<ShaderProgram> Divide::PostAAPreRenderOperator::_smaaBlend = INVALID_HANDLE<ShaderProgram>
private

Definition at line 63 of file PostAAPreRenderOperator.h.

◆ _smaaBlendPipeline

Pipeline* Divide::PostAAPreRenderOperator::_smaaBlendPipeline = nullptr
private

Definition at line 72 of file PostAAPreRenderOperator.h.

◆ _smaaWeightComputation

Handle<ShaderProgram> Divide::PostAAPreRenderOperator::_smaaWeightComputation = INVALID_HANDLE<ShaderProgram>
private

Definition at line 62 of file PostAAPreRenderOperator.h.

◆ _smaaWeightPipeline

Pipeline* Divide::PostAAPreRenderOperator::_smaaWeightPipeline = nullptr
private

Definition at line 71 of file PostAAPreRenderOperator.h.

◆ _smaaWeights

RenderTargetHandle Divide::PostAAPreRenderOperator::_smaaWeights
private

Definition at line 68 of file PostAAPreRenderOperator.h.


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