获取显卡型号?

时间:2009-07-07 03:38:39

标签: c++ graphics model directx intel

我想知道如何从代码中获取显卡型号/品牌,特别是来自DirectX 9.0c(来自C ++代码)。

5 个答案:

答案 0 :(得分:10)

DirectX中最简单的方法是通过IDirect3D9::GetAdapterIdentifier

只需创建一个D3DADAPTER_IDENTIFIER9对象,将指针传递给GetAdapterIdentifier即可。 DirectX在“描述”字段中将图形卡描述填充为字符串。它还包括卡的显示设备以及您拥有的驱动程序版本的信息。

你得到这样的东西:

  • 描述:“NVIDIA GeForce GTX 570”
  • 设备:“\。\ DISPLAY1”
  • 驱动: “nvd3dum.dll”

答案 1 :(得分:6)

在运行时,您可以查询设备型号和供应商:

  • 在OpenGL中,使用命令glGetString(GL_VENDOR)或GL_RENDERER或GL_VERSION获取您所需的信息。

  • 在DirectX 9中,信息显示在Microsoft配置系统中,并从设备数据库中查询。这是本文档的第3部分,其中还包含示例代码:http://msdn.microsoft.com/en-us/library/bb204848(VS.85).aspx 使用相同的系统,您可以获得视频卡的RAM数量,驱动程序号等信息。

答案 2 :(得分:2)

从我的书Chapter 2. Direct3D中查看The Direct3D Graphics Pipeline。请参见2.12,识别特定设备一节。

答案 3 :(得分:0)

您可以使用“DirectX诊断工具”API,例如DX SDK的DxDiag输出示例 http://msdn.microsoft.com/en-us/library/ee416986%28v=VS.85%29.aspx

答案 4 :(得分:0)

IDirect3D9* d3dobject = Direct3DCreate9(D3D_SDK_VERSION);
D3DPRESENT_PARAMETERS d3dpresent;
memset(&d3dpresent, 0, sizeof(D3DPRESENT_PARAMETERS));
d3dpresent.Windowed = TRUE;
d3dpresent.SwapEffect = D3DSWAPEFFECT_DISCARD;
UINT adaptercount = d3dobject->GetAdapterCount();
D3DADAPTER_IDENTIFIER9* adapters = (D3DADAPTER_IDENTIFIER9*)malloc(sizeof(D3DADAPTER_IDENTIFIER9) * adaptercount);

for (int i = 0; i < adaptercount; i++)
{
      d3dobject->GetAdapterIdentifier(i, 0, &(adapters[i]));
}

然后获取适配器的描述(adapter-&gt; Description)