34 Q_DISABLE_COPY(QSSGDebugDrawSystem)
36 QSSGDebugDrawSystem();
37 ~QSSGDebugDrawSystem();
41 void drawLine(
const QVector3D &startPoint,
42 const QVector3D &endPoint,
44 bool isPersistent =
false);
47 bool isPersistent =
false);
50 bool isPersistent =
false);
52 void prepareGeometry(QSSGRhiContext *rhiCtx, QRhiResourceUpdateBatch *rub);
54 QSSGRhiGraphicsPipelineState *ps,
55 QRhiShaderResourceBindings *srb,
56 QRhiRenderPassDescriptor *rpDesc);
59 [[nodiscard]]
bool isEnabled()
const {
return Mode(modes) != Mode::None; }
62 friend class QSSGLayerRenderData;
71 using ModeFlagT = std::underlying_type_t<Mode>;
88 void generateLine(
const LineData &line, QVector<VertexData> &vertexArray, QVector<quint32> &indexArray);
89 void generateBox(
const BoundsData &bounds, QVector<VertexData> &vertexArray, QVector<quint32> &indexArray);
92 [[nodiscard]]
bool isEnabled(
Mode mode)
const {
return ((ModeFlagT(mode) & modes) != 0); }
93 [[nodiscard]]
static QColor levelOfDetailColor(quint32 lod);
94 void debugNormals(QSSGBufferManager &bufferManager,
const QSSGModelContext &theModelContext,
const QSSGRenderSubset &theSubset, quint32 subsetLevelOfDetail,
float lineLength);
96 quint32 m_indexSize = 0;
97 quint32 m_pointsSize = 0;
98 QVector<LineData> m_persistentLines;
99 QVector<LineData> m_lines;
100 QVector<BoundsData> m_persistentBounds;
101 QVector<BoundsData> m_bounds;
102 QVector<VertexData> m_persistentPoints;
103 QVector<VertexData> m_points;
105 QSSGRhiBufferPtr m_lineVertexBuffer;
106 QSSGRhiBufferPtr m_lineIndexBuffer;
107 QSSGRhiBufferPtr m_pointVertexBuffer;
109 ModeFlagT modes { 0 };