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

Former-commit-id: f97e9d4a3048c0dfd934b263fd2e3facdec1f839 [formerly 856e89966d172f0cc55a6b7d6dbe0f33f0dad493] [formerly 2c537c041b5c32831d034e5de8a9b738597c5ee8 [formerly 6c47f159c502de0b37d8c0847dd6b6ece1df321b]]
Former-commit-id: 820d117c97286893c9ec7b4b611546e09a7bfd24 [formerly 44daa92d72f776fa879a957e814496882190d302]
Former-commit-id: ca11c6fe9726d380a77650dd4dff26049ac07386
This commit is contained in:
Lynix 2016-08-10 14:09:48 +02:00
parent 021ddffdea
commit 767a0feda0
2 changed files with 6 additions and 5 deletions

View File

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

View File

@ -10,14 +10,15 @@ namespace Ndk
} }
template<typename T> 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); m_renderTechnique = std::move(renderTechnique);
return *m_renderTechnique.get();
} }
inline const Nz::BackgroundRef& RenderSystem::GetDefaultBackground() const inline const Nz::BackgroundRef& RenderSystem::GetDefaultBackground() const