From 79df2151e96ff4aa0022b1be1dbd876ab76d274f Mon Sep 17 00:00:00 2001 From: hiker Date: Mon, 19 Jan 2015 10:21:41 +1100 Subject: [PATCH] Add a popup window to be shown first if it is detected that the driver is too old. --- data/graphical_restrictions.xml | 6 ++++-- src/graphics/graphics_restrictions.cpp | 9 +++++---- src/graphics/graphics_restrictions.hpp | 1 + src/main.cpp | 13 +++++++++++-- 4 files changed, 21 insertions(+), 8 deletions(-) diff --git a/data/graphical_restrictions.xml b/data/graphical_restrictions.xml index 33ddc1366..a8cfaf94a 100644 --- a/data/graphical_restrictions.xml +++ b/data/graphical_restrictions.xml @@ -6,10 +6,12 @@ - + + diff --git a/src/graphics/graphics_restrictions.cpp b/src/graphics/graphics_restrictions.cpp index 1395e4b7f..c14201612 100644 --- a/src/graphics/graphics_restrictions.cpp +++ b/src/graphics/graphics_restrictions.cpp @@ -54,7 +54,8 @@ namespace GraphicsRestrictions "BufferStorage", "BindlessTexture", "TextureCompressionS3TC", - "AMDVertexShaderLayer" + "AMDVertexShaderLayer", + "DriverRecentEnough" }; } // namespace Private using namespace Private; @@ -389,9 +390,9 @@ void unitTesting() assert(Version("2.1 Mesa 10.5.0-devel (git-82e919d)", "Gallium 0.4 on i915 (chipse)") == Version("10.5.0") ); - assert(Version("1.4 (3.0 Mesa 10.1.0)", - "Mesa DRI Intel(R) Ivybridge Mobile") - == Version("10.1.0")); + assert(Version("1.4 (3.0 Mesa 10.1.0)", + "Mesa DRI Intel(R) Ivybridge Mobile") + == Version("10.1.0")); } // unitTesting diff --git a/src/graphics/graphics_restrictions.hpp b/src/graphics/graphics_restrictions.hpp index 05c67bce4..294edaa5d 100644 --- a/src/graphics/graphics_restrictions.hpp +++ b/src/graphics/graphics_restrictions.hpp @@ -49,6 +49,7 @@ namespace GraphicsRestrictions GR_BINDLESS_TEXTURE, GR_EXT_TEXTURE_COMPRESSION_S3TC, GR_AMD_VERTEX_SHADER_LAYER, + GR_DRIVER_RECENT_ENOUGH, GR_COUNT /** MUST be last entry. */ } ; diff --git a/src/main.cpp b/src/main.cpp index c2eaaabe5..6ff7d73bd 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1143,8 +1143,8 @@ void askForInternetPermission() "'User Interface', and edit \"Connect to the " "Internet\" and \"Send anonymous HW statistics\")."), MessageDialog::MESSAGE_DIALOG_YESNO, - new ConfirmServer(), true); - + new ConfirmServer(), true, true); + GUIEngine::DialogQueue::get()->pushDialog(dialog, false); } // askForInternetPermission //============================================================================= @@ -1294,6 +1294,15 @@ int main(int argc, char *argv[] ) exit(0); } + if (GraphicsRestrictions::isDisabled(GraphicsRestrictions::GR_DRIVER_RECENT_ENOUGH)) + { + MessageDialog *dialog = + new MessageDialog(_("Your driver version is too old. Please install " + "the latest video drivers."), + /*from queue*/ true); + GUIEngine::DialogQueue::get()->pushDialog(dialog); + } + // Note that on the very first run of STK internet status is set to // "not asked", so the report will only be sent in the next run. if(UserConfigParams::m_internet_status==Online::RequestManager::IPERM_ALLOWED)