📄 texturemanager.h
字号:
// TextureManager.h: interface for the CTextureManager class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_TEXTUREMANAGER_H__E752229A_C164_4A45_A408_5946D4EC64F3__INCLUDED_)
#define AFX_TEXTUREMANAGER_H__E752229A_C164_4A45_A408_5946D4EC64F3__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#define ID_AM 0 // ambient
#define ID_DI 1 // diffuse
#define ID_SP 2 // specular
#define ID_SH 3 // shininesNs
#define ID_SS 4 // shininess strength
#define ID_SI 5 // self-illumination
#define ID_OP 6 // opacity
#define ID_FI 7 // filter color
#define ID_BU 8 // bump
#define ID_RL 9 // reflection
#define ID_RR 10 // refraction
#define ID_DP 11 // displacement
#define ID_LM 12 // 扼捞飘 甘.. 悼立捞 4父 眠啊..
#define ID_MASK 13 // 扼捞飘 甘.. 悼立捞 4父 眠啊..
struct MCTEXTURE{
int nIndex;
LPDIRECT3DTEXTURE9 pTexture;
char szTextureName[256];
MCTEXTURE() :
nIndex(-1),pTexture(NULL)
{
}
~MCTEXTURE()
{
nIndex = -1;
SAFE_RELEASE(pTexture);
ZeroMemory(szTextureName,sizeof(szTextureName));
}
};
struct MCTEXTUREEX{
int nClass;
int nSubNumber;
int nType;
int nChannel;
float fUOffset;
float fVOffset;
float fUScale;
float fVScale;
float fUAng;
float fVAng;
float fWAng;
MCTEXTURE * pTexture;
MCTEXTURE * pBumpTex;
MCTEXTURE * pSpecularTex;
MCTEXTURE * pShadowTex;
MCTEXTURE * pBlendTex;
MCTEXTUREEX() :
nClass(0),nSubNumber(0),nType(0),nChannel(0),
fUOffset(0.0f),fVOffset(0.0f),fUScale(0.0f),fVScale(0.0f),fUAng(0.0f),fVAng(0.0f),fWAng(0.0f),
pTexture(NULL),pBumpTex(NULL),pSpecularTex(NULL),pShadowTex(NULL),pBlendTex(NULL)
{
}
~MCTEXTUREEX()
{
nClass = 0;
nSubNumber = 0;
nType = 0;
nChannel = 0;
fUOffset = 0.0f;
fVOffset = 0.0f;
fUScale = 0.0f;
fVScale = 0.0f;
fUAng = 0.0f;
fVAng = 0.0f;
fWAng = 0.0f;
pTexture = NULL;
pBumpTex = NULL;
pSpecularTex = NULL;
pShadowTex = NULL;
pBlendTex = NULL;
}
};
struct SMETERIALDATA
{
SMETERIALDATA()
{
nType = 0;
nTexCount = 0;
m_pTexture = NULL;
nNumsubmtls = 0;
pSubMeterial = NULL;
}
~SMETERIALDATA()
{
for( int i=0;i<nTexCount;i++)
{
SAFE_DELETE( m_pTexture[i] );
}
SAFE_DELETE_ARRAY( m_pTexture );
SAFE_DELETE_ARRAY( pSubMeterial );
}
int nType;
int nTexCount;
MCTEXTUREEX ** m_pTexture;
int nNumsubmtls;
SMETERIALDATA * pSubMeterial;
};
class CTextureManager
{
public:
CTextureManager();
virtual ~CTextureManager();
public:
MCTEXTURE * AddTexture( MCTEXTURE * pTexture );
MCTEXTURE * AddTexture( char * szTexName );
MCTEXTURE * AddBumpTexture( MCTEXTURE * pTexture );
void DelTexture( int nIndex );
MCTEXTURE * FindTexture( int nIndex, char * szTextureName );
HRESULT InvalidateDeviceObjects();
HRESULT RestoreDeviceObjects();
void DestroyTexture();
private:
vector<MCTEXTURE *> m_vlTexture;
};
#endif // !defined(AFX_TEXTUREMANAGER_H__E752229A_C164_4A45_A408_5946D4EC64F3__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -