这是DX9龙书里面简单的一个例程,其中 d3dUtility.h , d3dUtility.h 为dx9固有框架,在注释里将许多涉及到win32编程的一些知识(方便以后需要时查看)在我的另一篇博客也对框架的一些基本功能进行了一点解释,主要还是边看代码,边看注释吧。http://blog.csdn.net/zero_witty/article/details/51621908
#ifndef __d3dUtilityH__
#define __d3dUtilityH__
#include<d3dx9.h>
#include <string>
namespace d3d
{
bool InitD3D(
HINSTANCE hInstance, //当前应用程序实例的句柄
int width, int height, //后台缓存的表面宽度和高度
bool windowed, //是否窗口化
D3DDEVTYPE deviceType, //D3D设备类型 硬件(HAL)或者引用(REF)或软件(SW)
IDirect3DDevice9** device);//以创建的设备(用于输出)
int EnterMsgLoop(
bool(*ptr_display)(float timeDelta));
LRESULT CALLBACK WndProc(
HWND hwnd,
UINT msg,
WPARAM wParam,
LPARAM lParam);
template<class T>void Release(T t)
{
if (t)
{
t->Release();
t = 0;
}
}
template<class T>void Delete(T t)
{
if (t)
{
delete t;
t = 0;
}
}
}
#endif // __d3dUtilityH__
d3dUtility.cpp
#include "d3dUtility.h"
bool d3d::InitD3D(HINSTANCE hInstance, int width, int height, bool windowed, D3DDEVTYPE deviceType, IDirect3DDevice9 **device)
{
WNDCLASS wc;
wc.style = CS_HREDRAW | CS_VREDRAW;//窗口类型(当水平长度,垂直长度,或者位置改变,