summaryrefslogtreecommitdiffstats
path: root/src/gui
Commit message (Collapse)AuthorAgeFilesLines
* Fix regression from Qt4 with layout directionJan Arve Saether2015-02-051-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In Qt4, if the result of the translation QApplication::translate("QT_LAYOUT_DIRECTION") returned "RTL", Qt usually called QApplication::setLayoutDirection(Qt::RightToLeft) in order for a translation file to specify if the UI should be left-to-right or right-to-left. However, due to modularization, we could no longer call QApplication::translate(), so the code was wrongly changed to call QCoreApplication::translate(....) instead. This was wrong, and in addition the translation files was never updated with the new context. This patch fixes it to only translate it with the QGuiApplication context. This is the only sensible context, since QApplication would lack QtQuick support, and QCoreApplication would not know how to change layout direction. [ChangeLog][QtGui][i18n] Fixed bug where layout direction did not switch according to the instruction in the translation file. Task-number: QTBUG-43447 Change-Id: Id0409a42d41b3b9ff1cd53d090c4d9c9802f5659 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* Avoid creating a QPixmap on QBrush comparisonsAllan Sandfeld Jensen2015-02-041-3/+29
| | | | | | | | | | | | | | | We shouldn't create QPixmaps when comparing QBrushes that do not contain a QPixmap. This patch extends the comparison logic to comparing QImage cachekeys if the brushes are QImage based. Note the comparison still produces false negatives on equal content on different pixmaps and images, but this is preserving existing behavior. Task-number: QTBUG-43766 Change-Id: I001b4032172c1e568aad311f7df2eaae6aee8dc6 Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* Correct QPainter's is_brush_transparentAllan Sandfeld Jensen2015-02-041-5/+8
| | | | | | | | | | | 1-bit QImage's should not be considered transparent unless they have use transparent colors in the color table or have no color table. By using hasAlphaChannel we also catch other transparent brush textures. The method is only used in determining emulation specifiers. Change-Id: I120ee1de4dc2df666c3e2acb1e40b53a8de40754 Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* Generate SSE4.1 versions of premultiplying methods where convenientAllan Sandfeld Jensen2015-02-042-7/+61
| | | | | | | | | | The autovectorized versions of premultiplying conversions are almost twice as fast with SSE4.1 as with SSE2. Therefore this patch lets compilers that can make those versions convenient without duplicating code do that and lets us use them when available. Change-Id: I699035963abe55a38b9ef8ba7b4a8c961c8dfcdd Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* a11y: Fix warning about instance method '-invalidate' not foundTor Arne Vestbø2015-02-041-0/+5
| | | | | | | | | | The interface declaration of QMacAccessibilityElement lives in the Cocoa platform plugin. We replicate the needed parts in QtGui to silence the compiler. Change-Id: I2d1984c988777d3c7af82df90390624c93fd85b5 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
* Remove unused qdrawhelper_sse_p.h headerAllan Sandfeld Jensen2015-02-041-172/+0
| | | | | | | | This header has not compiled since the MMX header it includes was removed in 2011. It appears to be completely unused. Change-Id: I48dbade1af186cf113cbd50eb7bedf3a32b97883 Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* Remove unnecessary math.h and limits.h includesAllan Sandfeld Jensen2015-02-046-10/+0
| | | | | Change-Id: I28c898f869ed3f03b08ff55f2972a38667c755ad Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* [QFontDatabase] Speed-up is(Bitmap|Smoothly)ScalableKonstantin Ritt2015-02-041-0/+6
| | | | | | | | | | ...with hints provided by platform font database. Namely, if database reports fontsAlwaysScalable(), then we could simply return true in QFontDatabase::is(Bitmap|Smoothly)Scalable. Change-Id: I7af082718e007dfdaf430d3c4852005f62efa41a Reviewed-by: Miikka Heikkinen <miikka.heikkinen@theqtcompany.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Check for the proper extension for anisotropic filteringLaszlo Agocs2015-02-041-1/+1
| | | | | Change-Id: I881fccea3af74ead14f523c7c54a405a15ea29ab Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* [QMath3D] Add public c-tors that do not initialize the contentsKonstantin Ritt2015-02-0412-0/+54
| | | | | | Change-Id: I1a28766451e6750986a239c989e7f30c14479057 Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* Fix 1700 override warnings [-Winconsistent-missing-override]Sérgio Martins2015-02-032-3/+3
| | | | | | | | | | | Classes should either use or not use override, otherwise it hurts code readability. Some inline keywords were removed because of an error with MSVC2010: error C2216: 'override' cannot be used with 'inline' Change-Id: I7276d5525a92281bd0d743beb11d0dc73441443b Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* WGL: support reset notifications via GL_ARB_robustnessLaszlo Agocs2015-02-032-1/+6
| | | | | | | | | | | | | Handling context losses is unavoidable with ANGLE. Introduce some level of support for desktop GL too by making it possible to opt in via a new flag. Support is added for Windows (WGL, opengl32) only for now. In case of Windows with ANGLE setting the flag is not necessary, context losses will be reported regardless. Change-Id: Ic354c1382e876566538c52a4381f7ff328b7477e Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* Make it more obvious that Q_WS_ is dead code, and should perhaps be portedTor Arne Vestbø2015-02-032-3/+3
| | | | | | | | | | | | We still have a bunch of Q_WS_ ifdefs in our code, which are easy to mistake for Q_OS_ ifdefs when quickly scanning the code. By renaming the ifdefs we make it clear that the code in question is dead. In incremental follow-ups, we can then selectively either remove, or port, the pieces that are dead code. Change-Id: Ib5ef3e9e0662d321f179f3e25122cacafff0f41f Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* Fixed icons lookup in QIcon::fromThemeRuslan Nigmatullin2015-02-023-57/+89
| | | | | | | | | | | | | | | | | | | | This commit fixes incorrect logic of icons' lookup if there are fallbacks or more than one theme's directory. According to Icon Theme Specification, Directory Layout section, theme can be spread across several base directories by having subdirectories of the same name. This makes possible to extend system themes by application-specific icons without making of collisions with other applications. According to Icon Naming Specification, Icon Naming Guidelines section, icon name may contain dashes to separate levels of specificity in icon names. This makes possible to set in application very specific icon which may be not in every theme. So it can fallback to less specific one. Change-Id: Iafc813902a3646be56e8f1d3a2fdbf8fd32ac542 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* Avoid unneeded QBrush::texture() callsAllan Sandfeld Jensen2015-02-022-6/+16
| | | | | | | | | | | | If a QBrush has been created without QPixmap the texture() method will create one. This patch avoids that in several places by checking the type of the texture brush before accessing it, or not accessing it at all. Task-number: QTBUG-43766 Change-Id: If6009fe1d5bd51b239ae2c838e5c3b904b56b11a Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* QStyleHints: restore CONSTANT to non-NOTIFYable propertiesJ-P Nurmi2015-02-021-9/+9
| | | | | | | | | | | | | | The removal of CONSTANT keywords broke intended QML usage: property string: Qt.styleHints.passwordMaskCharacter and leads to such warnings: QQmlExpression: Expression ... depends on non-NOTIFYable properties: QStyleHints::passwordMaskCharacter Change-Id: Iadc5ddcbe5c5704f146e073f514845426ff0ec4d Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* Reduce number of QRegion::rects() calls in QBlitterPaintEngine::fillRect()Maks Naumov2015-02-021-5/+4
| | | | | | | And remove unused variable. Change-Id: Ife98bbe5b02e1d18639c100ed3e58985a2ea9218 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* Expose the ThreadedOpenGL cap to appsLaszlo Agocs2015-02-022-0/+17
| | | | | | | | | | | Applications have no public API to check for the ThreadedOpenGL flag reported by the platform plugins. Add a static function to QOpenGLContext to give interested applications a way to decide if they should do rendering on separate threads. Task-number: QTBUG-44208 Change-Id: I629332512ab31fe49f842065a911270cd6cea7aa Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* Utilize EGL_KHR_surfaceless_context in QOffscreenSurface when availableLaszlo Agocs2015-02-021-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use it also in the context initialization code which also relied on pbuffers until now. This is safe to do since QOffscreenSurface is deliberately kept minimal: we only support it for rendering to FBOs or uploading textures, it is quite useless for any rendering type of operation. Therefore simply not creating a surface when the extension is available is viable and should not break anything. While we should have done this a long time ago, the real inspiration now is to avoid crashes with some bad EGL implementations. Mesa in particular tends to crash in its interal configuration handling when trying to create a pbuffer surface with more exotic attributes, for example with multisampling enabled. Just getting rid of those properties is not an option since the resulting pbuffer would not be compatible with the existing context. Therefore our only option is to avoid the pbuffer altogether. There's a so-far-ignored patch for Mesa http://patchwork.freedesktop.org/patch/38100/ which tries to solve some of this but it turns out it is not sufficient to avoid problems with the multisampled case. So to avoid more headache, we just stop using pbuffers there. [ChangeLog][QtGui] QOffscreenSurface is now relying on EGL_KHR_surfaceless_context when available, and avoids creating a pbuffer surface when the extension is present. Change-Id: Id18742768b8e66c8d92ce65a9bf64b0296e14db7 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Only use 32bit version of qPremultiplyAllan Sandfeld Jensen2015-02-021-19/+2
| | | | | | | | | | With auto-vectorization enabled in QtGui, the 32bit version of qPremultiply is faster than the 64bit version since it can be vectorized wider (4x on 128bit as opposed to 2x). Since all our important 64bit targets have SIMD, that makes the 64bit version pointless. Change-Id: I4e9070a3a3c8e2b54f17a95ba0aee0405cbb8ec9 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* Remove unused class QPaintBufferLars Knoll2015-01-283-2629/+0
| | | | | | | | | The class hasn't been used for a while anymore. Since it's private, simply remove it from QtGui. Change-Id: Ia0911d1c8b8836d963a51c8e354c96bc1ee4093f Reviewed-by: Gunnar Sletta <gunnar@sletta.org> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
* Introduce QMatrix4x4::isAffine()Konstantin Ritt2015-01-282-0/+19
| | | | | | | | - a convenience method thats checks if the matrix has no projective coefficients. Change-Id: Ieea8ac2e4237b471a683ad5010672b1e89a0c953 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Introduce QQuaternion::inverted()Konstantin Ritt2015-01-282-0/+24
| | | | | Change-Id: I6de77082bb7c32e48fb7f7d765a58fdbe68db1fd Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* [QVectorND] Add missing operator/=(const QVectorND &)Konstantin Ritt2015-01-286-0/+108
| | | | | Change-Id: Ic1d2912808b95e02ba5d9cb2972c81c6374bbca9 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Bail out in composeAndFlush when makeCurrent failsLaszlo Agocs2015-01-281-1/+5
| | | | | | | | And show a warning so we have a chance of knowing what happened. Change-Id: I9ddf3842b7d19946876ac1a2375611e8c13bbb9a Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
* Micro optimizations to HB-NG pathKonstantin Ritt2015-01-241-37/+34
| | | | | | | No changes in functionality. Change-Id: I9cf90241bdb087ef16fb0b759a5976848a197f55 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Track QPlatformScreen -> QScreen using QPointerTor Arne Vestbø2015-01-242-2/+1
| | | | | | | | | | Allows the QPlatformScreen to verify that the QScreen is alive before sending events to QPA for the given screen (which will assert if the screen is being destroyed). Change-Id: Ie77674fead3e0a4d4f6fedbf1f7f3c98364c7485 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
* QOpenGLWidget/QOpenGLWindow: add a destructor which calls makeCurrentGiuseppe D'Angelo2015-01-242-0/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Generally speaking, QOpenGLWindow subclasses are going to use some various QOpenGL* wrapper object to handle their buffers, FBOs, etc. Some of those QOpenGL* wrappers are QObjects, hence it should be safe to have them as child objects, and expect Qt to clean them up properly; but that doesn't happen because of how the destruction will work. In particular, when the subclass object is deleted, there may not be the right OpenGL context set as current. The deletion will go up to ~QObject, where the child objects will be deleted, resulting in a crash. That will *also* happen if someone connected to the context's aboutToBeDestroyed() signal: the context will in fact be deleted after the child objects, since it's stored in QOpenGLWindowPrivate, whose dtor will be run after ~QObject (!). Now, in the general case, QOpenGLWindow subclasses should always have a dtor in which they call makeCurrent() (also because various QOpenGL* class are not QObjects, hence they're kept around as full members instead of pointers-to); but at the same time we should clean up properly the QObject children. All of the above of course stands for QOpenGLWidget as well. Task-number: QTBUG-44094 Change-Id: I2379041fe175416936f6d40292039f773a515b35 Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* Keep the width as it is to ensure the underline is drawn correctlyAndy Shaw2015-01-231-1/+1
| | | | | | | | | | | When the width of the decoration was floored then in some circumstances (such as when latin and Hangul text was mixed) an underline of the text would appear to be broken on HiDpi screens. Since the width is correct then we should keep it as it is to ensure it meets up correctly. Task-number: QTBUG-44062 Change-Id: I2cbf722a9cf9c7e15caa9aad061bf28d3bd0bb59 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
* Deprecate QFont:: rawMode()/setRawMode()Konstantin Ritt2015-01-234-33/+29
| | | | | | | rawMode only has an effect under X11 in pre-QPA times. Change-Id: Iaff8fed8f4ae5af5dd0399bb3ebd9d590a39a758 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Expose context lossLaszlo Agocs2015-01-221-2/+11
| | | | | | | | | | | | | | | | | On platforms like Windows (and presumably on mobile devices too) the loss of the context (e.g. the underlying D3D device in case of ANGLE) is an event that can happen randomly and needs sufficient handling. Enhance QOpenGLContext::isValid() with the purpose of indicating context loss. Currently only the Windows EGL backend (ANGLE) has support for it. Other platforms may be added later. Task-number: QTBUG-43263 Change-Id: I8177694c1ee7cebbd5d330e34757fd94c563e6d6 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* Only show QWindows after QScreen destruction if coming from virtual siblingTor Arne Vestbø2015-01-223-29/+30
| | | | | | | | | | | | | | | | | | | | | For windows that were shown on an external screen (not a virtual sibling of the primary screen), eg. on iOS, it doesn't make sense to re-show the window when moved back to the primary screen. By moving the logic into the QScreen destructor, we ensure that the code path is hit both for the old and unsupported style way of destroying QPlatformScreen by deleting it directly, and the new and safe way of using QPlatformIntegration::destroyScreen(), while still allowing clients to manage the windows themselves by emitting screenRemoved() before applying our fallback logic. [ChangeLog][QtGui][Important Behavior Changes] QWindows will no longer be re-shown automatically when moved from a destroyed QScreen, unless that QScreen was a virtual sibling of the primary screen. Change-Id: If1105bc5ef41a5392854bb97d121c998bffa3606 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
* Add project/unproject methods in QVector3DPaul Lemire2015-01-222-0/+69
| | | | | | | | | | Equivalent of gluProject and gluUnproject. [ChangeLog][QtCore][QVector3D] add convenience project and unproject methods to use like gluProject and gluUnproject Change-Id: I6e4e3e79ea6e34d1fb0c375e15185c950b699ef0 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QTextDocumentLayout: handle QTextBlock visibilityJ-P Nurmi2015-01-221-2/+4
| | | | | | | Task-number: QTBUG-10153 Change-Id: I0420b9c59a7a437da28675349c14e84bfa4aea54 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Move static part of angleBetween/transformBetween/mapBetween to QPlatformScreenTor Arne Vestbø2015-01-213-59/+94
| | | | | | | | | Allows the helpers to be used at QPlatformScreen construction time, before it has been associated with a QScreen. Change-Id: Iab8f863ef5c9339ef6e88b3d844915c03cacda74 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
* Unify input device hotplugging support for embeddedLaszlo Agocs2015-01-216-2/+233
| | | | | | | | | | | | | | | | | | | | | | On embedded the mouse cursor will now appear and reappear regardless of how the input handling code is loaded (via a generic plugin or compiled-in to the platform plugin). Instead of passing around QDeviceDiscovery instances that only works when compiling-in the code into the platform plugin, introduce a new internal central QInputDeviceManager. The single instance of this provides a place to store any future input device related signals and properties. Also introduce mouse hotplugging support to linuxfb. [ChangeLog][QtGui] The mouse cursor on Embedded Linux is now handling hotplugging correctly with eglfs and linuxfb regardless of how the input handling code is loaded (via a generic plugin or built in to the platform plugin). Change-Id: I147c1b04a193baf216598015264f2c06e1b20f84 Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
* Introduce QFontDatabase::isPrivateFamily()Gabriel de Dietrich2015-01-212-0/+19
| | | | | | | | | | | | Some platforms have the concept of private fonts (e.g., OS X and iOS) which are generally used as system UI fonts. Since 909d3f5c7, the platform font database has a similar but private API. [ChangeLog][QtGui][Fonts] Added QFontDatabase::isPrivateFamily() Change-Id: Ibdce9de534fadbbc3965be8a942c8012edeed209 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
* Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2015-01-219-33/+39
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/global/global.pri src/corelib/global/qcompilerdetection.h src/corelib/global/qglobal.h src/corelib/tools/qdatetime.cpp src/plugins/platforms/xcb/qxcbscreen.h src/plugins/platforms/xcb/qxcbwindow.h src/widgets/dialogs/qcolordialog.cpp src/widgets/dialogs/qcolordialog_p.h tools/configure/configureapp.cpp Change-Id: Ie9d6e9df13e570da0a90a67745a0d05f46c532af
| * Doc: Fix typosSze Howe Koh2015-01-191-1/+1
| | | | | | | | | | Change-Id: I29d5576902a5d1ea25558e980081952d9157f7f0 Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
| * Doc: Remove references to QOpenGLContext::destroy()Sze Howe Koh2015-01-191-6/+8
| | | | | | | | | | | | | | | | This function is private. Task-number: QTBUG-35907 Change-Id: I370c0bfd8fda11c68ee76ee42967f117a81b381c Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
| * QTextFormat: fix undefined behaviorMarc Mutz2015-01-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Left-shifting of negative values is undefined ([expr.shift]/2). Since hashValue is a uint already, rectify by casting it->key to uint prior to shifting. Found by UBSan. Change-Id: I94a5311f5a4492f514f595b8fb79726df1e7d0de Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
| * Doc: verb "to layout" changed to "to lay out"Nico Vertriest2015-01-161-4/+4
| | | | | | | | | | | | Task-number: QTBUG-43657 Change-Id: I574186253ee423cc380ec3c6f274f1caa2a6aa2a Reviewed-by: Martin Smith <martin.smith@digia.com>
| * Fix inlining order of functions in qpathclipper_p.h.Friedemann Kleint2015-01-161-16/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When compiling tst_qpathclipper with MinGW: In file included from QtGui/private/qpathclipper_p.h:1:0, from tst_qpathclipper.cpp:33: src/gui/painting/qpathclipper_p.h:469:29: warning: 'static QPathEdge::Traversal QWingedEdge::flip(QPathEdge::Traversal)' redeclared without dllimport attribute after being referenced with dll linkage inline QPathEdge::Traversal QWingedEdge::flip(QPathEdge::Traversal traversal) ^ qpathclipper_p.h:474:29: warning: 'static QPathEdge::Direction QWingedEdge::flip(QPathEdge::Direction)' redeclared without dllimport attribute after being referenced with dll linkage inline QPathEdge::Direction QWingedEdge::flip(QPathEdge::Direction direction) Change-Id: I38feb07d693768285c1d405b3fc92a58c3309547 Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
| * Fix glyph runs painted badly with perspective transformAllan Sandfeld Jensen2015-01-091-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | A mismatch between requiresPretransformedGlyphPositions and shouldDrawCachedGlyphs in QRasterPaintEngine will cause the text position to be transformed twice when using drawGlyphRun on a QPainter with a perspective transform. Since this case falls back to drawing text as paths there is no reason to require any special treatment. Change-Id: Ib1c14aee4cc6774dd8feadc5748f0b0ee59633b9 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com> Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
| * Fix build error with Intel Compiler 15 on WindowsThiago Macieira2015-01-062-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the constructor is inline, the generated code needs access to the vtable, which gets emitted with the first virtual function (in QtGui), but somehow icl.exe can't find it in debug. Looking at the .obj files it generates and comparing to MSVC, it seems that: - both generate and export the inline constructor from Qt5Guid.dll - MSVC will call that constructor from qoffscreenintegration.obj - icl.exe will inline the constructor and requires a symbol not exported from Qt5Guid.dll I can't explain why (probably a compiler bug). Change-Id: I0ab9c078ae4fc794826025d68d364124c7247e80 Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
| * JPEG: Fix reading of EXIF orientation.Friedemann Kleint2015-01-061-3/+3
| | | | | | | | | | | | | | | | | | | | | | The orientation is unsigned short, read it as such. In JPEG-files created by Ricoh/Pentax cameras, the data is saved in Motorola format. Reading the wrong data size will produce invalid values when converting the byte order. Change-Id: I8f7c5dc5bfc10c02e090d3654aaefa047229a962 Task-number: QTBUG-43563 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* | QOpenGLTexture: introduce texture comparison supportGiuseppe D'Angelo2015-01-173-1/+147
| | | | | | | | | | | | | | | | Shadow sampling is an old OpenGL feature (hello, OpenGL 1.3!), which was missing from QOpenGLTexture. This commit adds the relevant support. Change-Id: I9f6b552d806a356d24ee08121af6bc9ce684f2b5 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* | Introducing QPlatformHardwareCompositor.Gunnar Sletta2015-01-175-1/+189
| | | | | | | | | | | | | | | | | | | | Can be used by applications to send hardware buffers directly to the hardware compositor, if available. The primary usecase right now will be from QtWayland to 2D composition of surface by bypassing the OpenGL composition. Change-Id: Ibdcdcc744c34869d3abbc11aad448a755f87161f Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
* | Introducing QPlatformGraphicsBufferJørgen Lind2015-01-177-6/+694
| | | | | | | | | | Change-Id: Idcf8f75bd151a877c7097b79df998c1ffd56871c Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* | Improve performance of path clipping in rasterizerAllan Sandfeld Jensen2015-01-171-17/+43
| | | | | | | | | | | | | | | | | | | | | | | | This patch short cuts a common loop in the gray rasterizer where it would iterate over cells it considers invalid. This greatly speeds up clipping paths on large paint devices, but probably has little benefit for the FreeType origin of our rasterizer. Task-number: QTBUG-40559 Change-Id: I30845de0b82e53b619853c6c91903793b4267615 Reviewed-by: Gunnar Sletta <gunnar@sletta.org>