forked from qt-creator/qt-creator
Centralize checking for OpenGL
Change-Id: Ic2212c8519f4c771ba3e3c61dd32073b93db7ed9 Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
This commit is contained in:
@@ -30,6 +30,9 @@
|
|||||||
|
|
||||||
#include "hostosinfo.h"
|
#include "hostosinfo.h"
|
||||||
|
|
||||||
|
#include <QApplication>
|
||||||
|
#include <QOpenGLContext>
|
||||||
|
|
||||||
#ifdef Q_OS_WIN
|
#ifdef Q_OS_WIN
|
||||||
#undef _WIN32_WINNT
|
#undef _WIN32_WINNT
|
||||||
#define _WIN32_WINNT 0x0501 /* WinXP, needed for GetNativeSystemInfo() */
|
#define _WIN32_WINNT 0x0501 /* WinXP, needed for GetNativeSystemInfo() */
|
||||||
@@ -81,3 +84,12 @@ void HostOsInfo::unsetOverrideFileNameCaseSensitivity()
|
|||||||
{
|
{
|
||||||
m_useOverrideFileNameCaseSensitivity = false;
|
m_useOverrideFileNameCaseSensitivity = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool HostOsInfo::canCreateOpenGLContext(QString *errorMessage)
|
||||||
|
{
|
||||||
|
static const bool canCreate = QOpenGLContext().create();
|
||||||
|
if (!canCreate)
|
||||||
|
*errorMessage = QApplication::translate("Utils::HostOsInfo",
|
||||||
|
"Cannot create OpenGL context.");
|
||||||
|
return canCreate;
|
||||||
|
}
|
||||||
|
|||||||
@@ -84,6 +84,8 @@ public:
|
|||||||
return hostOsAspects().controlModifier();
|
return hostOsAspects().controlModifier();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool canCreateOpenGLContext(QString *errorMessage);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static OsSpecificAspects hostOsAspects() { return OsSpecificAspects(hostOs()); }
|
static OsSpecificAspects hostOsAspects() { return OsSpecificAspects(hostOs()); }
|
||||||
|
|
||||||
|
|||||||
@@ -61,7 +61,6 @@
|
|||||||
#include <qplugin.h>
|
#include <qplugin.h>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
#include <QProcessEnvironment>
|
#include <QProcessEnvironment>
|
||||||
#include <QOpenGLContext>
|
|
||||||
|
|
||||||
namespace QmlDesigner {
|
namespace QmlDesigner {
|
||||||
|
|
||||||
@@ -127,10 +126,8 @@ QmlDesignerPlugin::~QmlDesignerPlugin()
|
|||||||
////////////////////////////////////////////////////
|
////////////////////////////////////////////////////
|
||||||
bool QmlDesignerPlugin::initialize(const QStringList & /*arguments*/, QString *errorMessage/* = 0*/) // =0;
|
bool QmlDesignerPlugin::initialize(const QStringList & /*arguments*/, QString *errorMessage/* = 0*/) // =0;
|
||||||
{
|
{
|
||||||
if (!QOpenGLContext().create()) {
|
if (!Utils::HostOsInfo::canCreateOpenGLContext(errorMessage))
|
||||||
*errorMessage = tr("Cannot create OpenGL context.");
|
|
||||||
return false;
|
return false;
|
||||||
}
|
|
||||||
|
|
||||||
data = new QmlDesignerPluginData;
|
data = new QmlDesignerPluginData;
|
||||||
|
|
||||||
|
|||||||
@@ -36,8 +36,8 @@
|
|||||||
|
|
||||||
#include <analyzerbase/analyzermanager.h>
|
#include <analyzerbase/analyzermanager.h>
|
||||||
#include <extensionsystem/pluginmanager.h>
|
#include <extensionsystem/pluginmanager.h>
|
||||||
|
#include <utils/hostosinfo.h>
|
||||||
|
|
||||||
#include <QOpenGLContext>
|
|
||||||
#include <QtPlugin>
|
#include <QtPlugin>
|
||||||
|
|
||||||
using namespace Analyzer;
|
using namespace Analyzer;
|
||||||
@@ -54,10 +54,8 @@ bool QmlProfilerPlugin::initialize(const QStringList &arguments, QString *errorS
|
|||||||
{
|
{
|
||||||
Q_UNUSED(arguments)
|
Q_UNUSED(arguments)
|
||||||
|
|
||||||
if (!QOpenGLContext().create()) {
|
if (!Utils::HostOsInfo::canCreateOpenGLContext(errorString))
|
||||||
*errorString = tr("Cannot create OpenGL context.");
|
|
||||||
return false;
|
return false;
|
||||||
}
|
|
||||||
|
|
||||||
auto tool = new QmlProfilerTool(this);
|
auto tool = new QmlProfilerTool(this);
|
||||||
auto widgetCreator = [tool] { return tool->createWidgets(); };
|
auto widgetCreator = [tool] { return tool->createWidgets(); };
|
||||||
|
|||||||
@@ -51,7 +51,6 @@
|
|||||||
#include <QMessageBox>
|
#include <QMessageBox>
|
||||||
|
|
||||||
#include <QDir>
|
#include <QDir>
|
||||||
#include <QOpenGLContext>
|
|
||||||
#include <QQmlPropertyMap>
|
#include <QQmlPropertyMap>
|
||||||
|
|
||||||
#ifdef USE_QUICK_WIDGET
|
#ifdef USE_QUICK_WIDGET
|
||||||
@@ -289,10 +288,8 @@ WelcomePlugin::WelcomePlugin()
|
|||||||
|
|
||||||
bool WelcomePlugin::initialize(const QStringList & /* arguments */, QString *errorMessage)
|
bool WelcomePlugin::initialize(const QStringList & /* arguments */, QString *errorMessage)
|
||||||
{
|
{
|
||||||
if (!QOpenGLContext().create()) {
|
if (!Utils::HostOsInfo::canCreateOpenGLContext(errorMessage))
|
||||||
*errorMessage = tr("Cannot create OpenGL context.");
|
|
||||||
return false;
|
return false;
|
||||||
}
|
|
||||||
|
|
||||||
m_welcomeMode = new WelcomeMode;
|
m_welcomeMode = new WelcomeMode;
|
||||||
addAutoReleasedObject(m_welcomeMode);
|
addAutoReleasedObject(m_welcomeMode);
|
||||||
|
|||||||
Reference in New Issue
Block a user