summaryrefslogtreecommitdiffstats
path: root/src/gui/opengl
Commit message (Collapse)AuthorAgeFilesLines
* Enable support for OpenGL 4 on OS X 10.9Sean Harmer2014-05-101-4/+6
| | | | | | Change-Id: Ifc3aeea8bf4bada821d09cc329748cad16923d6a Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* Document returned format of QOpenGLFramebufferObject::toImage()Allan Sandfeld Jensen2014-05-061-0/+3
| | | | | | | | The image format returned by QOpenGLFramebufferObject::toImage() on OpenGL ES/2 builds changed in 5.2.0 but was not documented. Change-Id: I2379c62c7f715803192ffa9bb8ae1171ef4b2314 Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* Merge remote-tracking branch 'origin/release' into stableFrederik Gladhorn2014-05-0111-48/+52
|\ | | | | | | | | | | This merge adds the opengl rename. Change-Id: I84ea0b6abee9780ebb2cf3f64ab9e3fdf2acab3e
| * Rename new QOpenGLContext APIsLaszlo Agocs2014-04-2511-47/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * QOpenGLFunctions: Compile on Mac OS 10.6Morten Johan Sørvig2014-04-241-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | The 10.6 OpenGL headers have "GLenum" as the type for the 3rd argument. The OpenGL standard has "Glint", which is also what Qt expects. Work around this by casting the pointer type. Task-id: QTBUG-38406 Change-Id: I6d820f41e0d14cbc2d50d91997b6c40b626b159f Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* | Document setUniformValue limitations wrt non square matricesLaszlo Agocs2014-04-251-0/+48
| | | | | | | | | | | | | | Task-number: QTBUG-37012 Change-Id: Ife4f16eef22090ae4f6fdc24b69a45142a10d9c9 Reviewed-by: Jørgen Lind <jorgen.lind@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* | Merge remote-tracking branch 'origin/release' into stableJani Heikkinen2014-04-232-47/+2
|\| | | | | | | Change-Id: Id13b4a3803664692f32f9d57549be8a0c4a08567
| * Remove internal public function from QOpenGLFunctionsLaszlo Agocs2014-04-172-47/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | QOpenGLContext uses glGetTexLevelParameteriv on desktop OpenGL and so it got recently added to QOpenGLFunctions as part of the dynamic GL loading support. This is unnecessary since such desktop-only code can use the versioned wrappers (QOpenGLFunction_1_0 for example). In related upcoming changes in 5.4 the function is removed. This change has to be backported to 5.3 to prevent introducing this public API unnecessarily. Change-Id: I6fc331091e4e6416e430bf985afcc17a392fc2e3 Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* | remove context unmatched warning in QOpenGLTextureTasuku Suzuki2014-04-161-0/+4
|/ | | | | | | | destroy() or destructor complain when QOpenGLTexture is not created or it is already destroyed. Change-Id: I6b3135849e3ba2ce35678fcdbf1c9b6e588a063c Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* purge vestiges of opengl es 1 supportOswald Buddenhagen2014-04-042-30/+8
| | | | | | | | amends 0d5170256c1. Change-Id: Ifa178d38f602bb7c66ef13334673ff47e332af5b Reviewed-by: Jørgen Lind <jorgen.lind@digia.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* Add isCreated to QOpenGLTextureBlitterJorgen Lind2014-04-042-0/+7
| | | | | Change-Id: Icb1a0354ac1caee38e3cb0cba6d7daec99d66c54 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* Avoid an "OpenGL Error: 1282" output when resizing a QOpenGLWidgetJocelyn Turcotte2014-04-021-0/+2
| | | | | | | | | | | | | When we delete the previous FBO in QOpenGLWidget::resizeEvent while it is the currently bound FBO, the QOpenGLContextPrivate::current_fbo will not be updated and will try to be bound during the initialization of the new FBO. Fix the issue by explicitly releasing the FBO on destruction if it is current. Change-Id: Id049889c4857526750bbecf3dd27343e44449c12 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* Use an offscreen surface in VAO cleanupLaszlo Agocs2014-04-011-1/+10
| | | | | | | | | Avoid failing the makeCurrent() on iOS that does not currently support using a window with different contexts. Change-Id: I2e10ad7e382161625a78518d02ad94edaff591ca Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* Keep track of destroyed QOpenGLContexts in QOpenGLVertexArrayObjectTor Arne Vestbø2014-03-271-2/+6
| | | | | | | | | | | | | | | | | | | | | QOpenGLVertexArrayObject saved the QOpenGLContext it was created in at the point of QOpenGLVertexArrayObjectPrivate::create(), but didn't set the saved context back to 0 in QOpenGLVertexArrayObjectPrivate::destroy(). The result was that the zero-pointer checks in the VAO destructor never hit, and we ended up trying to make a destroyed QOpenGLContext current. This bug was triggered by the QFontEngine having a limit of 4 concurrent glyph caches, so when we created the fifth glyph cache we would remove an earlier one, which destroyed its VOA, that referenced a QOpenGLContext for a window that had been destroyed already. We now reset the context back to 0, and disconnect aboutToBeDestroyed() at the point of QOpenGLVertexArrayObjectPrivate::destroy(). Change-Id: Ib16f3877b310144886cf863b16697c137e7c7941 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Doc: Fix typosJonathan Liu2014-03-271-1/+1
| | | | | Change-Id: I720813b126f02d4813c88811316a0fa99961c6d8 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Fix some documentation errors.Friedemann Kleint2014-03-241-7/+7
| | | | | | | | Correct links and fix typos, remove obsolete documentation, fix some snippets, mark some classes as internal. Change-Id: I9a3266605f060783413d32740057a57a820c8929 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* Docs: Correct OpenGL ES namingLaszlo Agocs2014-03-201-212/+212
| | | | | | | | Not sure where "OpenGL/ES" is coming from but there is no such thing. The correct name is OpenGL ES. Change-Id: If071ee5bd928fea1a2f1aebc11155344df1efe2d Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* Resurrect advanced bindTexture() features in QtOpenGLLaszlo Agocs2014-03-201-3/+42
| | | | | | | | | | | | | | During the Qt 4 -> 5 migration the setting of the extension flags in QOpenGLFunctions/Extensions suffered a regression: flags like GenerateMipmap were never set. This led to the unfortunate sitation that features that were tied to these flags, like compressed texture support or mipmap generation, got disabled. This is now corrected by checking for the extensions like Qt 4 did. Task-number: QTBUG-37588 Change-Id: I4a7beb1b435af11e05f5304aa04df2ec63b34c18 Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* Add note to docs about normalization in setAttributeBufferLaszlo Agocs2014-03-171-0/+6
| | | | | | Task-number: QTBUG-37103 Change-Id: I0b1716b76e10c65871c6a96dab5d8d81c95095d7 Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* Revert "Make OpenGL texture glyph cache use the right freetype glyphs"Allan Sandfeld Jensen2014-03-171-11/+1
| | | | | | | | | | | | | | | | This reverts commit f78661b03cc1affcdd222be50b35d956edac4711. The reverted patch was working around that QFontEngineFT was using the poor QFontEngine fall back. That issue was fixed in commit 0b7beaaaf2384fae01ae403737450a59b2fcabac, and the work around is no longer needed. This also fixes a rare problem with the workaround when the fontengine and the glyph-cache do not share the same default glyph format which can happen with QRawFonts. Change-Id: I150f70a003b137c1d145f6f70cda568c85633e5c Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* Fix dynamic opengl buildLaszlo Agocs2014-03-141-3/+5
| | | | | | | | Some ifdefs were slightly incorrect. Change-Id: I5ffb162becb040c91ed56f36c6126c59f67c367a Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
* Add workaround for bug in the Mesa glsl optimizerJorgen Lind2014-03-141-10/+4
| | | | | Change-Id: I23251f5288b41f5b7f86406984fdd854127797a9 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* Doc: correction link, example and parameter issues qtbaseNico Vertriest2014-03-101-26/+46
| | | | | | | | | | | | | Moved codecs folder to qtbase/examples Corrected quote in dropsite.qdoc Replaced snippet statement by include statement Added doc for undocumented parameters Task-number: QTBUG-34749 Change-Id: If4de95b8d39e5680fd0f63f8d2b6685a4b0a8052 Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Avoid using direct OpenGL calls in gui and widgetsLaszlo Agocs2014-03-1015-306/+406
| | | | | Change-Id: I5d88a2e204ca23e178a4e3044b9cb13392c3e763 Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
* Clean up proxy leftovers in gui/openglLaszlo Agocs2014-03-062-14/+0
| | | | | | Change-Id: I24d10dab121c23b0683fa99bd309cf557c3ddffb Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
* Make QOpenGLFunctions able to resolve everythingLaszlo Agocs2014-03-061-48/+335
| | | | | | | | | | | | | At least if the platform plugin's QPlatformOpenGLContext implementation supports it. This completes the QOpenGLFunction changes necessary for dynamic loading of the OpenGL implementation. Everything else is up to the platform plugin. Change-Id: I710e6fbee3005360ecf02bc6ef976e1beb513819 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
* Extend QOpenGLFunctions with GL1 functionsLaszlo Agocs2014-03-042-98/+1286
| | | | | | | | | | | | | | | | | | 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>
* Dynamic GL: remove exporting symbolsLaszlo Agocs2014-03-0415-4746/+63
| | | | | | | | | | | | | | | | | | | | | 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>
* Fix some typosSergio Ahumada2014-03-032-2/+2
| | | | | | Change-Id: I7dbe938bff5ac3ab50a0197f94bdb2f6c22fbd16 Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com> Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
* Add core profile versions of the glyph cache shadersLaszlo Agocs2014-02-282-4/+40
| | | | | | | | | | | | | The last step to make QOpenGLTextureGlyphCache working with OpenGL core profiles. [ChangeLog] Native (that is, not distance field based) text rendering is now functional on OpenGL 3.2+ core profiles too. Task-number: QTBUG-36993 Change-Id: Ic6c0db4806cea623ca7a19ab77b0329155824877 Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Use a VAO in the texture glyph cacheLaszlo Agocs2014-02-262-10/+33
| | | | | | | Task-number: QTBUG-36993 Change-Id: Icc77035b582c804ed809ea3cd99c0048b34d41d2 Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Fix glyph texture format on core profileLaszlo Agocs2014-02-261-2/+21
| | | | | | | | | Native text rendering is now functional on core profile too, as long as the driver allows compiling GL2-style shaders. Task-number: QTBUG-36993 Change-Id: I83f3cafae714427dda807921ee79e5a64e55cc64 Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* Texture glyph cache: Use a vboLaszlo Agocs2014-02-262-3/+20
| | | | | | | | | | | | | | It is not going to work with core profile otherwise. This fixes one of the several problems that make native text rendering in Quick impossible with OpenGL core profile. The GL2 paint engine path is not changed, that continues to use client side pointers. Task-number: QTBUG-36993 Change-Id: Icfbd6efc894a79a3a84568fb792c1cb6692469cb Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* Fix a getProcAddress in QOpenGLDebugLogger under Win32 + Desktop GL + ATIGiuseppe D'Angelo2014-02-251-0/+14
| | | | | | | | | | | We can't resolve a "basic entry point" such as glGetPointerv on Windows' Desktop GL. Apparently NVIDIA drivers let us do that, but ATI ones don't. Change-Id: I8e8a54b5dcd3fe87f2bd677d1d0cf08b3e8c11c4 Reviewed-by: Thomas Steen Reviewed-by: James Turner <james.turner@kdab.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Properly migrate vao helper to dynamic GLLaszlo Agocs2014-02-251-82/+67
| | | | | | | | | | Remove the forced bail out when isES() returns true. This is not necessary. Change-Id: I5ee21fe1e66163e2391bd11b647827b3c0a020c1 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Doc: Address some "No documentation for..." QDoc warningsSze Howe Koh2014-02-241-0/+2
| | | | | | | Task-number: QTBUG-36985 Change-Id: I8619fb77e7879399064281f7bbefe5f12d3849a2 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
* Introducing QOpenGLShaderProgram::create()Gunnar Sletta2014-02-222-1/+24
| | | | | | | | | | | | Needed for QOpenGLShaderProgram to be usable with GL_OES_get_program_binary and potentially other extensions. [Changelog][QtGui] The function QOpenGLShaderProgram::create() has been added. It is can be used to force immediate allocation of the program's id. Change-Id: I36b3f45b00e7a439df12c54af7dc06c0ba913587 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Expose NPOTTextureRepeat in QOpenGLFunctionsLaszlo Agocs2014-02-211-2/+4
| | | | | | | | | | | Desktop GL 2.0 and higher supports GL_REPEAT on non-power-of-two textures. GL_ARB_texture_non_power_of_two mentions this explicitly in issue #8. Change-Id: Ia7f3b412b39cca4bec8a6caec3b1281b4c29ab75 Reviewed-by: Jørgen Lind <jorgen.lind@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* Remove QT_OPENGLPROXY_DEBUGLaszlo Agocs2014-02-211-3/+0
| | | | | | Change-Id: Iac4c5217eca88ac14acca55d19e421d8e33cdb1d Reviewed-by: Jørgen Lind <jorgen.lind@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Unify glyph format between QFontEngine and QFontEngineGlyphCacheTor Arne Vestbø2014-02-194-34/+31
| | | | | | | | | | | | 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>
* Fix glyph cache type logic after 97c187da3c1381bc55dd16976Tor Arne Vestbø2014-02-171-2/+2
| | | | | | | | The setting of the default format of Raster_A8 was mistakenly moved down to below the override of Raster_RGBMask. Change-Id: I52ee19180471c6f5c8d6824ee35f8d39632c9d94 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* QOpenGLTextureBlitter: fix source rect when origin is top leftJørgen Lind2014-02-161-2/+3
| | | | | | | | This fixes the issue that the blitter required sometimes the texture wrapping to be repeat Change-Id: I86150d008422facf9040873b0983b0e44be9ad24 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* QOpenGLTextureBlitter: Remove Origin location for the Target rectJørgen Lind2014-02-162-14/+12
| | | | | | | | | | | | | | | | | | | | | The Origin for Target rect was deemed a confusing concept. The current implementation would translate the target rect to the coordinate system specified. However, the order and "direction" of the vertices would always be the same. So drawing a texture in for one target rect defined in one coordinate system would paint the texture the same way as it would when a texture was drawn for a target rect drawn in the "opposite" coordinate system. The point with this was that if you wanted to "flip" the texture you would specify that with the source coordinate system. However, this approach breaks on different levels, such as QRect has functions which expects a top left coordinate system (ie. top() and bottom()). In the end Qt uses a top left coordinate system, hence QWindow specifies a top left coordinate system, and hence the api becomes easier if it is not possible to define the coordinate system of the target viewport. Change-Id: I7dd59b3718380876e87a4bff88381d7a1c7d58c1 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* Fix logging with dynamic GL on WindowsLaszlo Agocs2014-02-141-4/+3
| | | | | | | | | | category() returns a const QLoggingCategory so our code does not compile anymore. Do it differently. Fix also the Windows error string formatting a bit. Change-Id: Ie0b6b02947d94b7ccf4a4a57da487dfa8a15709d Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* OpenGL: Fix QOpenGLTexture for cubemaps with mutable storageSean Harmer2014-02-142-9/+71
| | | | | | | | | | | | The code was not creating all of the storage necessary for cubemaps as well as attempting to bind to the cubemap face targets which is invalid when using mutable storage - typically on OS X where EXT_direct_state_access is not available and immutable storage is only available at all if using an OpenGL 4.1 context. Change-Id: I4cf84f1b88c90e8359366392b3ccda65669ebfa7 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: Pasi Keränen <pasi.keranen@digia.com>
* Dynamic GL switch on WindowsLaszlo Agocs2014-02-1419-487/+5271
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2014-02-121-4/+15
|\ | | | | | | | | | | | | | | | | | | Conflicts: src/gui/image/qimage.cpp src/gui/text/qtextengine.cpp src/plugins/platforms/linuxfb/qlinuxfbscreen.cpp src/printsupport/kernel/qprintengine_win.cpp Change-Id: I09ce991a57f39bc7b1ad6978d0e0d858df0cd444
| * Doc: Fix issues with QOpenGLTexture enumerationsTopi Reinio2014-02-111-4/+15
| | | | | | | | | | | | | | | | | | Use correct parameters for \enum commands, and add documentation for QOpenGLTexture::Filter enumeration. Task-number: QTBUG-35576 Change-Id: If7099da0b2b570c28e683126f0ba3a885d80f741 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* | Merge "Merge remote-tracking branch 'origin/stable' into dev" into ↵Frederik Gladhorn2014-02-112-1/+30
|\ \ | | | | | | | | | refs/staging/dev
| * | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2014-02-072-1/+30
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/gui/kernel/qguiapplication.cpp src/plugins/platforms/android/androidjnimain.cpp src/plugins/platforms/android/qandroidplatformintegration.cpp src/plugins/platforms/android/qandroidplatformintegration.h src/plugins/platforms/android/qandroidplatformopenglcontext.cpp src/plugins/platforms/cocoa/qcocoawindow.h src/plugins/platforms/cocoa/qcocoawindow.mm src/plugins/platforms/xcb/qxcbconnection_xi2.cpp src/sql/doc/src/sql-driver.qdoc src/widgets/widgets/qtoolbararealayout.cpp Change-Id: Ifd7e58760c3cb6bd8a7d1dd32ef83b7ec190d41e