summaryrefslogtreecommitdiffstats
path: root/examples/opengl
Commit message (Collapse)AuthorAgeFilesLines
* Unify license header usage.Jani Heikkinen2016-03-2992-284/+1164
| | | | | | | | | Update files using old header.LGPL3 to header.LGPL Update files using old FDL template to use new one Update files using old BSD template to use new one Change-Id: I36a78272516f9953d02956522f285b40adfc8915 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* Doc: Replaced Trolltech logo with Qt logoNico Vertriest2016-02-031-0/+0
| | | | | | Task-number: QTBUG-37505 Change-Id: If59039b2f7e60ffea3e8c7803d38e528acf35383 Reviewed-by: Martin Smith <martin.smith@theqtcompany.com>
* Examples/Doc snippets: Fix single-character string literals.Friedemann Kleint2015-10-131-1/+1
| | | | | | | Use character literals where applicable. Change-Id: I79fa5018f05735201ae35ee94ba0d356fcad1056 Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* Fix up QOpenGLWidget transparency supportLaszlo Agocs2015-09-242-2/+9
| | | | | | | | | | | | | | | The glColorMask call was troublesome. In addition, the Qt::WA_TranslucentBackground was misinterpreted and recommended misleadingly in the documentation. The hellogl2 example's --transparent argument was disfunctional in practice. Replace glColorMask with glBlendFuncSeparate. The hellogl2 example and the docs are now corrected wrt enabling semi-transparency in a QOpenGLWidget that is not a top-level (which is the most common case). Task-number: QTBUG-47276 Change-Id: I6f40e732d455f5efcf158649ac9a52ff9f240e85 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* Port examples/opengl to new connection syntax.Friedemann Kleint2015-09-029-37/+38
| | | | | Change-Id: I486a4a2326bf57ec5ea08bccdcef79c3e5553db5 Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* Compile in namespaced buildsSean Harmer2015-08-311-0/+4
| | | | | Change-Id: I2894fbadec50286c0831bf381d149b54ade9182d Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* Make the gles3 example more impressivePaul Olav Tvete2015-07-246-144/+84
| | | | | | | | | | Add some extra rotations and offsets, to show off the power of what you can do with a single draw call. Also use QGLWindow instead of QGLWidget. This improves performance from 23 FPS to 30 FPS on a 4k monitor with integrated Intel graphics. Change-Id: Iedac1c14cc6057959aa15faaacdf29da91f36ab1 Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* Expose GLES 3.0 and 3.1 functionsLaszlo Agocs2015-07-239-1/+535
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Using the approach we already do for some GLES 3.0 functions we can provide a cross-platform, cross-GL-GLES wrapper for ES 3.0 and 3.1 functions too. Applications only have to take extra care about the version requests (context version and version directives in shader code), the rest of their code can stay the same across desktop/mobile/embedded, even when ES 3 functions are used. The new functions are placed to a new subclass which is placed between QOpenGLFunctions and the internal QOpenGLExtensions. This is necessary because, unlike with QOpenGLFunctions, there is no guarantee that these functions are always available in all configurations. When running on desktop OpenGL, we resolve as usual. If the OpenGL version contains the function in question, either in core or as an extension, it will all just work. This is handy because it does not rely on 4.x extensions like GL_ARB_ESx_compatibility, and so ES 3.0 functions will be functional on OpenGL 3.x systems too by just setting a 3.x version number in the QSurfaceFormat. We will no longer qFatal on broken systems where the driver returns a 3.0 or 3.1 context without the corresponding functions present. Instead, we show a warning and gracefully fall back to resolving as usual, via eglGetProcAddress or similar. For functions that are available in ES2 as an extension this may just work fine. Added also an example that runs identically both with OpenGL and OpenGL ES 3 and utilizes some ES 3.0 features like instanced drawing. [ChangeLog] Added QOpenGLExtraFunctions providing OpenGL ES 3.0 and 3.1 function wrappers in a cross-platform manner. Task-number: QTBUG-46161 Change-Id: I9f929eb61946c35c415b178c4d6ab2c1c958684e Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
* Merge remote-tracking branch 'origin/5.5' into devLiang Qi2015-07-011-3/+4
|\ | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/global/qglobal.cpp src/corelib/global/qglobal.h src/corelib/global/qsysinfo.h src/corelib/global/qsystemdetection.h src/corelib/kernel/qobjectdefs.h src/plugins/plugins.pro tests/auto/widgets/itemviews/qlistview/qlistview.pro Change-Id: Ib55aa79d707c4c1453fb9d697f6cf92211ed665c
| * fix usage of wince scopeOswald Buddenhagen2015-06-051-3/+4
| | | | | | | | | | | | | | Fix style issues along the way. Change-Id: Ic6a6de28e198eb0b14c198b802e78845703909b9 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | Updated Hello GL2 Example to new Signal/Slot syntaxBenjamin Summerton2015-06-292-8/+8
|/ | | | | | | | | The Hello GL2 Example was using the older Signal/Slot syntax that made use of the macros `SIGNAL()` and `SLOT()`. I changed it to the newer one. Change-Id: I8e55015383847a04b07f751fe9fc94b81956a896 Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* Clip QOpenGLWidget and QQuickWidget correctlyLaszlo Agocs2015-06-013-7/+21
| | | | | | | | | | | | | Introduce support for the widgets' clipRect(). Right now render-to-texture widgets in scroll areas placed close to each other result in broken (non-existent) clipping. Similarly, stack-on-top widgets fail to clip when placed inside a scroll area. This is now corrected and the qopenglwidget example is enhanced to utilize a scroll area. Task-number: QTBUG-45860 Change-Id: I859a63d61a50d64ba9e87244f83c5969dce12337 Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
* Make OpenGL legacy examples hellogl and overpainting work with Dynamic GL.Friedemann Kleint2015-05-238-25/+33
| | | | | | | | Call GL functions using QOpenGLFunctions_1_1. Task-number: QTBUG-46103 Change-Id: I1cbacf9c192c17d96d96aa861bb16e2918a0c053 Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* Fix exclusion for legacy Open GL examples.Friedemann Kleint2015-05-157-35/+7
| | | | | | | | | Add dynamic GL and remove warning about ANGLE since that package no longer exists. Task-number: QTBUG-46103 Change-Id: Icf93d1105434395a3c9ad61bb8c921fcedfc7137 Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* Set correct target.path for legacy GL examplesMorten Johan Sørvig2015-05-147-7/+7
| | | | | | | | | | | | Fix Library not loaded/image not found error on application startup. With @rpath enabled (commit 6e18f57a) qmake now requires a correct target.path in order to emit correct -rpath @loader_path linker directives. Change-Id: Ia32b038ad2d64819477be5cd9d1ed36768e2251b Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
* Add OpenGL 4.5 to contextinfo exampleLaszlo Agocs2015-03-201-1/+2
| | | | | Change-Id: I6f6c5b55769fd818aaf94580246952a574124c0d Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* Updated BSD licensed file headersJani Heikkinen2015-02-1585-255/+255
| | | | | Change-Id: I6441ff931dbd33b698d762e6f6784898f3f60fe7 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* Update copyright headersJani Heikkinen2015-02-1189-449/+449
| | | | | | | | | | | | | | | | | | Qt copyrights are now in The Qt Company, so we could update the source code headers accordingly. In the same go we should also fix the links to point to qt.io. Outdated header.LGPL removed (use header.LGPL21 instead) Old header.LGPL3 renamed to header.LGPL3-COMM to match actual licensing combination. New header.LGPL-COMM taken in the use file which were using old header.LGPL3 (src/plugins/platforms/android/extract.cpp) Added new header.LGPL3 containing Commercial + LGPLv3 + GPLv2 license combination Change-Id: I6f49b819a8a20cc4f88b794a8f6726d975e8ffbe Reviewed-by: Matti Paaso <matti.paaso@theqtcompany.com>
* QOpenGLWindow example: Remove unused codeKai Koehne2015-01-131-2/+1
| | | | | Change-Id: Ide47a9edf726298b2032e45d6865511801f94fcb Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* Fix a couple of bugs in the QOpenGLWindow exampleJørgen Lind2015-01-103-12/+18
| | | | | | | Also make the fragment shader a bit simpler Change-Id: Ie50940da0a4f896504c9f5962cdb6c455983302f Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-11-242-0/+0
|\ | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/io/qiodevice.cpp src/plugins/bearer/linux_common/qofonoservice_linux.cpp src/plugins/bearer/linux_common/qofonoservice_linux_p.h src/plugins/platforms/android/qandroidplatformtheme.cpp src/tools/bootstrap/bootstrap.pro src/widgets/styles/qmacstyle_mac.mm Change-Id: Ia02aab6c4598ce74e9c30bb4666d5e2ef000f99b
| * New Qt logoAlessandro Portale2014-11-052-0/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | This patch replaces the old Qt logo with the new, flatter one. The PNGs were optimized via: optipng -o7 -strip "all" Task-number: QTBUG-41685 Change-Id: I51983a45144373bf7aee31a32990ecbb2582f488 Reviewed-by: Robert Loehning <robert.loehning@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-10-271-14/+19
|\| | | | | | | | | | | | | Conflicts: src/gui/text/qfontdatabase.cpp Change-Id: I6ac1f55faa22b8e7b591386fb67f0333d0ea443d
| * Further restrict the threaded opengl exampleLaszlo Agocs2014-10-231-14/+19
| | | | | | | | | | | | | | | | Mesa llvmpipe (e.g. the opengl32sw.dll we are shipping) cannot handle threading either. Change-Id: Id822736c4a9eef39e56776dcd1f398fc31ebc0f4 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-10-204-13/+39
|\| | | | | | | Change-Id: If7e51514ed6832750e3ad967e4d322ccf920d2bb
| * Remove unused variable in opengl examplesLaszlo Agocs2014-10-201-2/+0
| | | | | | | | | | | | | | To avoid warnings with some compilers Change-Id: Iabe4f38c0bee29ab17149120d12ce198b49547c8 Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
| * Improve threadedqopenglwidget example.Friedemann Kleint2014-10-103-11/+39
| | | | | | | | | | | | | | | | | | Retrieve vendor/renderer name similar to context info and exclude renderers that do not support threaded Open GL (ANGLE/noveau). Change-Id: I690c2fc277538bf28bf1f6032c2e017ede15e434 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* | Make hellowindow multi display capable on embeddedLaszlo Agocs2014-10-163-8/+30
|/ | | | | | | | | | | | | | | | | Platforms like eglfs allow a single window per screen. Thus the behavior of --multiple is not suitable since it tries to open multiple windows on the primary screen. Instead, introduce --multiscreen. Add also --timeout to quit the app after 10 seconds. This is essential on platforms that do not have windows with decorations that can be used to close windows. With eglfs' kms/drm hooks, starting with --multiscreen will now show a rotating logo on all connected displays, with some random background color. Change-Id: I53f2651f05620e752c289038a9b3ff4508273173 Reviewed-by: Louai Al-Khanji <louai.al-khanji@digia.com> Reviewed-by: Andy Nichols <andy.nichols@digia.com>
* Doc: Use title case in section1 titlesNico Vertriest2014-09-301-3/+3
| | | | | | | | Using Python script title-cased.py Task-number: QTBUG-41250 Change-Id: I00d3d7a0b30db7304a7904efd6d63abd9a7b493b Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* Make qopenglwidget example functional without timers tooLaszlo Agocs2014-09-303-1/+34
| | | | | Change-Id: I6a89eaf794202c45a5ad3152d304e46041704730 Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* hellowindow: Set all the state for each frameLaszlo Agocs2014-09-041-12/+15
| | | | | | | | | | | Trying to be smart and minimizing the amount of GL calls per frame to provide a good example was a mistake (in a way): There are components, like the eglfs mouse cursor, that change the context state. To make sure the example work in these cases, set the state upon each frame. Change-Id: Ief1fd7bbb0fb1955a64dac97a071b7a3d9d506d4 Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
* Use QMenuBar::addMenu in the qopenglwidget exampleLaszlo Agocs2014-08-251-6/+3
| | | | | | | | | | Like in all other places. This way the resulting QMenu is correctly parented so it will show up at the proper position even on platforms which do not have a way to position top-level windows. Task-number: QTBUG-29025 Change-Id: I2aa6fe73699379029c44a3f379366a2133753190 Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
* Set a size in qopenglwindow exampleLaszlo Agocs2014-08-241-1/+1
| | | | | | | | Use showMaximized(). Just calling show() without setting a size can result in a zero-sized, invisible window on some platforms. Change-Id: Ifa48258060e3d651c2fac3a1409a26a2c3db6bdb Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
* Avoid transparency in qopenglwindow exampleLaszlo Agocs2014-08-142-2/+3
| | | | | | | | | On systems that give alpha configs by default writing alpha values of less than 1.0 is a bad idea since it will lead to the content behind the window becoming visible, even though this is not the example's intention. Change-Id: I23cdfc1fb78d77b1cbc192d2aba5d6665a7acfcc Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* Fix composition for windows with alphaLaszlo Agocs2014-08-132-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | While we will cover the entire surface with our textured quads, the clear is still necessary in order to make top-levels with TranslucentBackground render correctly: We don't want to blend transparent areas with undefined content that is in the surface's framebuffer. Blending is problematic for alpha values. We now prevent the blended alpha from being written out. This ensures that in examples like qquickviewcomparison, where the backingstore image contains an alpha of 0.5 while the QQuickWidget texture 1.0, the result is still an alpha value of 1.0 in the final image. Writing out an alpha of 0.5 would break on systems where windows get an alpha buffer by default. hellogl2 can now take a --transparent parameter which makes the QOpenGLWidget being cleared to transparent in order to verify it works in combination with Qt::WA_TranslucentBackground. The swapped red and blue problem is also corrected. RGBA8888 does not need swizzling. The only format that needs this is RGB32. Task-number: QTBUG-40716 Change-Id: I54a9fd3a91a1b59575b38cdb908835315514e40f Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
* Modernize the OpenGL examplesLaszlo Agocs2014-08-12103-1163/+1595
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change them to use QOpenGLWidget and QOpenGLTexture. Advocate also the usage of VBOs. Hopeless examples, that rely on the fixed pipeline and will not compile or work in ES and dynamic builds, are moved to a "legacy" directory. The documentation pages for these are removed. This long due change avoids the confusion newcomers experience when trying to get started with Qt 5 and OpenGL. hellowindow's behavior is changed to open a single window only by default. The old default behavior, that opened three windows on platforms that supported both MultipleWindows & ThreadedOpenGL, can be requested by passing --multiple. --single is removed since it is the default now. This plays much nicer with drivers that have issues with threading. In addition, say hello to hellogl2. This is the old hellogl example updated to use QOpenGLWidget and OpenGL 2. It also has a mainwindow with multiple (un)dockable widgets containing the OpenGL widgets. This helps testing the behavior when the top-level of the QOpenGLWidget changes and provides a very important example of how to do proper resource management in this case. (must use aboutToBeDestroyed() of the context, since the context goes away and is replaced by a new one on every dock/undock) As a bonus, the logo is now real 3D, no more orthographic nonsense. Launch with --multisample to request 4x MSAA. Launch with --coreprofile to request 3.2 Core. In this particular example the shaders are present in both versions and there is a VAO so the application is functional with core profile contexts. Change-Id: Id780a80cb0708ef164cc172450ed74050f065596 Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* Clean up the QOpenGLWindow exampleLaszlo Agocs2014-08-073-82/+116
| | | | | | | | | 1. Use includes without module prefixes, as is the custom in examples. 2. No inline functions to make it more readable. 3. Pause animation on pressing P and document our signal connection a bit more. Change-Id: I68dc3d4c74b639cf3fec17b63b7f49626db58bdb Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* Add missing precision qualifiers in qopenglwindow exampleLaszlo Agocs2014-08-071-6/+6
| | | | | | | Make GLES implementations happy. Change-Id: Ib389e379f23794eee0fa71ca26b863e56cee662e Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* Introduce QOpenGLWindowLaszlo Agocs2014-08-057-2/+486
| | | | | | | | | | | [ChangeLog] Added QOpenGLWindow. This serves as a convenience class for creating windows showing OpenGL content via an API similar to QGLWidget and without any widget dependencies. Done-with: Jorgen Lind <jorgen.lind@digia.com> Task-number: QTBUG-36899 Change-Id: I52e9bc61acb129dbfd3841b3adeffab2dbcf7f05 Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* Make QOpenGLWidget publicLaszlo Agocs2014-08-0119-184/+941
| | | | | | | | | | | | | | | | | | | | | | | | | | | QOpenGLWidget is now public. In addition Qt::WA_AlwaysStackOnTop is introduced to support the special case of semi-transparent QOpenGLWidget or QQuickWidget on top of regular widgets. hellogl_es2 becomes the qopenglwidget example. This example performs painting both via QPainter and native GL commands and has the OpenGL widget combined with other, normal widgets. The widget stack receives some changes when it comes to renderToTexture widgets like QQuickWidget and QOpenGLWidget. Calling update() will now result in a paint event, which is essential for QOpenGLWidget since we want it to behave like a regular widget. The dirty region handling is extended specially for such widgets due to performance reasons. (an OpenGL content update must not result in any backingstore painting, and is thus handled as a different kind of dirtiness) [ChangeLog] Added QOpenGLWidget. This widget serves as a replacement for QGLWidget. Task-number: QTBUG-36899 Task-number: QTBUG-40086 Change-Id: Ibf7f82fea99b39edfffd2fc088e7e0eadbca25cf Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
* Make hellogl work properly regardless of vsyncLaszlo Agocs2014-07-312-7/+21
| | | | | | Task-number: QTBUG-39370 Change-Id: I5b7acb8367f18bfa9318c292657ff7fa0f21f664 Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* Examples: Add Q_DECL_OVERRIDE to overridden functionsOlivier Goffart2014-07-1513-55/+55
| | | | | | | | | | | | | | | | | | Q_DECL_OVERRIDE (which expands to 'override' for supported compiler) helps to declare the intent (that it is an overridden function) and force compilation error when there is no such virtual function in the base class. The examples should show the best practice of having it, as it may save the programmer quite some time in case of change of API or typo in the function name or arguments. This change was done automatically with clang-modernize -add-override -override-macros And fixed MSVC compilation by removing inline for TorrentViewDelegate::paint Change-Id: Ice66ae93fae571266f908703d5b8892b2c1ebb1a Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
* Fix up examples for dynamic opengl buildsLaszlo Agocs2014-05-124-8/+15
| | | | | | Change-Id: Id311b00fe7783a3175dc1c4a38f627c78c470761 Reviewed-by: Jørgen Lind <jorgen.lind@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* purge vestiges of opengl es 1 supportOswald Buddenhagen2014-04-047-479/+5
| | | | | | | | amends 0d5170256c1. Change-Id: Ifa178d38f602bb7c66ef13334673ff47e332af5b Reviewed-by: Jørgen Lind <jorgen.lind@digia.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* contextinfo: Make it more responsive and improve error handlingLaszlo Agocs2014-03-141-2/+7
| | | | | Change-Id: If05cd906edc8b7f1fd4744d8d0a392aeec46a454 Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
* contextinfo example: Print the format() both for context and surfaceLaszlo Agocs2014-03-142-15/+30
| | | | | | | And make the output a bit nicer. Change-Id: I5f0f82374b6e9f9feca70a60c30967adb35d48ec Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
* Remove calls to setlocale in QtOpenGL cube example.Friedemann Kleint2014-03-141-7/+0
| | | | | | | | | | | | This is causing compilation errors on some Windows CE configurations: mainwidget.cpp(130) : error C3861: 'setlocale': identifier not found mainwidget.cpp(149) : error C3861: 'setlocale': identifier not found Change-Id: Ie863cd7c9c53cfef4074dabffe157d9068654a1c Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* Build the cube opengl example both for desktop and ESLaszlo Agocs2014-03-071-2/+2
| | | | | | | | | No reason to restrict it to desktop only, the code works on ES2 too. Task-number: QTBUG-35730 Change-Id: I915a88cbf3c95a941d6bafd88ed57fef0b6a25b9 Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
* Do not attempt to open multiple windows in hellowindow on embeddedLaszlo Agocs2014-03-061-2/+3
| | | | | | | | | | Platforms like eglfs will not allow opening more than one OpenGL-based window. To prevent aborting the hellowindow example when invoked without --single, enhance the capability check to include also WindowManagement in addition to ThreadedOpenGL. Change-Id: I147d90b31d9fd94912c36339d36af3f311aaa874 Reviewed-by: Andy Nichols <andy.nichols@digia.com>
* Extend QOpenGLFunctions with GL1 functionsLaszlo Agocs2014-03-045-21/+27
| | | | | | | | | | | | | | | | | | This introduces the ability to indirectly invoke all common GL1-GLES2 functions via QOpenGLFunctions. The GL1 functions are not yet resolved, since this would not work anyway when linking to an OpenGL implementation directly. However this may change later but that will be a completely internal change without affecting any public APIs. Also migrate some of the opengl examples to use QOpenGLFunctions for everything. Once dynamic GL loading becomes available on some platforms, these examples should continue to function without any changes since they do not anymore invoke any OpenGL functions directly. Task-number: QTBUG-36483 Change-Id: Ie630029651e5a4863a480aac5306edd67ee36813 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>