QShaderData component

Will act as a prototype class composed of properties that are used as elements
of an uniform array or uniform buffer object.
In other word this is the same thing as a uniform block/struct definition to
be used on the QML/C++ side.

Change-Id: Id58767efd1f06e7b23dd6badea163a1efd65f048
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
QShaderData registered to QML

Change-Id: If867e35b0ab874bb15989e96228d582b98bede2b
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
RenderShaderData backend class for QShaderData

Change-Id: I2f303485d66446fc46a000ae6ebe564493d181e8
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Manager for RenderShaderData

Change-Id: I6063567362e8d29a4a48560e625bcae6a5e89190
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Added ShaderDataManager to Renderer

Change-Id: Ia7162632800f5053d4c518bcee4d1bd0fe8f2d94
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Registered RenderShaderData as backend type for QShaderData

Change-Id: Ibcd1e2c488909f25f1e03aa330d48ba96dd0ca04
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
playground-qml: Add ShaderData component for testing purposes

Change-Id: Ia0afa847a9f3f995a779c4f482b7a6f2fe50f0df
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
RenderEntity: Handle multiple components of the same type

This is useful for Layers and Lights.
Note: Lights will soon be replaced by QShaderData to be more generic.

Change-Id: I1937a318fe6f1e3303b3d24cad9ce436930efcd1
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
RenderEntity: add helper methods for retrieving ShaderData components

Change-Id: I0c1960d53e26720833b1c8b4db145e4b08743f4f
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
RenderEntity: check for QShaderData components

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