Developer Documentation
|
Public Member Functions | |
ShaderProgGenerator (const ShaderGenDesc *_desc) | |
ShaderProgGenerator (const ShaderGenDesc *_desc, const std::vector< unsigned int > &_modifierIDs) | |
ShaderProgGenerator (const ShaderGenDesc *_desc, const std::vector< unsigned int > *_modifierIDs) | |
ShaderProgGenerator (const ShaderGenDesc *_desc, const unsigned int *_modifierIDs, unsigned int _numModifiers) | |
ShaderProgGenerator (const ShaderGenDesc *_desc, ShaderModifier *const *_modifiers, unsigned int _numModifiers) | |
ShaderProgGenerator (const ShaderGenDesc *_desc, const std::vector< ShaderModifier * > &_modifiers) | |
ShaderProgGenerator (const ShaderGenDesc *_desc, const std::vector< ShaderModifier * > *_modifiers) | |
void | saveVertexShToFile (const char *_fileName) |
void | saveGeometryShToFile (const char *_fileName) |
void | saveFragmentShToFile (const char *_fileName) |
const QStringList & | getVertexShaderCode () |
Returns generated vertex shader code. | |
const QStringList & | getTessControlShaderCode () |
Returns generated vertex shader code. | |
const QStringList & | getTessEvaluationShaderCode () |
Returns generated tessellation control shader code. | |
const QStringList & | getGeometryShaderCode () |
Returns generated tessellation evaluation shader code. | |
const QStringList & | getFragmentShaderCode () |
Returns generated fragment shader code. | |
int | getNumActiveModifiers () const |
Get the number of active modifiers. | |
ShaderModifier * | getActiveModifier (int _i) |
Get active modfiers for this program. | |
bool | hasGeometryShader () const |
check whether there is a geometry shader present | |
bool | hasTessControlShader () const |
check whether there is a tess-control shader present | |
bool | hasTessEvaluationShader () const |
check whether there is a tess-evaluation shader present | |
void | generateShaders () |
Generates the shader code. | |
ShaderProgGenerator (const ShaderGenDesc *_desc) | |
ShaderProgGenerator (const ShaderGenDesc *_desc, const std::vector< unsigned int > &_modifierIDs) | |
ShaderProgGenerator (const ShaderGenDesc *_desc, const std::vector< unsigned int > *_modifierIDs) | |
ShaderProgGenerator (const ShaderGenDesc *_desc, const unsigned int *_modifierIDs, unsigned int _numModifiers) | |
ShaderProgGenerator (const ShaderGenDesc *_desc, ShaderModifier *const *_modifiers, unsigned int _numModifiers) | |
ShaderProgGenerator (const ShaderGenDesc *_desc, const std::vector< ShaderModifier * > &_modifiers) | |
ShaderProgGenerator (const ShaderGenDesc *_desc, const std::vector< ShaderModifier * > *_modifiers) | |
void | saveVertexShToFile (const char *_fileName) |
void | saveGeometryShToFile (const char *_fileName) |
void | saveFragmentShToFile (const char *_fileName) |
const QStringList & | getVertexShaderCode () |
Returns generated vertex shader code. | |
const QStringList & | getTessControlShaderCode () |
Returns generated vertex shader code. | |
const QStringList & | getTessEvaluationShaderCode () |
Returns generated tessellation control shader code. | |
const QStringList & | getGeometryShaderCode () |
Returns generated tessellation evaluation shader code. | |
const QStringList & | getFragmentShaderCode () |
Returns generated fragment shader code. | |
int | getNumActiveModifiers () const |
Get the number of active modifiers. | |
ShaderModifier * | getActiveModifier (int _i) |
Get active modfiers for this program. | |
bool | hasGeometryShader () const |
check whether there is a geometry shader present | |
bool | hasTessControlShader () const |
check whether there is a tess-control shader present | |
bool | hasTessEvaluationShader () const |
check whether there is a tess-evaluation shader present | |
void | generateShaders () |
Generates the shader code. | |
ShaderProgGenerator (const ShaderGenDesc *_desc) | |
ShaderProgGenerator (const ShaderGenDesc *_desc, const std::vector< unsigned int > &_modifierIDs) | |
ShaderProgGenerator (const ShaderGenDesc *_desc, const std::vector< unsigned int > *_modifierIDs) | |
ShaderProgGenerator (const ShaderGenDesc *_desc, const unsigned int *_modifierIDs, unsigned int _numModifiers) | |
ShaderProgGenerator (const ShaderGenDesc *_desc, ShaderModifier *const *_modifiers, unsigned int _numModifiers) | |
ShaderProgGenerator (const ShaderGenDesc *_desc, const std::vector< ShaderModifier * > &_modifiers) | |
ShaderProgGenerator (const ShaderGenDesc *_desc, const std::vector< ShaderModifier * > *_modifiers) | |
void | saveVertexShToFile (const char *_fileName) |
void | saveGeometryShToFile (const char *_fileName) |
void | saveFragmentShToFile (const char *_fileName) |
const QStringList & | getVertexShaderCode () |
Returns generated vertex shader code. | |
const QStringList & | getTessControlShaderCode () |
Returns generated vertex shader code. | |
const QStringList & | getTessEvaluationShaderCode () |
Returns generated tessellation control shader code. | |
const QStringList & | getGeometryShaderCode () |
Returns generated tessellation evaluation shader code. | |
const QStringList & | getFragmentShaderCode () |
Returns generated fragment shader code. | |
int | getNumActiveModifiers () const |
Get the number of active modifiers. | |
ShaderModifier * | getActiveModifier (int _i) |
Get active modfiers for this program. | |
bool | hasGeometryShader () const |
check whether there is a geometry shader present | |
bool | hasTessControlShader () const |
check whether there is a tess-control shader present | |
bool | hasTessEvaluationShader () const |
check whether there is a tess-evaluation shader present | |
void | generateShaders () |
Generates the shader code. | |
Static Public Member Functions | |
static void | setShaderDir (QString _dir) |
static QString | getShaderDir () |
static unsigned int | registerModifier (ShaderModifier *_modifier) |
Shader modifiers have to be registered before they can be used. They also must remain allocated for the rest of the applications runtime. Use a combination of modifier-IDs in the constructor of ShaderProgGen to active them. More... | |
static bool | loadStringListFromFile (QString _fileName, QStringList *_out) |
Load a text file as string list. More... | |
static QString | getAbsFilePath (QString _fileName) |
Convert a filename to an absolute filename. More... | |
static void | setShaderDir (QString _dir) |
static QString | getShaderDir () |
static unsigned int | registerModifier (ShaderModifier *_modifier) |
Shader modifiers have to be registered before they can be used. They also must remain allocated for the rest of the applications runtime. Use a combination of modifier-IDs in the constructor of ShaderProgGen to active them. More... | |
static bool | loadStringListFromFile (QString _fileName, QStringList *_out) |
Load a text file as string list. More... | |
static QString | getAbsFilePath (QString _fileName) |
Convert a filename to an absolute filename. More... | |
static void | setShaderDir (QString _dir) |
static QString | getShaderDir () |
static unsigned int | registerModifier (ShaderModifier *_modifier) |
Shader modifiers have to be registered before they can be used. They also must remain allocated for the rest of the applications runtime. Use a combination of modifier-IDs in the constructor of ShaderProgGen to active them. More... | |
static bool | loadStringListFromFile (QString _fileName, QStringList *_out) |
Load a text file as string list. More... | |
static QString | getAbsFilePath (QString _fileName) |
Convert a filename to an absolute filename. More... | |
Private Member Functions | |
void | loadShaderTemplateFromFile () |
Loads external shader templates. | |
void | scanShaderTemplate (QStringList &_templateSrc, QString _templateFilename, QStringList *_outLayoutDirectives=0) |
Scans loaded shader template for requested inputs, glsl version or includes. | |
void | init (const ShaderGenDesc *_desc, ShaderModifier *const *_modifiers, unsigned int _numActiveMods) |
Called in constructor. | |
void | init (const ShaderGenDesc *_desc, const unsigned int *_modifiers, unsigned int _numActiveMods) |
void | buildVertexShader () |
void | buildTessControlShader () |
void | buildTessEvalShader () |
void | buildGeometryShader () |
void | buildFragmentShader () |
void | addVertexBeginCode (QStringList *_code) |
void | addVertexEndCode (QStringList *_code) |
void | addFragmentBeginCode (QStringList *_code) |
void | addFragmentEndCode (QStringList *_code) |
void | addLightingFunctions (QStringList *_code) |
Adds lighting definition functions. More... | |
void | addLightingCode (QStringList *_code) |
Adds lighting function calls to code. | |
void | modifyLightingCode (QStringList *_code, ShaderModifier *_modifier) |
Calls lighting modifier for each light. | |
void | addTexGenCode (QStringList *_code, bool _fragmentShader) |
Add texture coordinate generation code. | |
int | checkForIncludes (QString _str, ShaderGenerator *_gen, QString _includePath) |
int | checkForIncludes (QString _str, QStringList *_outImport, QString _includePath) |
void | initGenDefines (ShaderGenerator *_gen) |
provide generated defines to shader | |
void | loadShaderTemplateFromFile () |
Loads external shader templates. | |
void | scanShaderTemplate (QStringList &_templateSrc, QString _templateFilename, QStringList *_outLayoutDirectives=0) |
Scans loaded shader template for requested inputs, glsl version or includes. | |
void | init (const ShaderGenDesc *_desc, ShaderModifier *const *_modifiers, unsigned int _numActiveMods) |
Called in constructor. | |
void | init (const ShaderGenDesc *_desc, const unsigned int *_modifiers, unsigned int _numActiveMods) |
void | buildVertexShader () |
void | buildTessControlShader () |
void | buildTessEvalShader () |
void | buildGeometryShader () |
void | buildFragmentShader () |
void | addVertexBeginCode (QStringList *_code) |
void | addVertexEndCode (QStringList *_code) |
void | addFragmentBeginCode (QStringList *_code) |
void | addFragmentEndCode (QStringList *_code) |
void | addLightingFunctions (QStringList *_code) |
Adds lighting definition functions. More... | |
void | addLightingCode (QStringList *_code) |
Adds lighting function calls to code. | |
void | modifyLightingCode (QStringList *_code, ShaderModifier *_modifier) |
Calls lighting modifier for each light. | |
void | addTexGenCode (QStringList *_code, bool _fragmentShader) |
Add texture coordinate generation code. | |
int | checkForIncludes (QString _str, ShaderGenerator *_gen, QString _includePath) |
int | checkForIncludes (QString _str, QStringList *_outImport, QString _includePath) |
void | initGenDefines (ShaderGenerator *_gen) |
provide generated defines to shader | |
void | loadShaderTemplateFromFile () |
Loads external shader templates. | |
void | scanShaderTemplate (QStringList &_templateSrc, QString _templateFilename, QStringList *_outLayoutDirectives=0) |
Scans loaded shader template for requested inputs, glsl version or includes. | |
void | init (const ShaderGenDesc *_desc, ShaderModifier *const *_modifiers, unsigned int _numActiveMods) |
Called in constructor. | |
void | init (const ShaderGenDesc *_desc, const unsigned int *_modifiers, unsigned int _numActiveMods) |
void | buildVertexShader () |
void | buildTessControlShader () |
void | buildTessEvalShader () |
void | buildGeometryShader () |
void | buildFragmentShader () |
void | addVertexBeginCode (QStringList *_code) |
void | addVertexEndCode (QStringList *_code) |
void | addFragmentBeginCode (QStringList *_code) |
void | addFragmentEndCode (QStringList *_code) |
void | addLightingFunctions (QStringList *_code) |
Adds lighting definition functions. More... | |
void | addLightingCode (QStringList *_code) |
Adds lighting function calls to code. | |
void | modifyLightingCode (QStringList *_code, ShaderModifier *_modifier) |
Calls lighting modifier for each light. | |
void | addTexGenCode (QStringList *_code, bool _fragmentShader) |
Add texture coordinate generation code. | |
int | checkForIncludes (QString _str, ShaderGenerator *_gen, QString _includePath) |
int | checkForIncludes (QString _str, QStringList *_outImport, QString _includePath) |
void | initGenDefines (ShaderGenerator *_gen) |
provide generated defines to shader | |
Static Private Member Functions | |
static QString | getPathName (QString _strFileName) |
returns path to _strFileName without last slash | |
static void | loadLightingFunctions () |
static QString | getPathName (QString _strFileName) |
returns path to _strFileName without last slash | |
static void | loadLightingFunctions () |
static QString | getPathName (QString _strFileName) |
returns path to _strFileName without last slash | |
static void | loadLightingFunctions () |
Private Attributes | |
ShaderGenerator * | vertex_ |
ShaderGenerator * | tessControl_ |
ShaderGenerator * | tessEval_ |
ShaderGenerator * | geometry_ |
ShaderGenerator * | fragment_ |
QStringList | vertexTemplate_ |
QStringList | tessControlTemplate_ |
QStringList | tessEvalTemplate_ |
QStringList | geometryTemplate_ |
QStringList | fragmentTemplate_ |
ShaderGenDesc | desc_ |
std::vector< ShaderModifier * > | activeMods_ |
QString | vertexShaderFile_ |
path + filename to shader templates | |
QString | tessControlShaderFile_ |
QString | tessEvalShaderFile_ |
QString | geometryShaderFile_ |
QString | fragmentShaderFile_ |
QStringList | tessControlLayout_ |
layout() directives scanned from loaded templates | |
QStringList | tessEvalLayout_ |
ShaderGenerator::DefaultIODesc | ioDesc_ |
default IO descriptor for the vertex shader | |
bool | renormalizeLighting_ |
renormalize before lighting, default false, can be activated via "#define SG_REQUEST_RENORMALIZE" | |
Static Private Attributes | |
static int | numRegisteredModifiers_ |
registered shader modifier | |
static std::vector < ShaderModifier * > | registeredModifiers_ |
static QString | shaderDir_ |
static QStringList | lightingCode_ |
ShaderProgGenerator is responsible for generating a matching pair of vertex and fragment shaders.
Definition at line 1152 of file MeshNode2T.cc.
ACG::SceneGraph::ACG::ShaderProgGenerator::ShaderProgGenerator | ( | const ShaderGenDesc * | _desc | ) |
_desc | description-set of shader properties. |
ACG::SceneGraph::ACG::ShaderProgGenerator::ShaderProgGenerator | ( | const ShaderGenDesc * | _desc, |
const std::vector< unsigned int > & | _modifierIDs | ||
) |
_desc | description-set of shader properties. |
_modifierIDs | array of modifier-IDs that should be used for the generation. |
ACG::SceneGraph::ACG::ShaderProgGenerator::ShaderProgGenerator | ( | const ShaderGenDesc * | _desc, |
const std::vector< unsigned int > * | _modifierIDs | ||
) |
_desc | description-set of shader properties. |
_modifierIDs | array of modifier-IDs that should be used for the generation. |
ACG::SceneGraph::ACG::ShaderProgGenerator::ShaderProgGenerator | ( | const ShaderGenDesc * | _desc, |
const unsigned int * | _modifierIDs, | ||
unsigned int | _numModifiers | ||
) |
_desc | description-set of shader properties. |
_modifierIDs | array of modifier-IDs that should be used for the generation. |
_numModifiers | number of modifiers in _modifierIDs |
ACG::SceneGraph::ACG::ShaderProgGenerator::ShaderProgGenerator | ( | const ShaderGenDesc * | _desc, |
ShaderModifier *const * | _modifiers, | ||
unsigned int | _numModifiers | ||
) |
_desc | description-set of shader properties. |
_modifiers | array of modifiers that should be used for the generation. |
_numModifiers | number of modifiers in _modifierIDs |
ACG::SceneGraph::ACG::ShaderProgGenerator::ShaderProgGenerator | ( | const ShaderGenDesc * | _desc, |
const std::vector< ShaderModifier * > & | _modifiers | ||
) |
_desc | description-set of shader properties. |
_modifiers | array of modifiers that should be used for the generation. |
ACG::SceneGraph::ACG::ShaderProgGenerator::ShaderProgGenerator | ( | const ShaderGenDesc * | _desc, |
const std::vector< ShaderModifier * > * | _modifiers | ||
) |
_desc | description-set of shader properties. |
_modifiers | array of modifiers that should be used for the generation. |
ACG::SceneGraph::ACG::ShaderProgGenerator::ShaderProgGenerator | ( | const ShaderGenDesc * | _desc | ) |
_desc | description-set of shader properties. |
ACG::SceneGraph::ACG::ShaderProgGenerator::ShaderProgGenerator | ( | const ShaderGenDesc * | _desc, |
const std::vector< unsigned int > & | _modifierIDs | ||
) |
_desc | description-set of shader properties. |
_modifierIDs | array of modifier-IDs that should be used for the generation. |
ACG::SceneGraph::ACG::ShaderProgGenerator::ShaderProgGenerator | ( | const ShaderGenDesc * | _desc, |
const std::vector< unsigned int > * | _modifierIDs | ||
) |
_desc | description-set of shader properties. |
_modifierIDs | array of modifier-IDs that should be used for the generation. |
ACG::SceneGraph::ACG::ShaderProgGenerator::ShaderProgGenerator | ( | const ShaderGenDesc * | _desc, |
const unsigned int * | _modifierIDs, | ||
unsigned int | _numModifiers | ||
) |
_desc | description-set of shader properties. |
_modifierIDs | array of modifier-IDs that should be used for the generation. |
_numModifiers | number of modifiers in _modifierIDs |
ACG::SceneGraph::ACG::ShaderProgGenerator::ShaderProgGenerator | ( | const ShaderGenDesc * | _desc, |
ShaderModifier *const * | _modifiers, | ||
unsigned int | _numModifiers | ||
) |
_desc | description-set of shader properties. |
_modifiers | array of modifiers that should be used for the generation. |
_numModifiers | number of modifiers in _modifierIDs |
ACG::SceneGraph::ACG::ShaderProgGenerator::ShaderProgGenerator | ( | const ShaderGenDesc * | _desc, |
const std::vector< ShaderModifier * > & | _modifiers | ||
) |
_desc | description-set of shader properties. |
_modifiers | array of modifiers that should be used for the generation. |
ACG::SceneGraph::ACG::ShaderProgGenerator::ShaderProgGenerator | ( | const ShaderGenDesc * | _desc, |
const std::vector< ShaderModifier * > * | _modifiers | ||
) |
_desc | description-set of shader properties. |
_modifiers | array of modifiers that should be used for the generation. |
ACG::SceneGraph::ACG::ShaderProgGenerator::ShaderProgGenerator | ( | const ShaderGenDesc * | _desc | ) |
_desc | description-set of shader properties. |
ACG::SceneGraph::ACG::ShaderProgGenerator::ShaderProgGenerator | ( | const ShaderGenDesc * | _desc, |
const std::vector< unsigned int > & | _modifierIDs | ||
) |
_desc | description-set of shader properties. |
_modifierIDs | array of modifier-IDs that should be used for the generation. |
ACG::SceneGraph::ACG::ShaderProgGenerator::ShaderProgGenerator | ( | const ShaderGenDesc * | _desc, |
const std::vector< unsigned int > * | _modifierIDs | ||
) |
_desc | description-set of shader properties. |
_modifierIDs | array of modifier-IDs that should be used for the generation. |
ACG::SceneGraph::ACG::ShaderProgGenerator::ShaderProgGenerator | ( | const ShaderGenDesc * | _desc, |
const unsigned int * | _modifierIDs, | ||
unsigned int | _numModifiers | ||
) |
_desc | description-set of shader properties. |
_modifierIDs | array of modifier-IDs that should be used for the generation. |
_numModifiers | number of modifiers in _modifierIDs |
ACG::SceneGraph::ACG::ShaderProgGenerator::ShaderProgGenerator | ( | const ShaderGenDesc * | _desc, |
ShaderModifier *const * | _modifiers, | ||
unsigned int | _numModifiers | ||
) |
_desc | description-set of shader properties. |
_modifiers | array of modifiers that should be used for the generation. |
_numModifiers | number of modifiers in _modifierIDs |
ACG::SceneGraph::ACG::ShaderProgGenerator::ShaderProgGenerator | ( | const ShaderGenDesc * | _desc, |
const std::vector< ShaderModifier * > & | _modifiers | ||
) |
_desc | description-set of shader properties. |
_modifiers | array of modifiers that should be used for the generation. |
ACG::SceneGraph::ACG::ShaderProgGenerator::ShaderProgGenerator | ( | const ShaderGenDesc * | _desc, |
const std::vector< ShaderModifier * > * | _modifiers | ||
) |
_desc | description-set of shader properties. |
_modifiers | array of modifiers that should be used for the generation. |
|
private |
Adds lighting definition functions.
LitPointLight() ...
|
private |
Adds lighting definition functions.
LitPointLight() ...
|
private |
Adds lighting definition functions.
LitPointLight() ...
|
private |
checks if _str is an include directive eventually imports the included file to the specified generator
|
private |
checks if _str is an include directive eventually imports the included file to the specified generator
|
private |
checks if _str is an include directive eventually imports the included file to the specified generator
|
private |
checks if _str is an include directive eventually imports the included file to the specified stringlist
|
private |
checks if _str is an include directive eventually imports the included file to the specified stringlist
|
private |
checks if _str is an include directive eventually imports the included file to the specified stringlist
|
static |
Convert a filename to an absolute filename.
_fileName | relative (from shader dir) or absolute file name |
|
static |
Convert a filename to an absolute filename.
_fileName | relative (from shader dir) or absolute file name |
|
static |
Convert a filename to an absolute filename.
_fileName | relative (from shader dir) or absolute file name |
|
static |
Return shader directory path as previosly specified by user
|
static |
Return shader directory path as previosly specified by user
|
static |
Return shader directory path as previosly specified by user
|
static |
Load a text file as string list.
_fileName | relative (from shader dir) or absolute file name |
_out | lines from text file |
|
static |
Load a text file as string list.
_fileName | relative (from shader dir) or absolute file name |
_out | lines from text file |
|
static |
Load a text file as string list.
_fileName | relative (from shader dir) or absolute file name |
_out | lines from text file |
|
static |
Shader modifiers have to be registered before they can be used. They also must remain allocated for the rest of the applications runtime. Use a combination of modifier-IDs in the constructor of ShaderProgGen to active them.
_modifier | address of a modifier implementation |
|
static |
Shader modifiers have to be registered before they can be used. They also must remain allocated for the rest of the applications runtime. Use a combination of modifier-IDs in the constructor of ShaderProgGen to active them.
_modifier | address of a modifier implementation |
|
static |
Shader modifiers have to be registered before they can be used. They also must remain allocated for the rest of the applications runtime. Use a combination of modifier-IDs in the constructor of ShaderProgGen to active them.
_modifier | address of a modifier implementation |
|
static |
The shader directory has to be defined first before making use of the generator! For example: setShaderDir(OpenFlipper::Options::shaderDirStr())
|
static |
The shader directory has to be defined first before making use of the generator! For example: setShaderDir(OpenFlipper::Options::shaderDirStr())
|
static |
The shader directory has to be defined first before making use of the generator! For example: setShaderDir(OpenFlipper::Options::shaderDirStr())