Привет!
Оказывается у ноутбуков Asus X53S две видеокарты. Одна слабая поумолчанию, а другая помощнее.
Вторую можно активировать, если кликнуть по exe файлу правой кнопкой и выбрать: "Запустить с графическим процессором" -> "Высокопроизводительный процессор NVIDIA"
Так вот. Если следующую программку запустить из консоли с картой поумолчанию, то получаю вывод:
Vendor: Intel
Renderer: Intel(R) HD Graphics Family
Version: 3.0.0 - Build 8.15.10.2291
GLSL: 1.30 - Intel Build 8.15.10.2291
Программа:
C++ (Qt)
#include <QGLFormat>
#include <QGLWidget>
#include <QString>
#include <iostream>
#include <QApplication>
int main( int argc, char *argv[] )
{
QApplication app( argc, argv );
QGLFormat format;
format.setVersion( 4, 3 );
QGLFormat::setDefaultFormat( format );
QGLWidget w;
w.makeCurrent();
QString vendor( QLatin1String( reinterpret_cast<const char*>( glGetString( GL_VENDOR ) ) ) );
std::cout << "Vendor: " << vendor.toStdString() << std::endl;
QString renderer( QLatin1String( reinterpret_cast<const char*>( glGetString( GL_RENDERER ) ) ) );
std::cout << "Renderer: " << renderer.toStdString() << std::endl;
QString versionOfGL( QLatin1String( reinterpret_cast<const char*>( glGetString( GL_VERSION ) ) ) );
std::cout << "Version: " << versionOfGL.toStdString() << std::endl;
QString versionGLSL( QLatin1String( reinterpret_cast<const char*>( glGetString( GL_SHADING_LANGUAGE_VERSION ) ) ) );
std::cout << "GLSL: "<< versionGLSL.toStdString() << std::endl;
return app.exec();
}
Если же запускаю со второй картой, то такой вывод:
Vendor: NVIDIA Corporation
Renderer: GeForce GT 540M/PCI/SSE2
Version: 4.1.0
GLSL: 4.10 NVIDIA via Cg compiler
Как видите, в первом случае версия OpenGL - 3.0.0, а во втором - 4.1.0. Как сделать так, чтобы Qt запускал приложения со вторым вариантов?
Заранее спасибо за ответ!