summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/windows
Commit message (Collapse)AuthorAgeFilesLines
* Windows QPA: Remove dependency on swprintf_s() pulled in via ↵Friedemann Kleint2014-05-191-1/+22
| | | | | | | | _com_error::ErrorMessage(). Task-number: QTBUG-35617 Change-Id: I0ad926ac564612ebd0eb38f16b3e69cbcd48e62f Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Fix potential null pointer accessFrederik Gladhorn2014-05-191-1/+1
| | | | | Change-Id: I7516ce88b38609ab9851419566141ba93a59aed3 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Fix crash when loading invalid font data in QRawFontEskil Abrahamsen Blomfeldt2014-05-141-0/+3
| | | | | | | | | | | | | | | When passing invalid data to QRawFont, we need to fail gracefully and mark the font as invalid, instead of crashing. This crashed because of different missing sanity checks in the Windows and FontConfig font databases. [ChangeLog][Text] Fixed crash when trying to load a font from invalid data. Task-number: QTBUG-37190 Change-Id: I62c81217ec7d873350b575c9d4ae8e6f0a939540 Reviewed-by: Michael Bruning <michael.bruning@digia.com> Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* Fix horizontal scrolling on Windows when ALT + mouse wheel is usedAndy Shaw2014-05-131-1/+1
| | | | | | Task-number: QTBUG-30833 Change-Id: I366d2979060ba67f745f7c783dee8d7669ebdf57 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Windows: Use Format_ARGB32_Premultiplied for backing store with alpha.Friedemann Kleint2014-05-061-3/+2
| | | | | | | | | Following the logic in Qt 4's QRasterWindowSurface::setGeometry(). Task-number: QTBUG-30302 Change-Id: Ica571cfd5098e3d9faedefaff0880acfb2209958 Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* Add virtual function to QFontEngine report if outlines are reliableJørgen Lind2014-05-062-0/+26
| | | | | | | | | GetGlyphOutline fails for ttf fonts with embedded bitmaps. This results in distancefield rendering not rendering glyphs (for the failed paths). We need to fall back to texture rendering if this is the case. Change-Id: Ibdf7dc5c1d34f513c436f88fabbdcc4089bb6fef Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* Merge remote-tracking branch 'origin/release' into stableFrederik Gladhorn2014-05-014-6/+7
|\ | | | | | | | | | | This merge adds the opengl rename. Change-Id: I84ea0b6abee9780ebb2cf3f64ab9e3fdf2acab3e
| * Rename new QOpenGLContext APIsLaszlo Agocs2014-04-253-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | isES() becomes isOpenGLES(). The library type enums are changed DesktopGL -> LibGL and GLES2 -> LibGLES. This removes the now unnecessary version number, the confusing "desktop" term and provides better readability. The old function/values are kept until the related qtdeclarative changes are integrated. Task-number: QTBUG-38564 Change-Id: Ibb0a1209985f1ce4bb9451f9b7b093c2b68a6505 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
| * deprecate import_qpa_plugin and qpa_minimal_pluginOswald Buddenhagen2014-04-241-0/+1
| | | | | | | | | | | | | | | | they have been fully superseded by 4255ba40ab073afcf2a095b135883612859af4c2. Change-Id: If7ac14c8b7d3cf00fb0cb916036b62eb86c9cee0 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* | Windows: Reject focus-in caused by reparenting Windows.Friedemann Kleint2014-04-251-0/+9
| | | | | | | | | | | | | | | | | | Calling WinAPI SetParent() causes the window to be activated, which is not desired for native child widgets. Task-number: QTBUG-32867 Change-Id: Idf61931bc425a043a4b7a98eec9ae122e234dc37 Reviewed-by: Andy Shaw <andy.shaw@digia.com>
* | Windows: Add missing colors to tooltip palette.Friedemann Kleint2014-04-251-1/+5
| | | | | | | | | | | | Task-number: QTBUG-38183 Change-Id: Ic3581cc87c0d61140624ddaf6fa85d682120ad4f Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
* | Merge "Merge remote-tracking branch 'origin/release' into stable" into ↵Jani Heikkinen2014-04-252-5/+7
|\ \ | | | | | | | | | refs/staging/stable
| * | Merge remote-tracking branch 'origin/release' into stableJani Heikkinen2014-04-232-5/+7
| |\| | | | | | | | | | Change-Id: Id13b4a3803664692f32f9d57549be8a0c4a08567
| | * Fix font merging for complex scripts on WindowsKonstantin Ritt2014-04-162-5/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As long as QWindowsFontDatabase::fallbacksForFamily() does not take script parameter into account, we should prefer QFontEngineMultiQPA's loadEngine() implementation for complex scripts; otherwise we could fall into a situation where reported fallback fonts doesn't support the requested script at all. This finishes c3b2425791ec1e17a8b1e2f5b35b8e79176fc9c4. Task-number: QTBUG-37836 Change-Id: I2c43d97f1331ad05116856f9fe77560ed4dd02c7 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* | | Improve COM error handling in the Windows platform plugin.Friedemann Kleint2014-04-251-19/+51
|/ / | | | | | | | | | | | | | | Add error strings, print warning if OleInitialize() fails. Task-number: QTBUG-38398 Change-Id: I37f6b7003fd1cf524ce69d6843891943402b27a1 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | Fix copy-paste error.Richard J. Moore2014-04-181-1/+1
| | | | | | | | | | | | | | | | | | Fix an error identified by static analysis from http://www.viva64.com/en/b/0251/ Change-Id: I3b69f8eb8c9e10772d5ca2afad75582e8a54beb7 Reviewed-by: Daniel Molkentin <daniel@molkentin.de> Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* | Fix copy-paste error.Richard J. Moore2014-04-181-1/+1
| | | | | | | | | | | | | | | | | | Fix copy-paste error identified by static analysis at http://www.viva64.com/en/b/0251/ Change-Id: I214d6bf8494a946a6c772b6dca1395e4140a471f Reviewed-by: Daniel Molkentin <daniel@molkentin.de> Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* | XCB: fix that modal dialogs can go behind other process windowsJorgen Lind2014-04-162-12/+18
|/ | | | | | | Task-number: QTBUG-35302 Change-Id: I1ad7a66e530710d5338a15057254360dae676451 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* QWindowsOpenGLContextFormat: Default to version 2.Friedemann Kleint2014-04-091-0/+2
| | | | | | | | | glGetString() returns NULL when no current context exists. Task-number: QTBUG-38063 Change-Id: I5cdb265fb2d74bbc5f3e2c34528909323573b2e1 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* Windows CE: Fix message about freetype font rendering.Friedemann Kleint2014-04-011-3/+3
| | | | | | | Task-number: QTBUG-37976 Change-Id: Ib4bf6ba8f62e2dc4f3860313442fa57c67f06d9a Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Make QWindowsMultiFontEngine support deferred fallback families queryKonstantin Ritt2014-03-313-33/+9
| | | | | | | | | | This finishes 800232e1d3ebfbac28d07014a3c646ea00fcf6ad, which encovered a tricky issue in QFontEngineMultiQPA::createMultiFontEngine(). Task-number: QTBUG-37836 Change-Id: I6d432e09e755f5d9ded09752c4c092f4857ad224 Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Windows: Suppress window state change to normal when going from maximized to ↵Friedemann Kleint2014-03-272-4/+9
| | | | | | | | | fullscreen. Task-number: QTBUG-35166 Change-Id: Idcf2d2a5fd0dc59f35a287c106ca772d801550c0 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* QOpenGLContext: Use color depth information from QSurfaceFormatKurt Pattyn2014-03-191-1/+6
| | | | | | | | | | | When a new QOpenGLContext is requested, the color depth information is now also taken into account on OS X and WGL. Task-number: QTBUG-37411 Change-Id: I69d04989a20de3ace041b009fbbdc03fa02cfdf8 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Windows: Allow for custom input context plugins.Friedemann Kleint2014-03-172-2/+12
| | | | | | | | Task-number: QTBUG-37556 Change-Id: I9719138e1b09026f0971f8d3eeae525fc8951c0d Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Jonathan Liu <net147@gmail.com>
* Windows native file dialog: Allow for omitting name filter description.Friedemann Kleint2014-03-151-2/+4
| | | | | | | | | Task-number: QTBUG-37329 Change-Id: I644595a292e5b1890b2088b68be595bfcdba9d4d Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com> Reviewed-by: Oliver Wolff <oliver.wolff@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Windows: Change defaultNameFilterDisables() to return false.Friedemann Kleint2014-03-141-1/+1
| | | | | | | | | | As was done in Qt 4, where QFileDialog sets NameFilterDisables() to true for Q_WS_MAC only. Task-number: QTBUG-37302 Change-Id: I162f9e79762aa4fa68aba02d1bdfc6322d472a9d Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* Guarantee QPFDB::fontEngine() always return non-multi font engineKonstantin Ritt2014-03-114-36/+37
| | | | | | | | | | After QPA refactoring, QWindowsFontDatabase::fontEngine() was returning a multi font engine w/o any particular reason. This makes the code more obvious and opens the road to further improvements. Change-Id: I4858026ddf774d3159c89357b1c905f5112b1c51 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Remove unused parameter from QEGLPlatformContext constructorLaszlo Agocs2014-03-101-1/+1
| | | | | | | | The API is chosen via QSurfaceFormat, the constructor argument is ignored. Remove this historical artifact. Change-Id: I4a5c1e12cb297de22f239ad0a6747c1c36168eed Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
* Use QStringIterator instead of homebrewKonstantin Ritt2014-03-102-37/+17
| | | | | | | Task-number: QTBUG-15664 Change-Id: I1ed3eb04ddd822e57a4d993af656dfe283f3af1a Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Avoid asserting with QQuickWidget on WindowsLaszlo Agocs2014-03-071-1/+1
| | | | | Change-Id: I8b4185a9725b27b3e3e0e049e3a001ed61bcf1d5 Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
* Fix cursor blink time in WindowsFrederik Gladhorn2014-03-061-1/+1
| | | | | | | | | | | In Qt 4 there is a factor of 2 in qapplication_win.cpp, this got lost, so all our cursors were blinking twice as fast. Task-number: QTBUG-37200 Change-Id: I11ce61c51279d9ceb8bc9ba01c1bb9640a31ade8 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Remove unused and unlinked qdocconf file from src/plugins.Jędrzej Nowacki2014-03-061-25/+0
| | | | | Change-Id: Ie6fd3f9fe7d5bbbe948dd3d38d2be835fd92834d Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
* Make QFontEngine::type() non-virtualKonstantin Ritt2014-03-054-17/+4
| | | | | Change-Id: I24ece90d6d8f96dad0c41a474a491b4ea96d97c3 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Get rid of QFontEngine::name()Konstantin Ritt2014-03-054-15/+0
| | | | | | | | It was only used in QFontCache debug output, and some engines weren't even report a name. Change-Id: I6cec4b75f105f5a4e1405f50188bebb3a3f04e33 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Dynamic GL: remove exporting symbolsLaszlo Agocs2014-03-043-6/+7
| | | | | | | | | | | | | | | | | | | | | Remove the opengl proxy for now. Later it will either be moved into a separate library or replaced by a QOpenGLFunctions-based approach. This means that the -opengl dynamic configuration is not usable for the time being. The rest of the enablers remain in place. The convenience function QOpenGLFunctions::isES() is now moved to QOpenGLContext and is changed to check the renderable type. This is extremely useful since besides supporting dynamic GL it solves also the problem of GL_ARB_ES2_compatibility (i.e. it triggers the real ES path when creating an ES-compatible context with a desktop OpenGL implementation). Task-number: QTBUG-36483 Task-number: QTBUG-37172 Change-Id: I045be3fc16e9043e1528cf48e6bf0903da4fa7ca Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
* Support QQuickWidget on Windows.Friedemann Kleint2014-03-044-1/+25
| | | | | | | Task-number: QTBUG-36887 Change-Id: Ifb03804e21fd82d7eae2942b9e8ca83f1bdb776c Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
* Introduce a generic QFontEngine::canRender() implementationKonstantin Ritt2014-03-034-55/+0
| | | | | | | | ...which uses the recently introduced glyphIndex() method; get rid of re-implementations that did almost the same. Change-Id: I6d32d2cee6a31f57de6aee05ed8d120d4a1f4e9c Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Introduce QFontEngine::glyphIndex(uint)Konstantin Ritt2014-03-034-0/+39
| | | | | | | | | ...an optimized drop-in replacement for the code like this: `stringToCMap(&uc, 1, &g, &numGlyphs, QFontEngine::GlyphIndicesOnly)` (aka "get the glyph index for exactly one Unicode character"). Change-Id: I22babf49f7cf28892d27533a5ac51ad449779f75 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Unify QFontEngine*::stringToCMap() behaviorKonstantin Ritt2014-03-032-0/+2
| | | | | | | | Ensure the params are valid and make QCoreTextFontEngine::stringToCMap() handle the unsufficient buffer case exactly like the other engines does. Change-Id: I078af37da917cf2bac709b12aa827ed4128e5f30 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Unify QFontEngine::getSfntTableData() behavior on all platformsKonstantin Ritt2014-03-022-2/+3
| | | | | | | | | | | | Being a most significant method in the font API, getSfntTableData() must behave in exactly the same way on all platforms. Briefly, it must return true if the table exists in the font, despite the other params, and always stores the table data length in 'length' param, thus reporting the amount of bytes actually needed to store the table data in a buffer. Change-Id: I7a15465020c1ea818ea46a05ea3b9b7e1cd60d14 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Windows: Fix return value of WM_QUERYENDSESSION for bogus messages.Friedemann Kleint2014-02-281-1/+3
| | | | | | | | | | | | LRESULT should be non-zero if the application can quit, and it is always handled. Improves 97d8e3b2007abf7b14b4ccbfbbc4abdeef712bcf . Task-number: QTBUG-35986 Change-Id: I0ad95bc20a5d9e2a52c76bdcdfa986595f6a08d8 Reviewed-by: Oliver Wolff <oliver.wolff@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Windows: Set source of synthesized mouse events correctly.Friedemann Kleint2014-02-271-8/+8
| | | | | | | | | | | The source was never set for OS-synthesized events, causing duplicated touch clicks to occur in Quick 2 applications. Task-number: QTBUG-31386 Change-Id: Ib6d1405815dfb8e57d6446c72a7d6e2a044281ea Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com> Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
* Windows: Add platform plugin parameter for tablet absolute range.Friedemann Kleint2014-02-275-5/+28
| | | | | | | | | | | | Make the range for detecting relative (mouse mode) configureable using -platform windows:tabletabsoluterange=50 Task-number: QTBUG-36937 Change-Id: I44f928e53cb41b246c44554ec7f71bfbdf03c147 Reviewed-by: Arthur Krebsbach <Arthur.Krebsbach@Wacom.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com> Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
* Windows file dialogs: Use FOS_NOREADONLYRETURN only for mode AcceptSave.Friedemann Kleint2014-02-251-6/+10
| | | | | | | | Task-number: QTBUG-36886 Change-Id: I727abb92675187f15d1357b1df60f2fb609dc4d5 Reviewed-by: Andy Shaw <andy.shaw@digia.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* Windows: Clear transient relationship before destroying windows.Friedemann Kleint2014-02-241-4/+29
| | | | | | | | | | | | | | | | | | Windows differs from the other platforms in that transient parent relationship is not just a window property but also implies ownership; windows will destroy their transient children in DestroyWindow(), which interferes with Qt. Explicitly clear the relationship in QWindowsWindow::destroy() to prevent this. Task-number: QTBUG-36666 Task-number: QTBUG-35499 Change-Id: I5e72524ef57422831f60484993f6c8d7c80c8601 Reviewed-by: J-P Nurmi <jpnurmi@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Oliver Wolff <oliver.wolff@digia.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* Windows: Use GetForegroundWindow() to check for active windows.Friedemann Kleint2014-02-221-1/+1
| | | | | | | | | | | | | The previously used GetActiveWindow() returns the application's window also if it is minimized. Task-number: QTBUG-36806 Change-Id: I8ede3ea30e7b714aa1af85ed67e510e1692ebb8f Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com> Reviewed-by: Oliver Wolff <oliver.wolff@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Windows: Ensure clipboard is flushed out before QGuiApplication is destroyed.Friedemann Kleint2014-02-202-1/+18
| | | | | | | | | | Otherwise, OleFlushClipboard() might query the data again which causes problems for QMimeData-derived classes using QPixmap/QImage. Task-number: QTBUG-36958 Change-Id: I89e58eeb64bd3481e89ad789f310f19ddb4604a2 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Unify glyph format between QFontEngine and QFontEngineGlyphCacheTor Arne Vestbø2014-02-193-4/+4
| | | | | | | | | | | | Instead of the glyph cache having its own cache type that always mapped one to one to a font engine glyph format, causing confusion and needless conversions, the glyph caches now use QFontEngine's glyph format enum. This also removes the iffy use of an int for the glyphFormat in the font engines. Change-Id: I529bad5c179e004f63e152f7dcc311d298c3db98 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Consolidate StandardButton, ButtonRole and related static functionsShawn Rutledge2014-02-151-1/+1
| | | | | | | | | | Moving them into QPlatformDialogHelper for the convenience of both widgets and QtQuick.Dialogs. The main reason is to ensure that QtQuick.Dialogs does not need to depend on the widgets module, in order to re-implement the button box concept in a generic dialog. Change-Id: If400d215338d7cb6dade39d9de60e50b5e7515ef Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Dynamic GL switch on WindowsLaszlo Agocs2014-02-146-59/+86
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The patch introduces a new build configuration on Windows which can be requested by passing -opengl dynamic to configure. Platforms other than Windows (including WinRT) are not affected. The existing Angle and desktop configurations are not affected. These continue to function as before and Angle remains the default. In the future, when all modules have added support for the dynamic path, as described below, the default configuration could be changed to be the dynamic one. This would allow providing a single set of binaries in the official builds instead of the current two. When requesting dynamic GL, Angle is built but QT_OPENGL_ES[_2] are never defined. Instead, the code path that has traditionally been desktop GL only becomes the dynamic path that has to do runtime checks. Qt modules and applications are not linked to opengl32.dll or libegl/glesv2.dll in this case. Instead, QtGui exports all necessary egl/egl/gl functions which will, under the hood, forward all requests to a dynamically loaded EGL/WGL/GL implementation. Porting guide (better said, changes needed to prepare your code to work with dynamic GL builds when the fallback to Angle is utilized): 1. In !QT_OPENGL_ES[_2] code branches use QOpenGLFunctions::isES() to differentiate between desktop and ES where needed. Keep in mind that it is the desktop GL header (plus qopenglext.h) that is included, not the GLES one. QtGui's proxy will handle some differences, for example calling glClearDepth will route to glClearDepthf when needed. The built-in eglGetProcAddress is able to retrieve pointers for standard GLES2 functions too so code resolving OpenGL 2 functions will function in any case. 2. QT_CONFIG will contain "opengl" and "dynamicgl" in dynamic builds, but never "angle" or "opengles2". 3. The preprocessor define QT_OPENGL_DYNAMIC is also available in dynamic builds. The usage of this is strongly discouraged and should not be needed anywhere except for QtGui and the platform plugin. 4. Code in need of the library handle can use QOpenGLFunctions::platformGLHandle(). The decision on which library to load is currently based on a simple test that creates a dummy window/context and tries to resolve an OpenGL 2 function. If this fails, it goes for Angle. This seems to work well on Win7 PCs for example that do not have proper graphics drivers providing OpenGL installed but are D3D9 capable using the default drivers. Setting QT_OPENGL to desktop or angle skips the test and forces usage of the given GL. There are also two new application attributes that could be used for the same purpose. If Angle is requested but the libraries are not present, desktop is tried. If desktop is requested, or if angle is requested but nothing works, the EGL/WGL functions will still be callable but will return 0. This conveniently means that eglInitialize() and such will report a failure. Debug messages can be enabled by setting QT_OPENGLPROXY_DEBUG. This will tell which implementation is chosen. The textures example application is ported to OpenGL 2, the GL 1 code path is removed. [ChangeLog][QtGui] Qt builds on Windows can now be configured for dynamic loading of the OpenGL implementation. This can be requested by passing -opengl dynamic to configure. In this mode no modules will link to opengl32.dll or Angle's libegl/libglesv2. Instead, QtGui will dynamically choose between desktop and Angle during the first GL/EGL/WGL call. This allows deploying applications with a single set of Qt libraries with the ability of transparently falling back to Angle in case the opengl32.dll is not suitable, due to missing graphics drivers for example. Task-number: QTBUG-36483 Change-Id: I716fdebbf60b355b7d9ef57d1e069eef366b4ab9 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>