diff options
author | Andy Nichols <andy.nichols@theqtcompany.com> | 2016-06-30 16:58:55 +0200 |
---|---|---|
committer | Laszlo Agocs <laszlo.agocs@qt.io> | 2016-07-14 13:04:57 +0000 |
commit | 9d4f11a500b2d478edd7d92391bbf3031103bced (patch) | |
tree | ef6b336bc4f74fd8eeae8cdc0d95be328fd31d3d /src/plugins/scenegraph | |
parent | f091351e5d4c116ffdd16768fec60bb07efa049f (diff) |
Add QSGSpriteNode to the Scenegraph Adaptation Layer
Most core Qt Quick items use one of the nodes provided by the Scenegraph
Adaptation Layer, however the two items that provide support for Sprites
created their own custom nodes. There was significant redundancy in
this, and it made it only possible to use the OpenGL adaptation. The
AnimatedSprite and SpriteSequence items have been cleaned up, and now
use the new QSGSpriteNode.
Change-Id: Idc20b9c5da9dc1c94f6368021785382cdf7cec5a
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Diffstat (limited to 'src/plugins/scenegraph')
4 files changed, 14 insertions, 0 deletions
diff --git a/src/plugins/scenegraph/d3d12/qsgd3d12context.cpp b/src/plugins/scenegraph/d3d12/qsgd3d12context.cpp index 1b29ddd59c..64c6313b42 100644 --- a/src/plugins/scenegraph/d3d12/qsgd3d12context.cpp +++ b/src/plugins/scenegraph/d3d12/qsgd3d12context.cpp @@ -127,4 +127,9 @@ QSGNinePatchNode *QSGD3D12Context::createNinePatchNode() return new QSGD3D12NinePatchNode; } +QSGSpriteNode *QSGD3D12Context::createSpriteNode() +{ + return nullptr; +} + QT_END_NAMESPACE diff --git a/src/plugins/scenegraph/d3d12/qsgd3d12context_p.h b/src/plugins/scenegraph/d3d12/qsgd3d12context_p.h index f4d9429c7b..70cc606b52 100644 --- a/src/plugins/scenegraph/d3d12/qsgd3d12context_p.h +++ b/src/plugins/scenegraph/d3d12/qsgd3d12context_p.h @@ -75,6 +75,8 @@ public: QSGRectangleNode *createRectangleNode() override; QSGImageNode *createImageNode() override; QSGNinePatchNode *createNinePatchNode() override; + QSGSpriteNode *createSpriteNode() override; + }; QT_END_NAMESPACE diff --git a/src/plugins/scenegraph/d3d12/qsgd3d12rendercontext.cpp b/src/plugins/scenegraph/d3d12/qsgd3d12rendercontext.cpp index 1a63117ec0..e261cb6447 100644 --- a/src/plugins/scenegraph/d3d12/qsgd3d12rendercontext.cpp +++ b/src/plugins/scenegraph/d3d12/qsgd3d12rendercontext.cpp @@ -115,6 +115,12 @@ QSGRenderer *QSGD3D12RenderContext::createRenderer() return new QSGD3D12Renderer(this); } +int QSGD3D12RenderContext::maxTextureSize() const +{ + // XXX: Do it the correct way + return 4096; +} + void QSGD3D12RenderContext::renderNextFrame(QSGRenderer *renderer, uint fbo) { static_cast<QSGD3D12Renderer *>(renderer)->renderScene(fbo); diff --git a/src/plugins/scenegraph/d3d12/qsgd3d12rendercontext_p.h b/src/plugins/scenegraph/d3d12/qsgd3d12rendercontext_p.h index 5cd0b52f4b..ca85aaa46f 100644 --- a/src/plugins/scenegraph/d3d12/qsgd3d12rendercontext_p.h +++ b/src/plugins/scenegraph/d3d12/qsgd3d12rendercontext_p.h @@ -68,6 +68,7 @@ public: void renderNextFrame(QSGRenderer *renderer, uint fbo) override; QSGTexture *createTexture(const QImage &image, uint flags) const override; QSGRenderer *createRenderer() override; + int maxTextureSize() const override; void setEngine(QSGD3D12Engine *engine); QSGD3D12Engine *engine() { return m_engine; } |