现在开始,directx9.0的帖子。第一章,directX的初始化。
1,项目准备
需要插入的.lib文件
d3dxof.lib dxguid.lib d3dx9dt.lib d3d9.lib winmm.lib
总共5个
2代码构成
1个工程文件,2个头文件,2个.cpp文件。其中头文件
stdafx.h
工程的最上层文件。
d3dsetup9.h
CD3DSetup9类的定义文件
.cpp文件:
main.cpp
WinMain()函数和WindProc()函数。简而言之,只是调用CD3DSetup9类
d3dsetup.cpp
CD3DSetup类的成员函数实现文件,初始化以及render()等
3详细实现
//stdafx.h
#pragma once
#include <windows.h>
//d3dsetup9.h
#include "stdafx.h" #include <d3d9.h>
//memory release #define SAFE_DELETE(p) { if(p) { delete (p); (p)=NULL; } } #define SAFE_DELETE_ARRAY(p) { if(p) { delete[] (p); (p)=NULL; } } #define SAFE_RELEASE(p) { if(p) { (p)->Release(); (p)=NULL; } }
//Direct3D9 class class CD3DSetup9 { LPDIRECT3D9 m_pD3D; LPDIRECT3DDEVICE9 m_pd3dDevice; D3DPRESENT_PARAMETERS param;
int m_iwidth, m_iheight; //windows width and height int m_iloop;
HRESULT InitD3D(HWND hWnd, BOOL bWin); //Direct3D9
HRESULT AppLoop(); //
public: CD3DSetup9();
~CD3DSetup9();
HRESULT Run(HINSTANCE hInst, char szWinName[], int width, int height, BOOL bWin); //
LRESULT MsgProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
HRESULT Render(); //
HRESULT Cleanup(); //
};
........(continu..