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

Former-commit-id: b491fa7480d8eda1602f23b3bb0a08b6c09d28f8 [formerly 1ac08e917aaed955f46b16f5d29b6c2ef5797ea6] [formerly 0b3796950799529a3e617835549fddcae98e18c8 [formerly f75af99a07fadfe5f9d45f3937678d1d8bf355e1]]
Former-commit-id: 49e03a24eae8c76cbf8c00309dccce87c8c70546 [formerly 977a6167a3dd4081e2820eb4b2de497775b63796]
Former-commit-id: db6c41ed94022aeda37a44fd039b4c98613c2d8f
This commit is contained in:
Lynix 2016-08-10 14:09:48 +02:00
parent 3438d0105a
commit 89a0911cd0
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