summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* | | Support showing the mouse cursor in the VNC pluginLars Knoll2016-06-283-4/+10
| | | | | | | | | | | | | | | Change-Id: I380e36b3a814db7ba779d998260d1a75d1d20e0c Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
* | | Implement support for key events in the VNC pluginLars Knoll2016-06-281-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | Make sure we receive key events from the VNC client and forward them to the app through the QPA interface. Change-Id: I8d44d614670ec753e35ff36fa3ef2d74b07f4bbc Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
* | | Properly forward mouse events to the VNC clientLars Knoll2016-06-282-8/+6
| | | | | | | | | | | | | | | Change-Id: I3cee27bab4cd81079adedf3968ac4dfebf43aa11 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
* | | Initial work on a VNC QPA pluginLars Knoll2016-06-289-0/+2454
| | | | | | | | | | | | | | | | | | | | | The basics work and the VNC client is showing pixels Change-Id: Ie31efce2f31dd5f57af209dcc9c8f9aace730afd Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
* | | Windows QPA: Restrict expose workaround to non-Aero themes.Friedemann Kleint2016-06-281-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | The workaround may cause flicker, so only use it when necessary. Task-number: QTBUG-7865 Change-Id: I813aa0669727303bc947a85a8893a90f29d3ff24 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* | | Correct framework config options to remain as they used toAllan Sandfeld Jensen2016-06-271-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 90eee08b3e672573e3ad93470d844e1d498651dd changed how framework config was defined, subtlely breaking Qt framework builds. Task-number: QTBUG-54361 Change-Id: Ie7670d900d9eb4c2adb52ca1cd0f60f22acf8b81 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | | QGtk3FileDialogHelper: respect QFileDialogOptions::ReadOnlyJ-P Nurmi2016-06-271-0/+3
| | | | | | | | | | | | | | | Change-Id: I982dd10632760fe91b89ade30d79f97f27d17dcd Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | | Make sure all private headers in Qt Core include qglobal_p.hThiago Macieira2016-06-2583-17/+147
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The rule was: - if the header included qglobal.h, turn that into qglobal_p.h - otherwise, insert the #include after the "We mean it" warning qglobal_p.h currently only includes qglobal.h. Change-Id: Ib056b47dde3341ef9a52ffff13ef677e471674b7 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | | tst_qsslsocket::protocolServerSide - try to fix failing ssl3-* *-ssl3Timur Pocheptsov2016-06-241-3/+15
| | | | | | | | | | | | | | | | | | | | | Test is strangely failing on Ubuntu 16.04 with OpenSSL 1.0.2g-fips. Change-Id: I1498dee4c1d6db0702da3d3689787aed1e3a633f Reviewed-by: Richard J. Moore <rich@kde.org>
* | | Add signal QMainWindow::tabifiedDockWidgetActivatedAleksei Ilin2016-06-246-4/+84
| | | | | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-52175 Change-Id: I0d133e9fee1a0d7a7e06b1156c868471c2b3c29f Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Andy Shaw <andy.shaw@qt.io> Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* | | Fix detection of LLVM version on macOSLars Knoll2016-06-241-1/+1
| | | | | | | | | | | | | | | Change-Id: I6b428ee0f89ed2b49f3698f2bf0cf53806ffdda9 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | | Correctly set simulator_and_device in ios buildsLars Knoll2016-06-241-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | A small logic error that sneaked in during the porting of configure. We actually want simulator_and_device to be set if input.sdk is empty, not the other way round. Change-Id: I8f729fbc48617618f981c70887bd4400e0b2a0c3 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | | Merge "Merge remote-tracking branch 'origin/5.7' into dev" into refs/staging/devLiang Qi2016-06-2336-69/+223
|\ \ \
| * | | Merge remote-tracking branch 'origin/5.7' into devLiang Qi2016-06-2336-69/+223
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: mkspecs/common/mac.conf mkspecs/features/configure_base.prf mkspecs/features/configure.prf mkspecs/macx-clang-32/qmake.conf mkspecs/macx-clang/qmake.conf mkspecs/macx-ios-clang/qmake.conf src/network/ssl/qsslsocket_openssl_symbols_p.h Change-Id: I768b592e8e589662b1fdb9b8cbd633fef26845b6
| | * | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-06-2337-65/+225
| | |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/angle/src/libGLESv2/libGLESv2.pro src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldeviceintegration.cpp Change-Id: If8da4cfe8f57fea9f78e7239f378a6302c01674e
| | | * Win: Get rid of unused variables un QDateTime::currentMSecsSinceEpochThiago Macieira2016-06-221-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The compiler didn't complain that they were unused or -Werror / -WX was not active. Change-Id: Ib57b52598e2f452985e9fffd145a7b63a32189fd Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
| | | * Fix inconsistency between the #if guards in SSL PSK codeLiang Qi2016-06-221-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The declaration and definition of the forwarding functions for PSK differed which leads to link errors with some versions of openssl. Change-Id: I40410f62a584c5dbd2acf5c90422e1243514f8fd Reviewed-by: Richard J. Moore <rich@kde.org>
| | | * Fix installation of debug symbols on Apple platforms.Jake Petroules2016-06-221-2/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This follows up ab599a39313c22fd14cc5466cea5c61bbcdbba8e, which did not take installation into account. Task-number: QTBUG-54036 Change-Id: Ic1b3acb8984255dd1ca1c288b7b150814ce9e606 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
| | | * Add OpenBSD to list of targets that can't use --no-undefined in qtcoreRalf Nolden2016-06-221-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A prior commit has already added the resetting of QMAKE_LFLAGS_NOUNDEF in corelib.pro for FreeBSD due to environ(7) not being part of libc. OpenBSD has the same issue, so add it to the list of BSD systems affected for resetting the flags for qtcore. Change-Id: I50a62271ffa05a9976e802de420d47a1425359c4 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | | * Fix regression in simple RGB16->RGB16 scalingAllan Sandfeld Jensen2016-06-221-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The fix for QTBUG-35927 introduced a too strict check when scaling from a 16-bit source to a 16-bit destination. This patch changes the limit to adjust to source type. Task-number: QTBUG-54281 Change-Id: I6dd2bb8308f77520c00fa3ef6643a42462c5d351 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| | | * purge vestige: plugin_no_soname is no moreOswald Buddenhagen2016-06-2213-13/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ... for a loooong time. it was replaced by plugin_with_soname (which is unused so far). Change-Id: Ifc377d155d6eac41e85f3a0914ed817d55b5648b Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
| | | * fix make -i wreaking havoc in configure tests outside qtbaseOswald Buddenhagen2016-06-221-1/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | the tests would inherit MAKEFLAGS, with somewhat predicatble results. Change-Id: Ia17638f6229d0ae86f5558726850040703d90044 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
| | | * fix double installation of ANGLE libraries in static+dynamicgl buildsOswald Buddenhagen2016-06-221-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | CONFIG static/shared needs to be manipulated before it is used by qt_installs.prf (via qt_helper_lib.prf via config.pri). amends 2311997. Task-number: QTBUG-54109 Change-Id: Icb53f3170e6d6f09d60b77a221f4f239c6e6721f Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
| | | * limit installation of ANGLE translator and preprocessor helper librariesOswald Buddenhagen2016-06-223-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | libGLES2 (the only user of these libraries) is built dynamically even in a static qt built when dynamicgl is configured. in this case the static libraries need not be installed. amends 2311997. Change-Id: Ic9bc3937d6ee0d97e0ca7fc96596fa90ebfe8710 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
| | | * don't duplicate CONFIG+=installedOswald Buddenhagen2016-06-222-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the included common.pri already does it. amends 9ab41425. Change-Id: If8c9285b92485b6574fde2adc2b92cc44f139ea0 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
| | | * make plugin meta data load failure error message less crypticOswald Buddenhagen2016-06-221-1/+1
| | | | | | | | | | | | | | | | | | | | Change-Id: I280673e7fd582c5877e8e17ed00318cb10cd537c Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | | * Add some 64-bit QNX platformsJames McDonnell2016-06-226-0/+148
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add x86-64 and aarch64le QNX platforms. These platforms will be available in QNX 7.0. Change-Id: Iba1f635ba45fddf1a1caf907415a23a510ba0818 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| | | * QDesktopScreenWidget::screenNumber(): Use native geometry.Friedemann Kleint2016-06-221-8/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Coordinates in device independent pixels are not suitable for checking intersection of screen areas since the screen positions are always unscaled. Move the code to determine the QWindow handle out and transform the frame to device pixels and use QPlatformScreen to check. Change-Id: Idd94f32abc43bc7a04e4056243b7f810631f70cc Task-number: QTBUG-52606 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
| | | * Revert "End the drag if the dockwidget is being hidden"Olivier Goffart2016-06-221-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 75b705fec8e9517047d7dfa98203edff69f2bf8a and 798e0064e9be78f8320ff25a9af50d1b5e5badb1. This broke drag and drop of QDockWidget if there is no animations (QTBUG-54185) and this caused numerous crash with GrouppedDragging: crashes when dropping on another floating QDockWidget, or when dragging away. The problem being that 'endDrag' would cause the QDockWidget to be hiden temporarily and it would recurse into 'endDrag' and have unwanted effects Task-number: QTBUG-54185 Change-Id: Icad9c6748448783e039bde205b60133f89f25e8e Reviewed-by: Andy Shaw <andy.shaw@qt.io>
| | | * eglfs: Fix static builds with kms backendsLaszlo Agocs2016-06-211-20/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The logging category symbol clashed when linking applications with both kms backends present. This is no longer an issue in 5.7 where the symbol is in the shared kms support lib, but for 5.6 we need to use a different symbol name. Change-Id: I3c323109d6c498e044289455b3d31567a4d5928c Reviewed-by: Ralf Nolden <nolden@kde.org> Reviewed-by: Andy Nichols <andy.nichols@qt.io>
| | | * UIKit: Treat windows as exposed only during Qt::ApplicationStateActiveTor Arne Vestbø2016-06-212-21/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We previously treated Qt::ApplicationStateInactive as a valid state to expose windows in, to prevent a visible flash of black screen at app startup between iOS hiding the launch screen and Qt drawing it's first frame, but this lag is no longer an issue, so we can apply the best practice of only rendering during Qt::ApplicationStateActive. This may prevent crashes during application suspension. Task-number: QTBUG-52493 Change-Id: I271281ed6fb857e6849cdb88cc2d8251d1bba1df Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
| | | * 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>
| | * | Remove duplicated QT_HAS_BUILTIN defineBogDan Vatra2016-06-211-6/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QT_HAS_BUILTIN is already defined in qcompilerdetection.h which is included in qglobal.h which is included in this header file. Task-number: QTBUG-54068 Change-Id: I46c2e13d85fc21d3e6c426d0f35a584b21ae792b Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* | | | Clean up some unused variables in the qmake.conf filesLars Knoll2016-06-232-8/+0
|/ / / | | | | | | | | | | | | Change-Id: I04cdcc514b851ad529ad62883fda850159447505 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | | Remove blacklisting of tst_QDBusConnection::pendingCallWhenDisconnectedMilla Pohjanheimo2016-06-231-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | Since f8b5142e3068d210393e7e4544c2e63577a313ac is in, we can remove the blacklisting of the test. Task-number: QTBUG-53786 Change-Id: I2eaa2ec1f1f2e14f73f2f4b6f5732a3b51061075 Reviewed-by: Tony Sarajärvi <tony.sarajarvi@qt.io>
* | | Update for the newest Darwin-family operating systems.Jake Petroules2016-06-233-7/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | This also corrects for some code that was not included in the forward merge from 5.6 (ea438b2508f329698e11c6dae6994d441c6e67df) due to code restructuring. Change-Id: I90a20fbcb60cfd6deb1cca3716a62754af27901f Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | | Fix inconsistency between the #if guards in SSL PSK code - Part 2Liang Qi2016-06-221-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | The declaration and definition of the forwarding functions for PSK differed which leads to link errors with some versions of openssl. Change-Id: Ic62d87dbd33a77f3c114f0a597a6c0858b22174a Reviewed-by: Richard J. Moore <rich@kde.org> Reviewed-by: André Klitzing <aklitzing@gmail.com>
* | | QDateTime: introduce {to,from,set,current}SecsSinceEpochThiago Macieira2016-06-225-88/+207
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These new functions use a 64-bit integer in the API, instead of the broken 32-bit unsigned integer that the previous xxxTime_t functions used. That was a design flaw when the API was introduced back in Qt 4.2, so I'm deprecating the API and slating it for removal in 6.0. The changes to qfilesystemmetadata_p.h and quuid.cpp are necessary to build the bootstrap library. The rest of the adaptation to the new API will come in the next commit. [ChangeLog][QtCore][QDateTime] Introduced toSecsSinceEpoch, fromSecsSinceEpoch and setSecsSinceEpoch functions, which use 64-bit integers to represent the number of seconds. [ChangeLog][QtCore][QDateTime] The toTime_t, fromTime_t and setTime_t functions are deprecated and will be removed in Qt 6.0. For new code, use the equivalent functions with "SecsSinceEpoch" in the name, or the equivalent ones with millisecond accurancy that have existed since Qt 4.7. Change-Id: Ib57b52598e2f452985e9fffd145a355d0e7ff48d Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | | Let qmake do most of the work of configuring QtLars Knoll2016-06-227-4610/+4406
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Command line arguments, configure tests and features are now defined in a json file and a configure.pri containing some custom functions. qmake uses the json file to determine command line arguments, tests and features to be executed at configuration time. A new qt_configure.prf contains all the infrastructure to parse the command line, run the configure tests, determine the set of available features and create a report about it. Change-Id: If30ac089dd3e9f8c67ebd642bde10cfa960893bb Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | | Bump \since 5.7 to 5.8 for QNetworkDatagramAndré Klitzing2016-06-221-1/+1
| | | | | | | | | | | | | | | Change-Id: I8dc4a5b7f78d25220d1c473098d5a49e2c3401d8 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | | Merge "Merge remote-tracking branch 'origin/5.7' into dev" into refs/staging/devLiang Qi2016-06-2187-573/+974
|\ \ \
| * | | Merge remote-tracking branch 'origin/5.7' into devLiang Qi2016-06-2187-573/+974
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/global/qglobal.cpp src/corelib/global/qsysinfo.h src/corelib/kernel/qcoreapplication_win.cpp src/gui/text/qdistancefield.cpp src/gui/text/qdistancefield_p.h src/plugins/platforms/windows/qwindowsglcontext.cpp src/plugins/platforms/windows/qwindowsglcontext.h Change-Id: Ib3500acc2b28553bde06758cd9a2e19eb7fe2978
| | * | Merge "Merge remote-tracking branch 'origin/5.6' into 5.7" into refs/staging/5.7Liang Qi2016-06-2077-559/+962
| | |\ \
| | | * | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-06-2077-559/+962
| | | |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | And blacklisted a few tests in tst_QUdpSocket. Conflicts: src/android/jar/src/org/qtproject/qt5/android/QtNative.java src/corelib/global/qglobal.cpp src/corelib/global/qsystemdetection.h src/corelib/io/qfileselector.cpp src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldeviceintegration.cpp tests/auto/network/socket/qudpsocket/BLACKLIST Task-number: QTBUG-54205 Change-Id: I11dd1c90186eb1b847d45be87a26041f61d89ef6
| | | | * Remove overload tag from QByteArray QIODevice::readAll()Simon Hausmann2016-06-171-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This does not seem to be a function that is overloaded. Change-Id: Icf8942dfb1e78a2ddb38cbd1c49657f745a61989 Reviewed-by: Alex Trotsenko <alex1973tr@gmail.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | | | * Fix build on macOS: Apple changed their minds if null is allowedThiago Macieira2016-06-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | qcorewlanengine.mm:88:37: error: null passed to a callee that requires a non-null argument [-Werror,-Wnonnull] currentInterface = [CWInterface interfaceWithName:nil]; ^ ~~~ Change-Id: Ie7d159a97176ca53161423cfcddba547e735d5b3 Reviewed-by: Jake Petroules <jake.petroules@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | | | * eglfs_kms_egldevice: fix warnings about -Werror=maybe-uninitializedLiang Qi2016-06-171-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldeviceintegration.cpp: In member function ‘bool QEglFSKmsEglDeviceIntegration::setup_kms()’: src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldeviceintegration.cpp:391:28: error: ‘encoder’ may be used uninitialized in this function [-Werror=maybe-uninitialized] m_drm_encoder = encoder; ^ src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldeviceintegration.cpp:392:29: error: ‘connector’ may be used uninitialized in this function [-Werror=maybe-uninitialized] m_drm_mode = connector->modes[0]; ^ cc1plus: all warnings being treated as errors Change-Id: Ic444450d06a6dd8047bd6871febb08a4a3fde6f9 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| | | | * UIKit: Detect swapBuffers on non-exposed windows and skip flushTor Arne Vestbø2016-06-171-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When using threaded rendering the render-thread might be half-way into rendering a frame when the application is backgrounded, resulting in the following swap happening on a non-exposed window. This may result in the system killing the application, as rendering is not supposed to happen when an application is backgrounded, so we skip the flush. Change-Id: I9ab8f2c4617391fd827558af9fb473f1734b3688 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
| | | | * UIKit: Ensure that Qt's application state is initialized at startupTor Arne Vestbø2016-06-172-95/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Using dispatch_async to deliver the initial application state at startup was broken, as that would leave the application in the default application state, inactive, until the next runloop pass. This became a problem when an application was started backgrounded, eg. in response to location updates or a Bluetooth accessory waking it up, as it would have a small window of time at startup where it would think it was able to render content (since the window was exposed), while in fact the application was running in the background. iOS will in these situations kill the app for doing background rendering. Change-Id: I1ab4a6af08a154d8625c6451b4b5c8f4453e6b43 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
| | | | * UIKit: Don't reallocate renderbuffer on QIOSContext::swapBuffers()Tor Arne Vestbø2016-06-174-67/+100
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | During device rotation, the backing CEAGLLayer of our custom UIView is resized by the system. Normally this is the time where we would then reconfigure the corresponding renderbuffer that we render to, which shares memory with the CEAGLLayer, but we chose a lazy approach where we'd defer the reconfigure until client code actually called makeCurrent. This caused problems because not only did we implement the lazy reconfig in makeCurrent, but in every QIOSContext function that operated on the default FBO, including swapBuffers(). When using threaded rendering, such as in Qt Quick, the render thread may be half way in rendering a new frame when the system resizes the CEAGLLayer, and we pick up that resize on the swapBuffer call and allocate a new renderbuffer, before flushing the queued up GL commands that were operating on another renderbuffer of a different size. This resulted in the following crash: 0 - gpus_ReturnObjectErrorKillClient() 1 - gpusSubmitDataBuffers() 2 - glrFlushContextToken() 3 - flush(__GLIContextRec*)() 4 - QIOSContext::swapBuffers(QPlatformSurface*) ... We solve this by still being lazy in how we reconfigure, but limit the reconfigure to makeCurrent(). If the CEAGLLayer is resized in between two frames, we skip the half-drawn frame. The old frame will then be scaled to match the new size by the system, but this is preferable to flushing a new frame that may have been drawn with two conflicting window geometries. Task-number: QTBUG-50017 Change-Id: Ie229f26d156dfbfc7ed8d9efd0eb5e992eee73f1 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>