58 lines
967 B
C++
58 lines
967 B
C++
#pragma once
|
|
|
|
#define SKIN_FILE_STRING "Eternity Engine Skin File 0.1"
|
|
#define SKIN_FILE_VERSION 10
|
|
|
|
struct SSkinFileHeader
|
|
{
|
|
char szHeaderString[ 256 ];
|
|
char szMeshName[ 256 ];
|
|
int nVersion;
|
|
int nSubMeshCount;
|
|
char cReserved[ 504 ];
|
|
};
|
|
|
|
struct SSubSkinHeader
|
|
{
|
|
char szMaterialName[ 256 ];
|
|
char szEffectName[ 256 ];
|
|
float fAlphaValue;
|
|
bool bEnableAlpha;
|
|
char cReserved[ 507 ];
|
|
};
|
|
|
|
class CSaveSkin
|
|
{
|
|
public:
|
|
CSaveSkin(void);
|
|
virtual ~CSaveSkin(void);
|
|
|
|
protected:
|
|
enum ExportParamType {
|
|
PT_UNKNOWN = -1,
|
|
PT_INT = 0,
|
|
PT_FLOAT = 1,
|
|
PT_FLOAT4 = 2,
|
|
PT_TEX = 3,
|
|
|
|
PT_FORCE_DWORD = 0xFFFFFFFF,
|
|
};
|
|
struct SParamStruct {
|
|
char szParamName[256];
|
|
ExportParamType Type;
|
|
union {
|
|
int nInt;
|
|
float fFloat;
|
|
float fFloat4[4];
|
|
char *szStr;
|
|
};
|
|
};
|
|
|
|
std::vector< SParamStruct > m_VecParamList;
|
|
|
|
public:
|
|
void SaveSkin( FILE *fp, Mtl *pMtl );
|
|
bool CheckDirectX9ShaderClass( Mtl *pMtl );
|
|
void WriteString( FILE *fp, const char *pString );
|
|
|
|
};
|