Graphics/CameraComponent: Add remaining features
This commit is contained in:
@@ -25,4 +25,31 @@ namespace Nz
|
||||
{
|
||||
return m_viewerInstance;
|
||||
}
|
||||
|
||||
const Recti& CameraComponent::GetViewport() const
|
||||
{
|
||||
return m_viewport;
|
||||
}
|
||||
|
||||
void CameraComponent::UpdateTarget(const RenderTarget* renderTarget)
|
||||
{
|
||||
m_onRenderTargetRelease.Disconnect();
|
||||
m_onRenderTargetSizeChange.Disconnect();
|
||||
|
||||
m_renderTarget = renderTarget;
|
||||
if (m_renderTarget)
|
||||
{
|
||||
m_onRenderTargetRelease.Connect(m_renderTarget->OnRenderTargetRelease, [this](const RenderTarget*)
|
||||
{
|
||||
UpdateTarget(nullptr);
|
||||
});
|
||||
|
||||
m_onRenderTargetSizeChange.Connect(m_renderTarget->OnRenderTargetSizeChange, [this](const RenderTarget*, const Vector2ui& newSize)
|
||||
{
|
||||
UpdateViewport(newSize);
|
||||
});
|
||||
|
||||
UpdateViewport();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -243,10 +243,12 @@ namespace Nz
|
||||
return FramePassExecution::Execute;
|
||||
});
|
||||
|
||||
framePass.SetCommandCallback([this, viewer = viewer](CommandBufferBuilder& builder, const Recti& renderRect)
|
||||
framePass.SetCommandCallback([this, viewer = viewer](CommandBufferBuilder& builder, const Recti& /*renderRect*/)
|
||||
{
|
||||
builder.SetScissor(renderRect);
|
||||
builder.SetViewport(renderRect);
|
||||
Recti viewport = viewer->GetViewport();
|
||||
|
||||
builder.SetScissor(viewport);
|
||||
builder.SetViewport(viewport);
|
||||
builder.BindShaderBinding(Graphics::ViewerBindingSet, viewer->GetViewerInstance().GetShaderBinding());
|
||||
|
||||
for (const auto& [worldInstance, renderables] : m_renderables)
|
||||
|
||||
Reference in New Issue
Block a user