| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Change-Id: I4300ba81800e44c0b5e2a86e72b1cf96434c323d
Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently the Qt Quick module depends on either the OpenGL or OpenGLES
headers being available at build time. Since we are adding support for
adaptations that do not depend on OpenGL, it should be possible to build
Qt Quick in environments that do not have OpenGL development headers.
This does present many challenges though because in some cases GL types,
and classes that require OpenGL are part of the public APIs. However
since these classes were never available when QT_NO_OPENGL was defined,
it should be possible to redefine the function signatures under this
scenario, since it's not possible to break binary compatibility if there
never were any binaries to break compatibility with.
One of the bigger changes that was necessary to facilitate this change
is creating interfaces out of QSGContext and QSGRenderContext. Here the
default behavior was usage of OpenGL directly, even though subclasses
could override all OpenGL usage. Making them interfaces should bring
QSGContext and QSGRenderContext more in line with the other classes
present in the adaptation layer.
Change-Id: Iaa54dc0f6cfd18d2da1d059548abf509bd71f200
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
| |
The 2D renderer will now become a built-in adaptation of scenegraph that
should always be available to fallback to when there are no other
renders available. So rather than be an external plugin, now it is a
built in adaptation.
Change-Id: Ifa02fd50f3085ad1e6f1a73c3ce1e1825b677cc7
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Proof of concept. The plan is to proceed slowly with supporting node types
one by one, starting with QSGRectangleNode.
Opaque rectangles work already, but only non-smooth for now. The renderer is
incomplete (no clip/opacity) and is based on simplerenderer on scenegraph playground.
Buffer handling is not necessarily optimal yet.
Use QT_QUICK_BACKEND=d3d12 to request this backend. Set QT_D3D_DEBUG=1 to
enable the D3D debug layer. The render loop handles everything, incl. swap
chain setup, handling resizes, etc. This being D3D, there are no further
enablers needed from the QtGui or platform plugin side.
By default the first hardware adapter is picked. In the absence of that,
WARP is tried. The list of adapters is printed at startup, use
QT_D3D_ADAPTER_INDEX to force a given card in case there are multiple
ones in the system.
The goal is not to productize a fast and great renderer, but to pave the way to
better future backends for D3D12 and similar graphics APIs.
Compiling in the support into Qt Quick is bad since the dependency onto
d3d12.dll is not necessarily acceptable, but it's good enough for now, this
being a wip branch.
Change-Id: Ifbe088e7507223328096b22eec2c73f77bb5680e
Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
|
|
In addition to QMLSCENE_DEVICE, start supporting an env var named
QT_QUICK_BACKEND. This is more suitable for general use.
Besides plugin-based adaptations, some built-in ones are anticipated as
well. Therefore, add support for shipping custom contexts as part of the
scenegraph. For test purposes, a dummy adaptation is provided that falls
back to the default, OpenGL-based path for everything. This may
be removed at some point later on, but is useful for testing the loading
logic for now.
Change-Id: I7e0a2cd3ef33ba910604fb4027af3b3711fcaf1e
Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
|