Sdk/RenderSystem: Make ChangeRenderTechnique return a reference to the render technique

Former-commit-id: bffd29fae1ec56fbf9769e9d98c6482dcf953233 [formerly 8efbb3be17fa259e5b7a0529c21d89ca66cb92fe] [formerly a6908831f5568b0d9c5c94c2085722513e240acb [formerly 24501e9445e2f64303751ca34af2df5170af4248]]
Former-commit-id: c8da7e4bd2680ddc942b6f06c7b528a1007fe1df [formerly a66ad334b5e9032f35d58c25ba3b5affc97d72da]
Former-commit-id: f67f457a615944e276e19e5551107333c4c4dd8f
This commit is contained in:
Lynix 2016-08-10 14:09:48 +02:00
parent 2c076ae1c5
commit cb4fbe0894
2 changed files with 6 additions and 5 deletions

View File

@ -28,8 +28,8 @@ namespace Ndk
inline RenderSystem(const RenderSystem& renderSystem);
~RenderSystem() = default;
template<typename T> void ChangeRenderTechnique();
inline void ChangeRenderTechnique(std::unique_ptr<Nz::AbstractRenderTechnique>&& renderTechnique);
template<typename T> T& ChangeRenderTechnique();
inline Nz::AbstractRenderTechnique& ChangeRenderTechnique(std::unique_ptr<Nz::AbstractRenderTechnique>&& renderTechnique);
inline const Nz::BackgroundRef& GetDefaultBackground() const;
inline const Nz::Matrix4f& GetCoordinateSystemMatrix() const;

View File

@ -10,14 +10,15 @@ namespace Ndk
}
template<typename T>
inline void RenderSystem::ChangeRenderTechnique()
inline T& RenderSystem::ChangeRenderTechnique()
{
ChangeRenderTechnique(std::make_unique<T>());
return *static_cast<T*>(ChangeRenderTechnique(std::make_unique<T>()));
}
inline void RenderSystem::ChangeRenderTechnique(std::unique_ptr<Nz::AbstractRenderTechnique>&& renderTechnique)
inline Nz::AbstractRenderTechnique& RenderSystem::ChangeRenderTechnique(std::unique_ptr<Nz::AbstractRenderTechnique>&& renderTechnique)
{
m_renderTechnique = std::move(renderTechnique);
return *m_renderTechnique.get();
}
inline const Nz::BackgroundRef& RenderSystem::GetDefaultBackground() const