/* ********************************************************************* * CSceneStateMgr * ÆÄÀÏ : SceneStateMgr.h * ±â´É : Caldron Engine ¾È¿¡¼­ d3d °ü·Ã matrix, State µîÀ» °ü¸® ÇÏ´Â manager class * history : 2003.12.15 (wizardbug) ÀÛ¼º ********************************************************************** */ #if !defined(AFX_SCENESTATEMGR_H__A66E73D5_3657_498A_B9E3_CEF9ADE40B7C__INCLUDED_) #define AFX_SCENESTATEMGR_H__A66E73D5_3657_498A_B9E3_CEF9ADE40B7C__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 #include "SceneManager.h" enum D3DMATRIX__{ D3DMATRIX_WORLD, D3DMATRIX_VIEW, D3DMATRIX_PROJECT, D3DMATRIX_EXT1, D3DMATRIX_EXT2, D3DMATRIX_EXT3, D3DMATRIX_NUM }; const int D3DRENDERSTATE_NUM = 210; const int D3DTEXTURESTAGE_NUM = 8; const int D3DTEXTURESTAGESTATE_NUM = 33; class CSceneStateMgr { public: CSceneStateMgr(); virtual ~CSceneStateMgr(); static void _Init(); static void _Release(); inline static D3DXMATRIX _GetD3DMatrix(const int &iIndex) { return (ms_matList[iIndex]); } inline static void _SetD3DMatrix(const int &iIndex, const D3DXMATRIX &matObj) { if((iIndex >= 0) && (iIndex < D3DMATRIX_NUM)) { ms_matList[iIndex] = matObj; } } static void _ApplyD3DMatrix(); static void _SetD3DRenderState(D3DRENDERSTATETYPE Type,DWORD Value); static void _SetD3DTextureStageState(DWORD Stage,D3DTEXTURESTAGESTATETYPE Type,DWORD Value); protected: static D3DXMATRIX ms_matList[D3DMATRIX_NUM]; static DWORD ms_lstRenderState[D3DRENDERSTATE_NUM]; static DWORD ms_lstTextureStageState[D3DTEXTURESTAGE_NUM][D3DTEXTURESTAGESTATE_NUM]; }; #endif // !defined(AFX_SCENESTATEMGR_H__A66E73D5_3657_498A_B9E3_CEF9ADE40B7C__INCLUDED_)