aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/scenegraph/d3d12/qsgd3d12renderer_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/scenegraph/d3d12/qsgd3d12renderer_p.h')
-rw-r--r--src/plugins/scenegraph/d3d12/qsgd3d12renderer_p.h13
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