Graphics/Camera: Fix camera copy / movement by assignation
This commit is contained in:
parent
b37aaf6173
commit
4039d16df0
|
|
@ -125,33 +125,50 @@ namespace Nz
|
|||
inline Camera& Camera::operator=(const Camera& camera)
|
||||
{
|
||||
m_framePipelinePasses = camera.m_framePipelinePasses;
|
||||
m_clearColor = camera.m_clearColor;
|
||||
m_fov = camera.m_fov;
|
||||
m_renderOrder = camera.m_renderOrder;
|
||||
m_projectionType = camera.m_projectionType;
|
||||
m_targetRegion = camera.m_targetRegion;
|
||||
m_viewport = camera.m_viewport;
|
||||
m_size = camera.m_size;
|
||||
m_renderMask = camera.m_renderMask;
|
||||
m_aspectRatio = camera.m_aspectRatio;
|
||||
m_zFar = camera.m_zFar;
|
||||
m_zNear = camera.m_zNear;
|
||||
|
||||
UpdateTarget(camera.m_renderTarget);
|
||||
|
||||
if (m_renderTarget)
|
||||
UpdateViewport();
|
||||
else
|
||||
UpdateViewport(m_viewport);
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
||||
inline Camera& Camera::operator=(Camera&& camera) noexcept
|
||||
{
|
||||
m_framePipelinePasses = std::move(camera.m_framePipelinePasses);
|
||||
m_clearColor = camera.m_clearColor;
|
||||
m_fov = camera.m_fov;
|
||||
m_renderOrder = camera.m_renderOrder;
|
||||
m_projectionType = camera.m_projectionType;
|
||||
m_targetRegion = camera.m_targetRegion;
|
||||
m_viewport = camera.m_viewport;
|
||||
m_size = camera.m_size;
|
||||
m_renderMask = camera.m_renderMask;
|
||||
m_aspectRatio = camera.m_aspectRatio;
|
||||
m_zFar = camera.m_zFar;
|
||||
m_zNear = camera.m_zNear;
|
||||
|
||||
UpdateTarget(camera.m_renderTarget);
|
||||
UpdateTarget(std::move(camera.m_renderTarget));
|
||||
camera.UpdateTarget({});
|
||||
|
||||
if (m_renderTarget)
|
||||
UpdateViewport();
|
||||
else
|
||||
UpdateViewport(m_viewport);
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue