站点图标 久久日记本

C++游戏开发学习笔记02:初始化D3D

MARK,有点困了,待续,

//初始化D3D环境
HRESULT InitialiseD3D()

{

     //初始化接口

    g_pD3D = Direct3DCreate9(D3D_SDK_VERSION);



    if(g_pD3D == NULL)

    {

        return E_FAIL;

    }



     //得到显示设备的显示模式

    D3DDISPLAYMODE d3ddm;

    if(FAILED(g_pD3D->GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &d3ddm)))

    {

        return E_FAIL;

    }



    //创建变量存储设备信息

     D3DPRESENT_PARAMETERS d3dpp;

    ZeroMemory(&d3dpp, sizeof(d3dpp));





    //设置后台缓冲区参数

    d3dpp.Windowed = TRUE;//使用窗口模式

    d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD; //翻转形式

    d3dpp.BackBufferFormat = d3ddm.Format;//像素格式



     //创建D3D设备指针

    if(FAILED(g_pD3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL,

              hWnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING, &d3dpp,

              &g_pD3DDevice)))

     //在哪个显示器中创建设备,图形绘制方式,窗口句柄,顶点处理方式,后台缓冲区参数变量,设备对象

    {

        return E_FAIL;

    }



     //设置剪裁方式

    //g_pD3DDevice->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE);

     g_pD3DDevice->SetRenderState(D3DRS_CULLMODE, D3DCULL_CW);/////////////////////////////////



     //关闭灯光

    g_pD3DDevice->SetRenderState(D3DRS_LIGHTING, FALSE);



    return S_OK;

}
退出移动版