diff options
Diffstat (limited to 'src/plugins/scenegraph/d3d12/qsgd3d12renderer_p.h')
-rw-r--r-- | src/plugins/scenegraph/d3d12/qsgd3d12renderer_p.h | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/plugins/scenegraph/d3d12/qsgd3d12renderer_p.h b/src/plugins/scenegraph/d3d12/qsgd3d12renderer_p.h index 0877c3699a..bed34df3a1 100644 --- a/src/plugins/scenegraph/d3d12/qsgd3d12renderer_p.h +++ b/src/plugins/scenegraph/d3d12/qsgd3d12renderer_p.h @@ -59,6 +59,8 @@ QT_BEGIN_NAMESPACE +class QSGRenderNode; + class QSGD3D12Renderer : public QSGRenderer { public: @@ -78,12 +80,13 @@ private: void renderElements(); void renderElement(int elementIndex); void setInputLayout(const QSGGeometry *g, QSGD3D12PipelineState *pipelineState); - void setupClipping(const QSGGeometryNode *gn, int elementIndex); + void setupClipping(const QSGClipNode *clip, int elementIndex); void setScissor(const QRect &r); void renderStencilClip(const QSGClipNode *clip, int elementIndex, const QMatrix4x4 &m, quint32 &stencilValue); + void renderRenderNode(QSGRenderNode *node, int elementIndex); struct Element { - QSGBasicGeometryNode *node = nullptr; + QSGNode *node = nullptr; qint32 vboOffset = -1; qint32 iboOffset = -1; quint32 iboStride = 0; @@ -121,6 +124,12 @@ private: bool m_projectionChangedDueToDeviceSize; uint m_renderTarget = 0; + quint32 m_currentStencilValue; + enum ClipType { + ClipScissor = 0x1, + ClipStencil = 0x2 + }; + int m_currentClipTypes; }; QT_END_NAMESPACE |