summaryrefslogtreecommitdiffstats
path: root/src/gui/opengl
Commit message (Collapse)AuthorAgeFilesLines
...
| | * QOpenGLTexture: test for extensions when checking featuresGiuseppe D'Angelo2014-05-251-8/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Don't use only the GL version, as vendors expose many many extensions on viable hardware. For instance, I have a NVIDIA G210 which supports up to GL3.3, but which features immutable storage, immutable multisampled storage, texture buffers and ranges, stencil texturing, and cubemap arrays. Change-Id: Ie6023ee854b679737fca982578cb2093e10d083f Reviewed-by: Paul Lemire <paul.lemire@kdab.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
| | * Fix a crash in QOpenGLTexture::allocateStorage()Tasuku Suzuki2014-05-231-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | QOpenGLTexture texture(QOpenGLTexture::Target2D); texture.allocateStorage(); // crashed Change-Id: Ia12f69b72e537cf765387cd172d7cb2cbbbad6e6 Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
| | * Fall back to ANGLE BlitFramebuffer and RenderbufferStorageMultiSampleAndrew Knight2014-05-221-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | When these extensions aren't available, use ANGLE's versions of them. Task-number: QTBUG-31010 Change-Id: I9a85b9f4d2bb60bdb1d79c92edf241b95d0627bf Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* | | Fix multisampled fbo readbackLaszlo Agocs2014-06-051-11/+37
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now that the current fbo is not tracked anymore, toImage() and blitFramebuffer() will not restore the previously bound (or whichever Qt thinks was current before) fbo. toImage() needs to accommodate this since the isBound() check was going wrong now that the blit always makes the fbo non-current. The current fbo is now queried via glGet both in toImage() and blitFramebuffer(). This will fix the recently introduced Lancelot failures with -glbuffer. Change-Id: I43a780beaeac4697d92cb0ebda7d14ca28a3924f Reviewed-by: aavit <eirik.aavitsland@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* | Remove tracking of the current fboLaszlo Agocs2014-06-021-23/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When binding an FBO directly via glBindFramebuffer, the QOpenGLContext's internal current_fbo, that is maintained by QOpenGLFramebufferObject, becomes out of sync. This will lead to QOpenGLFramebufferObjects thinking they are still bound. Such state tracking should be avoided since it is becoming increasingly difficult to keep it consistent between the various OpenGL API wrappers and will never be robust enough when the application changes the state by directly calling OpenGL functions. current_fbo is now removed in QtGui. QtOpenGL is not touched. Change-Id: Id809aab1306c9486d1e2ba3bb5aa93593659e920 Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* | Fix support for depth/stencil textures in QOpenGLTextureGiuseppe D'Angelo2014-05-262-8/+248
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When allocating (mutable) storage for a texture, OpenGL mandates that the client-side format and pixel type "match" the internal format. That needs to happen even if we are not actually uploading anything (because we're passing NULL as the data parameter and no PBO is bound). This means that we need to pick a compatible format/type and not just pass GL_RGBA / GL_UNSIGNED_INT. In turn, it implies adding new enum values to the various format/type enums. Change-Id: If40c63b1d44764b3be131dd1b41d13983a19ae45 Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* | Introduce QOpenGLTexture::target()Giuseppe D'Angelo2014-05-242-0/+13
| | | | | | | | | | | | | | | | | | | | To extract the target of a given texture object. Somehow this accessor was missing. Change-Id: Ie43366bed3627a20204600e68e426b55abf37af6 Reviewed-by: Paul Lemire <paul.lemire@kdab.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* | Load winsys and gl dynamically in the windows pluginLaszlo Agocs2014-05-221-4/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The dynamic builds (-opengl dynamic) are now functional on Windows. In such a build no components in Qt link to any OpenGL libraries directly and qmake will not automatically add any such libraries to the applications' makefiles. Instead, the libraries are chosen and loaded during runtime and applications are expected to use QOpenGLFunctions instead of direct OpenGLfunction calls. Set the environment variable QT_OPENGL to desktop or angle to skip testing and force the given implementation. The application attributes (AA_UseOpenGLES and such) are also taken into account. The testing logic is same as before: We try to load opengl32 and resolve a shader related function. If this fails, ANGLE is chosen. This allows utilizing full desktop OpenGL on systems that have proper drivers, while a transparent fallback to ANGLE will be done automatically for systems that don't. The latter includes also remote desktop connections. Software rendering via Mesa llvmpipe is supported too. The fallback is automatic on systems where the desktop test fails and ANGLE fails to load or initialize (e.g. due to missing libs like d3dcompiler), as long as a suitable patched build of Mesa is available. [ChangeLog][QtGui] Dynamic OpenGL implementation loading is now supported on Windows. This requires Qt to be configured with -opengl dynamic. Task-number: QTBUG-36483 Change-Id: Ie8bb25a6d55b3a1609b00150aeccd909aec27313 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* | Merge remote-tracking branch 'origin/stable' into devSimon Hausmann2014-05-221-2/+2
|\| | | | | | | Change-Id: Ia36e93771066d8abcf8123dbe2362c5c9d9260fc
| * QOpenGLTextureBlitter fix allocating 4 times as much memory as neededJorgen Lind2014-05-161-2/+2
| | | | | | | | | | | | | | and copying a lot of garbage. Change-Id: Idf1d23d06423a98ce503c9bcf9614b12dd1fb92a Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* | Expose multisample settings on QOpenGLTextureSean Harmer2014-05-162-2/+125
| | | | | | | | | | | | Change-Id: I877f4139aed8bb03b798818a3fac00dab1523ce1 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2014-05-132-33/+8
|\| | | | | | | | | | | | | Conflicts: src/gui/kernel/qguiapplication.cpp Change-Id: Ibe75603dc8a51769db6550ea3f07bc8d19b0be85
| * Remove an unused workaround and fix up the comments in the glyph cacheLaszlo Agocs2014-05-131-29/+2
| | | | | | | | | | | | | | | | | | | | | | This old workaround is not necessary and could not be used anyhow since it would affect a way too wide range of drivers. Modern drivers should be able to honor the default GL_UNPACK_ALIGNMENT of 4 even for 1 byte per pixel formats like GL_ALPHA. Instead, document why the behavior is correct. Change-Id: I1687448ba92875c8ff772ccc371894e88ff64096 Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
| * 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>
* | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2014-05-131-0/+3
|\| | | | | | | | | | | | | Manually changed enum to LibGL in src/plugins/platforms/xcb/qglxintegration.cpp Change-Id: If34ee6cce3d1d51fb4bb1fdfa59c30389ea0d207
| * 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/stable' into devFrederik Gladhorn2014-05-0612-95/+106
|\| | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: mkspecs/qnx-x86-qcc/qplatformdefs.h src/corelib/global/qglobal.h src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp src/opengl/qgl.cpp src/opengl/qglpixelbuffer.cpp src/opengl/qglshaderprogram.cpp tests/auto/opengl/qglthreads/tst_qglthreads.cpp Change-Id: Iaba137884d3526a139000ca26fee02bb27b5cdb5
| * 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>
* | Include GLES 3.0 and 3.1 headers when availableLaszlo Agocs2014-04-241-1/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In ES builds configure will now check for OpenGL ES 3.0 and 3.1 availability. This allows qopengl.h to include the correct header and, by defining QT_OPENGL_ES_3 and QT_OPENGL_ES_3_1, the OpenGL wrappers can provide support for MapBuffer, VAOs, etc. on GLES 3.0+ too. Right now this is not possible since the only standard way to use an ES function specific to a given version is to use the function directly. The extension mechanism (eglGetProcAddress and friends), that is often used in desktop GL, is not available for such functions. [ChangeLog][QtGui] QtGui's OpenGL headers are now automatically including the highest available header (gl31.h, gl3.h or gl2.h) in OpenGL ES builds. Task-number: QTBUG-38168 Change-Id: Ib857c58fe1696a9546fdd1aa143a9237e80325a5 Reviewed-by: Jørgen Lind <jorgen.lind@digia.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2014-04-116-31/+27
|\| | | | | | | | | | | | | | | | | | | Conflicts: mkspecs/qnx-armv7le-qcc/qplatformdefs.h src/printsupport/kernel/qcups.cpp src/widgets/styles/qstyle.h tests/auto/widgets/itemviews/qlistwidget/tst_qlistwidget.cpp Change-Id: Ia41e13051169a6d4a8a1267548e7d47b859bb267
| * 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>
* | Merge remote-tracking branch 'origin/stable' into devIikka Eklund2014-04-013-10/+14
|\| | | | | | | Change-Id: I2a6eb9dd7724931bc89f28bcc156e77c4e26d069
| * 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>
* | Merge "Merge remote-tracking branch 'origin/stable' into dev" into ↵Mitch Curtis2014-03-314-239/+270
|\ \ | | | | | | | | | refs/staging/dev
| * | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2014-03-244-239/+270
| |\| | | | | | | | | | | | | | | | | | | Conflicts: src/gui/image/qjpeghandler.cpp Change-Id: I9db3acea7d5c82f5da679c8eaeb29431136665f0
| | * 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>
* | | Do not pull in egl for QtGui and QtOpenGLLaszlo Agocs2014-03-251-1/+0
|/ / | | | | | | | | | | | | | | This must be some leftover: there are no winsys interface dependencies outside the platform plugins. Change-Id: Idde64699a5335155bdda745e78d6edbc68a8711b Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* / Remove non-existent function from headerLaszlo Agocs2014-03-211-2/+0
|/ | | | | | | | This is a leftover from the QGL->QOpenGL migration, the function never existed in the QOpenGL variant of the class. Change-Id: I47bdfb7f65ffc6cdd39b353e3a69900ccf10e4fc Reviewed-by: Jørgen Lind <jorgen.lind@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>