class render::GizmoRenderer

Inherits: RendererExtension

Performs rendering of gizmos on the render thread, as managed by the GizmoManager.

Public

Constructors

GizmoRenderer

GizmoRenderer()

Methods

RenderGizmos

void RenderGizmos(GpuCommandBuffer &commandBuffer, const SPtr<RenderTarget> &renderTarget, const SPtr<Camera> &camera, GizmoRenderData renderData, bool usePickingMaterial)

Renders all provided meshes using the provided camera.

commandBuffer
Command buffer to record the render commands on.
renderTarget
Render target to render into.
camera
Sets the camera all rendering will be performed to.
renderData
Data for rendering as generated by the gizmo manager.
usePickingMaterial
If true, meshes will be rendered using a special picking materials, otherwise they'll be rendered using normal drawing materials.

UpdateData

void UpdateData(const SPtr<Camera> &camera, GizmoRenderData renderData)

Updates the internal data that is used for rendering.

Normally you would call this after updating the camera or meshes on the main thread.

camera
Sets the camera all rendering will be performed to.
renderData
Data for rendering as generated by the gizmo manager.

Private

Methods

PrepareForRender

void PrepareForRender(GpuDevice &device, const SPtr<Camera> &camera, GizmoRenderData &inOutRenderData, bool usePickingMaterial)

Prepares the provided render data by creating/updating its internal GPU parameters.

Should be called before Render().

device
Device to use for preparing GPU resources.
camera
Sets the camera all rendering will be performed to.
inOutRenderData
Data for rendering as generated by the gizmo manager.
usePickingMaterial
If true, meshes will be rendered using a special picking materials, otherwise they'll be rendered using normal drawing materials.

Initialize

void Initialize(const Any &data) override

Called when the renderer extension is first initialized.

Check

RendererExtensionRequest Check(const Camera &camera) override

Returns true if the render() method should be called for the provided camera.

Render

void Render(const Camera &camera, const RendererViewContext &viewContext) override

Called at the point at which rendering should be performed for the provided camera.

Relevant render targets are guaranteed to be already bound to the render API, depending on the RenderLocation. Note that actual structure of the render targets depends on the active renderer.

camera
Camera through which the renderer is currently rendering.
viewContext
Additional information about the currently rendered view.

Fields

mCamera

SPtr<Camera> mCamera

mRenderData

GizmoRenderData mRenderData

mMeshMaterialParameterAdapters

Vector<SPtr<MaterialParameterAdapter>>[4] mMeshMaterialParameterAdapters

mIconParameterAdapters

Vector<SPtr<MaterialParameterAdapter>> mIconParameterAdapters

mPickingParameterAdapters

Vector<SPtr<MaterialParameterAdapter>>[2] mPickingParameterAdapters

mMeshMaterials

SPtr<Material>[4] mMeshMaterials

mIconMaterial

SPtr<Material> mIconMaterial

mPickingMaterials

SPtr<Material>[2] mPickingMaterials