summaryrefslogtreecommitdiffstats
path: root/src/gui
Commit message (Collapse)AuthorAgeFilesLines
* Fix composition for translucent AlwaysStackOnTop widgetsLaszlo Agocs2014-08-241-1/+1
| | | | | | | | | | | | | | | Writing out the alpha is re-enabled too early. When blitting the AlwaysStackOnTop widgets as the last step of the composition, they need the exact same settings as the backingstore content, meaning blending but without writing out alpha. Move the glColorMask call to fix this. This will avoid issues with semi-transparent AlwaysStackOnTop widgets when the top-level has alpha enabled too. Task-number: QTBUG-40910 Change-Id: Id6d0d684cfa78bf79b65a097efd92de575e73b2c Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
* Do not resolve core functions on GLES in texture helperLaszlo Agocs2014-08-231-0/+64
| | | | | | | | | | | | | As the spec for eglGetProcAddress says, some implementations may not return function pointers for core functions. Similarly to how we cannot get OpenGL 1.0/1.1 functions with WGL for example. To make sure QOpenGLTexture does not just crash with such implementations, we simply use the statically exported functions in -opengl es2 builds. Change-Id: I213bfcc21e58888b17e0ebcd0a26f26f77517e40 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QIconLoader: don't inherit QObjectMarc Mutz2014-08-231-1/+1
| | | | | | | | | QIconLoader did not use the services from QObject and the Q_OBJECT macro was missing, too, so external code couldn't have used it in a qobject_cast or inherits(), either. Change-Id: I1f33dd540fa2ded48d871d848a77eee743a4e3c0 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* QIconLoader: replace an inefficient QList with a QVectorMarc Mutz2014-08-232-3/+4
| | | | | | | | | | QIconDirInfo is larger than a pointer, so holding it in a QList is horribly inefficient. Fix by holding it in a QVector instead. Change-Id: I6551d2d2941447e600a33c3d68edf46db002d96c Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* QIconLoader: mark virtual overridesMarc Mutz2014-08-231-2/+2
| | | | | Change-Id: I72f20b5935d56d7c090fdd685e2bedc0778db505 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* QIconLoader: mark a helper type as movableMarc Mutz2014-08-231-0/+2
| | | | | | | | QIconDirInfo is held in Qt containers, so reap the performance benefit of a movable type. Change-Id: I317c69ec46d324623b21a33043856e22f60e21b1 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* QIconLoader: replace while(!empty()) delete takeLast() with qDeleteAll()Marc Mutz2014-08-231-6/+2
| | | | | | | | | | There's no calling back into QIconLoaderEngine from the QIconLoaderEngineEntry dtors, so don't bother slicing off one element by one from the container as they are deleted, the more so as m_entires is either move-assigned or deleted right after these loops. Change-Id: Ic9ffa442ef0b0c59e19eb91d164183ea5c3bab67 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* QIconLoader: don't re-evaluate container.size() all the time (II)Marc Mutz2014-08-231-2/+4
| | | | | | | | Experience shows that the compiler does not recognize the size() call as a constant expression, so help it along. Change-Id: I688244f37c555365566cd1a59dc601974316a2e6 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* QIconLoader: don't re-evaluate container.size() all the timeMarc Mutz2014-08-231-1/+3
| | | | | | | | Experience shows that the compiler does not recognize the size() call as a constant expression, so help it along. Change-Id: I60cd1754f8be123c62e3b47f6f721f42a69fe3c5 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* QIconLoader: remove another unused variableMarc Mutz2014-08-231-1/+0
| | | | | Change-Id: I2b11944d1964878ff5f6f666f33a97ea842ffea7 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* QIconLoader: remove an unused variableMarc Mutz2014-08-231-1/+0
| | | | | Change-Id: I4f1fee2da9358f63c4d3c9e46b8d69b4a1b280c7 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Replacement for QWS_DBLCLICK_DISTANCEPelle Johnsen2014-08-211-1/+5
| | | | | | | | | | | | | | Add QT_DBL_CLICK_DIST to replace QWS_DBLCLICK_DISTANCE for controlling the distance for detecting double clicks, which can be very useful on embedded devices [ChangeLog][QtGui] environment variable QT_DBL_CLICK_DIST customizes the amount of movement allowed when detecting a double click. Task-number: QTBUG-40841 Change-Id: I0a7534ad6cd6387d127eb49021a92d414d45670e Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* Debug logging support for QNativeGestureEventShawn Rutledge2014-08-211-1/+8
| | | | | | | | | | The most useful information is what kind of gesture the event represents, but it was missing until now. Also added a line of documentation about the NativeGesture event type. Change-Id: I1ba3c951dcc5751e937d762d9b647ab0bf8d93b8 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
* Outline drawing should not override the default freetype loadflagsAllan Sandfeld Jensen2014-08-211-1/+1
| | | | | | | | | | We set FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH as the default load flags for freetype fonts, but due to using = instead of =| the default flags gets overridden when outline drawing sets FT_LOAD_NO_BITMAP. Change-Id: I26b45aa2bbf613689d278eb07ae028ef9757023c Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Remove QPlatformScreenPageFlipper.Robin Burchell2014-08-195-226/+0
| | | | | | | | | | | | | | | | Use of this was removed from QtWayland quite a long time ago, which was the only public user of this API. Furthermore, it isn't easily possible to implement any use of this API without full control of the graphics stack (a very rare occurrence) and there is no public demonstration of this. There is ongoing research to provide a better replacement for this in the form of QPlatformHardwareCompositor. Change-Id: I80d666a5b465aa80f73fed6c44838ce7210bbd30 Reviewed-by: Andrew Knight <andrew.knight@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* If a tess/compute shader compilation fails, print its type correctlyGiuseppe D'Angelo2014-08-181-7/+18
| | | | | Change-Id: I7536b596b890ed304846572b3068b3e932c0f594 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Merge "Merge remote-tracking branch 'origin/5.3' into 5.4" into refs/staging/5.4Giuseppe D'Angelo2014-08-196-4/+22
|\
| * Merge remote-tracking branch 'origin/5.3' into 5.4Frederik Gladhorn2014-08-126-4/+22
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Manually included changes from 3a347a4e70e5a10ee92dd2578316c926a399e894 in src/opengl/qgl.cpp. Conflicts: src/opengl/qgl_qpa.cpp src/plugins/platforms/android/androidjnimain.cpp Change-Id: Ic26b58ee587d4884c9d0fba45c5a94b5a45ee929
| | * Fix rendering alpha-blended text which needs to be clipped at the top.Simon Sasburg2014-08-111-1/+1
| | | | | | | | | | | | | | | | | | Task-number: QTBUG-34148 Change-Id: I9c0694e67cc9883db318c1a1558bdf6e08088db4 Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
| | * Font Database: Add support for private, system UI font familiesGabriel de Dietrich2014-08-112-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We introduce QPlatformFontDatabase::isPrivateFontFamily() to allow testing for private, system UI font families. Both QFontComboBox and QFontDialog need to filter out those private font families which, by definition, should be hidden from the end user. (The textedit example had to be updated to fix the issue where the default font would be private. In 5.4, we will be adding an equivalent, public API in QFontDatabase, and a better solution for the textedit example and QTexEdit in general). In particular, on OS X and iOS, private fonts are used for the system UI font. Those have their font family name prefixed by a dot. QCoreTextFontDatabase knows about this, and makes sure those are tested positive as private font families. In order to have a cleaner layer separation, we moved the QPA theme font resolution from the platform theme classes into QCoreTextFontDatabase for both Cocoa and iOS QPA plugins. In both cases, we use CoreText's CTFontCreateUIFontForLanguage(), that nicely maps to the HITheme API we were using so far on Mac. That means one HITheme dependency less. We also cache the font descriptors we get for these font for each time QCTFD::populateFamilies() gets called. (While not common, this currently happens in auto-tests, like tst_QFontDatabase, and could happen in actual applications -- specially when adding and removing application fonts.) Change-Id: Ic6f0b60f9f597afee1a43596a669742dc546b97f Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
| | * Initialize member.Gunnar Sletta2014-08-081-0/+1
| | | | | | | | | | | | | | | Change-Id: I9ed8d5a7aeb40886bafbd9eb2003e88e5d796cc9 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
| | * Both HiQualAA and normal AA should mean antialiasing in rasterengine.Gunnar Sletta2014-08-071-1/+1
| | | | | | | | | | | | | | | Change-Id: I1970c96e7681e4059984d837e12f044f138e6d7e Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
| | * Doc: Placed Qt OpenGL class convention in code block.Jerome Pasion2014-08-061-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | -QDoc tried to autolink where it should not. -The syntax looks much better in a code block than in a paragraph. Change-Id: I21d08cbb1537186d09b52898d7b70a5c0794256c Task-number: QTBUG-35019 Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
| | * Do not add QOffscreenSurface windows to the global listLaszlo Agocs2014-08-051-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QOffscreenSurface has to stay usable even after returning from app.exec(). Hence close()ing the underlying hidden window, that is used on platforms that do not provide real offscreen surfaces, is wrong. Normally all QWindows are closed (and thus destroy()'ed) when quitting the application, meaning the the offscreen surface cannot be made current anymore after returning from exec(). This is an unnecessary limitation and makes certain cleanup operations impossible. Backport of ba79f36cb1319a279068adb6d02a8993cbc62613 from dev. This is necessary for the 5.3 series too to avoid issues on exit in QQickWidget apps, on OS X in particular. Task-number: QTBUG-40505 Task-number: QTBUG-39908 Change-Id: Iea1489378a18f29ff84ba8f13a6dad2d66d2b315 Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
| | * OpenGL: destroy QGLContext allocated by QGLContext::fromOpenGLContextDavid Fries2014-08-051-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QGLContext already uses ownContext to identify when it "owns" QOpenGLContext and will delete QOpenGLContext when needed. In the other way QGLContext::fromOpenGLContext creates a QGLContext for QOpenGLContext, and is now using qGLContextDeleteFunction to identify if QOpenGLContext "owns" QGLContext by QGLContext only passing a delete function when QOpenGLContext should delete QGLContext, and by QOpenGLContext calling deleteQGLContext() from destory() to do the destruction avoiding the previous leak and sometimes crash on exit. Change-Id: I65e791776e99b456e4d0c70fc5b5cdb33c975893 Task-number: QTBUG-40286 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* | | Support autohint and lcdfilter fontconfig configurationAllan Sandfeld Jensen2014-08-162-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds support for reading autohint and lcdfilter settings from fontconfig and pass them on to freetype. Task-number: QTBUG-32254 Change-Id: Iaa69b70f7005ee7f21126a8d984c07b3a46a3e7f Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* | | Forward menu button events to Qt if there is no visible menubar.BogDan Vatra2014-08-162-3/+10
| | | | | | | | | | | | | | | | | | Task-number: QTBUG-32334 Change-Id: If1b4517f233b04d4c6c165cbfe62c8cf7b624c60 Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
* | | Fix compilation of QPixelFormat with old clangFrederik Gladhorn2014-08-151-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The enum would break on old clang trying to cast it to strings when building webkit. In file included from /work/build/qt/qtbase/lib/QtGui.framework/Versions/5/Headers/qimage.h:48: /work/build/qt/qtbase/lib/QtGui.framework/Headers/qpixelformat.h:78:33: error: use of overloaded operator '+' is ambiguous (with operand types 'int' and 'QPixelFormat::FieldWidth') Change-Id: I614cf89d0832dea505001d55188b4c748e948ef9 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com> Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* | | Add support for accelerated glyph rendering in the directfb pluginSimon Hausmann2014-08-153-0/+50
| | | | | | | | | | | | | | | Change-Id: I44ae087c900e5cffdada45845cb7f34aab89b8ab Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | Fix documentation and memrotate of new RGB30 QImage formatsAllan Sandfeld Jensen2014-08-142-3/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | This patch contains two changes that were lost when RGB30 support was merged. Documentation of the formats being added, and corrected memrotate methods. Change-Id: Ia3c87d7c984134576badbba92c421f832896cf97 Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* | | Move SubpixelAntialiasingType from QFontEngineFT to QFontEngineAllan Sandfeld Jensen2014-08-143-14/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To be able to use the SubpixelAntialiasingType enum without depending on QFontEngineFT we need to move it to QFontEngine. The patch also cleans up the left-overs of other enums moved the same way. Change-Id: I025bc8a5b429d376cfab0a643121ed6f99204988 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* | | Update qopenglext.h and qopengles2ext.hLaszlo Agocs2014-08-144-12271/+10795
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The current one is from 2012 and is based on the obsolete spec files. Replace it with the new one generated from the XML specs. At the same time fix the callback function signature for QOpenGLDebugLogger since it would not build otherwise. The user parameter is const GLvoid * according to the specification. Task-number: QTBUG-39773 Change-Id: If2153198373eeebc587c41b2dbf6bed5bcb26761 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* | | Fix composition for windows with alphaLaszlo Agocs2014-08-132-10/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | While we will cover the entire surface with our textured quads, the clear is still necessary in order to make top-levels with TranslucentBackground render correctly: We don't want to blend transparent areas with undefined content that is in the surface's framebuffer. Blending is problematic for alpha values. We now prevent the blended alpha from being written out. This ensures that in examples like qquickviewcomparison, where the backingstore image contains an alpha of 0.5 while the QQuickWidget texture 1.0, the result is still an alpha value of 1.0 in the final image. Writing out an alpha of 0.5 would break on systems where windows get an alpha buffer by default. hellogl2 can now take a --transparent parameter which makes the QOpenGLWidget being cleared to transparent in order to verify it works in combination with Qt::WA_TranslucentBackground. The swapped red and blue problem is also corrected. RGBA8888 does not need swizzling. The only format that needs this is RGB32. Task-number: QTBUG-40716 Change-Id: I54a9fd3a91a1b59575b38cdb908835315514e40f Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
* | | Android: don't kill the app without warningPaul Olav Tvete2014-08-131-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the back key was pressed when no window was visible, such as during startup, the app would be killed without notice. This change makes sure that we always give the app a chance to intercept the back key before killing the application. [ChangeLog][Android] Back key no longer kills the application when no window is visible. Task-number: QTBUG-39688 Change-Id: If9373e8d26ff323d8c8a274fb30820ecc4ca66ab Reviewed-by: BogDan Vatra <bogdan@kde.org>
* | | Add accessible rolesFrederik Gladhorn2014-08-132-1/+56
| | | | | | | | | | | | | | | Change-Id: Ic5465687f51c441235ec23cb88045e14644f1d2a Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* | | Remove invalid assertFrederik Gladhorn2014-08-131-2/+1
| | | | | | | | | | | | | | | | | | | | | The table interface may be implemented without having a QObject. Change-Id: I59b9bef29494296149bc1023db933b7c5d762cac Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* | | Accessibility: Fix boundaries for text functions in QLineEditFrederik Gladhorn2014-08-131-31/+26
|/ / | | | | | | | | | | | | | | | | | | Make the functions work consistently. For example asking for the line at the cursor position when the cursor was at the end returned an empty line before. Task-number: QTBUG-38500 Change-Id: I60fc78c7be129a59c83efcfce6d8fdd16f2c3f65 Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* | Make the expose region local on all platformsLaszlo Agocs2014-08-122-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QExposeEvent::region() reports a region in a random coordinate system. The behavior is undocumented and the platform plugins do different things. xcb, offscreen and ios are correct. These set the region in local coordinates, which is the most logical interpretation of the expose region. windows is almost correct, except for one occurrence. cocoa and others need changes: passing in geometry() as the exposed region is always wrong. The patch documents the expected behavior both for QExposeEvent and internally in QWindowSystemInterface. The problematic plugins are fixed to use local coordinates. Task-number: QTBUG-40470 Change-Id: I6ded3154d14254fa71d4292d8e1b5e6cf696c81a Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* | Add QAccessible::ActivationObserverFrederik Gladhorn2014-08-114-2/+68
| | | | | | | | | | | | | | | | Makes it possible to follow changes in activation an deactivation of a11y. Needed for WebEngine to know when to activate a11y. Change-Id: Ia264a76974224d1baad3e88c34a4b8a9f1a3695d Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* | QOpenGLVersionStatus: add constexprMarc Mutz2014-08-091-10/+8
| | | | | | | | | | | | | | | | Also dropped two redundant qMakePair() calls. Change-Id: I7266ac9a3354ef4f60bf921fc0cd5d5a33c75b93 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
* | Use NAmE spelling of grey (gray)Marc Mutz2014-08-092-2/+2
| | | | | | | | | | | | | | These occurrences are only in docs or code comments. Change-Id: Ia114466a85c01e2b978396c329153044921fb20b Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* | QPixelFormat: don't inherit itMarc Mutz2014-08-092-282/+155
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of abusing inheritance to provide convenience constructors, use simple inline constructor functions. The name got a lower-case q to indicate a free function. The usual fromXYZ() static methods were deemed not fitting in this case in the initial round of review, since they implied some kind of conversion while these functions are simply constructors of formsts, which contain no data. This also solves the problem that some of these ctors could have been called with just one argument and were therefore candidates for hidden QPixelFormat temporary injection. QPixelFormatRgb was renamed to qPixelFormatRgba to explain the third argument at the call site better. There seem to be no users of this class in qt5.git at this time. Change-Id: Ib4fe8ceb2d30744127b116a748724a3406400eb8 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | QPixelFormat is better taken by-valueMarc Mutz2014-08-093-4/+4
| | | | | | | | | | | | | | Being a better quint64, it can be passed in registers, so take them as value args. Change-Id: I8eb96a2594d910b538b651fb3ca567c0c124dd3a Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
* | QPixelFormat: implement some oneliners in the class bodyMarc Mutz2014-08-091-15/+6
| | | | | | | | | | | | | | | | There's little point in duplicating the complex declaration (thanks to C++11), just define the relational operators and the default ctor where they're declared. Change-Id: Ie91545b2581c89edd434c911eb05705e2d16debe Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* | QPixelFormat: don't use bit fieldsMarc Mutz2014-08-091-101/+112
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GCC at least is generating horrible code for them, so do the bit twiddling ourselves. This is not premature optimization, because it might be the seed for a QBitField class, as suggested by Andrei Alexandrescu on GN2013. The assembler code of default and copy ctors is unchanged between the old and new versions. Accessors such as redSize() are virtually identical (with an and and a mov exchanging place). The interesting thing is what happend in operator== and the set-all-fields ctor. These are the disassemblies of functions wrapping op== and the ctor, resp.: bool pf_comparison(QPixelFormat, QPixelFormat): .cfi_startproc | .cfi_startproc movl %esi, %edx | cmpq %rsi, %rdi xorl %eax, %eax | sete %al xorl %edi, %edx | ret andl $15, %edx | .cfi_endproc jne .L53 | movl %esi, %edx | xorl %edi, %edx | testw $1008, %dx | jne .L53 | movl %esi, %edx | pushq %rbx | .cfi_def_cfa_offset 16 | .cfi_offset 3, -16 | movl %edi, %ebx | movzbl %dh, %ecx | movzbl %bh, %edx | xorl %ecx, %edx | andl $252, %edx | jne .L40 | movq %rdi, %rcx | movq %rsi, %rdx | shrq $16, %rcx | shrq $16, %rdx | movl %ecx, %ebx | xorl %edx, %ebx | movl %ebx, %r8d | andl $63, %r8d | jne .L40 | xorl %ecx, %edx | testw $4032, %dx | jne .L40 | movq %rsi, %rcx | movabsq $16911433728, %rdx | xorq %rdi, %rcx | testq %rdx, %rcx | jne .L40 | movq %rdi, %rdx | movq %rsi, %rcx | shrq $32, %rdx | shrq $32, %rcx | movl %edx, %ebx | xorl %ecx, %ebx | movl %ebx, %r8d | andl $252, %r8d | jne .L40 | movq %rsi, %r9 | movq %rdi, %r8 | shrq $40, %r9 | shrq $40, %r8 | xorl %r9d, %r8d | andl $127, %r8d | jne .L40 | xorl %ecx, %edx | andl $98304, %edx | jne .L40 | movq %rsi, %rcx | movq %rdi, %rdx | shrq $48, %rcx | shrq $48, %rdx | xorl %ecx, %edx | andl $126, %edx | jne .L40 | shrq $48, %rdi | movq %rcx, %rax | xorl %edi, %eax | testw $-128, %ax | sete %al | .p2align 4,,10 | .p2align 3 | .L40: | popq %rbx | .cfi_restore 3 | .cfi_def_cfa_offset 8 | .L53: | rep | ret | .cfi_endproc | That one is pretty obvious. Hint: the right one is the new version. QPixelFormat pf_unwieldy_ctor(QPixelFormat::ColorModel, ...) .cfi_startproc | .cfi_startproc movq %rbp, -32(%rsp) | movq %rbx, -40(%rsp) movq %r12, -24(%rsp) | .cfi_offset 3, -48 andl $15, %edi | movzbl 8(%rsp), %ebx movq %r13, -16(%rsp) | andl $63, %esi movq %r14, -8(%rsp) | movq %rbp, -32(%rsp) andl $63, %esi | movq %r12, -24(%rsp) movl 48(%rsp), %r11d | andl $63, %edx movzbl 8(%rsp), %r10d | .cfi_offset 6, -40 andl $63, %edx | .cfi_offset 12, -32 .cfi_offset 6, -40 | movl 16(%rsp), %ebp .cfi_offset 12, -32 | movl 32(%rsp), %r11d .cfi_offset 13, -24 | andl $63, %ecx .cfi_offset 14, -16 | movl 40(%rsp), %r10d movzbl 16(%rsp), %r14d | movq %r13, -16(%rsp) movzbl 24(%rsp), %r13d | andl $63, %r8d andl $63, %ecx | andl $63, %ebx movzbl 32(%rsp), %r12d | .cfi_offset 13, -24 movzbl 40(%rsp), %ebp | movl 48(%rsp), %r13d andl $63, %r8d | andl $63, %r9d movl %r11d, %eax | movq %rbx, %r12 movq %rbx, -40(%rsp) | movl 24(%rsp), %ebx .cfi_offset 3, -48 | andl $1, %ebp andl $63, %r9d | andl $1, %r11d andl $3, %eax | andl $15, %r10d andl $63, %r10d | movq %rdi, %rax xorl %ebx, %ebx | andl $15, %eax andl $1, %r14d | salq $4, %rsi andl $1, %r13d | salq $10, %rdx andl $1, %r12d | andl $1, %ebx andl $15, %ebp | salq $16, %rcx cmpl $2, %r11d | salq $22, %r8 cmovne %eax, %ebx | salq $28, %r9 andl $63, %esi | salq $34, %r12 movq %rdi, %rax | salq $40, %rbp salq $4, %rsi | salq $41, %rbx andl $15, %eax | salq $42, %r11 andl $63, %edx | salq $43, %r10 salq $10, %rdx | cmpl $2, %r13d orq %rsi, %rax | movq %r14, -8(%rsp) andl $63, %ecx | .cfi_offset 14, -16 salq $16, %rcx | movzbl 56(%rsp), %r14d orq %rdx, %rax | je .L45 andl $63, %r8d | andl $3, %r13d orq %rcx, %rax | salq $47, %r13 salq $22, %r8 |.L44: andl $63, %r9d | orq %rsi, %rax salq $28, %r9 | orq %rdx, %rax orq %r8, %rax | movq %r14, %rdx andl $63, %r10d | movq -8(%rsp), %r14 movq %r14, %rcx | orq %rcx, %rax salq $34, %r10 | andl $63, %edx orq %r9, %rax | orq %r8, %rax andl $1, %ecx | salq $49, %rdx movq %r13, %rdx | orq %r9, %rax orq %r10, %rax | orq %r12, %rax salq $40, %rcx | movq -24(%rsp), %r12 andl $1, %edx | orq %rbp, %rax movq -16(%rsp), %r13 | movq -32(%rsp), %rbp salq $41, %rdx | orq %rbx, %rax orq %rcx, %rax | movq -40(%rsp), %rbx movq %r12, %rcx | orq %r11, %rax orq %rdx, %rax | orq %r10, %rax andl $1, %ecx | orq %rdx, %rax movq %rbp, %rdx | orq %r13, %rax salq $42, %rcx | movq -16(%rsp), %r13 andl $15, %edx | ret movq -32(%rsp), %rbp | .p2align 4,,10 salq $43, %rdx | .p2align 3 orq %rcx, %rax |.L45: movq %rbx, %rcx | xorl %r13d, %r13d orq %rdx, %rax | jmp .L44 movzbl 56(%rsp), %edx | .cfi_endproc andl $3, %ecx | salq $47, %rcx | movq -40(%rsp), %rbx | movq -24(%rsp), %r12 | movq -8(%rsp), %r14 | andl $63, %edx | orq %rcx, %rax | salq $49, %rdx | orq %rdx, %rax | ret | .cfi_endproc | Without bothering to understand the details, they look pretty similar, with the new version being slightly shorter. But that may not mean anything. Change-Id: I31e84c9109ccd0c7282351b2e2802407a9b360b4 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | OS X: Remove mnemonics in parenthesesTakumi Asaki2014-08-081-1/+13
| | | | | | | | | | | | | | | | | | | | | | | | In some language, mnemonics put after label text within parentheses. e.g. "&Open" is translated to "開く(&O)" in Japanese. OS X doesn't use mnemonics and '&' in label text is removed. Mnemonics in parentheses (and spaces before them) also should be removed. Change-Id: I88c0a1f60af7e148b3cf24a4e215ce807d62bce3 Reviewed-by: Tasuku Suzuki <stasuku@gmail.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* | Add support for glMapBufferRange in the wrappers and resolversLaszlo Agocs2014-08-084-8/+122
| | | | | | | | | | | | | | | | | | | | | | | | | | | | QOpenGLBuffer::map() and related helpers are becoming useless in OpenGL ES 3.0 and up: instead of the old GL_OES_map_buffer, glMapBufferRange, but not glMapBuffer, is now part of the standard. On desktop GL_ARB_map_buffer_range is present by default in OpenGL 3.0 and newer. [ChangeLog][QtGui] Added QOpenGLBuffer::mapBufferRange(). Task-number: QTBUG-38168 Change-Id: I4e9bbe8ced9ee4d535ac32849a8c08c26d79cb49 Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* | Add default format to QSurfaceFormatLaszlo Agocs2014-08-085-1/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add defaultFormat() and setDefaultFormat() statics to QSurfaceFormat. These define the default values for the requestedFormat members of QOpenGLContext, QWindow and QOpenGLWidget (and implicitly QOpenGLWindow, QQuickWindow, etc.) This replaces QQuickWindow::setDefaultFormat() which can now be removed. The main inspiration here is not the convenience (avoiding setFormat() calls for all windows/widgets), but robustness: by setting the format once at the start of the application, all windows and contexts, including the internal share context used by QOpenGLWidget and QQuickWidget, will use the same format, eliminating the possibility of failing due to trying to share between incompatible contexts. Furthermore, since such a functionality is anyway mandatory for QQuickWindow (due to the possibility of creating windows from QML code), extending it to QSurfaceFormat and QOpenGLContext/QWindow is the next logical step. Change-Id: Ie94486adc489d17fecfcebb7050fecedffd2688b Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* | Fix the docs for resizeGL in QOpenGLWindowLaszlo Agocs2014-08-081-3/+9
| | | | | | | | | | | | | | | | Some of it was blindly copied from QOpenGLWidget and it does not apply. Change-Id: I73f358f74d286d3757a3a77a9bfe06887d57514a Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* | Add missing #include <qdatastream.h> or <qiodevice.h>Thiago Macieira2014-08-072-0/+2
| | | | | | | | | | | | | | Lots of code depended on an indirect includes from qstringlist.h. Change-Id: I33d0dce33d64302d6c0e49180cc1249b90ab27c5 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>