From: <en...@us...> - 2010-03-12 20:15:44
|
Revision: 3280 http://java-game-lib.svn.sourceforge.net/java-game-lib/?rev=3280&view=rev Author: endolf Date: 2010-03-12 20:15:38 +0000 (Fri, 12 Mar 2010) Log Message: ----------- Try and find a sensible video driver to report on rather than assuming it's video0. Modified Paths: -------------- trunk/LWJGL/src/java/org/lwjgl/opengl/WindowsDisplay.java Modified: trunk/LWJGL/src/java/org/lwjgl/opengl/WindowsDisplay.java =================================================================== --- trunk/LWJGL/src/java/org/lwjgl/opengl/WindowsDisplay.java 2010-03-11 21:06:49 UTC (rev 3279) +++ trunk/LWJGL/src/java/org/lwjgl/opengl/WindowsDisplay.java 2010-03-12 20:15:38 UTC (rev 3280) @@ -341,18 +341,33 @@ public String getAdapter() { try { - String adapter_string = WindowsRegistry.queryRegistrationKey( + String maxObjNo = WindowsRegistry.queryRegistrationKey( WindowsRegistry.HKEY_LOCAL_MACHINE, "HARDWARE\\DeviceMap\\Video", - "\\Device\\Video0"); - String root_key = "\\registry\\machine\\"; - if (adapter_string.toLowerCase().startsWith(root_key)) { - String driver_value = WindowsRegistry.queryRegistrationKey( + "MaxObjectNumber"); + int maxObjectNumber = maxObjNo.charAt(0); + String vga_driver_value = ""; + for(int i=0;i<maxObjectNumber;i++) { + String adapter_string = WindowsRegistry.queryRegistrationKey( WindowsRegistry.HKEY_LOCAL_MACHINE, - adapter_string.substring(root_key.length()), - "InstalledDisplayDrivers"); - return driver_value; + "HARDWARE\\DeviceMap\\Video", + "\\Device\\Video" + i); + String root_key = "\\registry\\machine\\"; + if (adapter_string.toLowerCase().startsWith(root_key)) { + String driver_value = WindowsRegistry.queryRegistrationKey( + WindowsRegistry.HKEY_LOCAL_MACHINE, + adapter_string.substring(root_key.length()), + "InstalledDisplayDrivers"); + if(driver_value.toUpperCase().startsWith("VGA")) { + vga_driver_value = driver_value; + } else if(!driver_value.toUpperCase().startsWith("RDP") && !driver_value.toUpperCase().startsWith("NMNDD")) { + return driver_value; + } + } } + if(!vga_driver_value.equals("")) { + return vga_driver_value; + } } catch (LWJGLException e) { LWJGLUtil.log("Exception occurred while querying registry: " + e); } @@ -362,9 +377,12 @@ public String getVersion() { String driver = getAdapter(); if (driver != null) { - WindowsFileVersion version = nGetVersion(driver + ".dll"); - if (version != null) - return version.toString(); + String[] drivers = driver.split(","); + if(drivers.length>0) { + WindowsFileVersion version = nGetVersion(drivers[0] + ".dll"); + if (version != null) + return version.toString(); + } } return null; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |