用Dx创建一个简单的窗口

效果:
        

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);

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值