summaryrefslogtreecommitdiffstats
path: root/src/gui/opengl
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-08-051-2/+2
|\ | | | | | | | | | | | | Conflicts: tests/auto/widgets/itemviews/qtreeview/tst_qtreeview.cpp Change-Id: I6f3878b204464313aa2f9d988d3b35121d4d9867
| * Remove unneeded ';' after some macrosKai Pastor2016-08-041-2/+2
| | | | | | | | | | | | | | | | | | The unneeded ';' triggered warnings in pedantic compilation mode. Change-Id: Id2324823e138560bb25234306601253d7bbd713e Reviewed-by: Richard J. Moore <rich@kde.org> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-08-011-0/+40
|\| | | | | | | | | | | | | | | Conflicts: src/widgets/itemviews/qabstractitemview.cpp src/widgets/itemviews/qabstractitemview_p.h Change-Id: I54589b1365103cb1749186af92aab03a49c94b64
| * QOpenGLDebugLogger: strengthen the code path in case of GL context destructionGiuseppe D'Angelo2016-07-271-0/+34
| | | | | | | | | | | | | | | | Trying to move closer to GL semantics: it is allowed to destroy a GL context at any time and that must free all of its resources. Change-Id: I3daa81d721cf26baf86a1a6435b77e3c28feb1a2 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
| * QOpenGLDebugLogger: do not crash if deleted with the wrong GL context currentGiuseppe D'Angelo2016-07-261-0/+6
| | | | | | | | | | | | | | Task-number: QTBUG-54799 Change-Id: Ifee3183e7944fbe266fe644628d33d0667be99a8 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Edward Welbourne2016-07-262-5/+15
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/io/qtemporarydir.cpp One side encapsulated a repeated piece of #if-ery in a local define; the other added to the #if-ery. Made its addition to the other's. src/corelib/kernel/qeventdispatcher_unix_p.h One side moved some members into a struct; this collided with a #undef check that neither side now has. Discarded the #undef part. src/gui/opengl/qopengltexturehelper_p.h 5.7 deleted a bunch of methods; not clear why merge got confused. src/tools/moc/moc.cpp One added a name to the copyright header; another changed its URL. Change-Id: I9e9032b819f030d67f1915445acf2793e98713fa
| * Workaround clang function export bugBogDan Vatra2016-07-201-17/+25
| | | | | | | | | | | | | | Should be reverted when https://github.com/android-ndk/ndk/issues/142 is fixed. Change-Id: Ie68807062247bee4969bc9aa00b0221c8147fed7 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
| * QOpenGLVertexArrayObject: clean up the destructorGiuseppe D'Angelo2016-07-201-1/+3
| | | | | | | | | | | | | | | | | | Calling QOpenGLContext::surface() on a non-current context will likely return NULL, so the code path that tried to reset the old context as current would actually fail. Change-Id: Ibbc8da877740a596aa7dd0af8ccffb9a1877290a Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Edward Welbourne2016-07-151-1/+4
|\| | | | | | | | | | | | | | | | | | | | | Conflicts: qmake/library/qmakeevaluator.cpp One side changed the iterator to use ranged-for, the other changed its body; they only conflicted because the latter had to add braces around the body, intruding on the for-line. Trivial resolution. Change-Id: Ib487bc3bd6e3c5225db15f94b9a8f6caaa33456b
| * [iOS] Blacklist iOS with regards to bgra supportAndy Shaw2016-07-151-1/+4
| | | | | | | | | | | | | | | | | | | | | | A number of devices are indicating that there is a problem with using bgra so instead of blacklisting all of them individually it is best to blacklist them all on the iOS platform. This ensures QQuickItem::grabToImage() will work then. Task-number: QTBUG-45902 Change-Id: I900857cfa996924469aaaeeee8037dc84a4fd575 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-06-231-1/+2
|\| | | | | | | | | | | | | | | Conflicts: src/angle/src/libGLESv2/libGLESv2.pro src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldeviceintegration.cpp Change-Id: If8da4cfe8f57fea9f78e7239f378a6302c01674e
| * Add PowerVR SGX 554 to the BGRA blacklistAndy Shaw2016-06-201-1/+2
| | | | | | | | | | | | | | | | | | PowerVR SGX 554 is used in iPad wi-fi (4th generation) and blacklisting it solves a problem with grabToImage() in QQuickItem. Task-number: QTBUG-45902 Change-Id: I4b6210a48f70614c4364fc63692c97652836f5d3 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* | Gui: use const (and const APIs) moreAnton Kudryavtsev2016-06-012-22/+18
| | | | | | | | | | | | | | For CoW types, prefer const methods to avoid needless detach()ing. Change-Id: I88d08d499e1be72c1f6d983fecdcee513df18aa2 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* | QOpenGL: use new QJsonObject::value(QLatin1String)Marc Mutz2016-05-161-33/+17
| | | | | | | | | | | | | | | | Allows to get rid of some QStringLiterals, reducing QtGui text size by ~2Kib. Change-Id: Ic033fad5673aadc85930842dfccc24299df154f7 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-05-062-0/+4
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: examples/qtestlib/tutorial5/containers.cpp examples/widgets/tools/tools.pro src/corelib/io/qprocess.cpp src/corelib/io/qprocess_unix.cpp src/corelib/io/qprocess_win.cpp src/network/kernel/qdnslookup_unix.cpp src/plugins/platforms/xcb/qxcbconnection_xi2.cpp src/testlib/qtestcase.cpp tools/configure/configureapp.cpp Change-Id: I838ae7f082535a67a4a53aa13a21ba5580758be8
| * QOpenGLCustomShaderStage - fix a memory leakTimur Pocheptsov2016-05-032-0/+4
| | | | | | | | | | | | | | | | Coverity found a memory leak - CID-10995. Fix a dtor + make copy constructor / assignment operator private (Q_DISABLE_COPY). Change-Id: I4f046d075b60fbfb69f350e4a4d8b07ea1643914 Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* | Support color font rendering for freetype engineJian Liang2016-05-031-79/+92
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch mainly do two things: 1) Support color bitmap font for freetype fontengine. This partially based on Corentin Jabot's patch 2) Support ARGB opengl glyph cache when workaround_brokenFBOReadBack is true (It is always true under Android). Some code refactor has been done in QOpenGLTextureGlyphCache. This patch also bump the minimal required freetype version to 2.2 [ChangeLog][General][Freetype] Support color font rendering Task-number: QTBUG-35156 Change-Id: I35aae5f98ba9a27b70a48db3f2647fc070c39c33 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* | Update ANGLE to chromium/2651Oliver Wolff2016-04-251-0/+3
| | | | | | | | | | Change-Id: I1cd32b780b1a0b913fab870e155ae1f4f9ac40d7 Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
* | Make the eglfs and eglfs-viv detection and build work for INTEGRITY.Rolland Dudemaine2016-04-131-0/+4
| | | | | | | | | | | | | | | | | | | | The majority of these changes is about #ifdef-ing the Linux-specific use of /dev/fb0. The display handle is also acquired using fbGetDisplay(), which is equivalent to fbGetDisplayByIndex(0) but is also portable. Change-Id: I6f460edc9c06ae7461a6aab2a816ac6f645208c4 Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
* | QtBase: use erase and std::remove_if with QList and QVectorAnton Kudryavtsev2016-04-081-6/+9
| | | | | | | | | | | | | | ... instead of using removeAt in a loop, with quadratic complexity. Change-Id: I38b49e56b12c396db9fc0f1b75d8fb43c503a7f6 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-04-041-2/+6
|\| | | | | | | Change-Id: I35ca979395620e104e50b06366d0869433a4ffc2
| * Blacklist Mali-T760/Mali-T720 from supporting BGRA.Timo Jyrinki2016-03-301-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | Extend the blacklist with Mali-T760 and Mali-T720 as found on Meizu Pro 5 and Bq Aquaris M10 Ubuntu Editions. Reading from FBO like taking screenshots does not produce correct result otherwise. Initially reported at: https://launchpad.net/bugs/1557915 and https://launchpad.net/bugs/1559906 Change-Id: Ic875bd083277bf933863a3a50f8e874dd6e04365 Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Simon Hausmann2016-03-231-0/+4
|\| | | | | | | Change-Id: I9a10e1f3c9506ec8554d8f59b6300825ac730939
| * QOpenGL: Fix GLhandleARB redefinition on OS XGabriel de Dietrich2016-03-221-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | Some Qt users include non-system OpenGL headers, resulting in a possible mismatched redefinition of GLhandleARB. Ideally, we'd like to skip the whole glext.h inlined portion and rely on qopenglext.h. However, some issues remain such as GLDEBUGPROC not being defined on OS X. Change-Id: Ie551cf0be309234b22cd615cc3703980f48298b9 Task-number: QTBUG-46149 Reviewed-by: Jake Petroules <jake.petroules@theqtcompany.com>
* | Make QOpenGLTexture a Q_GADGETPaul Lemire2016-03-181-0/+17
| | | | | | | | | | | | | | | | | | | | Allows to register the enums as Q_ENUM which in turn will allow Qt3D and future other modules to access these enums from QML if QOpenGLTexture is registered as an uncreatable type Task-number: QTBUG-51491 Change-Id: I037a4585cd44c7429b63f06b704f0386df842777 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* | Don't quote newlines in multi-line shader linker errors.Volker Krause2016-03-131-2/+2
| | | | | | | | | | Change-Id: I055758b73a9992786b6c4542396dc82fda1444b5 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* | QtGui: use printf-style qWarning/qDebug where possible (I)Marc Mutz2016-03-042-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The printf-style version of QDebug expands to a lot less code than the std::ostream-style version. Of course, you pay in type safety (but compilers warn about it these days), you cannot stream complex Qt types and streaming QStrings is awkward, but in many cases you actually improve on readability. But the main reason is that something that's not supposed to be executed under normal operation has no business bloating executable code size. This is not an attempt at converting all qWarnings() to printf-style, only the low-hanging fruit. In this first part, replace qWarning() << "..."; with qWarning("..."); In QTransform shared warning strings. Saves 3KiB in text size on optimized GCC 5.3 AMD64 builds. Change-Id: I142a8020eaab043d78465178192f2c8c6d1cc4f9 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
* | QOpenGLTexture: de-duplicate setBorderColor() codeAnton Kudryavtsev2016-03-021-21/+2
| | | | | | | | | | | | Change-Id: I6864e227fceb133903979ac8f7a7434fc3e280bf Reviewed-by: Edward Welbourne <edward.welbourne@theqtcompany.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* | Clean up resolving of OpenGL functions on WindowsLars Knoll2016-03-023-45/+8
| | | | | | | | | | | | | | | | | | | | | | | | Always try both e/wglGetProcAddress and ::GetProcAddress to resolve the methods. Like this QOpengGLContext::getProcAddress is able to return any OpenGL entry point, and we can both simplify the code we have in the QPA backend as well as get rid of windows specific code paths in Qt Gui. Task-number: QTBUG-39531 Change-Id: I1ddf1b0974f69b56b219a619655b723eb0134b14 Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* | Refactor initialization/caching code for versioned opengl functionsLars Knoll2016-03-0228-3009/+1208
| | | | | | | | | | | | | | Saves around 80k in Qt Gui. Change-Id: I3f7068ae699136d0edf46a49694ade7e1df3c91d Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* | Use an enum for versioning the opengl function backendsLars Knoll2016-03-022-81/+107
| | | | | | | | | | | | | | | | Saves some code, is easier to maintain and will allow for some more nice refactoring. Change-Id: Ica7ae8e9d36acbe6586e488bc6aff114336c65bb Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* | CleanupsLars Knoll2016-03-011-39/+27
| | | | | | | | | | | | | | | | | | | | Remove the different flags when trying to resolve opengl functions. Rather we simply try hard to find a matching method by resolving over possible suffixes when we can't find the standard name. Change-Id: Ic73085faec3bd406f5214ed4219eb7b796651d8d Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* | Generate more compact code to resolve the QOpenGLExtraFunctionsLars Knoll2016-03-014-549/+397
| | | | | | | | | | | | | | | | Similar to the parent commit, this reduces binary size significantly. Change-Id: Idd6753ec5e04ec84d93bf6f86b5c71550b90ae9b Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* | Generate more compact code to resolve the QOpenGLFunctionsLars Knoll2016-03-012-523/+351
| | | | | | | | | | | | | | | | | | Use a similar mechanism as in QOpenGLVersionFunctions and resolve the methods in a loop. This requires some macro magic but significantly reduces the size of the generated code. Change-Id: If5f5e5551af0d1aed4b4ce7ce82932d8988dab59 Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* | Remove some now unused codeLars Knoll2016-03-011-346/+2
| | | | | | | | | | | | | | | | The old Resolver class to resolve GL symbols is not being used any longer, get rid of it. Change-Id: I835860eb1c42aea05458ca32cf652659500312da Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* | Get rid of the gles3helper classLars Knoll2016-03-014-844/+195
| | | | | | | | | | | | | | | | | | Since the backends can now resolve all possible GL functions, there's no need for the special handling for GLES that this class did anymore. Change-Id: Ib48aecc9a892f3c883d76ffc82217f346dbb3adc Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* | Resolve GLES3 function pointers at construction timeLars Knoll2016-03-011-1586/+363
| | | | | | | | | | | | | | | | | | | | | | | | Remove the wrapper methods resolving themselves at first run also here and instead resolve all GL entry points when the QOpenGLExtraFunctions object gets constructured. Keep the gles3helper for now until all backends are fixed to be able to resolve these methods directly. Change-Id: I194bd4465605f57d27c79808a016592c101ac04c Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* | Inline versionStatus() and make it constexprLars Knoll2016-03-012-187/+55
| | | | | | | | | | | | | | | | Saves another 20-30k for QtGui Change-Id: I2a6980713ab1c45144c70ba9835c6e85f736279b Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* | Avoid repeated QByteArray creation when resolving opengl functionsLars Knoll2016-03-014-87/+90
| | | | | | | | | | | | | | | | | | | | Add an getProcAddress(const char *) overload to QOpenGLContext, and refactor the QPA interface to take a const char *. Like this we can avoid lots of mallocs when resoving GL methods. Change-Id: Ic45b985fbaa0da8d32ba3e3b485351173352ca6f Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* | Don't resolve GL 1 symbols in the texture helperLars Knoll2016-03-014-234/+77
| | | | | | | | | | | | | | | | | | We already have these symbols resolved in QOpenGLFunctions, so simply use those. Change-Id: I6047181dbe47be9b0a83656af454d0ca1f3df6eb Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* | Simplify part of the resolving code in QOpenGLFunctionsLars Knoll2016-03-011-852/+170
| | | | | | | | | | | | | | | | | | | | | | | | | | Directly resolve the GL symbols in the constructor instead of wrapping them in another method that resolves on first call. Simplifies the code and reduces the the size of QtGui by around 50k. Change-Id: If1fc575d0113d3d9b48ad1918429254c827e42c7 Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* | Inline the constructors for QOpenGLFunctions_X_BackendLars Knoll2016-03-012-187/+135
| | | | | | | | | | | | | | | | | | | | | | They are private classes and only called from non inline code in Qt, so the change is safe. Reduces the size of QtGui by another 10k. Change-Id: I67e0592089b9ac89d3f2ab4456024ad7c5a55eca Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* | Significantly reduce the size of generated code for the opengl wrappersLars Knoll2016-03-0129-17627/+16268
| | | | | | | | | | | | | | | | | | | | | | | | Use some macro magic to declare the opengl symbols and use that to call getProcAddress in a loop instead of doing it individually for each method. Cuts the amount of generated object code down from 300 to around 50k. Change-Id: I386d278fde41a1a30827c6232e79f9156090f8b0 Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* | De-inline the code resolving the GL symbolsLars Knoll2016-03-011-19/+41
| | | | | | | | | | | | | | | | Saves around 200k in QtGui.so. Change-Id: I1a020445093a5612ed64ca98bf51435580478cda Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-02-242-2/+2
|\| | | | | | | | | | | | | | | | | | | | | Conflicts: src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java src/plugins/platforms/windows/qwindowsfontengine.cpp src/plugins/platforms/windows/qwindowsnativeimage.cpp tests/auto/gui/kernel/qwindow/BLACKLIST tests/auto/gui/kernel/qwindow/tst_qwindow.cpp Change-Id: I649b32b260ce0ed2d6a5089021daa0d6a8db85f7
| * Make public headers compile with -Wzero-as-null-pointer-constantMarc Mutz2016-02-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | ... or similar. This amends previous commits that converted the majority of cases. Task-number: QTBUG-45291 Change-Id: I219cdeddca7063a56efeb4fee0e5bb2cbdc7732b Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com> Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
| * OpenGL: Fix for incorrect GL enum in getterPaolo Angelelli2016-02-191-1/+1
| | | | | | | | | | | | | | | | QOpenGLShaderProgram::defaultInnerTessellationLevels() uses the wrong GL enum. This patch fixes it. Change-Id: I2d7ebfad27f7b36d3047d80bfacba65c43c68165 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-02-182-2/+2
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This also reverts commit 018e670a26ff5a61b949100ae080f5e654e7bee8. The change was introduced in 5.6. After the refactoring, 14960f52, in 5.7 branch and a merge, it is not needed any more. Conflicts: .qmake.conf src/corelib/io/qstandardpaths_mac.mm src/corelib/tools/qsharedpointer_impl.h tests/auto/widgets/itemviews/qlistview/tst_qlistview.cpp Change-Id: If4fdff0ebf2b9b5df9f9db93ea0022d5ee3da2a4
| * QOpenGLExtensionMatcher: Fix possible use of unintialized memoryGabriel de Dietrich2016-02-171-1/+1
| | | | | | | | | | | | | | | | | | Some drivers don't support GL_NUM_EXTENSIONS, so we may be reading random bits from numExtensions. Change-Id: Ibe61fa6d7c379f3f1428458edd3e0ddba0eb04d7 Task-number: QTBUG-48943 Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
| * Fix QT_DEPRECATED_SINCE usageJędrzej Nowacki2016-02-021-1/+1
| | | | | | | | | | | | | | | | The deprecation was introduced in 5.6 Change-Id: Ief6b749b40ec75c3c9f904caed8447bfb5ef5439 Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>