用Dx创建一个简单的窗口
2014-02-10 17:32
225 查看
效果:
D3D的初始化流程:
1、创建D3D对象
对象类型:LPDIRECT3D9
创建函数:Direct3DCreate9(D3D_SDK_VERSION)
2、创建D3D设备
设备对象类型:LPDIRECT3DDEVICE9
创建函数:g_D3D -> CreateDevice(*,*,*,*,A,保存设备的对象);
A:用来初始化设备的参数
A的类型:D3DPRESENT_PARAMETERS
常用参数包括:BackBufferWidth BackBufferHeight BackBufferFormat
(这个格式需要从DISPLAYMODE获得,用GetAdapterDisplayMode)
Windowed SwapEffect
3、渲染
清理目标缓存 clear(0,NULL,D3DCLEAR_TARGET,D3DCOLOR_XRGB(255,0,0),1.0f,0);
开始渲染 BeginScene()
停止渲染 EndScene()
显示图像 Present()
对应源代码:
LPDIRECT3D9 g_D3D;
LPDIRECT3DDEVICE9 g_D3DDevice;
//创建D3D对象
g_D3D = Direct3DCreate9(D3D_SDK_VERSION);
//创建D3D设备 : 需要 初始化设备的参数对象D3DPRESENT_PARAMETERS,这个对象又需要DISPLAYMODE的格式
//1、获取显示模式的格式
D3DDISPLAYMODE displaymode;
g_D3D -> GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &displayMode);
//2、创建初始化设备的参数对象
D3DPRESENT_PARAMETERS d3dpp;
d3dpp.windowed = false;
d3dpp.BackBufferWidht = 640;
d3dpp.BackBufferHeight = 480;
OR
d3dpp.windowed = true;
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
d3dpp.BackBufferFormat = displaymode.Format;
//3、创建D3D设备对象
g_D3D -> CreateDevice(D3DADAPTER_DEFAULT,D3DDEVTYPE_HAL,hWnd,
D3DCREATE_SOFTWARE_VERTEXPROCESSING,&d3dpp,&g_D3DDevice);
//下面就可以开始渲染了
g_D3DDevice -> Clear(0,NULL,D3DCLEAR_TARGET,D3DCOLOR_XRGB(255,0,0),1.0f,0);
g_D3DDevice -> BeginScene();
g_D3DDevice -> EndScene();
g_D3DDevice -> Present(0,0,0,0);
D3D的初始化流程:
1、创建D3D对象
对象类型:LPDIRECT3D9
创建函数:Direct3DCreate9(D3D_SDK_VERSION)
2、创建D3D设备
设备对象类型:LPDIRECT3DDEVICE9
创建函数:g_D3D -> CreateDevice(*,*,*,*,A,保存设备的对象);
A:用来初始化设备的参数
A的类型:D3DPRESENT_PARAMETERS
常用参数包括:BackBufferWidth BackBufferHeight BackBufferFormat
(这个格式需要从DISPLAYMODE获得,用GetAdapterDisplayMode)
Windowed SwapEffect
3、渲染
清理目标缓存 clear(0,NULL,D3DCLEAR_TARGET,D3DCOLOR_XRGB(255,0,0),1.0f,0);
开始渲染 BeginScene()
停止渲染 EndScene()
显示图像 Present()
对应源代码:
LPDIRECT3D9 g_D3D;
LPDIRECT3DDEVICE9 g_D3DDevice;
//创建D3D对象
g_D3D = Direct3DCreate9(D3D_SDK_VERSION);
//创建D3D设备 : 需要 初始化设备的参数对象D3DPRESENT_PARAMETERS,这个对象又需要DISPLAYMODE的格式
//1、获取显示模式的格式
D3DDISPLAYMODE displaymode;
g_D3D -> GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &displayMode);
//2、创建初始化设备的参数对象
D3DPRESENT_PARAMETERS d3dpp;
d3dpp.windowed = false;
d3dpp.BackBufferWidht = 640;
d3dpp.BackBufferHeight = 480;
OR
d3dpp.windowed = true;
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
d3dpp.BackBufferFormat = displaymode.Format;
//3、创建D3D设备对象
g_D3D -> CreateDevice(D3DADAPTER_DEFAULT,D3DDEVTYPE_HAL,hWnd,
D3DCREATE_SOFTWARE_VERTEXPROCESSING,&d3dpp,&g_D3DDevice);
//下面就可以开始渲染了
g_D3DDevice -> Clear(0,NULL,D3DCLEAR_TARGET,D3DCOLOR_XRGB(255,0,0),1.0f,0);
g_D3DDevice -> BeginScene();
g_D3DDevice -> EndScene();
g_D3DDevice -> Present(0,0,0,0);
相关文章推荐
- 用SDK创建一个简单带滚动条的窗口
- 创建一个简单的win32 应用窗口程序
- 创建一个简单的窗口(eclipse c++)
- 使用C++与SFML编写一个简单的撞球游戏Part2——创建游戏窗口
- xlib创建一个openGL简单窗口
- [置顶] java最简单的知识之创建一个简单的windows窗口,利用Frame类
- WindowsApi学习笔记-创建一个简单的窗口
- Win32创建一个简单的窗口
- 【Direct3D9】用D3D9实现一个简单的Galgame #1 创建Win32窗口
- MFC(一):win32创建一个最简单的窗口
- 使用JFram创建一个简单的窗口
- C# 不用IDE 创建一个简单的Window窗口程序
- 用SDK创建一个简单的窗口
- 用SDK创建一个简单的窗口
- 创建CEGUI窗口入门——讲述如何创建一个简单的CEGUI窗口
- 【PT君】一步步教你用C#+DX制作3D游戏【第一天】创建一个窗口
- 不使用API,创建一个最简单的窗口
- Opengl备忘--创建一个简单GLFW窗口
- MFC下创建一个简单的窗口
- cegui 4 创建CEGUI窗口入门——讲述如何创建一个简单的CEGUI窗口.