Create and Delete wrappers are not necessary, because they can be
easily simulated with Construct and Destruct. This change removes
redundant function wrappers and a bit of over-optimized code. Gain is
quite big:
Before:
text data bss dec hex filename
5366008 47460 14904 5428372 52d494 libQt5Core.so.5.5.0
505578 7060 2124 514762 7daca libQt5DBus.so.5.5.0
5591079 134656 6728 5732463 57786f libQt5Gui.so.5.5.0
1398785 31676 2576 1433037 15ddcd libQt5Network.so.5.5.0
6642431 220952 2536 6865919 68c3ff libQt5Widgets.so.5.5.0
After:
text data bss dec hex filename
5342559 47460 14904 5404923 5278fb libQt5Core.so.5.5.0
496025 7068 2124 505217 7b581 libQt5DBus.so.5.5.0
5579291 134272 6728 5720291 5748e3 libQt5Gui.so.5.5.0
1389461 31676 2576 1423713 15b961 libQt5Network.so.5.5.0
6637139 220952 2536 6860627 68af53 libQt5Widgets.so.5.5.0
Cost of the change, is moved to CPU while calling QMetaType create()
and destroy(), these two functions became a bit slower. The cost should
not be visible, because they call operator new anyway.
Change-Id: I34fd410343377d9c29925675d7da8172bfda9ce6
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
There was still a TODO left in there and the data was never filled.
In addition to filling the data, some pointer checks for addr and port
were added.
Task-number: QTBUG-42244
Change-Id: I8e358b5544edcdb4077a52f433e4bc17d92014ce
Reviewed-by: Andrew Knight <andrew.knight@theqtcompany.com>
This is required so we can take a QVariant and detect that it contains a
Q_GADGET and then use method like QMetaType::metaObject and QMetaProperty::write
with the QVariant::data
Change-Id: I3603692e4e84426e10bf59949e3def3ea4947bec
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Since HarfBuzz-old's HB_Face doesn't support ref-counting,
it is impossible to keep the same behavior as for NG's ref-counted hb_face
when we're going to reparent the data of unknown type in QFontEngineFT.
We should either not release the object returned by harfbuzzFace(),
or introduce ref-counting for HB-old's HB_Face. Stop referencing HB-NG's
objects on access for now and thus avoid a need to release them manually.
Task-number: QTBUG-42674
Change-Id: Ia21e7ba9c17185796b0dd98c2c27d02566f2a701
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
To avoid duplicating code in ANGLE, we can resize the framebuffer in QPA.
This potentially allows us to synchronize rendering to avoid displaying
a frame which is rendered for the new geometry but is displayed with the
old geometry.
Change-Id: I5f3a0634628d9ea4ca73349a02e646eb043bd757
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
This crash is visible on Android L. This patch removes the static_cast which caused the
crash and it also fixed the list view item problem. I could not create separated patches
because they depend too much on each other.
Task-number: QTBUG-42673
Task-number: QTBUG-41814
Change-Id: I5d3e9c2b73df8f0e87e815b785b1c64d65a3ffaf
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
When font embedding is explicitly disabled, fall back to painter paths
as we would if the font prohibits embedding. Note that this flag was
never respected on any platform in any version of Qt, as far as I've
been able to tell, because the handling of it in the X11 print
engine was removed shortly after it was introduced in 2005.
[ChangeLog][Printing] Disabling font embedding is now possible using
the QPrinter::setFontEmbedding() function.
Task-number: QTBUG-41943
Change-Id: Ice5e893f9893c5243310ae7892bec7497dd55c4a
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Removed the teletype (code) formatting used in the requisite table:
include, qmake (qtvariable) and import statement (for QML types).
This makes the table look more uniform as it doesn't mix font
styles anymore.
Also, remove the closing </b> tag that caused incorrect html to
be generated.
Change-Id: I180a90c22d4b0066aade8ce38d13343076285ff0
Reviewed-by: Martin Smith <martin.smith@digia.com>
This makes the 'big-data' feature introduced and made mandatory with
commit 5395180 opt-in trough CONFIG += resources_big.
Since the feature has been introduced several setups have been
found where the feature cannot be used, or not be used out-of-the-box.
Using the traditional default behavior lowers the risk of further
breakages.
Change-Id: Ifd04204adadeec539e962d6a9a6955f63781bd36
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
configure script has been silently accepting whatever flags that begin
with "-feature-" even if the feature name does not exist at all.
Since the script validates many other flags, this behavior can make
users believe flags they supply is valid when it isn't.
Besides, this option is currently not protected against typo in any way.
This commit verifies those flags against content of
"qtbase/src/corelib/global/qfeatures.txt" and fails if supplied
flag is not a valid feature name.
Change-Id: Ib19ec66dd5558fb5491e8e080ce07d4807d94c1f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Fix a comment and move another out of a ifdef.
Change-Id: Ib1bc2efba34bd37aa8525621e430d7f6094238ae
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Multisample textures may be supported without multisample texture
storage (e.g. from GL 3.2 to 4.2). And, immutable storage may be present,
but not supporting multisample textures (GL 4.3 - 4.4).
Thus, we must properly check if we can allocate immutable multisample storage,
falling back to mutable multisample storage if we're lacking the feature.
Task-number: QTBUG-42643
Change-Id: I1f3d5a9b4296626e40b69a06710331e49c2d1a33
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
OpenGL ES may be way more pedantic than OpenGL desktop, in that it
supports precise combinations of internal format, pixel format and
pixel type. Fix the switches inside the code to reflect this.
Task-number: QTBUG-41822
Change-Id: Ic0ed025f48a5903f334d56ce8a224dff44821c5c
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
The right function to call is allocateStorage(), not allocate().
Change-Id: Ia26817dbec710d49e511cab2ae3ca5c1fda20722
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
OpenGL 4.3 and OpenGL ES 3.0 have support for these formats
out of the box.
See http://en.wikipedia.org/wiki/Ericsson_Texture_Compression
Change-Id: I661f05b9872f3aa128e39cec64df094a79736555
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
This passes the EGLConfig created in the platform screen to the
underlying context, and certain GPUs are blacklisted to be prevented
from creating a configuration which does not render properly with Qt
Quick.
Task-number: QTBUG-42260
Change-Id: I7e1cdc33c2f5662538723c6930fad5f13b151d6f
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
The following patches have been changed:
0001-Fix-compilation-for-MSVC-2008-and-std-tuple.patch
Removed because it is no longer possible to build ANGLE with MSVC2008
0002-Fix-compilation-of-ANGLE-with-mingw-tdm64-gcc-4.8.1.patch
Removed because the minimum version of MinGW moved to 4.8.2
0005-Fix-build-when-SSE2-is-not-available.patch
Removed because it was fixed upstream
0006-Fix-compilation-of-libGLESv2-with-older-MinGW-w64-he.patch
Removed because older versions of MinGW are not supported
0007-Fix-ANGLE-build-with-Microsoft-Visual-Studio-14-CTP.patch
Removed because it was fixed upstream
Task-number: QTBUG-41903
Change-Id: I976d30802f7f6fee725cf9a9f1325d5e82609835
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
Upstream changed how WARP is meant to interact with EGL, and so the
enum names changed.
Change-Id: I10d4bcac71b75a1223ea8af4d3fcf584f5685a02
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Fix the style trap that leads people into thinking that's an
else-if, while it's a plain if.
Change-Id: I62963f0d6270eadcbd8aede7bac60f83968cb0d4
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
In Qt3D we need to be able to send a QSurface * through a QVariant which would
allow us to be as generic as possible.
Change-Id: I2ca2760f9b985c8dc1db822048fa41e13774d52c
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
For a default Qt build this change is a NOP, ftlcdfil.c is
ifdefed by FT_CONFIG_OPTION_SUBPIXEL_RENDERING, which we don't
define.
But for users who changed ftoption.h, or are using 3rdparty/freetype/devel/ftoption.h
instead of 3rdparty/freetype/include/freetype/config/ftoption.h they can now
enable Subpixel rendering without getting a build error.
Change-Id: I547e8a20514fcb97e4e56cb0100e9c2ed525f483
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
We're not ready.
[ChangeLog][EDITORIAL] Remove all mentions of QVersionNumber.
Change-Id: I03ad95992982eb3177f982c1eeddb6a6bc29336c
Reviewed-by: Keith Gardner <kreios4004@gmail.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
This fixes a regression introduced by
04d3a89e20 as it left out the custom build
step for the source code file generated for PCH.
Task-number: QTBUG-42596
Change-Id: I53d5a36b842dcffbde2657910e6a96dca0e99c7b
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
If the menu is closed from the keyboard gesture, and
the focus object doesn't change, the menu will still
be in a visible state, even if the keyboard is hidden.
This patch will ensure that this can not be the case
by listening for keyboardWillHideNotification. Since
we have no guarantee for when the destructor runs, we
apply a pessimistic approach and ensure we stop listen
when the menu gets closed.
Task-number: QTBUG-42523
Change-Id: If734ea32d1823b978c9c1c67ebcc5b6c3c5c338c
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Since the picker menu uses IM to set an alternative
input view, we also need to specify that we IM is enabled.
Task-number: QTBUG-42523
Change-Id: Ia559fbc0ca7e6a1a4499d5eb179baa2d915ecb17
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Current approach of reloading input views assumes that
the first responder is not a QIOSTextResponder, but
a QUIView. This is not always the case, e.g if someone
calls update after setting IM enabled on current focus
object to false. In that case we'll try to close the
keyboard by reloading input views on a quitextresponder which
can fail if the text responder has an external input view
attached.
This patch will instead hide the keyboard by resigning first
responder when it is a QIOSTextResponder. If it is not
a QIOSTextResponder it means that the keyboard is already
closed, or a third-party UIVIew that supports key input is first
responder. In either case we then leave it as-is.
Task-number: QTBUG-42523
Change-Id: I4dab648af9029941a8d5d3b00011fbd169be5482
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Mandatory as per the standard iterator requirements, was causing
compilation errors in the STL algorithms.
Task-number: QTBUG-41628
Change-Id: Iee12a3b822383f63c07e270244fd0e145a486b95
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Because change a093204f07
qeglfshooks_stub.cpp don't compile anymore on any other *nix
platform than linux as those functions have been set linux
specific only.
Change-Id: I339672b1bf2745511076030cc1fe13dc7f2356ff
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
This reverts 1dd9a0af4f. It was
a band-aid for a change in the unicode itemizing algorithm
which caused the script of a script item to become unreliable.
This change has since been reverted, so the band-aid is no longer
needed, and it also causes problems for WebKit on Windows when
it ends up preferring Arial Unicode MS as the font for Uchen
script, even though the font does not support this script.
The autotest from the reverted commit is kept in place and still
passes.
[ChangeLog][Text] Fixed regression when rendering Uchen text in
WebKit on Windows.
Change-Id: I488c84703bb55a050d90092c6bf9e5c70a9e31c2
Task-number: QTBUG-41372
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
Apple will from February 1, 2015, require all applications uploaded to
the App Store to be built for both 32-bit (armv7/s) and 64-bit (arm64).
https://developer.apple.com/news/?id=10202014a
We enable fat Qt binaries by passing both -arch armv7 and -arch arm64
to clang, which takes care of lipoing together the two slices for each
object file. This unfortunately means twice the build time and twice
the binary size for our libraries.
Since precompiled headers are architecture specific, and the -Xarch
option can't be used with -include-pch, we need to disable precompiled
headers globally. This can be improved in the future by switching to
pretokenized headers (http://clang.llvm.org/docs/PTHInternals.html).
Since we're enabling 64-bit ARM builds, we're also switching the
simulator builds from i386 to fat i386 and x86_64 builds, so that
we are able to test 64-bit builds using the simulator, but we're
keeping i386 as the architecture Qt is aware of when it's building
for simulator, as we need the CPU features to match the lowest
common denominator.
Change-Id: I277e60bddae549d24ca3c6301d842405180aded6
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Building all architectures of a multi-arch build during Qt development
is in most cases not needed, so we expose a way to limit the archs we
build by passing ARCHS="subset of archs" to make, similar to how you
can pass ARCHS to xcodebuild. If the subset doesn't match any of the
valid architectures for the target, it will fall back to the default
architectures, so it's safe to pass eg. ARCHS="armv7 i386" to make,
even if building for both simulator and device. The variable may also
be exported to the environment for more persistent limits on which
architectures to build.
Change-Id: I47b10bc9d743f0301efff4181d6881ae140d557f
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
We need to tell Xcode which architectures it should set up pre-link
dependencies for, as well as run the rename script in the root object
file directory. We pass it the current architectures so that we only
rename main() for simulator or device, not both.
Change-Id: I095d7c8a22ff0cb2ce872c9a86c93a070c1fcc65
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Only the data for the first file could be reached with the mimetype
application/x-qt-windows-mime;value="FileContents"
To get the data for the other files, setting the lindex field of
the FORMATETC struct is necessary. Provide support for that by
appending ;index=N to the mimetype string.
The Windows API provides no generic way to find out how many of these
are available (the app has to find out by looking into the FILEGROUPDESCRIPTORW
structure, for this particular use case), so these additional mimetypes
are not listed in QMimeData::formats(). However this patch extends
the documentation to mention the feature.
[ChangeLog][Platform Specific Changes][Windows][QMimeData] Add support
for handling dropping of multiple mail attachments, adding ;index=N to
the mimetype string application/x-qt-windows-mime;value="FileContents"
Task-number: QTBUG-17373
Change-Id: I031e477d2357b4e5135d2dcd3e3cf991025715a5
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>