【问题标题】:Current render video card当前渲染视频卡
【发布时间】:2016-11-30 08:05:09
【问题描述】:

我想获取有关当前正在运行的显卡的信息。 基本上我的问题是如何从 openGL 字符串 GL_RENDERER 获取设备 ID。

我在窗户上。

我使用了 directx 函数 GetAdapterIdentifier(qt usage example see GpuDescription::detect())。它适用于英伟达。如果我为我的应用程序手动切换视频卡 D3DADAPTER_IDENTIFIER9 具有正确的设备 ID。但是当我使用 amd radeon 时,这种方法失败了。 D3DADAPTER_IDENTIFIER9 仅包含我的集成显卡的信息(即使更改后)。但 OpenGL 字符串(GL_RENDERER)正确检测我的应用的显卡配置。

因此如何安全地从 GL_RENDERER 获取 deviceid?有了 deviceid,我就可以获得我想要的任何信息。但问题是 GL_RENDERER 是一个字符串,我无法将它与任何其他系统字符串匹配。

【问题讨论】:

    标签: c++ qt winapi opengl directx


    【解决方案1】:

    您应该使用名为EnumDisplayDevicesA 的Win32 函数。使用它,您可以获得所有显示设备的列表,其名称和当前状态存储在DISPLAY_DEVICEA 结构的实例中。然后,在用户选择使用哪一个 GPU 后,您可以通过 CreateDCA 调用为该 GPU 指定创建设备上下文。如果此函数成功,您可以通过wglCreateContext继续创建OpenGL上下文(但在设置像素格式等之前,您可以阅读更多关于创建OpenGL上下文here的内容。

    希望对你有所帮助。

    【讨论】:

      猜你喜欢
      • 2020-08-17
      • 1970-01-01
      • 2014-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-08
      相关资源
      最近更新 更多