CG Language program processor class. More...
#include <OgreShaderHLSLProgramProcessor.h>
Public Member Functions | |
HLSLProgramProcessor () | |
Class constructor. More... | |
virtual | ~HLSLProgramProcessor () |
Class destructor. More... | |
virtual const String & | getTargetLanguage () const |
Return the target language of this processor. More... | |
void | operator delete (void *ptr) |
void | operator delete (void *ptr, void *) |
void | operator delete (void *ptr, const char *, int, const char *) |
void | operator delete[] (void *ptr) |
void | operator delete[] (void *ptr, const char *, int, const char *) |
void * | operator new (size_t sz, const char *file, int line, const char *func) |
operator new, with debug line info More... | |
void * | operator new (size_t sz) |
void * | operator new (size_t sz, void *ptr) |
placement operator new More... | |
void * | operator new[] (size_t sz, const char *file, int line, const char *func) |
array operator new, with debug line info More... | |
void * | operator new[] (size_t sz) |
virtual bool | postCreateGpuPrograms (ProgramSet *programSet) |
virtual bool | preCreateGpuPrograms (ProgramSet *programSet) |
Static Public Attributes | |
static String | TargetLanguage |
Protected Types | |
typedef map< Parameter *, ParameterPtr >::type | LocalParameterMap |
typedef vector < MergeCombination >::type | MergeCombinationList |
typedef vector< MergeParameter > ::type | MergeParameterList |
typedef vector< Operand * >::type | OperandPtrVector |
typedef map< Parameter *, OperandPtrVector >::type | ParameterOperandMap |
Protected Member Functions | |
void | bindAutoParameters (Program *pCpuProgram, GpuProgramPtr pGpuProgram) |
Bind the auto parameters for a given CPU and GPU program set. More... | |
void | buildMergeCombinations () |
Build parameter merging combinations. More... | |
void | buildParameterReferenceMap (FunctionAtomInstanceList &funcAtomList, ParameterOperandMap ¶msRefMap) |
Builds a map between parameter and all the references to it. More... | |
void | buildTexcoordTable (const ShaderParameterList ¶mList, ShaderParameterList outParamsTable[4]) |
Internal function that builds parameters table. More... | |
virtual bool | compactVsOutputs (Function *vsMain, Function *fsMain) |
Compact the vertex shader output registers. More... | |
void | countVsTexcoordOutputs (Function *vsMain, int &outTexCoordSlots, int &outTexCoordFloats) |
Internal method that counts vertex shader texcoord output slots and output floats. More... | |
void | generateLocalSplitParameters (Function *func, GpuProgramType progType, MergeParameterList &mergedParams, ShaderParameterList &splitParams, LocalParameterMap &localParamsMap) |
Generates local parameters for the split parameters and perform packing/unpacking operation using them. More... | |
void | mergeParameters (ShaderParameterList paramsTable[4], MergeParameterList &mergedParams, ShaderParameterList &splitParams) |
Merge the parameters from the given table. More... | |
bool | mergeParametersByCombination (const MergeCombination &combination, ShaderParameterList paramsTable[4], MergeParameter *mergedParameter) |
Internal function that creates merged parameter from given combination. More... | |
void | mergeParametersByPredefinedCombinations (ShaderParameterList paramsTable[4], MergeParameterList &mergedParams) |
Internal function that creates merged parameter using pre defined combinations. More... | |
void | mergeParametersReminders (ShaderParameterList paramsTable[4], MergeParameterList &mergedParams, ShaderParameterList &splitParams) |
Merge reminders parameters that could not be merged into one slot using the predefined combinations. More... | |
void | rebuildFunctionInvocations (FunctionAtomInstanceList &funcAtomList, MergeParameterList &mergedParams, LocalParameterMap &localParamsMap) |
Rebuild function invocations by replacing references to old source parameters with the matching merged parameters components. More... | |
void | rebuildParameterList (Function *func, int paramsUsage, MergeParameterList &mergedParams) |
Rebuild the given parameters list using the merged parameters. More... | |
void | replaceParametersReferences (MergeParameterList &mergedParams, ParameterOperandMap ¶msRefMap) |
Replace references to old parameters with the new merged parameters. More... | |
void | replaceSplitParametersReferences (LocalParameterMap &localParamsMap, ParameterOperandMap ¶msRefMap) |
Replace references to old parameters that have been split with the new local parameters that represents them. More... | |
Static Protected Member Functions | |
static int | getParameterFloatCount (GpuConstantType type) |
Return number of floats needed by the given type. More... | |
static int | getParameterMaskByFloatCount (int floatCount) |
Return the parameter mask of by the float count type (I.E: X|Y for 2 etc..) More... | |
static int | getParameterMaskByType (GpuConstantType type) |
Return the parameter mask of by the given parameter type (I.E: X|Y for FLOAT2 etc..) More... | |
Protected Attributes | |
map< Function *, String * >::type | mFunctionMap |
int | mMaxTexCoordFloats |
int | mMaxTexCoordSlots |
MergeCombinationList | mParamMergeCombinations |
CG Language program processor class.
Definition at line 46 of file OgreShaderHLSLProgramProcessor.h.
|
protectedinherited |
Definition at line 169 of file OgreShaderProgramProcessor.h.
|
protectedinherited |
Definition at line 164 of file OgreShaderProgramProcessor.h.
|
protectedinherited |
Definition at line 135 of file OgreShaderProgramProcessor.h.
|
protectedinherited |
Definition at line 167 of file OgreShaderProgramProcessor.h.
|
protectedinherited |
Definition at line 168 of file OgreShaderProgramProcessor.h.
Ogre::RTShader::HLSLProgramProcessor::HLSLProgramProcessor | ( | ) |
Class constructor.
|
virtual |
Class destructor.
|
protectedinherited |
Bind the auto parameters for a given CPU and GPU program set.
|
protectedinherited |
Build parameter merging combinations.
|
protectedinherited |
Builds a map between parameter and all the references to it.
|
protectedinherited |
Internal function that builds parameters table.
paramList | The parameter list. |
outParamsTable | Will hold the texcoord params sorted by types in each row. |
|
protectedvirtualinherited |
Compact the vertex shader output registers.
vsMain | The vertex shader entry function. |
fsMain | The fragment shader entry function. Return true on success. |
|
protectedinherited |
Internal method that counts vertex shader texcoord output slots and output floats.
vsMain | The vertex shader entry function. |
outTexCoordSlots | Will hold the number of used output texcoord slots. |
outTexCoordFloats | Will hold the total number of floats used by output texcoord slots. |
|
protectedinherited |
Generates local parameters for the split parameters and perform packing/unpacking operation using them.
|
staticprotectedinherited |
Return number of floats needed by the given type.
|
staticprotectedinherited |
Return the parameter mask of by the float count type (I.E: X|Y for 2 etc..)
|
staticprotectedinherited |
Return the parameter mask of by the given parameter type (I.E: X|Y for FLOAT2 etc..)
|
inlinevirtual |
Return the target language of this processor.
Implements Ogre::RTShader::ProgramProcessor.
Definition at line 60 of file OgreShaderHLSLProgramProcessor.h.
|
protectedinherited |
Merge the parameters from the given table.
paramsTable | Source parameters table. |
mergedParams | Will hold the merged parameters list. |
|
protectedinherited |
Internal function that creates merged parameter from given combination.
combination | The merge combination to try. |
paramsTable | The params table sorted by types in each row. |
mergedParameter | Will hold the merged parameter. |
|
protectedinherited |
Internal function that creates merged parameter using pre defined combinations.
paramsTable | Source parameters table. |
mergedParams | The merged parameters list. |
|
protectedinherited |
Merge reminders parameters that could not be merged into one slot using the predefined combinations.
paramsTable | The params table sorted by types in each row. |
mergedParams | The merged parameters list. |
splitParams | The split parameters list. |
|
inlineinherited |
Definition at line 96 of file OgreMemoryAllocatedObject.h.
|
inlineinherited |
Definition at line 102 of file OgreMemoryAllocatedObject.h.
|
inlineinherited |
Definition at line 108 of file OgreMemoryAllocatedObject.h.
|
inlineinherited |
Definition at line 113 of file OgreMemoryAllocatedObject.h.
|
inlineinherited |
Definition at line 119 of file OgreMemoryAllocatedObject.h.
|
inlineinherited |
operator new, with debug line info
Definition at line 68 of file OgreMemoryAllocatedObject.h.
|
inlineinherited |
Definition at line 73 of file OgreMemoryAllocatedObject.h.
|
inlineinherited |
placement operator new
Definition at line 79 of file OgreMemoryAllocatedObject.h.
|
inlineinherited |
array operator new, with debug line info
Definition at line 86 of file OgreMemoryAllocatedObject.h.
|
inlineinherited |
Definition at line 91 of file OgreMemoryAllocatedObject.h.
|
virtual |
Implements Ogre::RTShader::ProgramProcessor.
|
virtual |
Implements Ogre::RTShader::ProgramProcessor.
|
protectedinherited |
Rebuild function invocations by replacing references to old source parameters with the matching merged parameters components.
|
protectedinherited |
Rebuild the given parameters list using the merged parameters.
|
protectedinherited |
Replace references to old parameters with the new merged parameters.
|
protectedinherited |
Replace references to old parameters that have been split with the new local parameters that represents them.
Definition at line 264 of file OgreShaderProgramProcessor.h.
|
protectedinherited |
Definition at line 263 of file OgreShaderProgramProcessor.h.
|
protectedinherited |
Definition at line 261 of file OgreShaderProgramProcessor.h.
|
protectedinherited |
Definition at line 259 of file OgreShaderProgramProcessor.h.
|
static |
Definition at line 71 of file OgreShaderHLSLProgramProcessor.h.