欢迎来到天天文库
浏览记录
ID:52347188
大小:174.14 KB
页数:5页
时间:2020-03-26
《【 Visual C++】游戏开发笔记之二——最简单的DirectX,.pdf》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、【C++游戏编程】游戏开发梦想的集散地—毛星云(浅墨)的专栏愿尽以绵薄之力,薪火相传游戏开发的信仰与梦想,复兴国产单机游戏。【VisualC++】游戏开发笔记之二——最简单的DirectX,vc窗口的编写分类:【DirectX】【VisualC++】游戏开发2012-03-0419:5321964人阅读评论(65)收藏举报游戏c++direct3dparametersnullwinapi笔记一中我们介绍了如何用代码创建空的win32窗口,然而创建空的win32窗口只完成了一半的工作,接下来要做的工作是设置Direct3D,从而可以在屏幕上渲染图形。Direct3D要调用很多函数才能
2、成功设置API。一旦完成设置,并且设置成功,就可以向屏幕上渲染图形。下面是函数中设置Direct3D所需的最少代码。boolInitializeD3D(HWNDhWnd,boolfullscreen){D3DDISPLAYMODEdisplayMode;//CreatetheD3Dobject.g_D3D=Direct3DCreate9(D3D_SDK_VERSION);if(g_D3D==NULL)returnfalse;//Getthedesktopdisplaymode.if(FAILED(g_D3D->GetAdapterDisplayMode(D3DADAPTER_DEF
3、AULT,&displayMode)))returnfalse;//SetupthestructureusedtocreatetheD3DDeviceD3DPRESENT_PARAMETERSd3dpp;ZeroMemory(&d3dpp,sizeof(d3dpp));if(fullscreen){d3dpp.Windowed=FALSE;d3dpp.BackBufferWidth=640;d3dpp.BackBufferHeight=480;}elsed3dpp.Windowed=TRUE;d3dpp.SwapEffect=D3DSWAPEFFECT_DISCARD;d3dpp.
4、BackBufferFormat=displayMode.Format;//CreatetheD3DDeviceif(FAILED(g_D3D->CreateDevice(D3DADAPTER_DEFAULT,D3DDEVTYPE_HAL,hWnd,D3DCREATE_SOFTWARE_VERTEXPROCESSING,&d3dpp,&g_D3DDevice))){returnfalse;}returntrue;}上段代码中的InitializeD3D函数的参数有窗口句柄hWnd,标识窗口是否全屏的标识符fullscreen。窗口句柄是在调用CreateWindows()函数创建窗
5、口句柄时,返回给WinMain()函数的数值。InitializeD3D()函数开始先调用Direct3DCreat9()函数。Direct3DCreat9()函数将创建一个Direct3D接口对象,并返回该对象。该函数所带的参数值为D3D_SDK_VERSION。如果从该函数创建的接口不为NULL(空),那么接口创建成功。如果是NULL,那么创建接口时就会出错。其他步骤很大程度上取决于是否成功调用Direct3DCreat9()函数,所以一旦出现错误,就会立刻退出Direct3D初始化程序。接下来调用的是GetAdapterDisplayMode()函数。该函数将返回当前的显示信
6、息,如桌面分辨率(宽度和高度),显示格式,显示器的刷新频率等。该函数的参数包括正在查询的适配器以及保存信息的显示模式对象。将D3DADAPTER_DEFAULT发送给函数,详细说明代码,通过这些代码可以获取想要的主显卡信息。1卡信息。检索显卡信息之后,函数接下来会创建D3DPRESENT_PARAMETERS对象。D3DPRESENT_PARAMETERS结构用于定义Direct3D窗口的显示信息。这样可以设置正在创建窗口的期望宽度和高度,刷新率,显示模式为全屏或窗口,后天缓存数目等。D3DPRESENT_PARAMETERS结构体的定义:typedefstruct_D3DPRES
7、ENT_PARAMETERS_{UINTBackBufferWidth;//窗口宽度UINTBackBufferHeight;//窗口高度D3DFORMATBackBufferFormat;//渲染后台缓存的格式UINTBackBufferCount;//想要用于渲染的后台缓存总数D3DMULTISAMPLE_TYPEMultiSampleType;D3DSWAPEFFECTSwapEffect;HWNDhDeviceWindow;BOOLWindowed;BOOLE
此文档下载收益归作者所有