// drawadapterfindd3d.h #ifndef _3DRENDERER_DRAWADAPTERFINDD3D_H_ #define _3DRENDERER_DRAWADAPTERFINDD3D_H_ #include #include "drawunitrenderer.h" enum ENUM_VPT ///< Vertex Processing Type { VPT_SOFTWARE = 0, VPT_MIXED, VPT_HARDWARE, VPT_PURE_HARDWARE }; typedef struct { UINT m_uiAdapter; D3DDEVTYPE m_DevType; D3DCAPS9 m_Caps; CWzArray m_arVertexProcessingType; int m_iDisplayModeForFullScreen; D3DFORMAT m_DepthStencilFmt; ///< m_iDisplayModeForFullScreen ¿¡ ¸Â´Â Depth, Stencil buffer } St_DeviceInfo; typedef struct { /// @name µð¹ÙÀ̽º ÀÎ½Ä UINT m_uiAdapter; ///< ¾îµªÅÍ ¹øÈ£ D3DADAPTER_IDENTIFIER9 m_D3dAdapterIdentifier; ///< ¾îµªÅÍ ÀÎ½Ä¿ë µ¥ÀÌÅÍ /// @name µð¸à¼Ç CWzArray m_arDisplayMode; CWzArray m_arDeviceInfo; int m_iCurrentDeviceInfo; D3DDISPLAYMODE m_dmDspModeForWindowMode; } St_AdapterInfoD3D; class CDrawAdapterFindD3d : public CDrawUnitRenderer { public: CDrawAdapterFindD3d(); virtual ~CDrawAdapterFindD3d(); virtual void Clear(); public: virtual BOOL Create( HWND hWnd, DWORD dwVenderId, DWORD dwDeviceId, DWORD dwOption = 0); virtual void Destroy(); protected: LPDIRECT3D9 m_lpD3d; /// @name --- 3D ±×·¡ÇÈ ÀåÄ¡ ¸®½ºÆ® °ü¸® protected: CWzArray m_arAdapterInfo; int m_iCurrentAdapterInfo; BOOL FindAdapters( DWORD dwVenderId = 0, DWORD dwDeviceId = 0); BOOL FindDevices( St_AdapterInfoD3D *pAdapterInfo, CWzArray *parAdapterFormat); /// @name --- ¿øÇÏ´Â ÇØ»óµµ/»ö»ó/¸ðµå ÁöÁ¤ public: virtual BOOL SelectMode( St_ScreenFormat ScreenFormat); virtual int GetAvailableScreenSettings( St_ScreenSetting *pScreenSettings, int iMaxCount); public: virtual BOOL IsSupportedIndex32(); }; #endif // _3DRENDERER_DRAWADAPTERFINDD3D_H_