第一步,创建一个视口
任何 Windows 应用程序运行时必须做的第一件事情是要创建一个应用程序窗口显示给用户。
要做到这一点, CreateDevice 示例项目开始在 WinMain 函数的执行。下面的示例代码执行窗口的初始化。
INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR, INT )
{
//
注册一个窗口类
WNDCLASSEX wc = { sizeof(WNDCLASSEX), CS_CLASSDC, MsgProc, 0L, 0L,
GetModuleHandle(NULL), NULL, NULL, NULL, NULL,
"Direct3D Tutorial", NULL };
RegisterClassEx( &wc );
//
创建这个应用程序的视口
HWND hWnd = CreateWindow( "Direct3D Tutorial", "Direct3D Tutorial 01: CreateDevice",
WS_OVERLAPPEDWINDOW, 100, 100, 300, 300,
GetDesktopWindow(), NULL, wc.hInstance, NULL );
1 、前面的代码示例是标准的 Windows 编程。
2 、该示例开始于定义和注册一个名为“ Direct3D Tutorial ”的窗口类。
3 、在这个类被注册后,示例代码使用了这个被注册的类创建了一个基本的 300*300 顶层窗 4 、口,这个窗口没有菜单或者子窗口。
5 、该示例使用 WS_OVERLAPPEDWINDOW 窗口样式,以创建一个窗口,其中包括最小化,最大化和关闭按钮就像是最常见的窗口应用程序一样。 (如果这个示例是运行在全屏幕模式,首选的窗口样式应该是 WS_EX_TOPMOST ,它指定所创建的窗口应放在高于一切非最顶层窗口,应该留在他们上面,甚至当窗口被停用。)
6 、当窗口创建,代码示例调用标准的 Win32 函数来显示和更新窗口。
随着应用程序窗口准备就绪,可以开始建立必要的 Direct3D 对象,描述在第 2 步 - 初始化 Direct3D 的。
第二步,初始化 Direct3D
1 、 CreateDevice 项目示例 展示了 Direct3D 在 initD3D 方法下的初始化。 ( initD3D 方法被 WinMain 当一个 Windows 创建之后调用)
2 、在你创建了一个应用视口之后,你就准备好了要去初始化这个 Direct3D 对象,你将在只有使用这个对象来渲染你的屏幕。
3 、这个过程包括创建一个对象、设置显示的属性、并且在最后创建 Direct3D 驱动
1 、在创建完 Direct3D 对象之后,使用 IDirect3D9::CreateDevice 方法创建一个驱动、设置驱动器、驱动类型、和一些设置。