要在你中加入以上谈到允许用户选择何种渲染方式功能是件很容易办到事情;这个工作将在你中新增个小小功能:为图形适配器建立标识.只要使用下面代码你就可以办到:
Public Function GetAdapterInfo(ByRef Name As String, ByRef GUID As String)
Dim Info As DirectDrawIdentier
Set Info = DD.GetDeviceIdentier(DDGDI_DEFAULT)
Name = Info.GetDescription
GUID = Info.GetDeviceIndentier
End Function
'Then use the function like so:
Dim CardName as , CardGUID as 
Call GetAdapterInfo(CardName, CardGUID)
你现在可以用自定义普通形式串来表示适配器名称了并引用它们....
但是上面参数的GUID(全局唯标识符)到底表示什么实际意义呢?它发挥作用很大,可能比你能想象到还要重要,上面返回串将是你系统中某种显卡唯标识 - 所有Voodoo 3 200型号PCI卡将使用同个GUID,所有3D Blaster Savage4型号卡也将共享同个GUID.你可能会想到在中直接用种显卡名称作为个标识符来表示这种显卡,这在理论上是成立;然而有时这种表示思路方法并不总是百分的百地精确,存在些例外,比如这种显卡在系统中驱动版本可能不样,而这将可能将改变显卡名称. 
以上思路方法不可行,你可能又会想到种思路方法,那就是在中用显卡GUID来标识这种显卡,假设次实验让你知道你在种特定显卡上工作不正常,那么你就可以在用户运行前提示他们说将不能运行在这种GUID标识显卡上了...
下面是些你在研究结构" DirectDrawIdentier"时将获得资讯 - 但是它们当中大部分对你都是没有用:
属性                 代表意义
GetDescription         显卡名
GetDeviceID         显卡芯片组数字唯标识, 这不是显卡唯标识. 任何种显卡都有, 比如对nvidia Riva TNT 2 系列显卡芯片组GetDeviceID将会得出同样值.
GetDeviceIdentier 这就是GUID - 我们在前面讨论过...
GetDriver         这个思路方法返回显卡所用驱动名称,通常是个DLL文件名... 
GetDriverSubVersion 返回版本数字高位, 不要以为它是显卡标识部分.
GetDriverVersion 返回版本数字低位, 同样地, 它不是用来标识显卡.
GetRevision         返回芯片组而不是驱动版本信息
GetSubSysID         返回个表示显卡子系统数字, 它通常被用来特指种不常见显卡板体.
GetVendorID         返回个表示制造商数字, 比如 "Guillemot" or "Creative Labs" - 它只是个纯粹数字...
GetWHQLLevel         当前显卡和它驱动安装时要求系统硬件配置水平 
到现在为止,你应该有足够能力来标识那些将对你有用,和系统当前正在使用显卡相关所有事物了(比如显卡名,显卡驱动,显卡GUID等)...
最新评论