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

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

Inheritance diagram for WSGLTransformCapability:
[legend]

Public Member Functions

 WSGLTransformCapability ()
 
 WSGLTransformCapability (const WSGLTransformCapability &other)
 
 ~WSGLTransformCapability () 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
 
WSGLTransformCapabilityoperator= (const WSGLTransformCapability &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< WSGLTransformCapability >
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< WSGLTransformCapability >
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
 

Constructor & Destructor Documentation

◆ WSGLTransformCapability() [1/2]

◆ WSGLTransformCapability() [2/2]

◆ ~WSGLTransformCapability()

~WSGLTransformCapability ( )
override

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 GLSL source code associated with this capability. WSGLShaderPrograms will invoke this function in order to compile a unified shader with all the relevant capabilities.

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

Invoked when the program is activated. The WSGLShaderProgram is assumed to be bound. Subclasses can override this function to set up any program or other GL state (such as uniform values) that do not change on a per-render-item basis.

Parameters
programThe program which is being activated.
rendererThe renderer on which the program is being activated.
Returns
true if the activation process was successful, false if errors occurred.
See also
onProgramDeactivate
preRenderModel
postRenderModel

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=()

WSGLTransformCapability & operator= ( const WSGLTransformCapability rhs)
Parameters
rhs

◆ postProgramLink()

bool postProgramLink ( WSGLShaderProgram program)
overridevirtual

Invoked immediately after the program is linked. Use this function to stored uniform locations or other variables which will remain constant for the life of the capability.

Parameters
programThe program which has just been linked.

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.