qt5base-lts/tests/manual
Laszlo Agocs 30e27328e3 rhi: Unify handling of special cases for scissor and viewport rects
With OpenGL a scissor (or viewport) rectangle is not allowed to have a negative
width or height. Everything else is allowed. This is also the semantic we wish to
keep for QRhiViewport and QRhiScissor.

This raises some problems. For instance, when we do bottom-left - top-left
rectangle conversion, the case of partially out of bounds rects needs to be
taken into account.

Otherwise, Qt Quick ends up in wrong scissoring in certain cases, typically when
the QQuickWindow size is decreased so the content does not fit because that will
then start generating negative x, y scissors for clipping (which is perfectly
valid but the QRhi backends need to be able to deal with it)

Then there is the problem of having to clamp width and height carefully, because
some validation layers for some APIs will reject a viewport or scissor with
partially out of bounds rectangles.

To verify all this, add a new manual test, based on the cubemap one. (cubemap was
chosen because that is an ideal test scene as it fills the viewport completely, and
so it is visually straightforward when a scissor rectangle is moving around over it)

Fixes: QTBUG-78702
Change-Id: I60614836432ea9934fc0dbd0ac7e88931f476542
Reviewed-by: Christian Strømme <christian.stromme@qt.io>
2019-09-26 17:02:05 +02:00
..
bearerex Updated license headers 2016-01-21 18:55:18 +00:00
cocoa QtCore: mark obsolete enumerations as deprecated 2019-05-17 14:08:30 +00:00
corelib/tools Updated license headers 2016-01-21 18:55:18 +00:00
diaglib QChar: add FormFeed (FF) special character 2019-08-12 22:06:39 -07:00
dialogs Merge remote-tracking branch 'origin/5.12' into 5.13 2019-04-06 01:00:08 +02:00
embeddedintoforeignwindow Add cmdline feature to qmake 2019-02-18 07:12:14 +00:00
filetest Add cmdline feature to qmake 2019-02-18 07:12:14 +00:00
foreignwindows Merge remote-tracking branch 'origin/5.12' into 5.13 2019-02-19 01:00:08 +01:00
gestures Fix some warnings in manual tests 2019-03-07 22:06:04 +00:00
highdpi HighDPI: Add “metrics” manual test 2019-08-23 03:40:43 +02:00
inputmethodhints Updated license headers 2016-01-21 18:55:18 +00:00
keypadnavigation Improve the keypadnavigation manual test 2019-08-01 19:03:42 +02:00
lance Remove dead code from Qt 4 times 2019-08-20 22:27:46 +00:00
markdown Add QTextMarkdownWriter, QTextEdit::markdown property etc. 2019-05-01 14:31:27 +00:00
mkspecs Updated license headers 2016-01-21 18:55:18 +00:00
network_remote_stresstest QHostInfo: Make getaddrinfo() mandatory 2017-10-18 09:26:43 +00:00
network_stresstest QHostInfo: Make getaddrinfo() mandatory 2017-10-18 09:26:43 +00:00
qcursor Remove usages of deprecated APIs of corelib 2019-07-05 11:25:46 +02:00
qdesktopservices Add cmdline feature to qmake 2019-02-18 07:12:14 +00:00
qdesktopwidget Updated license headers 2016-01-21 18:55:18 +00:00
qgraphicsitem Updated license headers 2016-01-21 18:55:18 +00:00
qgraphicsitemgroup Fix some warnings in manual tests 2019-03-07 22:06:04 +00:00
qgraphicslayout/flicker Fix the build of the qgraphicslayout manual test 2019-09-06 09:57:57 +02:00
qhttpnetworkconnection Updated license headers 2016-01-21 18:55:18 +00:00
qimagereader Updated license headers 2016-01-21 18:55:18 +00:00
qlayout Replace Q_NULLPTR with nullptr where possible 2017-09-19 11:53:55 +00:00
qlocale tests: Unify license to GPL-EXCEPT 2017-04-03 07:18:46 +00:00
qmetatype Updated license headers 2016-01-21 18:55:18 +00:00
qmimedatabase Add cmdline feature to qmake 2019-02-18 07:12:14 +00:00
qnetconmonitor Add manual test for QNetwork{Connection|Status}Monitor 2019-07-08 12:12:57 +02:00
qnetworkaccessmanager/qget Updated license headers 2016-01-21 18:55:18 +00:00
qnetworkconfiguration Updated license headers 2016-01-21 18:55:18 +00:00
qnetworkconfigurationmanager Updated license headers 2016-01-21 18:55:18 +00:00
qnetworkreply Updated license headers 2016-01-21 18:55:18 +00:00
qopenglcontext port to modularized platformsupport libraries 2016-10-15 18:45:41 +00:00
qopengltextureblitter Make QOpenGLTextureBlitter public 2016-07-29 07:21:10 +00:00
qopenglwidget/openglwidget Merge remote-tracking branch 'origin/5.6' into 5.7 2016-02-18 20:50:35 +01:00
qopenglwindow/multiwindow Merge remote-tracking branch 'origin/5.6' into 5.7 2016-09-21 07:14:40 +02:00
qprintdevice_dump Updated license headers 2016-01-21 18:55:18 +00:00
qscreen Replace Q_NULLPTR with nullptr where possible 2017-09-19 11:53:55 +00:00
qssloptions Updated license headers 2016-01-21 18:55:18 +00:00
qsslsocket Update manual qsslsocket test to use HTTP/2 instead of spdy 2019-01-22 09:45:41 +00:00
qstorageinfo Add cmdline feature to qmake 2019-02-18 07:12:14 +00:00
qsysinfo Fix some warnings in manual tests 2019-03-07 22:06:04 +00:00
qt_poll Updated license headers 2016-01-21 18:55:18 +00:00
qtabbar macOS: Fix padding around tab label with icon 2017-08-18 07:27:52 +00:00
qtabletevent manual tests: Fix build 2019-03-07 22:09:01 +00:00
qtbug-8933 Merge remote-tracking branch 'origin/5.6' into 5.7 2016-05-19 12:55:27 +02:00
qtbug-52641 tests: Unify license to GPL-EXCEPT 2017-04-03 07:18:46 +00:00
qtexteditlist Updated license headers 2016-01-21 18:55:18 +00:00
qtexttableborders QTextDocument: add manual test for table border logic 2019-08-09 07:21:25 +00:00
qtouchevent Updated license headers 2016-01-21 18:55:18 +00:00
qvulkaninstance Basic Vulkan enablers 2017-03-17 16:12:03 +00:00
qwidget_zorder Updated license headers 2016-01-21 18:55:18 +00:00
repaint Updated license headers 2016-01-21 18:55:18 +00:00
rhi rhi: Unify handling of special cases for scissor and viewport rects 2019-09-26 17:02:05 +02:00
shortcuts manual shortcut test: add more shortcut sequences 2019-04-24 18:48:13 +00:00
socketengine Remove usages of deprecated APIs from QtAlgorithms 2019-06-29 21:58:36 +02:00
textrendering Remove dead code from Qt 4 times 2019-08-20 22:27:46 +00:00
touch Manual touch test: Add handling for multiple touch screens 2018-05-02 09:36:19 +00:00
touchGraphicsItem Set the ellipseDiameters back to the original size in QGraphicsView 2018-02-08 21:25:01 +00:00
transientwindow Updated license headers 2016-01-21 18:55:18 +00:00
triangulator Add manual test for the QtGui triangulator 2017-01-24 16:23:20 +00:00
unc Updated license headers 2016-01-21 18:55:18 +00:00
widgetgrab Updated license headers 2016-01-21 18:55:18 +00:00
widgets Don't increase the size of the layout unnecessarily when moving toolbars 2019-03-15 12:24:02 +00:00
windowchildgeometry Fix window(child)geometry manual tests 2018-06-25 13:01:14 +00:00
windowflags windowflags: Make it easier to debug windows without a frame 2018-02-22 09:51:49 +00:00
windowgeometry Fix window(child)geometry manual tests 2018-06-25 13:01:14 +00:00
windowmodality Updated license headers 2016-01-21 18:55:18 +00:00
windowtransparency tests: Unify license to GPL-EXCEPT 2017-04-03 07:18:46 +00:00
xcb_gl_integration Updated license headers 2016-01-21 18:55:18 +00:00
xembed-raster tests: Unify license to GPL-EXCEPT 2017-04-03 07:18:46 +00:00
xembed-widgets tests: Unify license to GPL-EXCEPT 2017-04-03 07:18:46 +00:00
manual.pro QTextDocument: add manual test for table border logic 2019-08-09 07:21:25 +00:00