32 Q_DISABLE_COPY(QSSGDebugDrawSystem)
34 QSSGDebugDrawSystem();
35 ~QSSGDebugDrawSystem();
39 void drawLine(
const QVector3D &startPoint,
40 const QVector3D &endPoint,
42 bool isPersistent =
false);
45 bool isPersistent =
false);
48 bool isPersistent =
false);
50 void prepareGeometry(QSSGRhiContext *rhiCtx, QRhiResourceUpdateBatch *rub);
52 QSSGRhiGraphicsPipelineState *ps,
53 QRhiShaderResourceBindings *srb,
54 QRhiRenderPassDescriptor *rpDesc);
57 [[nodiscard]]
bool isEnabled()
const {
return Mode(modes) != Mode::None; }
60 friend class QSSGLayerRenderData;
69 using ModeFlagT = std::underlying_type_t<Mode>;
86 void generateLine(
const LineData &line, QVector<VertexData> &vertexArray, QVector<quint32> &indexArray);
87 void generateBox(
const BoundsData &bounds, QVector<VertexData> &vertexArray, QVector<quint32> &indexArray);
90 [[nodiscard]]
bool isEnabled(
Mode mode)
const {
return ((ModeFlagT(mode) & modes) != 0); }
91 [[nodiscard]]
static QColor levelOfDetailColor(quint32 lod);
92 void debugNormals(QSSGBufferManager &bufferManager,
const QSSGModelContext &theModelContext,
const QSSGRenderSubset &theSubset, quint32 subsetLevelOfDetail,
float lineLength);
94 quint32 m_indexSize = 0;
95 quint32 m_pointsSize = 0;
96 QVector<LineData> m_persistentLines;
97 QVector<LineData> m_lines;
98 QVector<BoundsData> m_persistentBounds;
99 QVector<BoundsData> m_bounds;
100 QVector<VertexData> m_persistentPoints;
101 QVector<VertexData> m_points;
103 QSSGRhiBufferPtr m_lineVertexBuffer;
104 QSSGRhiBufferPtr m_lineIndexBuffer;
105 QSSGRhiBufferPtr m_pointVertexBuffer;
107 ModeFlagT modes { 0 };