首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DXGI EnumOutputs -无DXGI_OUTPUT_DESC和空显示模式数组

DXGI EnumOutputs -无DXGI_OUTPUT_DESC和空显示模式数组
EN

Stack Overflow用户
提问于 2015-04-26 12:21:11
回答 2查看 1.2K关注 0票数 1

只是在尝试获取可用的显示模式时遇到了奇怪的问题。让我解释一下..。

首先,我列举了可用的适配器,然后将其推到std::vector,这样可以很好地工作:

代码语言:javascript
复制
for(UINT i = 0; pFactory->EnumAdapters(i, &pAdapter) != DXGI_ERROR_NOT_FOUND; ++i)
    vAdapters->push_back(pAdapter);

然后,我用这些适配器填充组合框,并允许选择一个我想使用的适配器。

当我试图枚举输出并获得可用的显示模式时,首先从combobox获得选定的适配器:

代码语言:javascript
复制
IDXGIAdapter* pSelectedAdapter = (*vAdapters)[index];

我检查了所选适配器的地址,它与适配器枚举期间获得的地址匹配。

然后,尝试枚举输出并获得它们的描述:

代码语言:javascript
复制
IDXGIOutput* pOutput;
DXGI_OUTPUT_DESC *odesc = 0;
for(UINT i = 0; pSelectedAdapter->EnumOutputs(i, &pOutput) != DXGI_ERROR_NOT_FOUND; ++i)
{
    pOutput->GetDesc(odesc);
}

这就是问题所在。循环找到我的两个监视器并返回所有监视器的pOutput指针,但是当我试图触发GetDesc( odesc )时,没有返回odesc。看起来pOutput指针指向..。空物体。枚举可用的显示模式会导致0种可用模式,无论我想要检查模式的哪种回退缓冲区格式。

谢谢你,帕特里克

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-26 16:12:38

当GetDesc需要一个指向DXGI_OUTPUT_DESC结构的指针时,它将传入一个空指针。试着在下面:

代码语言:javascript
复制
IDXGIOutput* pOutput;
DXGI_OUTPUT_DESC odesc;
for(UINT i = 0; pSelectedAdapter->EnumOutputs(i, &pOutput) != DXGI_ERROR_NOT_FOUND; ++i)
{
    pOutput->GetDesc(&odesc);
}
票数 2
EN

Stack Overflow用户

发布于 2015-12-03 20:25:37

还记得释放IDXGIOutput,否则会有内存泄漏:请参见这里

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

https://stackoverflow.com/questions/29877550

复制
相关文章

相似问题

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