Prevent errors when building Qt statically with RTTI enabled:
warning C4743: 'const std::ios_base::failure::`vftable'' has different size in 'qtbase\src\3rdparty\angle\src\libGLESv2\Context.cpp' and '(...)': 16 and 12 bytes
Task-number: QTBUG-36951
Change-Id: Ie0501b986be8610c8293cd5c1aa42b502d7c27a1
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Native text rendering is now functional on core profile too,
as long as the driver allows compiling GL2-style shaders.
Task-number: QTBUG-36993
Change-Id: I83f3cafae714427dda807921ee79e5a64e55cc64
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
It is not going to work with core profile otherwise.
This fixes one of the several problems that make native
text rendering in Quick impossible with OpenGL core profile.
The GL2 paint engine path is not changed, that continues to use
client side pointers.
Task-number: QTBUG-36993
Change-Id: Icfbd6efc894a79a3a84568fb792c1cb6692469cb
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Add comments to explain the magic placeholders for default
permissions and features, and move the INTERNET and
WRITE_EXTERNAL_STORAGE permissions from the manifest so that
we use the same mechanism for all default permissions.
Change-Id: Ia62dd4314c1c10eb201b5203772ffe88b1ce7a04
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
This provides a way for androiddeployqt to pregenerate the
entry list cache for the assets file engine, greatly improving
performance the first time a directory is read. If the file
is not present, the cache will operate as before.
Some numbers from testing on Samsung Galaxy 2, doing
QDir::entryList() on a directory inside the assets folder:
10 files
--------
Before:
280 ms for first read,
5 ms for subsequent reads
After:
2 ms for reading pregenerated cache
5 ms for first read
5 ms for subsequent reads
2000 files
----------
Before:
1000 ms for first read,
150 ms for subsequent reads
After:
5 ms for reading pregenerated cache
150 ms for first read
150 ms for subsequent reads
4000 files
----------
Before:
3000 ms for first read
300 ms for subsequent reads
After:
8 ms for reading pregenerated cache
300 ms for first read
300 ms for subsequent reads
[ChangeLog][Android] Speed up first time directory listing
in assets by using pregenerated entry list.
Task-number: QTBUG-33704
Change-Id: I3973a1d823b8b38e88a2cc7843326cbe885f8bc2
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
This is more consistent with e.g. qt.conf, where section names also
start with an upper case character.
Change-Id: I9ddaf72baeb9334d081807412512242d5d46cbbf
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Improve the sharing of the devMode between the QPrintEngine and the
print dialogs, in particular start to change the dialogs from directly
accessing the QPrintEngine internals.
Change-Id: Ieb4649c19b936433c85207297a0b6e59356c3880
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
The use of the driver name and port name in the DEVNAMES structure
is no longer required within the Windows print engine and dialogs.
The CreateDC docs clearly state any driver value passed in for a
printer is ignored. The PRINTDLGEX docs also state only the name
is actually used. The use of the port name is not required as the
DeviceCapabilities api works fine with just the printer name and
the FILE: port can be manually handled.
Change-Id: I7765d73d4a31b1a3c5dab55ee4cfd3580bcf9ad7
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Bump the ANGLE version and remove the extra info not required by
universal binaries.
Change-Id: I59983d28e1936fb42aa2def4ca785219b0c38996
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
As a safety precaution, ANGLE writes the commit hash, optimization level,
and adapter ID to its binary format. However, this hurts portability
between systems by making shader pre-compilation/caching artificially
system-specific.
The shader compiler doesn't take the target adapter into account, and the
optimization level information discarded by ANGLE anyway. So, allow ANGLE
to bypass these checks on systems where precompilation is required (i.e.
WinRT). The default mechanism still applies unless
ANGLE_ENABLE_UNIVERSAL_BINARY is passed as a define.
Change-Id: Iec6d833fd7010ed163978557238f00e7ac6ae416
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
This brings Qt's copy of ANGLE up to ANGLE master, which contains a number
of bugfixes as well as restructuring for the upcoming ES 3.0 support. This
version brings considerable stability improvements to the D3D11 renderer.
The static translator project files have been merged to align with the
ANGLE source tree.
Two new patches have been applied to fix errors in upstream ANGLE:
- 0011-ANGLE-Fix-compilation-error-on-MinGW-caused-by-trace.patch
The event trace header in ANGLE's third_party directory has an unused
template which causes a compilation error on MinGW. Disable this part
of the code.
- 0012-ANGLE-fix-semantic-index-lookup.patch
The sorted semantic index table was returning a direct mapping to the
new indices, instead of the old indices. This caused a mismatch in the
GL type lookup for the translated attribute.
All other patches have been rebased, removed if no longer needed,
and renamed to clear up the application order:
- 0001-Fix-compilation-for-MSVC-2008-and-std-tuple.patch
No changes.
- 0001-Fix-compilation-with-MinGW-mingw-tdm64-gcc-4.8.1.patch
No changes. Renamed to 0002.
- 0001-Fix-compilation-with-MinGW-gcc-64-bit.patch
No changes. Renamed to 0003.
- 0001-Make-it-possible-to-link-ANGLE-statically-for-single.patch
Modified patch to adapt to new DLL loading structure. Renamed to 0004.
- 0005-Fix-build-when-SSE2-is-not-available.patch
No changes.
- 0011-Fix-compilation-of-libGLESv2-with-older-MinGW-w64-he.patch
No changes. Renamed to 0006.
- 0006-Make-DX9-DX11-mutually-exclusive.patch
Made the patch less invasive by allowing D3D9 code to run unless
explicitly disabled (e.g. on WinRT, where it doesn't compile). This
makes the patch smaller and allows Desktop Windows to compile both
D3D9 and D3D11 codepaths. Renamed to 0007.
- 0015-ANGLE-Dynamically-load-D3D-compiler-from-a-list-of-k.patch
No changes. Renamed to 0008.
- 0012-ANGLE-Support-WinRT.patch
Made D3D11_level9 initialization only possible if D3D9 is disabled.
This makes sure Desktop PCs use the old D3D9 codepath instead of
the less-tested D3D11_level9 codepath. Renamed to 0009.
- 0013-Enable-D3D11-for-feature-level-9-cards.patch
Conveniently smaller patch due to buffer implementation improvements
upstream. Renamed to 0010.
- 0014-ANGLE-D3D11-Alwayls-execute-QueryInterface.patch
This was a fix for patch 0009, so was integrated there. Removed.
- 0016-ANGLE-D3D11-Fix-build-on-desktop-Windows.patch
This was a fix for patch 0009, so it was integrated there. Removed.
- 0001-ANGLE-Fix-compilation-with-MSVC2013.patch
Fixed upstream. Removed.
- 0007-ANGLE-Fix-typedefs-for-Win64.patch
Fixed upstream. Removed.
- 0004-Fix-black-screen-after-minimizing-OpenGL-window-with.patch
The issue has been fixed in Qt itself. Removed.
- 0008-DX11-Prevent-assert-when-view-is-minimized-or-.patch
The cause of the problem was the same as patch 0004, but for the
D3D11 codepath. Removed.
Change-Id: Id69484ab3a3e013050741c462fb1b06dfb0fd112
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
If a QDesktopWidget is created before any other window, its underlying
QPlatformWindow will be granted the root window role. Windows created
afterwards will become children of the root window, preventing the app from
being rendered, since the Qt::Desktop windows never get posted and therefore
flushed.
This patch prevents a Qt::Desktop window (related to QDesktopWidget) from
becoming the root window. This does not affect QDesktopWidget functionality.
Change-Id: I02c9946a3979b2227afbd2e5d485ba80efa1b997
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
We can't resolve a "basic entry point" such as glGetPointerv on Windows'
Desktop GL. Apparently NVIDIA drivers let us do that, but ATI ones don't.
Change-Id: I8e8a54b5dcd3fe87f2bd677d1d0cf08b3e8c11c4
Reviewed-by: Thomas Steen
Reviewed-by: James Turner <james.turner@kdab.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
This reverts commit a4ff400e25.
The patch caused a regression for bold fonts which is currently
blocking the alpha of Qt 5.3, so lets revert it and try
resubmitting a fixed version later to avoid delaying any release.
Task-number: QTBUG-36929
Change-Id: I8d474b09b2270eb2f861853e60605429be08e2d9
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
There is no need to even try to run the tests if the network test
server is not present.
Add a validation in initTestCase() since all test functions depend
on the network test server.
Change-Id: I8eca376a718ab5b6e1cc2c57f2e045dd0b58f52b
Reviewed-by: Richard J. Moore <rich@kde.org>
When running a amd64 VS shell we must not call the x86_amd64
cross-compiler, because it won't be able to start.
Instead we're calling the native amd64 compiler now.
Change-Id: I6968cde3b24c1938b6e0d82f513e49724455f3cc
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
This patch ignores:
- Docs for obsolete types themselves
- Comparisons between new and obsolete types
Change-Id: Id9b1e628255113e7c44520abe0f8a4e0db4a283d
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
These are non-ambigue NLF characters that should only imply the
sctructure of the document.
For details, see http://www.unicode.org/reports/tr13/ .
The issue could be reproduced with use of multi-line QML Text element.
Change-Id: Ibb4d5cd26bc0ac6b79a4cb549e6a3cd7633bd071
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
QApplication::closeAllWindows() is documented to close
all top-level windows. If the widget has WA_DontShowOnScreen
set then that is a strong indication that this widget
is, in fact, not a top-level window.
[ChangeLog][QtWidgets][Mac] QWidgets embedded in
QGraphicsProxyWidget are no longer sent close events
when the app is closed.
Task-number: QTBUG-33716
Change-Id: I0925ed67a2d2088ca9f950a4a43bc2729b88a86c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Also drop mentioning of 'F', which is (though supported) not mentioned
in the linked section.
Change-Id: I9bf763f25b8b0309c338adbf3d63d94678ecee5e
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Worst case this can cause the various OpenGL
initialization functions to fail due to the lack
of a valid GL context.
Task-number: QTBUG-35342
Task-number: QTBUG-31451
Change-Id: I08256ad51acb5370c8c6d44b556572eadd6a9c1d
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
The QGLWidget destructor sequence is such that the
GL context will be deleted before the window is hidden.
This would leave QCocoaWindow with a stale m_glContext
pointer.
Clear QCocoaWindow's context pointer on context
deletion.
Task-number: QTBUG-36820
Change-Id: I710e3813f9ce90ddd37ad7b406693f0c58a1436d
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Move to one qt_mac_toCGImage function that has simple
semantics and properly retains a copy of the QImage
for the lifetime of the CGImage.
Remove the old qt_mac_toCGImage function which had
two problems:
1) It would not retain the QImage data (this was probably
ok for its original use case: creating short-lived
CGImages for the paint engine)
2) It had acquired a somewhat odd **datacopy out
parameter for the cases where you _do_ want to retain
the image data.
This makes the exported image conversion function
from QtMacExtras work: The CGImages it creates will
no longer reference free'd memory once the QImage
is deleted.
Change-Id: I583040d16aefb17fc3d801d6b047a0b2a76c7f74
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Change-Id: Ia78fa0d70c85f06f48c3bbab47370e15008abe03
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Remove the forced bail out when isES() returns true. This is not
necessary.
Change-Id: I5ee21fe1e66163e2391bd11b647827b3c0a020c1
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Windows differs from the other platforms in that transient
parent relationship is not just a window property but also
implies ownership; windows will destroy their transient
children in DestroyWindow(), which interferes with Qt.
Explicitly clear the relationship in QWindowsWindow::destroy()
to prevent this.
Task-number: QTBUG-36666
Task-number: QTBUG-35499
Change-Id: I5e72524ef57422831f60484993f6c8d7c80c8601
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Instead of QSharedPointer<T>(new T), use QSharedPointer<T>::create(), since the latter
co-locates the refcount and the T instance in a single memory allocation, unlike the
first form, which uses separate memory allocations.
Change-Id: I5095ac43448aad9a7e3ec07ed4dcdca869bcd9e8
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Two changes broke compilation on armv5, where we're currently
not CI-testing:
634f82f1f1 changed the signature
in a function definition without changing its declaration, while
it was actually intending to add this as a new overload.
bfe0db6fbe added an #error
condition without fixing compilation on armv5. I don't know
if the fix is correct, but at least it compiles.
Task-number: QTBUG-37034
Change-Id: If99142fafb9bd55afc20b17f8b3cce5ee0ffec13
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
The old code creates a default-constructed QByteArrayList, then performed two
list-appends, the first one of which just performs assignment.
Optimize by replacing the default construction and assignment with a copy
constructor call.
Change-Id: I6d5bd14172798c925b05bd3602e6d1d037d90796
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
This reportedly does fix crashes when running a Qt Quick 2 application
over remote X.
Task-number: QTCREATORBUG-11207
Change-Id: I6fa82420f9d12e56e52fa8efd263bf18d868d7d8
Reviewed-by: Ville Nummela <ville.nummela@parker.com>
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Task-number: QTBUG-37027
Change-Id: Id18ee9c44650de9c434a82d3d10cf48e6ba9e78c
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
This prevents a tool button menu from being opened by a replayed
click. This partially reverts
8301c0002280c10970cce1e17f634e74c61f2f5d .
Task-number: QTBUG-36863
Change-Id: I396e3694de8b3d4ca916457c2b2df39798502530
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
If there's no qApp, then QCoreApplication::arguments() returns an empty
list (after printing a warning). That means the callgrind runner can't
get the arguments it needs in order to rerun the benchmark.
The crash happens because it always uses .at(0) to try and get the
executable's path. Even if we get the path from somewhere else, we still
need the arguments.
Change-Id: I5c74af4d96fc5824b2b7fd7a89648d78393016e2
Reviewed-by: Sergio Ahumada <sahumada@blackberry.com>
Needed for QOpenGLShaderProgram to be usable with
GL_OES_get_program_binary and potentially other extensions.
[Changelog][QtGui] The function QOpenGLShaderProgram::create()
has been added. It is can be used to force immediate allocation
of the program's id.
Change-Id: I36b3f45b00e7a439df12c54af7dc06c0ba913587
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
If raster only apps set QT_ANDROID_RASTER_IMAGE_DEPTH to 16 (RGB16), we
should create also RGB16 native surface.
Change-Id: I82692ff34b0e604e627d1d86a437272e3700daf8
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>