首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ID3D10Device::RSSetState被称为每一个帧?

ID3D10Device::RSSetState被称为每一个帧?
EN

Stack Overflow用户
提问于 2011-11-09 16:20:54
回答 1查看 669关注 0票数 2

我正在尝试用ID3D10RasterizerState创建一个direct3D10,然后调用

代码语言:javascript
复制
ID3D10Device::RSSetState()

有了正确的信息。然而,每当窗口被重新缩放,或者当应用程序转到全屏时,光栅状态似乎会重置到默认状态。我试图用WM_SIZE消息来设置州,但尴尬的是,似乎什么也没发生.

当我调用RSSetState()每个帧时,它正常工作,但这似乎效率很低。

有人知道解决这个问题的办法吗?它似乎在msdn上没有得到很好的记录。

代码:

代码语言:javascript
复制
bool TestGameApp::InitGame()
{
    D3D10_RASTERIZER_DESC desc;
    desc.AntialiasedLineEnable = TRUE;
    desc.CullMode = D3D10_CULL_NONE;
    desc.DepthBias = 0;
    desc.DepthBiasClamp = 0.0f;
    desc.FillMode = D3D10_FILL_SOLID;
    desc.FrontCounterClockwise = false;
    desc.MultisampleEnable = true;
    desc.ScissorEnable = FALSE;
    desc.SlopeScaledDepthBias = 0.0f;

    m_pD3DDevice->CreateRasterizerState(&desc,m_pRSState);
    m_pD3DDevice->RSSetState(m_pRSState);

    //...more code
}

WndProc:

代码语言:javascript
复制
switch( message )
{
    case WM_SIZE:
    {
        m_pD3DDevice->RSSetState(m_pRSState);
        break;
    }
}
EN

回答 1

Stack Overflow用户

发布于 2011-11-10 22:59:14

把每一帧都设置好。通常,您希望最小化框架中呈现状态更改的数量,但不需要担心设置一帧一次的光栅化状态对性能的影响。将其设置为每个框架,还允许您为调试而启用和禁用线框呈现。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8068023

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档