Workspace 6.21.5
Public Member Functions | Static Public Member Functions | List of all members
WSGLScreenSpaceAmbientOcclusionCapability Class Reference

This class allows other shaders to add the capability to support Screen Space Ambient Occlusion (SSAO). More...

#include <Rendering/OpenGL/Shaders/Capabilities/wsglscreenspaceambientocclusioncapability.h>

Inheritance diagram for WSGLScreenSpaceAmbientOcclusionCapability:
[legend]

Public Member Functions

 WSGLScreenSpaceAmbientOcclusionCapability ()
 
 WSGLScreenSpaceAmbientOcclusionCapability (const WSGLScreenSpaceAmbientOcclusionCapability &other)
 
 ~WSGLScreenSpaceAmbientOcclusionCapability () override
 
const CapabilityIdListdependencies () const override
 
QString getSource (QOpenGLShader::ShaderType type) const override
 
UsageFlags getUsageFlags () const override
 
bool onProgramActivate (WSGLShaderProgram &program, WSGLRenderer &renderer) override
 
bool onProgramDeactivate (WSGLShaderProgram &program, WSGLRenderer &renderer) override
 
WSGLScreenSpaceAmbientOcclusionCapabilityoperator= (const WSGLScreenSpaceAmbientOcclusionCapability &rhs)
 
bool postProgramLink (WSGLShaderProgram &program) override
 
bool postRenderModel (WSGLShaderProgram &program, WSGLRenderer &renderer, WSGLRenderItem &item) override
 
bool preRenderGlyph (WSGLShaderProgram &program, WSGLRenderer &renderer, WSGLInstancedItem &item, int instanceNumber) override
 
bool preRenderModel (WSGLShaderProgram &program, WSGLRenderer &renderer, WSGLRenderItem &item) override
 
- Public Member Functions inherited from WSGLTypedShaderProgramCapability< WSGLScreenSpaceAmbientOcclusionCapability >
const WSGLShaderProgramCapabilityIdcapabilityId () const override
 
- Public Member Functions inherited from WSGLShaderProgramCapability
virtual ~WSGLShaderProgramCapability ()
 
virtual const WSGLShaderProgramCapabilityIdcapabilityId () const =0
 
virtual const CapabilityIdListdependencies () const =0
 
virtual QString getSource (QOpenGLShader::ShaderType type) const =0
 
virtual UsageFlags getUsageFlags () const =0
 
virtual bool onProgramActivate (WSGLShaderProgram &program, WSGLRenderer &renderer)=0
 
virtual bool onProgramDeactivate (WSGLShaderProgram &program, WSGLRenderer &renderer)=0
 
WSGLShaderProgramCapabilityoperator= (const WSGLShaderProgramCapability &)
 
virtual bool postProgramLink (WSGLShaderProgram &program)=0
 
virtual bool postRenderModel (WSGLShaderProgram &program, WSGLRenderer &renderer, WSGLRenderItem &item)=0
 
virtual bool preRenderGlyph (WSGLShaderProgram &program, WSGLRenderer &renderer, WSGLInstancedItem &item, int instanceNumber)=0
 
virtual bool preRenderModel (WSGLShaderProgram &program, WSGLRenderer &renderer, WSGLRenderItem &item)=0
 

Static Public Member Functions

static const QString & capabilityName ()
 
- Static Public Member Functions inherited from WSGLTypedShaderProgramCapability< WSGLScreenSpaceAmbientOcclusionCapability >
static const WSGLShaderProgramCapabilityIdgetCapabilityId ()
 

Additional Inherited Members

- Public Types inherited from WSGLShaderProgramCapability
enum  UsageFlags { UpdateOnActivate = 0x01 , UpdateOnRender = 0x02 , UpdatePerGlyph = 0x04 }
 
- Protected Member Functions inherited from WSGLShaderProgramCapability
 WSGLShaderProgramCapability ()
 
 WSGLShaderProgramCapability (const WSGLShaderProgramCapability &)
 
QString readSourceFromFile (const QString &filename) const
 

Detailed Description

See also
WSGLScreenSpaceAmbientOcclusion

Constructor & Destructor Documentation

◆ WSGLScreenSpaceAmbientOcclusionCapability() [1/2]

◆ WSGLScreenSpaceAmbientOcclusionCapability() [2/2]

◆ ~WSGLScreenSpaceAmbientOcclusionCapability()

Member Function Documentation

◆ capabilityName()

static const QString & capabilityName ( )
inlinestatic

◆ dependencies()

const CapabilityIdList & dependencies ( ) const
overridevirtual
Returns
A list of the capabilities that this capability depends on. An error will occur if these capabilities are not also added to a shader program which has this capability added to it.

Implements WSGLShaderProgramCapability.

◆ getSource()

QString getSource ( QOpenGLShader::ShaderType  type) const
overridevirtual
Returns
The source code of the capability.
Parameters
typeThe type of shader. Note: This capability only has fragment shader source code.

Implements WSGLShaderProgramCapability.

◆ getUsageFlags()

WSGLShaderProgramCapability::UsageFlags getUsageFlags ( ) const
overridevirtual
Returns
The usage flags representing how this capability should be used at render time.

Implements WSGLShaderProgramCapability.

◆ onProgramActivate()

bool onProgramActivate ( WSGLShaderProgram program,
WSGLRenderer renderer 
)
overridevirtual

When the program activates, set the global 'enabled' uniforms.

Precondition
The shader prorgam has been compiled and linked.

Implements WSGLShaderProgramCapability.

◆ onProgramDeactivate()

bool onProgramDeactivate ( WSGLShaderProgram program,
WSGLRenderer renderer 
)
overridevirtual

Invoked when the program is deactivated. The WSGLShaderProgram is assumed to be bound. Use this function to clean up any GL state that is common to all items rendered.

Parameters
programThe program which is being deactivated.
rendererThe renderer that the program is being deactivated on.
Returns
true if the deactivation was successful, false if errors occurred.
See also
onProgramActivate
preRenderModel
postRenderModel

Implements WSGLShaderProgramCapability.

◆ operator=()

Parameters
rhs

◆ postProgramLink()

bool postProgramLink ( WSGLShaderProgram program)
overridevirtual

Retrieve the location of the capability's uniforms.

Returns
Always true.

Implements WSGLShaderProgramCapability.

◆ postRenderModel()

bool postRenderModel ( WSGLShaderProgram program,
WSGLRenderer renderer,
WSGLRenderItem item 
)
overridevirtual

Invoked immediately following the rendering of a WSGLRenderItem (i.e. immediately after a call to glDrawElements or glDrawRangeElements). Use this function to clean up any GL state that changes on a per-item basis. The program is assumed to be bound.

Parameters
programThe program which is rendering the item.
rendererThe renderer which the program has just used to render the item.
itemThe render item just drawn.
Returns
true if the postRenderModel process was successful, false if errors occurred.
See also
preRenderModel
onProgramActivate
onProgramDeactivate

Implements WSGLShaderProgramCapability.

◆ preRenderGlyph()

bool preRenderGlyph ( WSGLShaderProgram program,
WSGLRenderer renderer,
WSGLInstancedItem item,
int  instanceNumber 
)
overridevirtual

Invoked immediately prior to the rendering of an individual glyph instance (i.e. immediately before a call to glDrawElements or glDrawRangeElements). Use this function to set up any GL state that changes on a per-glyph basis. The program is assumed to be bound.

Note
This function will only be called if the render item is glyphed. For normal rendering, see preRenderModel
Parameters
programThe program which is rendering the item.
rendererThe renderer which the program has just used to render the item.
itemThe instanced item we're going to use to render an instance.
instanceNumberThe instance number of the glyph.
Returns
true if the preRenderModel process was successful, false if errors occurred.
See also
preRenderModel
postRenderGlyph

Implements WSGLShaderProgramCapability.

◆ preRenderModel()

bool preRenderModel ( WSGLShaderProgram program,
WSGLRenderer renderer,
WSGLRenderItem item 
)
overridevirtual

Invoked immediately prior to the rendering of a WSGLRenderItem (i.e. immediately before a call to glDrawElements or glDrawRangeElements). Use this function to set up any GL state that changes on a per-item basis. The program is assumed to be bound.

Parameters
programThe program which is rendering the item.
rendererThe renderer which the program is about to use to render the item.
itemThe render item about to be drawn.
Returns
true if the preRenderModel process was successful, false if errors occurred.
See also
postRenderModel
onProgramActivate
onProgramDeactivate

Implements WSGLShaderProgramCapability.