OGRE
13.6
Object-Oriented Graphics Rendering Engine
|
This is a simplistic C/C++-like preprocessor. More...
#include <OgreGLSLPreprocessor.h>
Public Member Functions | |
CPreprocessor () | |
Create an empty preprocessor object. More... | |
virtual | ~CPreprocessor () |
Destroy the preprocessor object. More... | |
void | Define (const char *iMacroName, size_t iMacroNameLen) |
Define a symbolical macro. More... | |
void | Define (const char *iMacroName, size_t iMacroNameLen, const char *iMacroValue, size_t iMacroValueLen) |
Define a macro without parameters. More... | |
char * | Parse (const char *iSource, size_t iLength, size_t &oLength) |
Parse the input string and return a newly-allocated output string. More... | |
bool | Undef (const char *iMacroName, size_t iMacroNameLen) |
Undefine a macro. More... | |
This is a simplistic C/C++-like preprocessor.
It takes an non-zero-terminated string on input and outputs a non-zero-terminated string buffer.
This preprocessor was designed specifically for GLSL shaders, so if you want to use it for other purposes you might want to check if the feature set it provides is enough for you.
Here's a list of supported features:
#define:
Parametrized and non-parametrized macros. Invoking a macro with less arguments than it takes assignes empty values to missing arguments.#undef:
Forget defined macros#ifdef
/ #ifndef
/ #else
/ #endif:
Conditional suppression of parts of code.#if:
Supports numeric expression of any complexity, also supports the defined() pseudo-function. Ogre::CPreprocessor::CPreprocessor | ( | ) |
Create an empty preprocessor object.
|
virtual |
Destroy the preprocessor object.
void Ogre::CPreprocessor::Define | ( | const char * | iMacroName, |
size_t | iMacroNameLen, | ||
const char * | iMacroValue, | ||
size_t | iMacroValueLen | ||
) |
Define a macro without parameters.
iMacroName | The name of the defined macro |
iMacroNameLen | The length of the name of the defined macro |
iMacroValue | The value of the defined macro |
iMacroValueLen | The length of the value of the defined macro |
void Ogre::CPreprocessor::Define | ( | const char * | iMacroName, |
size_t | iMacroNameLen | ||
) |
Define a symbolical macro.
iMacroName | The name of the defined macro |
iMacroNameLen | The length of the name of the defined macro |
bool Ogre::CPreprocessor::Undef | ( | const char * | iMacroName, |
size_t | iMacroNameLen | ||
) |
Undefine a macro.
iMacroName | The name of the macro to undefine |
iMacroNameLen | The length of the name of the macro to undefine |
char* Ogre::CPreprocessor::Parse | ( | const char * | iSource, |
size_t | iLength, | ||
size_t & | oLength | ||
) |
Parse the input string and return a newly-allocated output string.
iSource | The source text |
iLength | The length of the source text in characters |
oLength | The length of the output string. |