summaryrefslogtreecommitdiffstats
path: root/src/gui
Commit message (Collapse)AuthorAgeFilesLines
* Extending the inputMethodQuery APIPaul Olav Tvete2014-02-152-0/+28
| | | | | | | | | | | | | | Currently, inputMethodQuery() only provides information about the current paragraph. On some platforms, such as Android, the input method needs information about the global cursor position, and more of the surrounding text. Some queries need to pass parameters. The current inputmethodQuery() implementation does not allow parameters to be passed. Changing this would require new or modified virtual functions, which is not possible until Qt 6. Therefore, a completely new mechanism is needed. Change-Id: Ic64fd90198ade70aa0fa6fa5ad3867dfa7ed763c Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fix logging with dynamic GL on WindowsLaszlo Agocs2014-02-141-4/+3
| | | | | | | | | | category() returns a const QLoggingCategory so our code does not compile anymore. Do it differently. Fix also the Windows error string formatting a bit. Change-Id: Ie0b6b02947d94b7ccf4a4a57da487dfa8a15709d Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Extend the documentation for orientation in QScreenFabian Bumberger2014-02-141-3/+8
| | | | | | | | I find the current description of primaryOrientation and orientation a bit confusing. Change-Id: I25d77cff2c27c481607903bc1aeb54eacf616718 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* Migrate a recent QT_OPENGL_ES ifdef to dynamic GLLaszlo Agocs2014-02-141-2/+4
| | | | | Change-Id: I51581cf174d11db86030da8fe288d640ef81cb58 Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
* OpenGL: Fix QOpenGLTexture for cubemaps with mutable storageSean Harmer2014-02-142-9/+71
| | | | | | | | | | | | The code was not creating all of the storage necessary for cubemaps as well as attempting to bind to the cubemap face targets which is invalid when using mutable storage - typically on OS X where EXT_direct_state_access is not available and immutable storage is only available at all if using an OpenGL 4.1 context. Change-Id: I4cf84f1b88c90e8359366392b3ccda65669ebfa7 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: Pasi Keränen <pasi.keranen@digia.com>
* Dynamic GL switch on WindowsLaszlo Agocs2014-02-1421-509/+5303
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The patch introduces a new build configuration on Windows which can be requested by passing -opengl dynamic to configure. Platforms other than Windows (including WinRT) are not affected. The existing Angle and desktop configurations are not affected. These continue to function as before and Angle remains the default. In the future, when all modules have added support for the dynamic path, as described below, the default configuration could be changed to be the dynamic one. This would allow providing a single set of binaries in the official builds instead of the current two. When requesting dynamic GL, Angle is built but QT_OPENGL_ES[_2] are never defined. Instead, the code path that has traditionally been desktop GL only becomes the dynamic path that has to do runtime checks. Qt modules and applications are not linked to opengl32.dll or libegl/glesv2.dll in this case. Instead, QtGui exports all necessary egl/egl/gl functions which will, under the hood, forward all requests to a dynamically loaded EGL/WGL/GL implementation. Porting guide (better said, changes needed to prepare your code to work with dynamic GL builds when the fallback to Angle is utilized): 1. In !QT_OPENGL_ES[_2] code branches use QOpenGLFunctions::isES() to differentiate between desktop and ES where needed. Keep in mind that it is the desktop GL header (plus qopenglext.h) that is included, not the GLES one. QtGui's proxy will handle some differences, for example calling glClearDepth will route to glClearDepthf when needed. The built-in eglGetProcAddress is able to retrieve pointers for standard GLES2 functions too so code resolving OpenGL 2 functions will function in any case. 2. QT_CONFIG will contain "opengl" and "dynamicgl" in dynamic builds, but never "angle" or "opengles2". 3. The preprocessor define QT_OPENGL_DYNAMIC is also available in dynamic builds. The usage of this is strongly discouraged and should not be needed anywhere except for QtGui and the platform plugin. 4. Code in need of the library handle can use QOpenGLFunctions::platformGLHandle(). The decision on which library to load is currently based on a simple test that creates a dummy window/context and tries to resolve an OpenGL 2 function. If this fails, it goes for Angle. This seems to work well on Win7 PCs for example that do not have proper graphics drivers providing OpenGL installed but are D3D9 capable using the default drivers. Setting QT_OPENGL to desktop or angle skips the test and forces usage of the given GL. There are also two new application attributes that could be used for the same purpose. If Angle is requested but the libraries are not present, desktop is tried. If desktop is requested, or if angle is requested but nothing works, the EGL/WGL functions will still be callable but will return 0. This conveniently means that eglInitialize() and such will report a failure. Debug messages can be enabled by setting QT_OPENGLPROXY_DEBUG. This will tell which implementation is chosen. The textures example application is ported to OpenGL 2, the GL 1 code path is removed. [ChangeLog][QtGui] Qt builds on Windows can now be configured for dynamic loading of the OpenGL implementation. This can be requested by passing -opengl dynamic to configure. In this mode no modules will link to opengl32.dll or Angle's libegl/libglesv2. Instead, QtGui will dynamically choose between desktop and Angle during the first GL/EGL/WGL call. This allows deploying applications with a single set of Qt libraries with the ability of transparently falling back to Angle in case the opengl32.dll is not suitable, due to missing graphics drivers for example. Task-number: QTBUG-36483 Change-Id: I716fdebbf60b355b7d9ef57d1e069eef366b4ab9 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
* Don't ignore horizontal alignment for items with baseline alignmentsJan Arve Saether2014-02-141-43/+43
| | | | | | | | | Horizontal alignment were ignored when an item had baseline alignment specified. Change-Id: I2df526dc830952cdc26e1973d4787e9457c94edd Reviewed-by: J-P Nurmi <jpnurmi@digia.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* QLocalePrivate: move the stringToXxx to QLocaleDataThiago Macieira2014-02-141-11/+11
| | | | | | | | | Along with some more helper functions. There are two more functions used in QIntValidator Change-Id: I469ef40426cbb73ab515454bd5ecb12d944f5c0a Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Close widgets properly from session management.Friedemann Kleint2014-02-142-17/+25
| | | | | | | | | | | | | | | | Introduce new virtual QGuiApplicationPrivate::tryCloseAllWindows() which allows overriding the behavior in QApplication to properly close the widgets first. Without this, QGuiApplication closes the widget windows leaving a stale window handle behind in the associated QWidget which then causes the application not to terminate since QApplication::shouldQuit() stills finds the affected widgets to be visible. Task-number: QTBUG-35986 Change-Id: I19ac4b5a19250ee68d09e461c03dbace458c98e4 Reviewed-by: David Faure <david.faure@kdab.com>
* QOpenGLWidget and new-style compositing on eglfsLaszlo Agocs2014-02-132-0/+8
| | | | | | | | | Integrate with QOpenGLTextureBlitter, QOpenGLWidget and friends. Change-Id: Ic2867b713a21a3d2820d546174fc9164b3dd220c Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com> Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
* Expose QPlatformWindow::invalidateSurface as a virtual function.Gunnar Sletta2014-02-132-0/+16
| | | | | | | | | This can be quite useful on some embedded systems to free up graphics memory when windows are not used. QEglFSWindow already implements the function. Change-Id: I79b08efbd3c67d7be34df6a0e12dd184a92d48c5 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* Update HarfBuzz-NG path on MacKonstantin Ritt2014-02-131-0/+4
| | | | | | | | | | 84be1bd4d3ed8d2d9e65301649bc841ea4197fe2 has changed the stored data type from QFontEngine to QFontEngine::FaceData. Update the implementation and revert changing the y_scale sign on non-Mac (aka fix-up 2d576f79f748ca4c9bb54634f0fd44fa207a2248). Change-Id: I4180257bc8f610fb014fd2a2ad6f8fdceece2f13 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Merge "Merge remote-tracking branch 'origin/stable' into dev" into ↵Konstantin Ritt2014-02-134-90/+73
|\ | | | | | | refs/staging/dev
| * Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2014-02-124-90/+73
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/gui/image/qimage.cpp src/gui/text/qtextengine.cpp src/plugins/platforms/linuxfb/qlinuxfbscreen.cpp src/printsupport/kernel/qprintengine_win.cpp Change-Id: I09ce991a57f39bc7b1ad6978d0e0d858df0cd444
| | * Doc: Fix issues with QOpenGLTexture enumerationsTopi Reinio2014-02-111-4/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | Use correct parameters for \enum commands, and add documentation for QOpenGLTexture::Filter enumeration. Task-number: QTBUG-35576 Change-Id: If7099da0b2b570c28e683126f0ba3a885d80f741 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
| | * Minor optimization for QTextEngine::shapeText()Konstantin Ritt2014-02-111-43/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remember the engine index for each sub-item and avoid moveGlyphData() where possible (ie. when there are no glyph indexes to care about). Also don't memmove data we didn't ever initialize. Change-Id: Ib8e5fd937a10e4e3c8c0e18961a2e2c1a4167924 Reviewed-by: Ahmed Saidi <justroftest@gmail.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
| | * Fix log_clusters calculation in HarfBuzz-NG code pathKonstantin Ritt2014-02-111-37/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The old code wasn't good enough to catch all the glyph (de)composition cases, thus leading to an assertion in QTextLayout's addNextCluster() helper. The new code catches all the corner cases and introduces somewhat better performance to the HB-NG shaper backend. Change-Id: I5b6c673395a4a039dc55b200abbf74b0ba5d0829 Reviewed-by: Ahmed Saidi <justroftest@gmail.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
| | * Fix drawing vertical gradients in RGBA8888 formatsAllan Sandfeld Jensen2014-02-101-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The RGBA8888 formats was incorrectly using the qt_gradient_quint32 which is argb specific. This caused vertical gradients but only vertical gradients to be drawn incorrectly. This changes the RGBA8888 formats formats to use the generic gradient method and renames qt_gradient_quint32 to qt_gradient_argb32 to indicate its limitation. Change-Id: Ia1cd48ca7f4f78b64f31d6263e81cd8ac3b0954e Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
| | * Fix assert when converting RGBx8888 to ARGB32_PMAllan Sandfeld Jensen2014-02-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | RGBx8888 to ARGB32_PM is incorrectly using the RGBA8888 to ARGB32_PM which asserts the input format is RGBA8888. Since the routine also performs an unnecessy premul, we should be using a the generic rgba2argb routine. Change-Id: I7b67328f804f5f2a9664a35c04836679e8c8b8e5 Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* | | Optimize qt_memfill32 a littleThiago Macieira2014-02-121-12/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Benchmarking shows it took up to 3.5% of Qt Creator's initialization cost. Optimize by modifying only one variable per loop: instead of updating n and dst128, we only update one variable at a time. Removing the Duff's Device also improves the code, since the compiler won't try to update dst128 four times per loop, only once. The moving of the epilogue close to the prologue was just to make the code a little cleaner. Change-Id: I5b74e27d520ca821f380aef0533c244805f003b7 Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* | | Move setWindowIcon() up to QGuiApplication.David Faure2014-02-124-0/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [ChangeLog][QtGui][QWindow]QWindow::icon() now defaults to the application icon, which can be set with QGuiApplication::setWindowIcon(). Change-Id: Id1974e5cda81775e515c14b294f67fb99351c6c9 Reviewed-by: Albert Astals Cid <albert.astals@canonical.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
* | | Restore support for -title command line argument on X11, add -qwindowtitle.David Faure2014-02-123-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -title disappeared between Qt4 and Qt5, due to all the refactorings around QPA. Making the caption of the mainwindow configurable allows custom setups for specific users or use cases. [ChangeLog][QtGui][QGuiApplication] Restore support for -title command line argument on X11, add -qwindowtitle on all platforms. Change-Id: I73e6bf21248f3419178eba583b257172a175e74e Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Albert Astals Cid <albert.astals@canonical.com> Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
* | | Enabling QQuickWidget and QOpenGLWidgetPaul Olav Tvete2014-02-126-7/+298
|/ / | | | | | | | | | | | | | | | | Enable child widgets (without a native window) that render to an FBO and are composed with the raster backingstore by the platform plugin. A preliminary version of QOpenGLWidget is included as private API. Change-Id: I8f984a4d7db285069ce3d6564707942c823d890d Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
* | Merge "Merge remote-tracking branch 'origin/stable' into dev" into ↵Frederik Gladhorn2014-02-1116-59/+126
|\ \ | | | | | | | | | refs/staging/dev
| * | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2014-02-0716-59/+126
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/gui/kernel/qguiapplication.cpp src/plugins/platforms/android/androidjnimain.cpp src/plugins/platforms/android/qandroidplatformintegration.cpp src/plugins/platforms/android/qandroidplatformintegration.h src/plugins/platforms/android/qandroidplatformopenglcontext.cpp src/plugins/platforms/cocoa/qcocoawindow.h src/plugins/platforms/cocoa/qcocoawindow.mm src/plugins/platforms/xcb/qxcbconnection_xi2.cpp src/sql/doc/src/sql-driver.qdoc src/widgets/widgets/qtoolbararealayout.cpp Change-Id: Ifd7e58760c3cb6bd8a7d1dd32ef83b7ec190d41e
| | * Do not query max samples on glesLaszlo Agocs2014-02-051-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Querying GL_MAX_SAMPLES is not supported in GLES2. Avoiding the call also makes us play nice with Mesa in debug mode since it gets rid of the warnings about the failing glGetIntegerv call. Change-Id: I05e501cc11af41a54fefc34ab919c5191e4f3f0a Reviewed-by: Jørgen Lind <jorgen.lind@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
| | * NPOT texture support in QOpenGLTextureCacheCedric Chedaleux2014-02-041-1/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | Enable non power of two texture support for non compatible NPOT GPU. If the context does not handle NPOTTexture feature, the image to bind is scaled to POT size. It works with OpenGL ES and Desktop version. It is actually almost the same code as the one in QGLContextPrivate::bindTexture. Change-Id: I6f0f511165c9e171a14f4ba6ba0b7a902e590cf6 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
| | * Doc: Fix broken linksSze Howe Koh2014-02-045-8/+5
| | | | | | | | | | | | | | | Change-Id: Ic275dfbf0b332fc34ea0fac1c31c4935ad961527 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
| | * Fix access after delete with Harfbuzz NG code path.Allan Sandfeld Jensen2014-02-031-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | Remove reference to released font-engine so we don't risk returning it later. Change-Id: I741a741567a079818c7f414ac1f9c0b5a9677322 Task-number: QTBUG-36522 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
| | * CMake: don't require GL when build with -no-openglPeter Kümmel2014-02-011-1/+1
| | | | | | | | | | | | | | | | | | Task-number: QTBUG-36509 Change-Id: I03451527ab91754d87ff2a43985952c7c7641826 Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
| | * Load all available pixmaps in an icon file.Bastiaan Veelo2014-01-301-26/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes the problem that only the first icon would be read from an .ico file with muliple icons of various sizes in it. Task-number: QTBUG-28267 Change-Id: I50daa89769054234e9ffc5246f59b46975948871 Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com> Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
| | * Do not overwrite basePixmap of QIconLoader PixmapEntryAlbert Astals Cid2014-01-221-3/+4
| | | | | | | | | | | | | | | | | | Change-Id: I4799af1d9151ba4b0952369e9620d2fab2b002d9 Reviewed-by: David Sansome <me@davidsansome.com> Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
| | * Merge remote-tracking branch 'origin/release' into stableFrederik Gladhorn2014-01-224-18/+51
| | |\ | | | | | | | | | | | | Change-Id: I885821d93a41b0caad627bfc16aa8eed21d2f5b9
| | | * Fix crash due to a stale pointer dereferencingKonstantin Ritt2014-01-164-18/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The HB face caching mechanism introduced in 227e9a40cfeb7e00658cd3 wasn't complete due that fact that HB-NG doesn't parse the entire font table at once but rather references a table on-demand. This incompleteness caused a crash in case the engine doesn't get cached or when it removed from the cache and then re-used. Task-number: QTBUG-36099 Change-Id: I7816836107655ce7cf6eb9683bb5dc7f892f9cd1 Reviewed-by: Lisandro Damián Nicanor Pérez Meyer <perezmeyer@gmail.com> Reviewed-by: Michael Krasnyk <michael.krasnyk@gmail.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
| | * | Initialize QGuiApplicationPrivate::lastCursorPosition to infFrederik Gladhorn2014-01-211-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This makes sure that we don't think a mouse area at position 0, 0 contains the mouse on startup. Task-number: QTBUG-36191 Change-Id: I68a8aed195531f506372ef465734661069b60f57 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* | | | Export optimized premultiply and unpremultiply methodsAllan Sandfeld Jensen2014-02-1011-90/+161
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch optimizes the unpremultiply method further by using a lookup table to avoid any divisions at all. The opportunity is taken to export both premultiply and unpremultiply since they are commonly used methods relevant to the exported QRgb type that can be both premultiplied and unpremultipled ARGB. [ChangeLog][QtGui][QColor] Exported highly optimized methods for premultiply and unpremultiply of QRgb values. Change-Id: I658bcf57b0bc73c34c1765b64617d43b63ae820b Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* | | | QOpenGLTextureBlitterJorgen Lind2014-02-103-2/+484
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | private api, but useful for 2d gui code that suddenly finds itself needing to get a set of textures onto some fbo I didn't want to include ARB_copy_image since it looks like its from texture/renderbuffer -> texture/renderbuffer while this class implies texture -> write fbo. We could wrap ARB_copy_image in QOpenGLTexture or some other class or we can add it later. I have not added any QOpenGLTexture functions since this class opperates on the GLuint identifier. We can add overloads later. Change-Id: I3e565b33466c1c183a249a33c3e82c6786debd55 Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
* | | | QFontEngineBox: Fix assertion for code points beyond BMPKonstantin Ritt2014-02-091-6/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ...due to a typo introduced in d8225fab8fb8b21fb5d and stricter checks introduced in 4e319ca4c47a99295c1. This uses recently added QStringIterator to decrease the code duplication. Change-Id: Ib1c2519db1c4d65f3ac14e6f9ae3fa272860b1dd Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | | | QWindow: reduce a bit of code duplication.David Faure2014-02-082-7/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Makes it easier to add code in the future too. No-op change. Change-Id: I228c36813ccf8ee95ed4b6cbbc20af3178d1b84a Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* | | | Support --option in addition to -option for all builtin Qt commandline options.David Faure2014-02-081-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In addition to being more common and consistent with QCommandLineParser, this will make it possible to add the documentation for these options in the QCommandLineParser-generated help output. [ChangeLog][General] Builtin command-line options such as -reverse, -session, -style etc. now all support double dash, e.g. --reverse, --session, --style... Change-Id: Ia2e22c854ccc6a9d7b863b1234317005bc822191 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* | | | QOpenGLTextureHelper: explain why we use GetProcAddress on Windows / DesktopGLGiuseppe D'Angelo2014-02-071-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the future, we might want to refactor this code to inconditionally use the common Desktop / ES2 subset (like the rest of Qt does), and then resolve only the functions actually available at runtime. For now, state why we're doing that on Windows. Change-Id: Ic21035bcd88ddc1d9274fd90a146c2824d783b25 Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* | | | QOpenGLTexture: fix support for 1D texturesGiuseppe D'Angelo2014-02-072-12/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | OpenGL ES 2 doesn't support 1D textures. So introduce a proper feature flag and warn if we try to allocate one there. Change-Id: I73cf58c1f257d2472564f45bff222231e39aca52 Reviewed-by: James Turner <james.turner@kdab.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* | | | QOpenGLTextureHelper: fix 3D texture support on ES2Giuseppe D'Angelo2014-02-071-14/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The code first tried to check for the GL_OES_texture_3D extension, and if present it resolved the pointers to the gl*Tex*3DOES functions. But then it overwrote those pointers by attempting to resolve the Desktop GL gl*Tex*3D functions, thus making them unusable. So, if the extension is found, don't overwrite the pointers. If the extension is NOT found, keep the general behavior of still trying to resolve those functions. (That is going to fail, but refactoring the general behavior belongs to a separate commit.) Change-Id: Idaba122cf9500f136e3f79284d3c82284257036d Reviewed-by: James Turner <james.turner@kdab.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* | | | QOpenGLTextureHelper: add a clarifying commentGiuseppe D'Angelo2014-02-071-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | Change-Id: Ia27fd6616b2259b3fbe71ea8737b270c323a1256 Reviewed-by: James Turner <james.turner@kdab.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* | | | Optimize stringToCMap() usageKonstantin Ritt2014-02-0710-136/+246
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | CMAP guarantees there is 1:1 mapping between the Unicode code points array and the glyph indexes array, which means the QString length always greater than or equal to a sufficient glyph indexes array length. Simply add some asserts and improve the memory consumption and the performance where possible. Change-Id: I0bc8cdba5f86c1c0ba9e79c8d5f96cbe56ec463e Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | | QPA: Introduce QPlatformWindow::normalGeometry().Friedemann Kleint2014-02-072-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QWidgetWindow stores the normal geometry obtained from the widget when transiting to other states. This does not work reliably on Windows, where this geometry is already that of the new state. Instead, introduce QPlatformWindow::normalGeometry(), add implementation for Windows and use that in QWidgetWindow. Task-number: QTBUG-21371 Change-Id: I3819ebaf55b4e7d2f7eef1affe6c20712ba45d7c Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | | | Get rid of SpecialData::addFormatIndicesKonstantin Ritt2014-02-063-54/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | and rename SpecialData:: resolvedFormatIndices to resolvedFormats. Instead, resolvedFormats now stores QTextCharFormat shared copies. Change-Id: I4a22cb3f5679b980ef52d47e4e1935663dd257ea Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | | Decrease code duplicationKonstantin Ritt2014-02-063-6/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Check engine's supported scripts in a single place and remove unused script parameter from fontEngine(). Change-Id: Ic153803bef519320c370b058e77eac1a4d92afd0 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | | Clean-up some leftoversKonstantin Ritt2014-02-062-6/+3
| | | | | | | | | | | | | | | | | | | | Change-Id: Ia7fb57831af55cf8e0403dbdef2e73f9957fccf7 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | | Fix japanese text rendering with Harfbuzz-NGKonstantin Ritt2014-02-061-2/+12
|/ / / | | | | | | | | | | | | | | | | | | | | | In rendering, treat (Hiragana|Katakana|Han)+ sequence like Han. Task-number: QTBUG-36066 Change-Id: I3b5d2833e73431b07fa0df859b5d716357374cf4 Reviewed-by: Lars Knoll <lars.knoll@digia.com>