Developer Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
ACG::ShaderModifierFile Class Reference
Inheritance diagram for ACG::ShaderModifierFile:
ACG::ShaderModifier

Public Member Functions

void modifyVertexIO (ShaderGenerator *_shader)
 Add your own inputs/outputs to the vertex shader. More...
 
void modifyTessControlIO (ShaderGenerator *_shader)
 Add your own inputs/outputs to the tessellation control shader. More...
 
void modifyTessEvalIO (ShaderGenerator *_shader)
 Add your own inputs/outputs to the tessellation evaluation shader. More...
 
void modifyGeometryIO (ShaderGenerator *_shader)
 Add your own inputs/outputs to the geometry shader. More...
 
void modifyFragmentIO (ShaderGenerator *_shader)
 Add your own inputs/outputs to the fragment shader. More...
 
void modifyVertexBeginCode (QStringList *_code)
 Append code the the vertex shader. More...
 
void modifyVertexEndCode (QStringList *_code)
 Append code the the vertex shader. More...
 
void modifyFragmentBeginCode (QStringList *_code)
 Append code the the fragment shader. More...
 
void modifyFragmentEndCode (QStringList *_code)
 Append code the the fragment shader. More...
 
const QString & filename () const
 
const QDateTime & filetime () const
 
void filetime (const QDateTime &_newtime)
 
void clear ()
 
- Public Member Functions inherited from ACG::ShaderModifier
virtual void modifyLightingCode (QStringList *_code, int _lightId, ShaderGenLightType _lightType)
 Modify the default lighting code of the shader generator. More...
 
virtual bool replaceDefaultLightingCode ()
 Specify whether this modifier replaces or extends the default lighting code. More...
 
unsigned int getID ()
 Returns the modifier ID. More...
 
 operator std::vector< unsigned int > () const
 
std::vector< unsigned int > operator| (const std::vector< unsigned int > &_v) const
 

Static Public Member Functions

static ShaderModifierFileloadFromFile (QString _filename)
 
- Static Public Member Functions inherited from ACG::ShaderModifier
static ShaderModifierloadFromFile (QString _filename)
 Load a modifier from file. More...
 

Private Member Functions

void loadBlocks (const QStringList &_lines)
 
void modifyIO (int _stage, ShaderGenerator *_shader)
 

Private Attributes

QString filename_
 
QDateTime filetime_
 
int version_
 
QStringList io_ [5]
 
QStringList vertexBeginCode_
 
QStringList vertexEndCode_
 
QStringList fragmentBeginCode_
 
QStringList fragmentEndCode_
 

Static Private Attributes

static QHash< QString,
ShaderModifierFile
fileCache_
 

Detailed Description

Definition at line 2473 of file ShaderGenerator.cc.

Member Function Documentation

void ACG::ShaderModifierFile::modifyFragmentBeginCode ( QStringList *  _code)
inlinevirtual

Append code the the fragment shader.

Refer to the generation structure (Shader Generator ) to see where your code is added and which variables you can modify. Use

_code->push_back("...");

to insert your code here

Parameters
_codestring list of shader code.

Reimplemented from ACG::ShaderModifier.

Definition at line 2493 of file ShaderGenerator.cc.

void ACG::ShaderModifierFile::modifyFragmentEndCode ( QStringList *  _code)
inlinevirtual

Append code the the fragment shader.

Refer to the generation structure (Shader Generator ) to see where your code is added and which variables you can modify. Use

_code->push_back("...");

to insert your code here.

Parameters
_codestring list of shader code.

Reimplemented from ACG::ShaderModifier.

Definition at line 2494 of file ShaderGenerator.cc.

void ACG::ShaderModifierFile::modifyFragmentIO ( ShaderGenerator _shader)
inlinevirtual

Add your own inputs/outputs to the fragment shader.

your implementation may look like this:

_shader->addInput("sampler2D depthSampler");
_shader->addUniform("vec4 shaderParam");
Parameters
_shadershader interface

Reimplemented from ACG::ShaderModifier.

Definition at line 2488 of file ShaderGenerator.cc.

void ACG::ShaderModifierFile::modifyGeometryIO ( ShaderGenerator _shader)
inlinevirtual

Add your own inputs/outputs to the geometry shader.

your implementation may look like this:

_shader->addInput("sampler2D depthSampler");
_shader->addUniform("vec4 shaderParam");
Parameters
_shadershader interface

Reimplemented from ACG::ShaderModifier.

Definition at line 2487 of file ShaderGenerator.cc.

void ACG::ShaderModifierFile::modifyTessControlIO ( ShaderGenerator _shader)
inlinevirtual

Add your own inputs/outputs to the tessellation control shader.

your implementation may look like this:

_shader->addInput("sampler2D depthSampler");
_shader->addUniform("vec4 shaderParam");
Parameters
_shadershader interface

Reimplemented from ACG::ShaderModifier.

Definition at line 2485 of file ShaderGenerator.cc.

void ACG::ShaderModifierFile::modifyTessEvalIO ( ShaderGenerator _shader)
inlinevirtual

Add your own inputs/outputs to the tessellation evaluation shader.

your implementation may look like this:

_shader->addInput("sampler2D depthSampler");
_shader->addUniform("vec4 shaderParam");
Parameters
_shadershader interface

Reimplemented from ACG::ShaderModifier.

Definition at line 2486 of file ShaderGenerator.cc.

void ACG::ShaderModifierFile::modifyVertexBeginCode ( QStringList *  _code)
inlinevirtual

Append code the the vertex shader.

Refer to the generation structure (Shader Generator ) to see where your code is added and which variables you can modify. Use

_code->push_back("...");

to insert your code here.

Parameters
_codestring list of shader code.

Reimplemented from ACG::ShaderModifier.

Definition at line 2491 of file ShaderGenerator.cc.

void ACG::ShaderModifierFile::modifyVertexEndCode ( QStringList *  _code)
inlinevirtual

Append code the the vertex shader.

Refer to the generation structure (Shader Generator ) to see where your code is added and which variables you can modify. Use

_code->push_back("...");

to insert your code here

Parameters
_codestring list of shader code.

Reimplemented from ACG::ShaderModifier.

Definition at line 2492 of file ShaderGenerator.cc.

void ACG::ShaderModifierFile::modifyVertexIO ( ShaderGenerator _shader)
inlinevirtual

Add your own inputs/outputs to the vertex shader.

Your implementation may look like this:

_shader->addInput("vec4 inTangent");
_shader->addUniform("vec4 shaderParam");
Parameters
_shadershader interface

Reimplemented from ACG::ShaderModifier.

Definition at line 2484 of file ShaderGenerator.cc.


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