Technique Set Asset: Difference between revisions
Aerosoul94 (talk | contribs) Created page with "__NOTOC__ Category:Assets Category:CoD4 Category:WaW Category:MW2 Category:BO1 Category:MW3 Category:BO2 Category:Ghosts <source lang="cpp"> st..." |
Aerosoul94 (talk | contribs) No edit summary |
||
| Line 68: | Line 68: | ||
}; | }; | ||
#ifdef COD4 | #ifdef PS3 | ||
#ifdef COD4 | |||
#elif defined WAW | #define MAX_TECHNIQUES 26 | ||
#elif defined WAW | |||
#elif defined MW2 | #define MAX_TECHNIQUES 51 | ||
#elif defined MW2 | |||
#elif defined BO1 | #define MAX_TECHNIQUES 37 | ||
#elif defined BO1 | |||
#elif defined MW3 | #define MAX_TECHNIQUES 71 | ||
#elif defined MW3 | |||
#elif defined BO2 | #define MAX_TECHNIQUES 41 | ||
#elif defined BO2 | |||
#elif defined GHOSTS | #define MAX_TECHNIQUES 32 | ||
#define MAX_TECHNIQUES | #elif defined GHOSTS | ||
#define MAX_TECHNIQUES 39 | |||
#endif | |||
#endif | |||
#ifdef XBOX360 | |||
#ifdef COD4 | |||
#define MAX_TECHNIQUES 26 | |||
#elif defined MW2 | |||
#define MAX_TECHNIQUES 33 | |||
#elif defined MW3 | |||
#define MAX_TECHNIQUES 37 | |||
#endif | |||
#endif | |||
#ifdef PC | |||
#ifdef COD4 | |||
#define MAX_TECHNIQUES 34 | |||
#elif defined MW2 | |||
#define MAX_TECHNIQUES 48 | |||
#elif defined BO1 | |||
#define MAX_TECHNIQUES 130 | |||
#elif defined MW3 | |||
#define MAX_TECHNIQUES 54 | |||
#elif defined BO2 | |||
#define MAX_TECHNIQUES 36 | |||
#endif | |||
#endif | #endif | ||
Revision as of 22:38, 30 January 2014
struct MaterialArgumentCodeConst
{
unsigned __int16 index;
char firstRow;
char rowCount;
};
union MaterialArgumentDef
{
const float *literalConst;
MaterialArgumentCodeConst codeConst;
unsigned int codeSampler;
unsigned int nameHash;
};
struct MaterialShaderArgument
{
unsigned __int16 type;
unsigned __int16 dest;
MaterialArgumentDef u;
};
struct MaterialVertexDeclaration
{
#ifdef COD4 || WAW || BO1 || BO2
char unknown[0x22];
#elif defined MW2 || MW3
char unknown[0x1C];
#elif defined GHOSTS
char unknown[0x20];
#endif
};
#pragma pack(push, 4)
struct MaterialPass
{
MaterialVertexDeclaration *vertexDecl;
MaterialVertexShader *vertexShader;
MaterialPixelShader *pixelShader;
char perPrimArgCount;
char perObjArgCount;
char stableArgCount;
char customSamplerFlags;
char precompiledIndex;
#ifdef BO2
char unknown[0x13];
#endif
MaterialShaderArgument *args;
};
#pragma pack(pop)
struct MaterialTechnique
{
const char *name;
unsigned __int16 flags;
unsigned __int16 passCount;
MaterialPass passArray[1]; // count = passCount
};
#ifdef PS3
#ifdef COD4
#define MAX_TECHNIQUES 26
#elif defined WAW
#define MAX_TECHNIQUES 51
#elif defined MW2
#define MAX_TECHNIQUES 37
#elif defined BO1
#define MAX_TECHNIQUES 71
#elif defined MW3
#define MAX_TECHNIQUES 41
#elif defined BO2
#define MAX_TECHNIQUES 32
#elif defined GHOSTS
#define MAX_TECHNIQUES 39
#endif
#endif
#ifdef XBOX360
#ifdef COD4
#define MAX_TECHNIQUES 26
#elif defined MW2
#define MAX_TECHNIQUES 33
#elif defined MW3
#define MAX_TECHNIQUES 37
#endif
#endif
#ifdef PC
#ifdef COD4
#define MAX_TECHNIQUES 34
#elif defined MW2
#define MAX_TECHNIQUES 48
#elif defined BO1
#define MAX_TECHNIQUES 130
#elif defined MW3
#define MAX_TECHNIQUES 54
#elif defined BO2
#define MAX_TECHNIQUES 36
#endif
#endif
struct MaterialTechniqueSet
{
char *name;
char worldVertFormat;
MaterialTechnique *techniques[MAX_TECHNIQUES];
};