标题:dirext里面有两代码不明白 可以帮我解释一下吗
只看楼主
q345918550q
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2010-3-28
结帖率:30%
 问题点数:0 回复次数:0 
dirext里面有两代码不明白 可以帮我解释一下吗
HRESULT InitD3D(HWND hWnd)
{
        if(g_pD3D == NULL)
    {
        return E_FAIL;
    }

       typedef struct _D3DDISPLAYMODE
     {
        UINT             Width;
        UINT             Height;
        UINT             RefreshRate;
        D3DFORMAT         Format;
     } D3DDISPLAYMODE
   
    D3DDISPLAYMODE d3ddm;
    if(FAILED(g_pD3D->GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &d3ddm)))
    {
        return E_FAIL;
    }

        D3DPRESENT_PARAMETERS d3dpp;
    ZeroMemory(&d3dpp, sizeof(d3dpp));

    d3dpp.Windowed = TRUE;
        d3dpp.BackBufferFormat = d3ddm.Format;

    D3DCAPS9 caps;
    g_pD3D ->GetDeviceCaps(
                    D3DADAPTER_DEFAULT, // 主显示设备
                     D3DDEVTYPE_HAL,    // 硬件处理的方式   
                    &caps            //返回填充后的D3DCAPS9结构,包含主显示设备的能力
            );                        // 是否可以使用硬件顶点处理?

    int vp = 0;

    if( caps.DevCaps & D3DDEVCAPS_HWTRANSFORMANDLIGHT )
    {
        // 是,支持硬件顶点处理
        vp = D3DCREATE_HARDWARE_VERTEXPROCESSING;
    }
    else
    {
        // 不,只能用软件顶点处理
        vp = D3DCREATE_SOFTWARE_VERTEXPROCESSING;
    }

    if(FAILED(g_pD3D->CreateDevice(    D3DADAPTER_DEFAULT,
                                    D3DDEVTYPE_HAL,
                                    hWnd,
                                    vp,
                                    &d3dpp,
                                    &g_pD3DDevice)))
    {
        return E_FAIL;
    }

    return S_OK;
}

void Render()
{
    if(g_pD3DDevice)
    {
        g_pD3DDevice->Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(255,120,0), 1.0f, 0);        
                 g_pD3DDevice->Present(NULL, NULL, NULL, NULL);
    }
}

void CleanUp()
{
    if(g_pD3DDevice)
    {
        g_pD3DDevice->Release();
        g_pD3DDevice=NULL;
    }
    if(g_pD3D)
    {
        g_pD3D->Release();
        g_pD3D=NULL;
    }
}
就是红色的那一段,那个if里边的DevCaps是怎么来的,那个D3DDEVCAPS_HWTRANSFORMANDLIGHT 什么意思··并且 vp =D3DCREATE_HARDWARE_VERTEXPROCESSING中的D3DCREATE_HARDWARE_VERTEXPROCESSING它是一个int型的数据?
搜索更多相关主题的帖子: 代码 dirext 解释 
2010-10-18 17:12



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-323259-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.190820 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved