summaryrefslogtreecommitdiffstats
path: root/src/gui
Commit message (Collapse)AuthorAgeFilesLines
* iOS: Document how to handle URL requests from external applicationsTor Arne Vestbø2018-07-091-0/+22
| | | | | Change-Id: Ideeb0b06b6c7fc792e2102eb71296e99f3023842 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* SIMD: Add a haswell sub-architecture selection to our supportThiago Macieira2018-07-092-2/+2
| | | | | | | | | | | | | | | | | As the comment says, Haswell is a nice divider and is a good optimization target. I'm using -march=core-avx2 instead of -march=haswell because the latter form was only added to GCC 4.9 but we still support 4.7 and that has support for AVX2. This commit changes the AVX2-optimized code in QtGui to Haswell- optimized instead. That means, for example, that qdrawhelper_avx2.cpp can now use the FMA instructions. Change-Id: If025d476890745368955fffd153129c1716ba006 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Add logging for QAccessibleCacheFrederik Gladhorn2018-07-081-0/+6
| | | | | Change-Id: I2cbaf6c6dfb80b2b5c2732f1633da411fd816710 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Fix deletion of items in QAccessibleCacheFrederik Gladhorn2018-07-081-2/+4
| | | | | | | | | | | | Items in the cache may be part of the parent/child hierarchy. Make sure not to have dangling pointers in the cache, but rather cleanly remove all interfaces that get deleted since they may delete each other (TabBar deletes its child interfaces for example. Task-number: QTBUG-69283 Change-Id: Iad17cd1d3356804b3d8cbba8632ec22b836c3521 Reviewed-by: Christian Stenger <christian.stenger@qt.io> Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* Re-enable QGradient::Preset documentation by explicitly ignoring warningsTor Arne Vestbø2018-07-062-2/+3
| | | | | | Change-Id: Ibde6d905c74a571dc2e9d2942e99682e0a4f9b8c Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Merge remote-tracking branch 'origin/5.11' into devLiang Qi2018-07-0213-54/+94
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/plugins/platforms/cocoa/qnsview.mm src/plugins/platforms/cocoa/qnsview_dragging.mm src/plugins/platforms/ios/qiosinputcontext.mm src/plugins/platforms/xcb/qxcbconnection.cpp src/plugins/platforms/xcb/qxcbconnection_xi2.cpp src/plugins/platforms/xcb/qxcbwindow.cpp src/tools/androiddeployqt/main.cpp Was moved from qttools into qtbase in 5.11. So re-apply 32398e4d here. tests/auto/corelib/global/qlogging/test/test.pro tests/auto/corelib/global/qlogging/tst_qlogging.cpp tests/auto/corelib/io/qfile/tst_qfile.cpp tests/auto/corelib/kernel/qtimer/tst_qtimer.cpp tests/auto/corelib/thread/qthreadstorage/test/test.pro tests/auto/widgets/itemviews/qheaderview/tst_qheaderview.cpp tests/auto/widgets/kernel/qapplication/test/test.pro Done-with: Gatis Paeglis <gatis.paeglis@qt.io> Done-with: Mårten Nordheim <marten.nordheim@qt.io> Done-with: Oliver Wolff <oliver.wolff@qt.io> Change-Id: Id970486c5315a1718c540f00deb2633533e8fc7b
| * Fix: bad-looking scaled rendering of painterpath in OpenGL paint engineEirik Aavitsland2018-06-281-21/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For performance, the triangulation of a painter path is stored for reuse. Re-triangulation was only done if the path was to be painted at a significantly different scale AND it contained a curve (bezier) element. But also the triangulation of a path with only straight lines can lose precision if rendered at a small scale, and so look bad when used at a higher scale factor. Fix by removing the mentioned curve element condition. Task-number: QTBUG-68873 Change-Id: Id3492514e9382a5828377b7bafea8cfac7b850a6 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
| * ItemModels: Cache last-known child indexErik Verbruggen2018-06-272-11/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of caching the last index of a search for a child item, cache the index of the child in the child item. When the item model is not changed, the index is valid. Otherwise, the index can only change when items get inserted or removed before the child. So in that case, start searching in the vicinity of the previously known index. As an example: a selectAll() on the view will always hit the cached index, so no search is performed for any item in the model/view. Task-number: QTBUG-61368 Change-Id: I85d085299987237fae23451d9e8bbb6060464ef2 Reviewed-by: David Faure <david.faure@kdab.com>
| * ItemModels: search for the child index in 2 directionsErik Verbruggen2018-06-271-7/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, the search for the index of a child was done by searching forwards (minus 2) from the last search, and subsequently backwards when it wasn't found. This would cause quite some searching in models with lots of items, and where the child lay before the last search. We still assume that subsequent searches for children are "nearby" the previous search, but instead of first searching forwards and then backwards, do the search in both directions. Task-number: QTBUG-61368 Change-Id: Idb549c2d02840632cd658f906816ce911f3ff8bc Reviewed-by: David Faure <david.faure@kdab.com>
| * Doc: Fix typoPaul Wicking2018-06-261-1/+1
| | | | | | | | | | | | Task-number: QTBUG-69093 Change-Id: Ica63482251b2a614a17a996fac9bcc16b96c200f Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
| * Fix the qHash implementation for QMatrix / QTransformGiuseppe D'Angelo2018-06-212-15/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The order of the arguments of QHashCombine::operator() was accidentally swapped -- the first is supposed to be the accumlated value, the second the new value to combine. [ChangeLog][QtGui][QMatrix] The qHash() implementation for QMatrix has been changed. [ChangeLog][QtGui][QTransform] The qHash() implementation for QTransform has been changed. Change-Id: Iba13f76ff734a2184c96184ee0e5748c05db07fa Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| * Doc: Add missing full stops in briefsPaul Wicking2018-06-215-5/+5
| | | | | | | | | | | | Task-number: QTBUG-68933 Change-Id: I3f2a9f8c562f9a44bb32bddd31d75abbfe6de04d Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
| * Merge remote-tracking branch 'origin/5.11.1' into 5.11Qt Forward Merge Bot2018-06-191-3/+11
| |\ | | | | | | | | | Change-Id: I9a4571ccf826a86e055dfbba23b5e5cbd8ea55e8
| | * Merge 5.11 into 5.11.1Oswald Buddenhagen2018-06-075-11/+12
| | |\ | | | | | | | | | | | | Change-Id: I28f48e980a9e23ddde5251608dd9d1d83df65392
| | * | Ignore XDG_SESSION_TYPE=wayland on gnome-shellJohan Klokkhammer Helsing2018-06-051-3/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [ChangeLog][Wayland] In Qt 5.11.0, support for selecting a platform plugin based on the XDG_SESSION_TYPE environment variable was added. On gnome-shell, however, bugs—in both Qt and gnome-shell—made many widget applications almost unusable. So until those bugs are fixed XDG_SESSION_TYPE=wayland is now ignored on gnome-shell. Task-number: QTBUG-68619 Change-Id: I902acd1c4fc996f46e8431c12c0a5cdbab883abf Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| * | | Fix black border around main widget with non-integer scalingAllan Sandfeld Jensen2018-06-071-1/+1
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | All the other highdpi scaling uses rounding, and not using it here may offset the compositing by a line. Task-number: QTBUG-67994 Change-Id: I2f5f328c091d0e85c40b1663e22c82f364df65e5 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* | | QIntValidator: Intermediate for number if digits equal or less than maxTuomas Heimonen2018-06-291-4/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Input value which is over the highest acceptable value, but consisting of a number of digits equal to or less than the max value should be considered intermediate. [ChangeLog][QtGui][QIntValidator] Input value with over the highest acceptable value, but with equal or less amount of digits than the maximum value is now considered intermediate. Task-number: QTBUG-59650 Change-Id: I71a77c9c266f0f3b62c71ac6cb995019385c1cf5 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* | | Tracepoints: refactor the existing tracepoint namesGiuseppe D'Angelo2018-06-283-16/+18
| | | | | | | | | | | | | | | | | | | | | | | | Use CamelCase, like the API they're tracing. Change-Id: Ie718ab624d17c9186bcf05cc1276c8eccad7f454 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
* | | Fix wrongly included radial gradient enum for QGradient presetsTor Arne Vestbø2018-06-281-2/+1
| | | | | | | | | | | | | | | Change-Id: If8372224d7e113c1f55468c0de69dcab9804138f Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | Don't position cursor inside complex graphemes when clicking outside lineEskil Abrahamsen Blomfeldt2018-06-281-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If you clicked to the right of a text line ended with a grapheme consisting of several characters, either because it was a unicode surrogate pair or a ligature, we would always to the previous character in logical order, without checking if this was a valid cursor position. One result of this would be that hitting backspace when the cursor was positioned in an invalid position, would cause the entire contents of the document to become invalid. Instead we should search backwards for the previous grapheme boundary using QTextEngine::previousLogicalPosition(). [ChangeLog][QtGui][Text] Fixed position of text cursor set by clicking outside the bounds of a text line that ends with a surrogate pair or ligature. Task-number: QTBUG-69085 Change-Id: I7224c065f332f398bdfbb3f42b2b3ec8280c76a4 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | Harden logic for converting from CSS gradients to QGradientTor Arne Vestbø2018-06-272-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | Some of the gradients from https://webgradients.com/ are not minified completely, so we need to be a bit more lenient when converting them to the internal format used by QGradient. Change-Id: I47466b6a77abd6d2fefc1326fbf6ba5713dd74cb Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | doc: Mark QGradient::Preset enum as internal until we can ignore its valuesTor Arne Vestbø2018-06-271-0/+2
| | | | | | | | | | | | | | | Change-Id: I0637ee765053a30ac3666f33c4d8f59c5ae9aa84 Reviewed-by: Martin Smith <martin.smith@qt.io>
* | | Fix: crash when painting with high-dpr image brushEirik Aavitsland2018-06-251-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The recently merged f5fe9fc5a4 (Add ObjectMode to QGradient) changed combineXForm() to check the brush's gradient's coordinatemode. However, combineXForm() is now also used when painting with high-dpr image brush. In the latter case, the gradient is 0 so this would crash. Testcase: tst_lancelot, image_dpr.qps. Change-Id: I5e2785ef708768c3fa3eac0999c9c24fd25108f4 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | | dnd: send DragEnter and DragMove on DnD startGatis Paeglis2018-06-255-65/+78
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This was a regression from Qt4 and also is the documented behavior. In addition this patch fixes various issues with cursor shape updating that were discovered along the way and that are necessary for testing the new changes. The code in QGuiApplicationPrivate::processDrag() also needed a fixup, particularly the resetting of QGuiApplicationPrivate::currentDragWindow. Without this fix we would get DragMove (the one that immediately follows the DragEnter) only for the first DragEnter event. For example when dnd starts on mouse press then for mouse click we would get: <click> DragEnter->DragMove->DragLeave <click> DragEnter->DragLeave but the expected is: <click> DragEnter->DragMove->DragLeave <click> DragEnter->DragMove->DragLeave Task-number: QTBUG-34331 Change-Id: I3cc96c87d1fd5d1342c7f6c9438802ab30076e9e Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | | Fix incorrect JSON in qt_attribution.jsonKai Koehne2018-06-251-1/+1
| | | | | | | | | | | | | | | | | | | | | Fix spurious comma added in commit c4a21708ed186640f4db381dc80. Change-Id: I6d62378dfdda7a0da611eed1064cff707b9c6bf6 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* | | QByteArray: add compare() with case sensitivity optionsThiago Macieira2018-06-221-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Need to do the same for startsWith() and endsWith(). indexOf() is a lot harder. [ChangeLog][QtCore][QByteArray] Added compare(), which takes Qt::CaseSensitivity as one of the parameters. This function is more efficient than using toLower() or toUpper() and then comparing. Change-Id: Ib48364abee9f464c96c6fffd152e69bde4194df7 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* | | Add ObjectMode coordinate mode to QGradientEirik Aavitsland2018-06-224-22/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The ObjectBoundingMode coordinate mode of QGradient allows specifying the gradient coordinates relative to the object being painted. But if the gradient brush also has a transformation, that transformation is applied in the logical, not object, coordinate space. That behavior is counterintuitive. However, changing it now would break existing code. Instead, we introduce a new coordinate mode enum with the expected behavior, and document the old one as deprecated. This prepares to fix the bugs below in qtsvg, by making it possible to specify the same behavior in Qt as SVG has. [ChangeLog][QtGui][QGradient] Add ObjectMode coordinate mode [ChangeLog][Important Behavior Changes] QDataStream version bumped up to 18 to account for changes in the serialization of QGradient. Task-number: QTBUG-59978 Task-number: QTBUG-67995 Change-Id: I8820a2555359812f3e1a46e37d6ac2cc29a2091d Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | | configure: dequote library sources asapOswald Buddenhagen2018-06-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the json format uses single strings for library sources, as that leads to less noisy source text. however, this implies the need for de-quoting and subsequent re-quoting whenever the values are processed. so change the internal representation to regular qmake string lists as the first thing when processing the lib source, and re-quote only when outputting the values. CFLAGS are excluded, because we'll deal with them differently. Change-Id: I4ab43d98085ea9f6601fd21ac2afb5bce4f7e2a9 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | | Merge "Merge remote-tracking branch 'origin/5.11' into dev" into ↵Liang Qi2018-06-0830-329/+431
|\ \ \ | | | | | | | | | | | | refs/staging/dev
| * | | Merge remote-tracking branch 'origin/5.11' into devLiang Qi2018-06-0730-329/+431
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf src/corelib/kernel/qeventdispatcher_cf.mm src/gui/kernel/qguiapplication_p.h src/gui/kernel/qwindowsysteminterface.cpp src/gui/kernel/qwindowsysteminterface.h src/plugins/platforms/cocoa/qcocoawindow.mm src/plugins/platforms/cocoa/qnswindowdelegate.mm src/plugins/platforms/ios/qioseventdispatcher.mm src/plugins/platforms/windows/qwindowsdrag.h src/plugins/platforms/windows/qwindowsinternalmimedata.h src/plugins/platforms/windows/qwindowsmime.cpp src/plugins/platforms/winrt/qwinrtscreen.cpp Change-Id: Ic817f265c2386e83839d2bb9ef7419cb29705246
| | * | Fix build for Android with android-clang in r17Liang Qi2018-06-063-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-67464 Change-Id: Ib971a5da82b31bce9ac1c9ac623ad7d5302cfaec Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
| | * | Fix HDR format in QOpenGLFramebufferObject::toImage()Allan Sandfeld Jensen2018-06-061-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the fbo had samples > 0 set, it would use a temporary fbo with a default configuration losing the HDR precision. Change-Id: I7e9966165b3100f148c4ad24738f3ee71273f29a Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
| | * | Fix QTransform::transposed() result having wrong transformation typeEirik Aavitsland2018-06-061-2/+0
| | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | The implementation of QTransform::transposed() had a wrong assumption about the type of the result. Task-number: QTBUG-68630 Change-Id: Ia5ce794efe773d74fb5fdaff3da8cae2b452e7e5 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
| | * Reduce recent performance regressionAllan Sandfeld Jensen2018-05-301-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The change to fix 16-bit integer overflow used two floor operations when only one is necessary. With floor being rather expensive on x86 without SSE4.1 this caused a performance regression in ARGB32 smooth perspective transforms. This eliminates one of the floor operations which is unnecessary as the number is always positive in this case and thus truncation will yield the same result faster. Change-Id: Iaae76820d4bc2f368e49ed143130b5075fc760a2 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
| | * QOpenGLTexture: Enable multisample 2D textures on GLES 3.1+Laszlo Agocs2018-05-301-0/+6
| | | | | | | | | | | | | | | | | | Task-number: QTBUG-68510 Change-Id: Ib224189906b595bbae5aab95c888dd13e94171aa Reviewed-by: Andy Nichols <andy.nichols@qt.io>
| | * Make sure we can build with -no-feature-draganddropJoerg Bornemann2018-05-2923-315/+410
| | | | | | | | | | | | | | | | | | | | | | | | | | | We move QInternalMimeData to a separate file, because this class is used, even if draganddrop is disabled. From now on, include qinternalmimedata_p.h instead of qdnd_p.h for QInternalMimeData. Change-Id: I594e08e2e90d574dc445119091686b4b69e4731b Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
* | | Optimize fetchTransformed and removed specialized versionsAllan Sandfeld Jensen2018-06-071-662/+124
|/ / | | | | | | | | | | | | | | Optimize the general transformed fetcher and use it to replace several specialized copies of it that are now slower than the general one. Change-Id: Ife79ec99227f0df4f127303c7a340b2f7d174dff Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* | Handle negative leading in layoutAllan Sandfeld Jensen2018-06-061-7/+15
| | | | | | | | | | | | | | | | Adjust line positions to deal with negative leading which isn't included in height of QTextLine. Change-Id: Id7918968c0f9d7e65700b9e7a08fc5d761883f22 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* | Fix PDF rendering of strokes with cosmetic pensAndre de la Rocha2018-06-061-1/+2
| | | | | | | | | | | | | | | | | | | | The PDF backend was ignoring the cosmetic attribute for certain pens, resulting in strokes rendered incorrectly. Task-number: QTBUG-68537 Change-Id: Ib9fd5a510716056c8afe67733f51fc682bbb7354 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* | doc: Document Qt namespace in multiple modulesMartin Smith2018-06-012-3/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | qdoc didn't handle this. This update fixes most of what was wrong, but tuning the details of the namespace reference pages might follw. We have namespace Qt as an exaqmple. Most of the elements in the Qt namespace are in QtCore, but a few functions are declared in QtGui. Before this update, qdoc used the hack of using #ifdef to remove the declarations from qtextdocument.h in QtGui and .cpp and then added them back into qtnamespace.h and .cpp in QtCore. Now that hack is no longer necessary. The functions in the Qt namespace that are declared in QtGui are documented there, but the documentation is linked to from the namespace reference page, which remains in QtCore. That is, only one \namespace command is used to document the Qt namespace, and it appears in qnamespace.qdoc where it always did, but the documentation for the Qt namespace functions declared in QtGui is now appears in qtextdocument.cpp where it belongs. Change-Id: Ic5888875c3b8310a3dba244475e2a6c3bc0c1808 Task-number: QTBUG-67267 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* | Provide presets for QGradientTor Arne Vestbø2018-05-319-2/+1244
| | | | | | | | | | | | | | | | | | | | | | | | | | Similar to Qt::GlobalColor, the presets allow the user to create brushes based on predefined gradients, quickly getting pretty pixels on screen. The presets are based on the linear gradients from WebGradients, a free collection of gradients, hosted at https://webgradients.com/. The few radial and blended gradient presets have been excluded. Change-Id: I1ce8f2210a6045c9edb8829ab3eddcc313549127 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* | Merge remote-tracking branch 'origin/5.11' into devLiang Qi2018-05-242-362/+362
|\| | | | | | | | | | | | | | | | | | | Conflicts: mkspecs/features/qt_common.prf src/corelib/tools/qstring.cpp src/plugins/platforms/windows/qwindowsmousehandler.cpp src/widgets/widgets/qmainwindowlayout_p.h Change-Id: I5df613008f6336f69b257d08e49a133d033a9d65
| * Fix potential 16-bit integer overflowAllan Sandfeld Jensen2018-05-231-4/+4
| | | | | | | | | | | | | | | | | | | | | | When multiplying a float in [0;1[ with (1<<16), with rounding, it might end up being rounded to 65536 even if the input was under 1. This patch uses a floor operation to make sure the value can be in a ushort, and cleans up the surrounding code so it is clearer what it does. Task-number: QTBUG-68360 Change-Id: I2d566586765db3d68e8e7e5fb2fd1df20dabd922 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
| * Documentation: Fix URLs to GL(ES) functionsFriedemann Kleint2018-05-181-358/+358
| | | | | | | | | | | | | | | | Replace the XML pages which are typically displayed as broken by the XTHML pages. Strip some suffixes. Change-Id: Idf2b9706f169484c659582a1a2d38904d5dd81aa Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* | Improve bounding rect of QStaticText with Qt::PlainTextAllan Sandfeld Jensen2018-05-231-4/+5
| | | | | | | | | | | | | | | | | | The bounding rect was not including positive leading of the last line. This patch solves it by changing using QTextLine's setLeadingIncluded, and adds handling of negative leading to keep rendering unchanged in that case. Change-Id: I4d18b81892184bb85cd7949a5dc3fb9cfa270a26 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* | Optimize unpremultiply using SSE rcpAllan Sandfeld Jensen2018-05-235-31/+239
| | | | | | | | | | Change-Id: I255031d354b0fde7abe8366ea2c86a35f9f24afd Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Reapply SSE4 acceleration to ARGB32->ARGB32PM conversionAllan Sandfeld Jensen2018-05-202-2/+22
| | | | | | | | | | | | | | | | | | After the merger of fetch and convert, we were missing the hook to the accelerated merged version of ARGB32->ARGB32PM conversion, causing a minor performance regression. Change-Id: I3965d1a95f2305306005db09640f2775aa645d2e Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | qpixmap_win.cpp: Silence clang-cl warningsFriedemann Kleint2018-05-161-23/+25
| | | | | | | | | | | | | | | | | | | | | | | | Introduce nullptr, C++ casts, fix deprecation warnings and fix some signedness issues. Amends 2268b6bcdd1b4ddcd78753b81c477f0aa2855261. Task-number: QTBUG-51124 Task-number: QTBUG-63512 Change-Id: If371d3b71658258b7238c7eb0b11ac4a1ae0d1b6 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* | Doc: add explanation of return format of QImage::transformed()Eirik Aavitsland2018-05-111-0/+14
| | | | | | | | | | | | | | | | | | | | QImage::transformed() can sometimes return an image with a different image format than the original. This might be unexpected, so explain it in the doc. Task-number: QTBUG-50087 Change-Id: I165fc7b44439b770b542be52d3108fd70bf0ae99 Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
* | macOS: Add QSurfaceType::MetalSurfaceMorten Johan Sørvig2018-05-112-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add API to activate previously added Metal layer implementation. This provides minimal support, and unlike VulkanSurface there is no separate QWindow subclass. What this does do is configure the QWindow to use a Metal layer, and to send expose/update events when the layer content should be redrawn. Qt will also update the layer’s drawableSize and contentsScale when needed. Application code can make use of this by accessing the QWindow layer, which will be a CAMetalLayer: CAMetalLayer *metalLayer = reinterpret_cast<CAMetalLayer *>( reinterpret_cast<NSView *>(window->winId()).layer); Change-Id: I514f5186133c3e610fd4e53ca91fe9c85c6d016e Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>