| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1004 人关注过本帖
标题:dirext里面有两代码不明白 可以帮我解释一下吗
只看楼主 加入收藏
q345918550q
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2010-3-28
结帖率:30%
收藏
 问题点数:0 回复次数:3 
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:14
hahayezhe
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖南张家界
等 级:贵宾
威 望:24
帖 子:1386
专家分:6999
注 册:2010-3-8
收藏
得分:0 
没分啊 同学 干活不带劲啊
D3DCAPS9 caps;
    g_pD3D ->GetDeviceCaps(
                    D3DADAPTER_DEFAULT, // 主显示设备
                     D3DDEVTYPE_HAL,    // 硬件处理的方式   
                    &caps            );
caps 被初始化了啊 通过这个函数的调用 ,传的地址

caps.DevCaps & D3DDEVCAPS_HWTRANSFORMANDLIGHT
DevCaps 是 D3DCAPS9 结构的一个成员 该if语句判断是否具有D3DDEVCAPS_HWTRANSFORMANDLIGHT这个属性
2010-10-18 17:23
q345918550q
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2010-3-28
收藏
得分:0 
回复 2楼 hahayezhe
我的分用完了···不知道怎么获得··
2010-10-18 19:30
q345918550q
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2010-3-28
收藏
得分:0 
回复 2楼 hahayezhe
那个D3DDEVCAPS_HWTRANSFORMANDLIGHT 什么意思
2010-10-18 19:35
快速回复:dirext里面有两代码不明白 可以帮我解释一下吗
数据加载中...
 
   



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

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