27 #ifndef _ShaderProgramProcessor_
28 #define _ShaderProgramProcessor_
63 virtual const String& getTargetLanguage()
const = 0;
70 virtual bool preCreateGpuPrograms(
ProgramSet* programSet) = 0;
76 virtual bool postCreateGpuPrograms(
ProgramSet* programSet) = 0;
95 void addSourceParameter(
ParameterPtr srcParam,
int mask);
110 int getUsedFloatCount();
113 ParameterPtr getDestinationParameter(
int usage,
int index);
118 void createDestinationParameter(
int usage,
int index);
127 int mSrcParameterMask[4];
129 int mDstParameterMask[4];
143 size_t srcParameterTypeCount[4];
145 int srcParameterMask[4];
148 int float1Count,
int float1Mask,
149 int float2Count,
int float2Mask,
150 int float3Count,
int float3Mask,
151 int float4Count,
int float4Mask)
153 srcParameterTypeCount[0] = float1Count;
154 srcParameterTypeCount[1] = float2Count;
155 srcParameterTypeCount[2] = float3Count;
156 srcParameterTypeCount[3] = float4Count;
157 srcParameterMask[0] = float1Mask;
158 srcParameterMask[1] = float2Mask;
159 srcParameterMask[2] = float3Mask;
160 srcParameterMask[3] = float4Mask;
174 void buildMergeCombinations();
188 void countVsTexcoordOutputs(
Function* vsMain,
int& outTexCoordSlots,
int& outTexCoordFloats);
252 static int getParameterMaskByFloatCount(
int floatCount);