|
JPH_OVERRIDE_NEW_DELETE | DebugRenderer () |
| Constructor.
|
|
virtual | ~DebugRenderer () |
|
void | NextFrame () |
| Call once after frame is complete. Releases unused dynamically generated geometry assets.
|
|
virtual void | DrawLine (RVec3Arg inFrom, RVec3Arg inTo, ColorArg inColor)=0 |
| Draw line.
|
|
void | DrawWireBox (const AABox &inBox, ColorArg inColor) |
| Draw wireframe box.
|
|
void | DrawWireBox (const OrientedBox &inBox, ColorArg inColor) |
|
void | DrawWireBox (RMat44Arg inMatrix, const AABox &inBox, ColorArg inColor) |
|
void | DrawMarker (RVec3Arg inPosition, ColorArg inColor, float inSize) |
| Draw a marker on a position.
|
|
void | DrawArrow (RVec3Arg inFrom, RVec3Arg inTo, ColorArg inColor, float inSize) |
| Draw an arrow.
|
|
void | DrawCoordinateSystem (RMat44Arg inTransform, float inSize=1.0f) |
| Draw coordinate system (3 arrows, x = red, y = green, z = blue)
|
|
void | DrawPlane (RVec3Arg inPoint, Vec3Arg inNormal, ColorArg inColor, float inSize) |
| Draw a plane through inPoint with normal inNormal.
|
|
void | DrawWireTriangle (RVec3Arg inV1, RVec3Arg inV2, RVec3Arg inV3, ColorArg inColor) |
| Draw wireframe triangle.
|
|
template<class VERTEX_ARRAY > |
void | DrawWirePolygon (RMat44Arg inTransform, const VERTEX_ARRAY &inVertices, ColorArg inColor, float inArrowSize=0.0f) |
| Draw a wireframe polygon.
|
|
void | DrawWireSphere (RVec3Arg inCenter, float inRadius, ColorArg inColor, int inLevel=3) |
| Draw wireframe sphere.
|
|
void | DrawWireUnitSphere (RMat44Arg inMatrix, ColorArg inColor, int inLevel=3) |
|
virtual void | DrawTriangle (RVec3Arg inV1, RVec3Arg inV2, RVec3Arg inV3, ColorArg inColor, ECastShadow inCastShadow=ECastShadow::Off)=0 |
| Draw a single back face culled triangle.
|
|
void | DrawBox (const AABox &inBox, ColorArg inColor, ECastShadow inCastShadow=ECastShadow::On, EDrawMode inDrawMode=EDrawMode::Solid) |
| Draw a box.
|
|
void | DrawBox (RMat44Arg inMatrix, const AABox &inBox, ColorArg inColor, ECastShadow inCastShadow=ECastShadow::On, EDrawMode inDrawMode=EDrawMode::Solid) |
|
void | DrawSphere (RVec3Arg inCenter, float inRadius, ColorArg inColor, ECastShadow inCastShadow=ECastShadow::On, EDrawMode inDrawMode=EDrawMode::Solid) |
| Draw a sphere.
|
|
void | DrawUnitSphere (RMat44Arg inMatrix, ColorArg inColor, ECastShadow inCastShadow=ECastShadow::On, EDrawMode inDrawMode=EDrawMode::Solid) |
|
void | DrawCapsule (RMat44Arg inMatrix, float inHalfHeightOfCylinder, float inRadius, ColorArg inColor, ECastShadow inCastShadow=ECastShadow::On, EDrawMode inDrawMode=EDrawMode::Solid) |
|
void | DrawCylinder (RMat44Arg inMatrix, float inHalfHeight, float inRadius, ColorArg inColor, ECastShadow inCastShadow=ECastShadow::On, EDrawMode inDrawMode=EDrawMode::Solid) |
|
void | DrawOpenCone (RVec3Arg inTop, Vec3Arg inAxis, Vec3Arg inPerpendicular, float inHalfAngle, float inLength, ColorArg inColor, ECastShadow inCastShadow=ECastShadow::On, EDrawMode inDrawMode=EDrawMode::Solid) |
|
void | DrawSwingConeLimits (RMat44Arg inMatrix, float inSwingYHalfAngle, float inSwingZHalfAngle, float inEdgeLength, ColorArg inColor, ECastShadow inCastShadow=ECastShadow::On, EDrawMode inDrawMode=EDrawMode::Solid) |
|
void | DrawSwingPyramidLimits (RMat44Arg inMatrix, float inMinSwingYAngle, float inMaxSwingYAngle, float inMinSwingZAngle, float inMaxSwingZAngle, float inEdgeLength, ColorArg inColor, ECastShadow inCastShadow=ECastShadow::On, EDrawMode inDrawMode=EDrawMode::Solid) |
|
void | DrawPie (RVec3Arg inCenter, float inRadius, Vec3Arg inNormal, Vec3Arg inAxis, float inMinAngle, float inMaxAngle, ColorArg inColor, ECastShadow inCastShadow=ECastShadow::On, EDrawMode inDrawMode=EDrawMode::Solid) |
|
virtual Batch | CreateTriangleBatch (const Triangle *inTriangles, int inTriangleCount)=0 |
| Create a batch of triangles that can be drawn efficiently.
|
|
virtual Batch | CreateTriangleBatch (const Vertex *inVertices, int inVertexCount, const uint32 *inIndices, int inIndexCount)=0 |
|
Batch | CreateTriangleBatch (const Array< Triangle > &inTriangles) |
|
Batch | CreateTriangleBatch (const Array< Vertex > &inVertices, const Array< uint32 > &inIndices) |
|
Batch | CreateTriangleBatch (const VertexList &inVertices, const IndexedTriangleNoMaterialList &inTriangles) |
|
Batch | CreateTriangleBatchForConvex (SupportFunction inGetSupport, int inLevel, AABox *outBounds=nullptr) |
|
GeometryRef | CreateTriangleGeometryForConvex (SupportFunction inGetSupport) |
|
virtual void | DrawGeometry (RMat44Arg inModelMatrix, const AABox &inWorldSpaceBounds, float inLODScaleSq, ColorArg inModelColor, const GeometryRef &inGeometry, ECullMode inCullMode=ECullMode::CullBackFace, ECastShadow inCastShadow=ECastShadow::On, EDrawMode inDrawMode=EDrawMode::Solid)=0 |
|
void | DrawGeometry (RMat44Arg inModelMatrix, ColorArg inModelColor, const GeometryRef &inGeometry, ECullMode inCullMode=ECullMode::CullBackFace, ECastShadow inCastShadow=ECastShadow::On, EDrawMode inDrawMode=EDrawMode::Solid) |
|
virtual void | DrawText3D (RVec3Arg inPosition, const string_view &inString, ColorArg inColor=Color::sWhite, float inHeight=0.5f)=0 |
| Draw text.
|
|
| NonCopyable ()=default |
|
| NonCopyable (const NonCopyable &)=delete |
|
void | operator= (const NonCopyable &)=delete |
|
Simple triangle renderer for debugging purposes.
Inherit from this class to provide your own implementation.
Implement the following virtual functions:
- DrawLine
- DrawTriangle
- DrawText3D
- CreateTriangleBatch
- DrawGeometry
Make sure you call Initialize() from the constructor of your implementation.
The CreateTriangleBatch is used to prepare a batch of triangles to be drawn by a single DrawGeometry call, which means that Jolt can render a complex scene much more efficiently than when each triangle in that scene would have been drawn through DrawTriangle.
Note that an implementation that implements CreateTriangleBatch and DrawGeometry is provided by DebugRendererSimple which can be used to start quickly.