Refactoring of QAbstractRenderPass and QAbstractTechnique

Slight refactoring of both of these classes. This implies small changes to the
backend classes. Also QAbstractTechnique notify the QChangeArbiter when a pass
is added or removed so that the backend can update accordingly.

Change-Id: I4747317356568d9ad080bcd61d94a9ce5832ec6a
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Doc for QAbstractEffect

Change-Id: I1506bd8ce82340531ccb61e38945192d1ab87c0c
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Doc for QAbstractMaterial

Change-Id: I159b46605da68c1fdb5b1a9a7ab5233e103c7054
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Doc for QAbstractMesh

Change-Id: I091ac918c9446168d10c183cdbbf7081dc0bb960
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Doc for QAbstractTechnique

Change-Id: Iae45bbe2a7812e14856203040a4815faa00ee4a7
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
QAbstractShader class

It might be interesting to abstract the shaders as well. This offers a way
to have a complete scene described and use the shaders for other things than
3d rendering, sound rendering for instance.

Each aspect can then check for each QAbstractShader in the scene if it is a
shader relevant to its context by performing a qobject_cast.

Change-Id: I645bba0536e88681ad21cdb2d7dd38661059e7bb
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
ShaderProgram subclass of QAbstractShader

Change-Id: Iad017ef1ebaca25ebf45fd5d87a8d8df7d2598ad
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Move QAbstract private classes to .cpp

Change-Id: I9249580da297ca92a3416aad6dd73ef80ea4d8a7
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Completed QAbstractShader and QAbstractRenderPass

QAbstractRenderPass now contains a QAbstractShader.
Backend was updated to use QAbstractRenderPass.

Change-Id: I0353d6cf7ec7f74c5506d6c6a6513d54ca27fcd4
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
RenderRenderPass

Backend entity for the frontend RenderPass element.
This will help us monitor for RenderPass shader changes
and RenderPass criteria.

Change-Id: I82c058e4866523b34781d377384550338aaf0599
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Monitor Nodes for Creation/Deletion

Node is now a QObservable which is needed to tell the QChangeArbiter
when child nodes are appended or removed.
RenderNode is registered as an observer off the frontend Node it receives.

Note: QtQuick Repeater seems to rely on the delegate to be a QuickItem
subclass. It might not work with Qt3D Node. Using a Loader loading a Node
subtree from a QML file, the file is loaded but the subtree is not appended to
the root Scenegraph tree. I believe this is due to the fact that the loaded
file is set as the child of the Loader where we would want it to be set as the
child of the Node holding the Loader.

Change-Id: I9fa4e29bdbd7fdf51d5e0bd8e0a33c369ab78d90
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Adjusted cameras in the multiviewport example

Change-Id: Id9622f7f1125693519547aff19eda4487c523b9d
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Torus QML : removed custom properties from Effect

At the moment the Effect is no longer exposed as a Custom QML Type hence using
custom properties results in QML errors.

Change-Id: Ife2f8187e0b68932afda27a8b3f03d99399a95ab
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Index RenderTechnique by QAbstractTechnique*

Change-Id: I2d6031333e91c32f4f6995fe36debe3cf1b1e295
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
RenderPassCriterion class

Looks a lot like TechniqueCriterion at the moment but it will be easier to
specify it further when we need to in the near future.

Change-Id: Ic87080043227e31fd3b454b6308fd3a4540e871c
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Renamed TechniqueCriterion property QScenePropertyChange

The property for a TechniqueCriterion scene change was criteria. It was
renamed to techniqueCriteria so as to avoid confusion when RenderPassCriterion
come into play.

Change-Id: Iacc9a7e43dcc6ba50565b974cdd3464d2072dcf3
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Small Fix: parentTechniqueFilter getter const

Change-Id: Ie5cd9ea52204aa4b29fa0db24f9a21df8235df3f
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Added RenderPassCriterion to RenderPassFilter

Updated Quick3DRenderPassFilter and RenderPassFilterNode as well.

Change-Id: I31cd0c2cc22522af7a310a2a882f21501573ae9b
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Move Parameter to its own file

Corrected includes accordingly.

Change-Id: Ic060314a976061a62c42a3006a7a93090202bf83
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Added comments and small fix to RenderView

Change-Id: I6775e291b92b99ea799a57c93d3b3682b01c205d
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>