我正在编写一个应用程序,如果有可用的图形卡,该应用程序可以大大加快速度。
我已获得必要的 DLL,使我的应用程序能够使用 NVIDIA 和 AMD 卡。但它需要使用特定的命令行参数启动,具体取决于哪张卡可用。
我想制作一个安装程序来检测特定品牌的 GPU,然后使用必要的命令行参数启动真正的应用程序。
检测卡类型的最佳方法是什么?
最佳答案
您必须在运行时使用 OpenGL 检测它。使用命令 glGetString(GL_VENDOR)
或 GL_VERSION
。
使用 Direct3D 9 API 执行此操作:
第一步
D3DADAPTER_IDENTIFIER 适配器标识符;
第 2 步
m_pD3D->GetAdapterIdentifier(D3DADAPTER_DEFAULT, 0, &AdapterIdentifier);
第三步 获取显卡标识符字符串的最大长度
const int cch = sizeof(AdapterIdentifier.Description);
第 4 步 定义一个 TCHAR 来保存描述
TCHAR szDescription[cch];
第 5 步 使用 unicode DX 实用程序将 char 字符串转换为 TCHAR
DXUtil_ConvertAnsiStringToGenericCch( szDescription, AdapterIdentifier.Description, cch );
致谢:Anonymous_Poster_* @ http://www.gamedev.net/topic/358770-obtain-video-card-name-size-etc-in-c/
关于C++如何检测显卡型号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40444046/