Merge remote-tracking branch 'origin/5.11' into 5.12
Change-Id: I66c7f18a2abd13601da0947919436f7da3549ae9
This commit is contained in:
commit
295cd87c6d
@ -53,7 +53,7 @@
|
||||
#include <QtConcurrentRun>
|
||||
#include <QTime>
|
||||
|
||||
static float quadVert[] = {
|
||||
static float quadVert[] = { // Y up, front = CW
|
||||
-1, -1, 0,
|
||||
-1, 1, 0,
|
||||
1, -1, 0,
|
||||
|
@ -59,7 +59,7 @@
|
||||
// Vulkan Y is negated in clip space and the near/far plane is at 0/1 instead
|
||||
// of -1/1. These will be corrected for by an extra transformation when
|
||||
// calculating the modelview-projection matrix.
|
||||
static float vertexData[] = {
|
||||
static float vertexData[] = { // Y up, front = CW
|
||||
// x, y, z, u, v
|
||||
-1, -1, 0, 0, 1,
|
||||
-1, 1, 0, 0, 0,
|
||||
|
@ -56,7 +56,7 @@
|
||||
// Vulkan Y is negated in clip space and the near/far plane is at 0/1 instead
|
||||
// of -1/1. These will be corrected for by an extra transformation when
|
||||
// calculating the modelview-projection matrix.
|
||||
static float vertexData[] = {
|
||||
static float vertexData[] = { // Y up, front = CCW
|
||||
0.0f, 0.5f, 1.0f, 0.0f, 0.0f,
|
||||
-0.5f, -0.5f, 0.0f, 1.0f, 0.0f,
|
||||
0.5f, -0.5f, 0.0f, 0.0f, 1.0f
|
||||
@ -337,7 +337,7 @@ void TriangleRenderer::initResources()
|
||||
rs.sType = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO;
|
||||
rs.polygonMode = VK_POLYGON_MODE_FILL;
|
||||
rs.cullMode = VK_CULL_MODE_NONE; // we want the back face as well
|
||||
rs.frontFace = VK_FRONT_FACE_CLOCKWISE;
|
||||
rs.frontFace = VK_FRONT_FACE_COUNTER_CLOCKWISE;
|
||||
rs.lineWidth = 1.0f;
|
||||
pipelineInfo.pRasterizationState = &rs;
|
||||
|
||||
|
@ -232,7 +232,7 @@ void MainWindow::highlight(const QModelIndex &index)
|
||||
return;
|
||||
QModelIndex sourceIndex = proxy->mapToSource(index);
|
||||
treeView->selectionModel()->select(sourceIndex, QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Rows);
|
||||
treeView->scrollTo(index);
|
||||
treeView->scrollTo(sourceIndex);
|
||||
}
|
||||
|
||||
//! [6]
|
||||
|
22
src/3rdparty/pcre2/LICENCE-SLJIT
vendored
Normal file
22
src/3rdparty/pcre2/LICENCE-SLJIT
vendored
Normal file
@ -0,0 +1,22 @@
|
||||
Copyright 2013-2013 Tilera Corporation(jiwang@tilera.com). All rights reserved.
|
||||
Copyright Zoltan Herczeg (hzmester@freemail.hu). All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification, are
|
||||
permitted provided that the following conditions are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright notice, this list of
|
||||
conditions and the following disclaimer.
|
||||
|
||||
2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||
of conditions and the following disclaimer in the documentation and/or other materials
|
||||
provided with the distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) AND CONTRIBUTORS ``AS IS'' AND ANY
|
||||
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
|
||||
SHALL THE COPYRIGHT HOLDER(S) OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
|
||||
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
19
src/3rdparty/pcre2/qt_attribution.json
vendored
19
src/3rdparty/pcre2/qt_attribution.json
vendored
@ -1,3 +1,4 @@
|
||||
[
|
||||
{
|
||||
"Id": "pcre2",
|
||||
"Name": "PCRE2",
|
||||
@ -15,4 +16,22 @@
|
||||
Copyright (c) 2009-2018 Zoltan Herczeg
|
||||
Copyright (c) 2007-2012 Google Inc.
|
||||
Copyright (c) 2013-2013 Tilera Corporation (jiwang@tilera.com)"
|
||||
},
|
||||
{
|
||||
"Id": "pcre2-sljit",
|
||||
"Name": "PCRE2 - Stack-less Just-In-Time Compiler",
|
||||
"QDocModule": "qtcore",
|
||||
"QtUsage": "Optionally used in Qt Core (QRegularExpression). Configure with -system-pcre or -no-pcre to avoid.",
|
||||
|
||||
"Path": "src/sljit",
|
||||
"Description": "The PCRE library is a set of functions that implement regular expression pattern matching using the same syntax and semantics as Perl 5.",
|
||||
"Homepage": "http://www.pcre.org/",
|
||||
"Version": "10.31",
|
||||
"DownloadLocation": "https://ftp.pcre.org/pub/pcre/pcre2-10.31.tar.bz2",
|
||||
"License": "BSD 2-clause \"Simplified\" License",
|
||||
"LicenseId": "BSD-2-Clause",
|
||||
"LicenseFile": "LICENCE-SLJIT",
|
||||
"Copyright": "Copyright (c) Zoltan Herczeg
|
||||
Copyright 2013-2013 Tilera Corporation(jiwang@tilera.com)"
|
||||
}
|
||||
]
|
1
src/3rdparty/pixman/qt_attribution.json
vendored
1
src/3rdparty/pixman/qt_attribution.json
vendored
@ -6,6 +6,7 @@
|
||||
|
||||
"Description": "pixman is a library that provides low-level pixel manipulation features such as image compositing and trapezoid rasterization.",
|
||||
"Homepage": "http://www.pixman.org/",
|
||||
"Version": "0.17.12",
|
||||
"License": "MIT License",
|
||||
"LicenseFile": "LICENSE",
|
||||
"LicenseId": "MIT",
|
||||
|
@ -1,6 +1,6 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Copyright (C) 2018 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the documentation of the Qt Toolkit.
|
||||
@ -49,6 +49,17 @@
|
||||
****************************************************************************/
|
||||
|
||||
//! [0]
|
||||
qreal myEasingFunction(qreal progress);
|
||||
QEasingCurve easing(QEasingCurve::InOutQuad);
|
||||
|
||||
for (qreal t = 0.0; t < 1.0; t+=0.1)
|
||||
qWarning() << "Effective progress" << t << " is
|
||||
<< easing.valueForProgress(t);
|
||||
//! [0]
|
||||
|
||||
//! [1]
|
||||
QPropertyAnimation animation;
|
||||
animation.setStartValue(0);
|
||||
animation.setEndValue(1000);
|
||||
animation.setDuration(1000);
|
||||
animation.setEasingCurve(QEasingCurve::InOutQuad);
|
||||
//! [1]
|
||||
|
@ -291,7 +291,7 @@ void Widget::argFunction()
|
||||
//! [97]
|
||||
|
||||
//! [98]
|
||||
str = "%1%2%3";
|
||||
str = "%1%3%2";
|
||||
str.arg("Hello", QString::number(20), QString::number(50)); // returns "Hello5020"
|
||||
//! [98]
|
||||
|
||||
|
@ -72,24 +72,15 @@
|
||||
curve is a linear curve. This is the default behaviour.
|
||||
|
||||
For example,
|
||||
\code
|
||||
QEasingCurve easing(QEasingCurve::InOutQuad);
|
||||
|
||||
for(qreal t = 0.0; t < 1.0; t+=0.1)
|
||||
qWarning() << "Effective progress" << t << " is
|
||||
<< easing.valueForProgress(t);
|
||||
\endcode
|
||||
\snippet code/src_corelib_tools_qeasingcurve.cpp 0
|
||||
|
||||
will print the effective progress of the interpolation between 0 and 1.
|
||||
|
||||
When using a QPropertyAnimation, the associated easing curve will be used to control the
|
||||
progress of the interpolation between startValue and endValue:
|
||||
\code
|
||||
QPropertyAnimation animation;
|
||||
animation.setStartValue(0);
|
||||
animation.setEndValue(1000);
|
||||
animation.setDuration(1000);
|
||||
animation.setEasingCurve(QEasingCurve::InOutQuad);
|
||||
\endcode
|
||||
|
||||
\snippet code/src_corelib_tools_qeasingcurve.cpp 1
|
||||
|
||||
The ability to set an amplitude, overshoot, or period depends on
|
||||
the QEasingCurve type. Amplitude access is available to curves
|
||||
|
@ -51,6 +51,7 @@
|
||||
|
||||
\snippet code/doc_src_qtdbus.cpp 0
|
||||
|
||||
\if !defined(qtforpython)
|
||||
If you're using qmake to build your application, you can add this
|
||||
line to your .pro file to make it link against the Qt D-Bus
|
||||
libraries:
|
||||
@ -60,6 +61,7 @@
|
||||
\note The source code for this module is located in the \c{src/qdbus}
|
||||
directory. When installing Qt from source, this module is built when Qt's
|
||||
tools are built.
|
||||
\endif
|
||||
|
||||
See the \l {Qt D-Bus}{D-Bus} page for detailed information on
|
||||
how to use this module.
|
||||
|
@ -46,11 +46,12 @@
|
||||
|
||||
\snippet code/doc_src_qtgui.pro 0
|
||||
|
||||
\if !defined(qtforpython)
|
||||
If you use \l qmake to build your projects, \l{Qt GUI} is included by
|
||||
default. To disable Qt GUI, add the following line to your \c .pro file:
|
||||
|
||||
\snippet code/doc_src_qtgui.pro 1
|
||||
|
||||
\endif
|
||||
*/
|
||||
|
||||
/*!
|
||||
@ -75,10 +76,12 @@
|
||||
|
||||
\snippet code/doc_src_qtgui.pro 0
|
||||
|
||||
\if !defined(qtforpython)
|
||||
If you use \l qmake to build your projects, Qt GUI is included by
|
||||
default. To disable Qt GUI, add the following line to your \c .pro file:
|
||||
|
||||
\snippet code/doc_src_qtgui.pro 1
|
||||
\endif
|
||||
|
||||
\section1 Application Windows
|
||||
|
||||
|
@ -5689,6 +5689,46 @@ static inline int qRgbAvg(QRgb rgb)
|
||||
return (qRed(rgb) * 5 + qGreen(rgb) * 6 + qBlue(rgb) * 5) / 16;
|
||||
}
|
||||
|
||||
static inline QRgb rgbBlend(QRgb d, QRgb s, uint rgbAlpha)
|
||||
{
|
||||
#if defined(__SSE2__)
|
||||
__m128i vd = _mm_cvtsi32_si128(d);
|
||||
__m128i vs = _mm_cvtsi32_si128(s);
|
||||
__m128i va = _mm_cvtsi32_si128(rgbAlpha);
|
||||
const __m128i vz = _mm_setzero_si128();
|
||||
vd = _mm_unpacklo_epi8(vd, vz);
|
||||
vs = _mm_unpacklo_epi8(vs, vz);
|
||||
va = _mm_unpacklo_epi8(va, vz);
|
||||
__m128i vb = _mm_xor_si128(_mm_set1_epi16(255), va);
|
||||
vs = _mm_mullo_epi16(vs, va);
|
||||
vd = _mm_mullo_epi16(vd, vb);
|
||||
vd = _mm_add_epi16(vd, vs);
|
||||
vd = _mm_add_epi16(vd, _mm_srli_epi16(vd, 8));
|
||||
vd = _mm_add_epi16(vd, _mm_set1_epi16(0x80));
|
||||
vd = _mm_srli_epi16(vd, 8);
|
||||
vd = _mm_packus_epi16(vd, vd);
|
||||
return _mm_cvtsi128_si32(vd);
|
||||
#else
|
||||
const int dr = qRed(d);
|
||||
const int dg = qGreen(d);
|
||||
const int db = qBlue(d);
|
||||
|
||||
const int sr = qRed(s);
|
||||
const int sg = qGreen(s);
|
||||
const int sb = qBlue(s);
|
||||
|
||||
const int mr = qRed(rgbAlpha);
|
||||
const int mg = qGreen(rgbAlpha);
|
||||
const int mb = qBlue(rgbAlpha);
|
||||
|
||||
const int nr = qt_div_255(sr * mr + dr * (255 - mr));
|
||||
const int ng = qt_div_255(sg * mg + dg * (255 - mg));
|
||||
const int nb = qt_div_255(sb * mb + db * (255 - mb));
|
||||
|
||||
return 0xff000000 | (nr << 16) | (ng << 8) | nb;
|
||||
#endif
|
||||
}
|
||||
|
||||
static inline void alphargbblend_generic(uint coverage, QRgba64 *dest, int x, const QRgba64 &srcLinear, const QRgba64 &src, const QColorProfile *colorProfile)
|
||||
{
|
||||
if (coverage == 0xff000000) {
|
||||
@ -5711,20 +5751,20 @@ static inline void alphargbblend_generic(uint coverage, QRgba64 *dest, int x, co
|
||||
}
|
||||
}
|
||||
|
||||
static inline void alphargbblend_argb32(quint32 *dst, uint coverage, QRgba64 srcLinear, quint32 src, const QColorProfile *colorProfile)
|
||||
static inline void alphargbblend_argb32(quint32 *dst, uint coverage, const QRgba64 &srcLinear, quint32 src, const QColorProfile *colorProfile)
|
||||
{
|
||||
if (coverage == 0xff000000) {
|
||||
// nothing
|
||||
} else if (coverage == 0xffffffff) {
|
||||
*dst = src;
|
||||
} else {
|
||||
if (*dst >= 0xff000000) {
|
||||
rgbBlendPixel(dst, coverage, srcLinear, colorProfile);
|
||||
} else {
|
||||
// Give up and do a naive gray alphablend. Needed to deal with ARGB32 and invalid ARGB32_premultiplied, see QTBUG-60571
|
||||
const int a = qRgbAvg(coverage);
|
||||
*dst = INTERPOLATE_PIXEL_255(src, a, *dst, 255 - a);
|
||||
}
|
||||
} else if (*dst < 0xff000000) {
|
||||
// Give up and do a naive gray alphablend. Needed to deal with ARGB32 and invalid ARGB32_premultiplied, see QTBUG-60571
|
||||
const int a = qRgbAvg(coverage);
|
||||
*dst = INTERPOLATE_PIXEL_255(src, a, *dst, 255 - a);
|
||||
} else if (!colorProfile) {
|
||||
*dst = rgbBlend(*dst, src, coverage);
|
||||
} else {
|
||||
rgbBlendPixel(dst, coverage, srcLinear, colorProfile);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2694,15 +2694,11 @@ QImage QVulkanWindow::grab()
|
||||
system differences between OpenGL and Vulkan.
|
||||
|
||||
By pre-multiplying the projection matrix with this matrix, applications can
|
||||
continue to assume OpenGL-style Y coordinates in clip space (i.e. Y pointing
|
||||
upwards), and can set minDepth and maxDepth to 0 and 1, respectively,
|
||||
without any further corrections to the vertex Z positions, while using the
|
||||
projection matrices retrieved from the QMatrix4x4 functions, such as
|
||||
QMatrix4x4::perspective(), as-is.
|
||||
|
||||
\note With vertex data following the default OpenGL rules (that is, the
|
||||
front face being CCW), the correct winding order in the rasterization state
|
||||
after applying this matrix is clockwise (\c{VK_FRONT_FACE_CLOCKWISE}).
|
||||
continue to assume that Y is pointing upwards, and can set minDepth and
|
||||
maxDepth in the viewport to 0 and 1, respectively, without having to do any
|
||||
further corrections to the vertex Z positions. Geometry from OpenGL
|
||||
applications can then be used as-is, assuming a rasterization state matching
|
||||
the OpenGL culling and front face settings.
|
||||
*/
|
||||
QMatrix4x4 QVulkanWindow::clipCorrectionMatrix()
|
||||
{
|
||||
|
@ -40,10 +40,13 @@
|
||||
\code
|
||||
#include <QtNetwork>
|
||||
\endcode
|
||||
|
||||
\if !defined(qtforpython)
|
||||
To link against the Qt Network module, add this line to the project file:
|
||||
\code
|
||||
QT += network
|
||||
\endcode
|
||||
\endif
|
||||
|
||||
\section1 Articles and Guides
|
||||
|
||||
|
@ -51,10 +51,12 @@
|
||||
|
||||
\snippet code/doc_src_qtopengl.cpp 0
|
||||
|
||||
\if !defined(qtforpython)
|
||||
To link against the module, add this line to your \l qmake \c
|
||||
.pro file:
|
||||
|
||||
\snippet code/doc_src_qtopengl.pro 1
|
||||
\endif
|
||||
|
||||
The Qt OpenGL module is implemented as a platform-independent Qt/C++
|
||||
wrapper around the platform-dependent GLX (version 1.3 or later),
|
||||
|
@ -57,10 +57,12 @@
|
||||
|
||||
\snippet code/doc_src_qtopengl.cpp 0
|
||||
|
||||
\if !defined(qtforpython)
|
||||
To link against the module, add this line to your \l qmake \c
|
||||
.pro file:
|
||||
|
||||
\snippet code/doc_src_qtopengl.pro 1
|
||||
\endif
|
||||
|
||||
The Qt OpenGL module is implemented as a platform-independent Qt/C++
|
||||
wrapper around the platform-dependent GLX (version 1.3 or later),
|
||||
|
@ -57,11 +57,25 @@ QWindow *windowForAccessible(const QAccessibleInterface *accessible)
|
||||
{
|
||||
QWindow *window = accessible->window();
|
||||
if (!window) {
|
||||
QAccessibleInterface *acc = accessible->parent();
|
||||
while (acc && acc->isValid() && !window) {
|
||||
window = acc->window();
|
||||
QAccessibleInterface *par = acc->parent();
|
||||
const QAccessibleInterface *acc = accessible;
|
||||
const QAccessibleInterface *par = accessible->parent();
|
||||
while (par && par->isValid() && !window) {
|
||||
window = par->window();
|
||||
acc = par;
|
||||
par = par->parent();
|
||||
}
|
||||
if (!window) {
|
||||
// Workaround for WebEngineView not knowing its parent.
|
||||
const auto appWindows = QGuiApplication::topLevelWindows();
|
||||
for (QWindow *w : appWindows) {
|
||||
if (QAccessibleInterface *root = w->accessibleRoot()) {
|
||||
int count = root->childCount();
|
||||
for (int i = 0; i < count; ++i) {
|
||||
if (root->child(i) == acc)
|
||||
return w;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return window;
|
||||
|
@ -38,8 +38,10 @@
|
||||
|
||||
\snippet code/doc_src_qtprintsupport.cpp 1
|
||||
|
||||
\if !defined(qtforpython)
|
||||
To link against the module, add this line to your \l qmake \c
|
||||
.pro file:
|
||||
|
||||
\snippet code/doc_src_qtprintsupport.pro 0
|
||||
\endif
|
||||
*/
|
||||
|
@ -87,10 +87,12 @@
|
||||
|
||||
\snippet code/doc_src_qtsql.cpp 0
|
||||
|
||||
\if !defined(qtforpython)
|
||||
To link against the module, add this line to your \l qmake \c
|
||||
.pro file:
|
||||
|
||||
\snippet code/doc_src_qtsql.pro 1
|
||||
\endif
|
||||
|
||||
See the \l{SQL Programming} guide for information about using this
|
||||
module in your applications.
|
||||
|
@ -41,9 +41,11 @@
|
||||
|
||||
\snippet code/doc_src_qttest.cpp 0
|
||||
|
||||
\if !define(qtforpython)
|
||||
To link against Qt Test, add this line to the project file:
|
||||
|
||||
\snippet code/doc_src_qttest.pro 1
|
||||
\endif
|
||||
|
||||
\section1 Articles and Guides
|
||||
|
||||
|
@ -42,10 +42,12 @@
|
||||
|
||||
\snippet code/doc_src_qttest.cpp 0
|
||||
|
||||
\if !defined(qtforpython)
|
||||
To link against the module, add this line to your \l qmake \c
|
||||
.pro file:
|
||||
|
||||
\snippet code/doc_src_qttest.pro 1
|
||||
\endif
|
||||
|
||||
See \l{Qt Test Overview} for an introduction on how to use
|
||||
Qt's unit testing features with your applications.
|
||||
|
@ -109,6 +109,7 @@
|
||||
|
||||
For more examples, refer to the \l{Qt Test Tutorial}.
|
||||
|
||||
\if !defined(qtforpython)
|
||||
\section1 Building a Test
|
||||
|
||||
If you are using \c qmake as your build tool, just add the
|
||||
@ -132,6 +133,7 @@
|
||||
|
||||
See \l {Chapter 1: Writing a Unit Test}{Writing a Unit Test} for a step by
|
||||
step explanation.
|
||||
\endif
|
||||
|
||||
\section1 Qt Test Command Line Arguments
|
||||
|
||||
|
@ -38,9 +38,11 @@
|
||||
|
||||
\snippet code/doc_src_qtwidgets.cpp 1
|
||||
|
||||
\if !defined(qtforpython)
|
||||
To link against the module, add this line to your \l qmake \c
|
||||
.pro file:
|
||||
|
||||
\snippet code/doc_src_qtwidgets.pro 0
|
||||
\endif
|
||||
*/
|
||||
|
||||
|
@ -38,10 +38,12 @@
|
||||
|
||||
\snippet code/doc_src_qtxml.cpp 0
|
||||
|
||||
\if !defined(qtforpython)
|
||||
To link against the module, add this line to your \l qmake \c
|
||||
.pro file:
|
||||
|
||||
\snippet code/doc_src_qtxml.pro 1
|
||||
\endif
|
||||
|
||||
The \l{Qt XML C++ Classes} page gives an overview over the available classes
|
||||
in this module.
|
||||
|
@ -41,8 +41,10 @@
|
||||
|
||||
\snippet code/doc_src_qtxml.cpp 0
|
||||
|
||||
\if !defined(qtforpython)
|
||||
To link against the module, add this line to your \l qmake \c
|
||||
.pro file:
|
||||
|
||||
\snippet code/doc_src_qtxml.pro 1
|
||||
\endif
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user