Commit Graph

32893 Commits

Author SHA1 Message Date
Laszlo Agocs
078f04254e Add support for OpenGL ES 3.2 in QOpenGLExtraFunctions
Follow the usual pattern:

Add a config test and automatic include of GLES3/gl32.h if there
is a GLES 3.2 capable header+lib at build time.

Then, regardless of this being enabled, expose all new 3.2 API
functions in QOpenGLExtraFunctions and resolve them dynamically
at run time.

This way 3.2 functions will be available when deployed to a 3.2
capable system (or OpenGL 3/4.x with the functions in question
available) regardless of what was present in the sysroot at build
time.

Change-Id: Ia52551f3178591e1e56ceac8e45d89c6b13f4927
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2017-06-30 18:12:58 +00:00
Thiago Macieira
bb8a61866e Linux: add a note to the ELF binary what minimum Linux is needed
Change-Id: Ia53158e207a94bf49489fffd14c8d2a1f173ff97
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2017-06-30 17:15:52 +00:00
Thiago Macieira
919b12d969 qglobal.h: fix build in assembler mode
QT_CONFIG and some other macros are unavailable there.

Change-Id: Ia53158e207a94bf49489fffd14c8d306e2dbd9d2
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-06-30 17:15:51 +00:00
Tor Arne Vestbø
92cfa3dfa6 macOS: Remove workaround for crash when closing window from title bar
The platform window is now protected by a QPointer, so we don't need
to juggle the NSWindow retain count.

Task-number: QTBUG-37287
Change-Id: Id55ea311f0793370e248aa58cc8e383b574fbb40
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2017-06-29 12:21:59 +00:00
Tor Arne Vestbø
d95414171f macOS: Remove unneeded Objective-C instance variable declarations
And their corresponding synthesizations. The compiler will take care
of it for us.

Change-Id: Ifa42e0732059008af6f3f65151bf203a1a19079d
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2017-06-29 10:46:04 +00:00
Tor Arne Vestbø
85cbd35178 macOS: Remove workaround for queued input events to stale windows
We now track the platform window with a QPointer, so the event callbacks
can (and do) check the validity of the platform window before passing
them on. The window property of the NSView is also nil at the point of
even delivery, if we need another way to check if the event is still
valid.

Task-number: QTBUG-39211
Change-Id: I6179bdb3af9606cd0abf981c0fe6cacb9a2d98ab
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2017-06-29 10:13:39 +00:00
Tor Arne Vestbø
c888d302bc Fix QAbstractEventDispatcher::installNativeEventFilter documentation
Change-Id: I73c8385d4ef175acad218993be32494eb3a0d6e0
Reviewed-by: Martin Smith <martin.smith@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2017-06-28 17:12:57 +00:00
Liang Qi
80406bd620 Revert "Support more than 62 instances of QWinEventNotifier"
It breaks sth in QLocalSocket which is used in QtRemoteObject.

This reverts commit 5c6210e345.

Task-number: QTBUG-61668
Change-Id: Ib11890923773496e5d998b7709ef93b0a839a759
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2017-06-28 12:28:39 +00:00
Anton Miller
57a77fe775 Android: Allow deploying Qt apps as system apps
The main app shared library and shared dependencies are not automatically
deployed when the apk is placed in /system/app or /system/priv-app. In
such cases, we need to place these libraries in /system/lib and tell
QtLoader to load them from here. It is possible to specify a custom
library path in AndroidManifest.xml.

[ChangeLog][Android][QtLoader] Enabled loading shared libraries from
/system/lib or a custom path specified with the
android.app.system_libs_prefix metadata variable in AndroidManifest.xml.
This allows deploying Qt apps as Android system apps.

Change-Id: I8388e91a53475b06a027467face45c08f096fbf8
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Anton Kudryavtsev <antkudr@mail.ru>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2017-06-28 12:11:46 +00:00
Tor Arne Vestbø
9b54447e45 macOS: Remove workaround for grabbing child NSWindows
The code was introduced in 28c9c2ea50, but child NSWindows are no longer
supported, so we can simplify the code by removing it.

Change-Id: Ic98b8b0e0a84d5f2adba1840bd8318de2be031b6
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2017-06-28 10:37:42 +00:00
Tor Arne Vestbø
b0e4c8f427 Remove requirement to call QWindow::setMask after creating window
Like other QWindow properties we can just store it, and the platform
window should pick it up on creation like other properties.

[ChangeLog][QtGui][QWindow] setMask() no longer requires the window
to be created to have an effect; it can be set at any time.

Change-Id: I55b616363801b770bd61bda5325b443013b99866
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2017-06-28 09:07:28 +00:00
Gatis Paeglis
84cc43413a Clean-up in QXcbScreen::getOutputProperty()
Use the Q_XCB_REPLY() macro and let its unique_ptr<> take care of
free()ing the reply.

Change-Id: I32eb9c56ea0ba5632bf6ab39c77567d10f442995
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2017-06-28 09:06:27 +00:00
Edward Welbourne
634f28fa1f Fix sporadic crash in QXcbScreen::getOutputProperty()
Although [0] claims "This request does never generate any errors", it
seems I sometimes get back a NULL pointer from
xcb_randr_get_output_property_reply(), leading to a segfault (in the
qdatetimeedit auto-test).  So check reply isn't NULL before
dereferencing it.

[0] https://www.systutorials.com/docs/linux/man/3-xcb_randr_get_output_property_reply/

Change-Id: Iadae835bb3017bf9bb40f180b75b0c391384f99b
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2017-06-28 09:06:05 +00:00
Stephen Kelly
3ffcfc357d QSFPM: Avoid following a reset with unnecessary layoutChanged
Follow the pattern used to guard Private::sort() calls elsewhere in the
class.

Because QAbstractItemModel::sort() is not called in the unit test, the
content is not sorted after resetting.

[ChangeLog][QtCore][QSortFilterProxyModel] QSortFilterProxyModel
now does not emit an unnecessary layoutChanged() following a model
reset.

Change-Id: I0a36c7fbb172bdd06ecddb489c5595debbef6cb9
Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
2017-06-28 07:00:20 +00:00
Morten Johan Sørvig
24961cb18c Don’t flicker on startup: render on expose
All QWindow implementations must produce a frame before
returning from the expose event.

Change-Id: I5640809c47e948101879c1623c12230fa0a63c44
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2017-06-27 23:51:15 +00:00
Allan Sandfeld Jensen
6ca65dd97d Move qle_bitfield to qendian_p.h
Makes the qle_bitfield template more generic and moves it to qendian_p.h
It is also hardened to be more reliable.

Change-Id: I53214ec99cceee4f5e8934ae688c99e555a5fb42
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2017-06-27 22:16:56 +00:00
Tor Arne Vestbø
01d5aaa0f6 macOS: Allow maximizing utility windows
They have a native maximize/zoom button in their titlebar, so there's no
reason for us to prevent the same action via the API. The only states
that are prevented are minimized and fullscreen.

Change-Id: I84fa48b31b243fa838c90ecdeee92a2f3448ee14
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2017-06-27 21:56:57 +00:00
Tor Arne Vestbø
b619a9eada macOS: Make QCocoaNSWindow header file slightly more readable
Change-Id: I09ac42af476feb1d561a77f68999a2754a2e252e
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2017-06-27 21:56:57 +00:00
Tor Arne Vestbø
4ac47689fa windowflags: Allow testing of naked QWindows, not just QWidgets
Change-Id: Ia0eddcb385207ada8c3df59d49ff1de27a2aeb71
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2017-06-27 21:56:56 +00:00
Gatis Paeglis
f09f2f240f xcb: remove DISPLAY_FROM_XCB macro
... as it does not add much value and is not widely used.

and cleanup code:

- where we repeatedly (for no good reason) call DISPLAY_FROM_XCB,
instead of storing display as a (member) variable.

- inconsistency where we (in the same function) alternatingly
use DISPLAY_FROM_XCB and variable holding pointer to Display
(when both refer to the same display).

In other places this patch replaces macros with code they would
translate to (or with minor adjustments to keep sensible line length).

Change-Id: Ieb2a3e055892dcf31f132891f83ed4a665e3fa6e
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2017-06-27 18:09:35 +00:00
Jarek Kobus
ac098eef42 uic: Ignore deprecated elements instead of raising an error
[ChangeLog][QtCore][uic] Ignore old images embedded in ui files,
which were imported from Qt 3. uic will now behave consistently
with Qt Designer - both will ignore them.

Change-Id: Ib2dfd0bb28c0532463fdee2d46a8f0979c28c80c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2017-06-27 10:26:15 +00:00
Allan Sandfeld Jensen
88e56d0932 Improve rounding of QRect::toRect
Avoid the dimensions of the rounded QRect being off by more than one
pixel. This ensures the aligned containing rect also contains the
rounded rect.

Task-number: QTBUG-56420
Change-Id: Ib79110e51ab80de2dc83d01ea83fc5fbf3852e75
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2017-06-26 21:35:38 +00:00
Tor Arne Vestbø
67ee72f314 macOS: Merge QCocoaWindow::setWindowShadow into its only caller
Change-Id: I14149231d12658c59e3f9f87f2943ccdfbea4d43
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2017-06-26 13:24:52 +00:00
Richard Moe Gustavsen
bb918db849 QDateTimeEdit: update cursor blinking code to match new API
Update old, if-deffed out, code to match changed method
signatures.

Change-Id: If9751599c9446f8dbd554a41ab97f597258fa1c5
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
2017-06-26 13:23:11 +00:00
Friedemann Kleint
b8fd4e1a48 Add debug operator for QStorageInfo
Change-Id: Ia788a882a11443237ac362631d55b4dcd6d6b44f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2017-06-26 08:00:39 +00:00
Friedemann Kleint
6634c424f8 Restrict QStyleHints::showShortcutsInContextMenus() to context menus
Amends c2c3452ba5.

Task-number: QTBUG-49435
Task-number: QTBUG-61181
Change-Id: I4de9dcb45a86fc2db07185a4a499a511fb1a1567
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
2017-06-26 08:00:23 +00:00
Joerg Bornemann
5c6210e345 Support more than 62 instances of QWinEventNotifier
QWinEventNotifiers were limited to 62 instances, because of
WaitForMultipleObject's limitation to MAXIMUM_WAIT_OBJECTS - 1 handles.

Use the RegisterWaitForSingleObject API which does not have this
restriction and executes waits in threads managed by the system. A
central manual reset event per event dispatcher is signaled in the
RegisterWaitForSingleObject callback and waited for in the event loop.

[ChangeLog][QtCore][QWinEventNotifier] QWinEventNotifier is not
restricted to 62 instances anymore.

Task-number: QTBUG-8819
Change-Id: I2c749951453a4b699cc50dada0d6017440b67a4a
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2017-06-26 05:05:38 +00:00
Sean Harmer
58d3a3eda2 Register avx2 as private feature
Needed for the SIMD options in Qt 3D.

Change-Id: I9a9def83a6aa50b9a45c9526aa4e7415679ec308
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2017-06-25 17:43:45 +00:00
Thiago Macieira
af7267209c QRandomGenerator: Rework the fallback seeding
qdeadlinetimer.cpp and qelapsedtimer_*.cpp are not part of the bootstrap
library. Instead of adding them there, just remove this entropy source
from bootstrapped builds (instead of just qmake).

To compensate, store all the bits instead of trying to combine them into
just one 32-bit word. We've got a few new sources from the stack and
libc, plus two more ELF auxvec values that the Linux kernel supplies
(inspired by OpenBSD's getentropy_linux.c, which is used in Bionic).

Task-number: QTBUG-61492
Change-Id: I1d5a585d4af842f9a66ffffd14c999ae8c44f46c
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2017-06-25 08:01:55 +00:00
Thiago Macieira
a372b56d69 Revert "Add QDeadlineTimer to the bootstrap library"
This reverts commit e147c3d413. There is
one symbol from QDeadlineTimer that isn't in qdeadlinetimer.cpp for
performance reasons. Anyway, QDeadlineTimer is no longer needed, as the
previous commit removed its need.

Change-Id: I9b79e7f052824a475ba8ab16fe8ad10874794b8c
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2017-06-25 08:01:49 +00:00
Mitch Curtis
8dd8acf8bb qt_findAtNxFile(): account for .9 (9-patch image) extensions
Currently a file with a .9.png extension will only have its @2x variant
found if it follows this format:

foo.9@2x.png

Since ".9" should be considered part of the file suffix, it should
ideally be able to look like this and still be picked up:

foo@2x.9.png

This patch makes qt_findAtNxFile() account for .9.* extensions.

This is needed for the image-based style support in Qt Quick Controls
2, which uses 9-patch images.

qmlbench benchmark results using
benchmarks\auto\creation\quick.image\delegates_image.qml with
QT_SCALE_FACTOR=2 show no difference in performance after this patch
is applied.

[ChangeLog][QtGui] High DPI variants of 9-patch images can now be
loaded using the following syntax: "foo@2x.9.png"

Change-Id: I6d1384113bef21b4fe85a104ee6b16869c93b077
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2017-06-24 21:24:53 +00:00
Oliver Wolff
d9206926d8 winrt: Enable network proxy support
[ChangeLog][QtNetwork][QNetworkProxy] Setting of network proxies is now
supported on UWP.

Task-number: QTBUG-45495
Change-Id: I71fed57910197760334f8e7d2aeac36c4e0d4f51
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
2017-06-24 17:18:37 +00:00
Tor Arne Vestbø
f5d178976a macOS: Simplify recreateWindowIfNeeded debug output
Change-Id: I0e12502de544f79636ec1a67b87bc856ddfc6675
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2017-06-24 12:33:46 +00:00
Laszlo Agocs
b55970ec0f Work around qvulkanfunctions.h not getting installed
Change-Id: I975dd975bab8f57091218fca4db7a32ac6008c18
Reviewed-by: Joni Jäntti <joni.jantti@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-06-22 12:04:57 +00:00
Kevin Ottens
7e7cd1c294 Sort the keys before comparing them in the test
The return order of the keys is random, so let's sort both first, then
we can compare the lists. Should get rid of the test flakiness.

Change-Id: I2e89d3cc603da6a4667b3677350baa4d40d59b45
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2017-06-22 11:57:33 +00:00
Frederik Gladhorn
808969527a Move Linux/at-spi debug to categorized logging
Task-number: QTBUG-48593
Change-Id: Icf17137e7953e08db39bfac0282f6e06b1f58686
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
2017-06-22 11:50:37 +00:00
Morten Johan Sørvig
1dcc91b395 Blacklist qFutureAssignmentLeak on OpenSUSE CI
Flaky test, fails on openSUSE_42_1.

Change-Id: Iea5e262578b9960f9facde4fc4e863192058921f
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2017-06-22 11:36:09 +00:00
Morten Johan Sørvig
f657dda888 QtWidgets: Change QTLWExtra::window from QWindow to QWidgetWindow
Revert commit a1d4e4c9: We’re now using QWidgetWindow
API from QWidget code.

Add QWidgetPrivate::windowHandle() which returns
a QWidgetWindow pointer. Use this function to remove
casts where QWidgetWindow API is used.

Change-Id: Ie66a69b5c0461f297996118dc907e1d7b3d78df5
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2017-06-22 11:34:45 +00:00
Morten Johan Sørvig
e3bdad13be Correctly set native widget window visibility
After d7a9e08f, calling QWindow::setVisible(true)
is a no-op if the widget is already visible.

Use QWidgetWindow::setNativeWindowVisibility() instead
to set visibility for the native window directly.

“Upgrading” widgets to be native widgets now works
again.

Change-Id: Id68dd8241f3afe00670c07e30e2b2ade9c150354
Task-number: QTBUG-61006
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2017-06-22 11:34:30 +00:00
J-P Nurmi
3ee6d8d336 Split QTest::qExec()
Split into (internal) QTest::qInit(), qRun(), and qCleanup(), that
allow qtquickcontrols2 to initialize the test framework once, repeat
the tests for all built-in styles (Default, Material, Universal), and
finally cleanup things:

    $ ./tst_qquickbutton text
    ********* Start testing of tst_QQuickButton *********
    Config: Using QtTest library 5.10.0, Qt 5.10.0 (...)
    PASS   : tst_QQuickButton::Default::initTestCase()
    PASS   : tst_QQuickButton::Default::text()
    PASS   : tst_QQuickButton::Default::cleanupTestCase()
    PASS   : tst_QQuickButton::Material::initTestCase()
    PASS   : tst_QQuickButton::Material::text()
    PASS   : tst_QQuickButton::Material::cleanupTestCase()
    PASS   : tst_QQuickButton::Universal::initTestCase()
    PASS   : tst_QQuickButton::Universal::text()
    PASS   : tst_QQuickButton::Universal::cleanupTestCase()
    Totals: 9 passed, 0 failed, 0 skipped, 0 blacklisted, 2215ms
    ********* Finished testing of tst_QQuickButton *********

Notice that QTest::qExec() cannot be called multiple times, because
it would print the headers/footers/results separately for each round.

Change-Id: Ibb24b694491d4e790db32e40837c3a5c6d9d2840
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2017-06-22 11:32:46 +00:00
Liang Qi
7323cd8dc2 testlib: add key sequence function
[ChangeLog][Qt Test] Added keySequence() function.

Task-number: QTBUG-53381
Change-Id: Ib7c3f966fe607f00475ae74aaf070cb988d00141
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
2017-06-22 07:56:18 +00:00
Tor Arne Vestbø
eecf64f61d macOS: Remove support for child NSWindows
The private feature was only used by QToolBar to solve QTBUG-33082, but
the solution doesn't work, and complicates the macOS platform plugin
quite a bit.

A better solution is likely to use Core Animation layers, which is a
direction we're going in anyways. To make it easier to modernize the
macOS platform plugin, including moving to using layers, we remove the
child NSWindows codepaths for now.

Change-Id: I4b19464be3980fd84dd7af8316d4d5e85ba813b1
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
2017-06-21 20:25:31 +00:00
Tor Arne Vestbø
3d8a70c045 macOS: Move QNSWindow implementation into separate file
Change-Id: Ie75419c7ffb7a8fdf78d53e1ea14afee63ef1656
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2017-06-21 20:25:26 +00:00
Samuli Piippo
8af7b5ba5a QStyleHelper: add missing forward declarations
Fixes build with -no-accessibility.

Change-Id: Ia58c11b22f08a51d5978e4a002480d265aa10fbd
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
2017-06-21 07:22:31 +00:00
Allan Sandfeld Jensen
e5e1fac136 Move endian integers to qendian_p.h
The endian integers have more use than just in QJson, and is already
used separately by QtDeclarative. This patch moves q_littleendian out
of qjson_p.h and matches it with a corresponding q_bigendian, and puts
it to use in simplifying endian handling in the ico image handler.

Change-Id: I975bb701a089256db8ced3cb53b4bd62cdfb02dd
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2017-06-21 06:37:24 +00:00
Kevin Ottens
4d70e03002 [Shader Graph Gen.] Introduce QShaderNodesLoader
This class allows to node definitions from a JSON representation. This
will come in handy to ship preset prototypes for use with
QShaderGraphLoader.

Change-Id: I3f3b5d7852e17d484069b4814ee6e5910997c613
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2017-06-20 21:35:51 +00:00
Kevin Ottens
093752faf3 [Shader Graph Gen.] Introduce QShaderGraphLoader
This class allows to load a shader graph from its JSON representation.
To avoid duplicating the shader snippets inside of the JSON which would
be a maintenance nightmare, we instead allow to register a set of node
prototypes by their name and only refer to said names inside the JSON.

Change-Id: I3e7b39e8b3c25f51f331a0a59dda883ac8e2bc57
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2017-06-20 21:35:46 +00:00
Kevin Ottens
ad2faa3c63 [Shader Graph Gen.] Introduce QShaderGenerator
This class is meant to generate code from shader graphs

Change-Id: I1cf22352387f3f9f55e7589aa77a296689836911
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2017-06-20 21:35:40 +00:00
Kevin Ottens
4212451884 [Shader Graph Gen.] Introduce QShaderGraph::Statement
This is our "byte code" representing a flattened graph. It will be used
as input for the code generation.

Change-Id: Ie02a60d07c035f3d16872e79931eb7cde168a8d1
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2017-06-20 21:35:36 +00:00
Kevin Ottens
29a748511a [Shader Graph Gen.] Introduce QShaderGraph
This allows to connect our nodes together via ports. This way user code
can assemble a shader from simpler blocks.

Change-Id: I168dcf4af6aa11ad47b68d91e5a55e96ca922678
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2017-06-20 21:35:30 +00:00