Fixed: Wrong driver version in Ryzom Configurator
Fixed: Typo in "width"
This commit is contained in:
parent
8fff6423ae
commit
0bb5fc5536
3 changed files with 57 additions and 63 deletions
|
@ -70,7 +70,7 @@ void CDisplaySettingsWidget::load()
|
||||||
|
|
||||||
|
|
||||||
CVideoMode mode;
|
CVideoMode mode;
|
||||||
mode.widht = s.config.getInt( "Width" );
|
mode.width = s.config.getInt( "Width" );
|
||||||
mode.height = s.config.getInt( "Height" );
|
mode.height = s.config.getInt( "Height" );
|
||||||
mode.depth = s.config.getInt( "Depth" );
|
mode.depth = s.config.getInt( "Depth" );
|
||||||
mode.frequency = s.config.getInt( "Frequency" );
|
mode.frequency = s.config.getInt( "Frequency" );
|
||||||
|
@ -85,7 +85,7 @@ void CDisplaySettingsWidget::load()
|
||||||
windowedRadioButton->setChecked( true );
|
windowedRadioButton->setChecked( true );
|
||||||
}
|
}
|
||||||
|
|
||||||
widthLineEdit->setText( QString( "%1" ).arg( mode.widht ) );
|
widthLineEdit->setText( QString( "%1" ).arg( mode.width ) );
|
||||||
heightLineEdit->setText( QString( "%1" ).arg( mode.height ) );
|
heightLineEdit->setText( QString( "%1" ).arg( mode.height ) );
|
||||||
xpositionLineEdit->setText( QString( "%1" ).arg( s.config.getInt( "PositionX" ) ) );
|
xpositionLineEdit->setText( QString( "%1" ).arg( s.config.getInt( "PositionX" ) ) );
|
||||||
ypositionLineEdit->setText( QString( "%1" ).arg( s.config.getInt( "PositionY" ) ) );
|
ypositionLineEdit->setText( QString( "%1" ).arg( s.config.getInt( "PositionY" ) ) );
|
||||||
|
@ -116,7 +116,7 @@ void CDisplaySettingsWidget::save()
|
||||||
else
|
else
|
||||||
mode = s.openglInfo.modes[ index ];
|
mode = s.openglInfo.modes[ index ];
|
||||||
|
|
||||||
s.config.setInt( "Width", mode.widht );
|
s.config.setInt( "Width", mode.width );
|
||||||
s.config.setInt( "Height", mode.height );
|
s.config.setInt( "Height", mode.height );
|
||||||
s.config.setInt( "Depth", mode.depth );
|
s.config.setInt( "Depth", mode.depth );
|
||||||
s.config.setInt( "Frequency", mode.frequency );
|
s.config.setInt( "Frequency", mode.frequency );
|
||||||
|
|
|
@ -16,17 +16,15 @@
|
||||||
|
|
||||||
#include "stdpch.h"
|
#include "stdpch.h"
|
||||||
#include "system.h"
|
#include "system.h"
|
||||||
#include <sstream>
|
|
||||||
#include <nel/3d/driver.h>
|
#include <nel/3d/driver.h>
|
||||||
#include <nel/3d/dru.h>
|
#include <nel/3d/dru.h>
|
||||||
#include <QtOpenGL/QGLWidget>
|
#include <QtOpenGL/QGLWidget>
|
||||||
|
|
||||||
CSystem *CSystem::instance = NULL;
|
|
||||||
|
|
||||||
CSystem::CSystem()
|
CSystem::CSystem()
|
||||||
{
|
{
|
||||||
GatherSysInfo();
|
GatherSysInfo();
|
||||||
#ifdef WIN32
|
#ifdef Q_OS_WIN32
|
||||||
GatherD3DInfo();
|
GatherD3DInfo();
|
||||||
#endif
|
#endif
|
||||||
GatherOpenGLInfo();
|
GatherOpenGLInfo();
|
||||||
|
@ -34,9 +32,32 @@ CSystem::CSystem()
|
||||||
|
|
||||||
CSystem::~CSystem()
|
CSystem::~CSystem()
|
||||||
{
|
{
|
||||||
instance = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool CSystem::parseDriverVersion(const std::string &device, uint64 driver, std::string &version)
|
||||||
|
{
|
||||||
|
// file version
|
||||||
|
uint32 version1 = driver >> 48;
|
||||||
|
uint32 version2 = (driver >> 32) & 0xffff;
|
||||||
|
uint32 version3 = (driver >> 16) & 0xffff;
|
||||||
|
uint32 version4 = driver & 0xffff;
|
||||||
|
|
||||||
|
if (device.find("NVIDIA") != std::string::npos)
|
||||||
|
{
|
||||||
|
// nvidia should be something like 9.18.13.2018 and 9.18.13.1422
|
||||||
|
// which respectively corresponds to drivers 320.18 and 314.22
|
||||||
|
uint32 nvVersionMajor = (version3 % 10) * 100 + (version4 / 100);
|
||||||
|
uint32 nvVersionMinor = version4 % 100;
|
||||||
|
|
||||||
|
version = NLMISC::toString("%u.%u", nvVersionMajor, nvVersionMinor);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
version = NLMISC::toString("%u.%u.%u.%u", version1, version2, version3, version4);
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
void CSystem::GatherSysInfo()
|
void CSystem::GatherSysInfo()
|
||||||
{
|
{
|
||||||
|
@ -47,24 +68,7 @@ void CSystem::GatherSysInfo()
|
||||||
{
|
{
|
||||||
sysInfo.videoDevice = device;
|
sysInfo.videoDevice = device;
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////
|
CSystem::parseDriverVersion(device, driver, sysInfo.videoDriverVersion);
|
||||||
// FIXME
|
|
||||||
// This is taken from the original configuration tool, and
|
|
||||||
// it generates the same *wrong* version number
|
|
||||||
//////////////////////////////////////////////////////////////
|
|
||||||
uint32 version = static_cast< uint32 >( driver & 0xffff );
|
|
||||||
std::stringstream ss;
|
|
||||||
|
|
||||||
ss << ( version / 1000 % 10 );
|
|
||||||
ss << ".";
|
|
||||||
ss << ( version / 100 % 10 );
|
|
||||||
ss << ".";
|
|
||||||
ss << ( version / 10 % 10 );
|
|
||||||
ss << ".";
|
|
||||||
ss << ( version % 10 );
|
|
||||||
|
|
||||||
sysInfo.videoDriverVersion = ss.str();
|
|
||||||
//////////////////////////////////////////////////////////////
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -78,7 +82,7 @@ void CSystem::GatherSysInfo()
|
||||||
sysInfo.totalRAM /= ( 1024 * 1024 );
|
sysInfo.totalRAM /= ( 1024 * 1024 );
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef WIN32
|
#ifdef Q_OS_WIN32
|
||||||
void CSystem::GatherD3DInfo()
|
void CSystem::GatherD3DInfo()
|
||||||
{
|
{
|
||||||
NL3D::IDriver *driver = NULL;
|
NL3D::IDriver *driver = NULL;
|
||||||
|
@ -93,16 +97,7 @@ void CSystem::GatherD3DInfo()
|
||||||
d3dInfo.device = adapter.Description;
|
d3dInfo.device = adapter.Description;
|
||||||
d3dInfo.driver = adapter.Driver;
|
d3dInfo.driver = adapter.Driver;
|
||||||
|
|
||||||
sint64 ver = adapter.DriverVersion;
|
CSystem::parseDriverVersion(d3dInfo.device, adapter.DriverVersion, d3dInfo.driverVersion);
|
||||||
std::stringstream ss;
|
|
||||||
ss << static_cast< uint16 >( ver >> 48 );
|
|
||||||
ss << ".";
|
|
||||||
ss << static_cast< uint16 >( ver >> 32 );
|
|
||||||
ss << ".";
|
|
||||||
ss << static_cast< uint16 >( ver >> 16 );
|
|
||||||
ss << ".";
|
|
||||||
ss << static_cast< uint16 >( ver & 0xFFFF );
|
|
||||||
d3dInfo.driverVersion = ss.str();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
GetVideoModes( d3dInfo.modes, driver );
|
GetVideoModes( d3dInfo.modes, driver );
|
||||||
|
@ -110,7 +105,7 @@ void CSystem::GatherD3DInfo()
|
||||||
driver->release();
|
driver->release();
|
||||||
}
|
}
|
||||||
|
|
||||||
catch( NLMISC::Exception &e )
|
catch(const NLMISC::Exception &e)
|
||||||
{
|
{
|
||||||
nlwarning( e.what() );
|
nlwarning( e.what() );
|
||||||
}
|
}
|
||||||
|
@ -147,15 +142,13 @@ void CSystem::GatherOpenGLInfo()
|
||||||
|
|
||||||
delete gl;
|
delete gl;
|
||||||
|
|
||||||
NL3D::IDriver *driver = NULL;
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
driver = NL3D::CDRU::createGlDriver();
|
NL3D::IDriver *driver = NL3D::CDRU::createGlDriver();
|
||||||
GetVideoModes( openglInfo.modes, driver );
|
GetVideoModes( openglInfo.modes, driver );
|
||||||
driver->release();
|
driver->release();
|
||||||
}
|
}
|
||||||
|
catch(const NLMISC::Exception &e)
|
||||||
catch( NLMISC::Exception &e )
|
|
||||||
{
|
{
|
||||||
nlwarning( e.what() );
|
nlwarning( e.what() );
|
||||||
}
|
}
|
||||||
|
@ -172,11 +165,11 @@ void CSystem::GetVideoModes( std::vector< CVideoMode > &dst, NL3D::IDriver *driv
|
||||||
{
|
{
|
||||||
CVideoMode mode;
|
CVideoMode mode;
|
||||||
mode.depth = itr->Depth;
|
mode.depth = itr->Depth;
|
||||||
mode.widht = itr->Width;
|
mode.width = itr->Width;
|
||||||
mode.height = itr->Height;
|
mode.height = itr->Height;
|
||||||
mode.frequency = itr->Frequency;
|
mode.frequency = itr->Frequency;
|
||||||
|
|
||||||
dst.push_back( mode );
|
dst.push_back( mode );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,22 +27,22 @@ class IDriver;
|
||||||
|
|
||||||
struct CVideoMode
|
struct CVideoMode
|
||||||
{
|
{
|
||||||
unsigned int widht;
|
uint16 width;
|
||||||
unsigned int height;
|
uint16 height;
|
||||||
unsigned int depth;
|
uint8 depth;
|
||||||
unsigned int frequency;
|
uint8 frequency;
|
||||||
|
|
||||||
CVideoMode()
|
CVideoMode()
|
||||||
{
|
{
|
||||||
widht = 0;
|
width = 0;
|
||||||
height = 0;
|
height = 0;
|
||||||
depth = 0;
|
depth = 0;
|
||||||
frequency = 0;
|
frequency = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool operator==( CVideoMode &o )
|
bool operator== (const CVideoMode &o)
|
||||||
{
|
{
|
||||||
if( ( o.widht == widht ) && ( o.height == height ) && ( o.depth == depth ) && ( o.frequency == frequency ) )
|
if ((o.width == width) && (o.height == height) && (o.depth == depth) && (o.frequency == frequency))
|
||||||
return true;
|
return true;
|
||||||
else
|
else
|
||||||
return false;
|
return false;
|
||||||
|
@ -60,11 +60,8 @@ public:
|
||||||
|
|
||||||
static CSystem &GetInstance()
|
static CSystem &GetInstance()
|
||||||
{
|
{
|
||||||
if( instance == 0 )
|
static CSystem sInstance;
|
||||||
{
|
return sInstance;
|
||||||
instance = new CSystem;
|
|
||||||
}
|
|
||||||
return *instance;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
struct CSysInfo
|
struct CSysInfo
|
||||||
|
@ -74,16 +71,18 @@ public:
|
||||||
std::string osName;
|
std::string osName;
|
||||||
std::string cpuName;
|
std::string cpuName;
|
||||||
uint64 totalRAM;
|
uint64 totalRAM;
|
||||||
} sysInfo;
|
}
|
||||||
|
sysInfo;
|
||||||
|
|
||||||
#ifdef WIN32
|
#ifdef Q_OS_WIN32
|
||||||
struct CD3DInfo
|
struct CD3DInfo
|
||||||
{
|
{
|
||||||
std::string device;
|
std::string device;
|
||||||
std::string driver;
|
std::string driver;
|
||||||
std::string driverVersion;
|
std::string driverVersion;
|
||||||
std::vector< CVideoMode > modes;
|
std::vector< CVideoMode > modes;
|
||||||
} d3dInfo;
|
}
|
||||||
|
d3dInfo;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
struct COpenGLInfo
|
struct COpenGLInfo
|
||||||
|
@ -93,20 +92,22 @@ public:
|
||||||
std::string driverVersion;
|
std::string driverVersion;
|
||||||
std::string extensions;
|
std::string extensions;
|
||||||
std::vector< CVideoMode > modes;
|
std::vector< CVideoMode > modes;
|
||||||
} openglInfo;
|
}
|
||||||
|
openglInfo;
|
||||||
|
|
||||||
CConfig config;
|
CConfig config;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void GatherSysInfo();
|
void GatherSysInfo();
|
||||||
#ifdef WIN32
|
#ifdef Q_OS_WIN32
|
||||||
void GatherD3DInfo();
|
void GatherD3DInfo();
|
||||||
#endif
|
#endif
|
||||||
void GatherOpenGLInfo();
|
void GatherOpenGLInfo();
|
||||||
|
|
||||||
void GetVideoModes( std::vector< CVideoMode > &dst, NL3D::IDriver *driver ) const;
|
void GetVideoModes(std::vector<CVideoMode> &dst, NL3D::IDriver *driver) const;
|
||||||
|
|
||||||
static CSystem *instance;
|
static bool parseDriverVersion(const std::string &device, uint64 driver, std::string &version);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // SYSTEM_H
|
#endif // SYSTEM_H
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue