From e6cef2ddbff8e61afcf7e186bb28c41c485e7498 Mon Sep 17 00:00:00 2001 From: Lynix Date: Tue, 8 Jan 2013 17:31:42 +0100 Subject: [PATCH] Added move constructor/operator to Shader Former-commit-id: b947e0ac0dcddcfe64c83b63cf89df0e0850cbd2 --- include/Nazara/Renderer/Shader.hpp | 3 +++ src/Nazara/Renderer/Shader.cpp | 16 ++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/include/Nazara/Renderer/Shader.hpp b/include/Nazara/Renderer/Shader.hpp index 194b86de8..040d5bbf7 100644 --- a/include/Nazara/Renderer/Shader.hpp +++ b/include/Nazara/Renderer/Shader.hpp @@ -28,6 +28,7 @@ class NAZARA_API NzShader : public NzResource, NzNonCopyable public: NzShader() = default; NzShader(nzShaderLanguage language); + NzShader(NzShader&& shader); ~NzShader(); bool Create(nzShaderLanguage language); @@ -68,6 +69,8 @@ class NAZARA_API NzShader : public NzResource, NzNonCopyable void Unlock(); + NzShader& operator=(NzShader&& shader); + static bool IsLanguageSupported(nzShaderLanguage language); static bool IsTypeSupported(nzShaderType type); diff --git a/src/Nazara/Renderer/Shader.cpp b/src/Nazara/Renderer/Shader.cpp index c1680b3ba..c4779daea 100644 --- a/src/Nazara/Renderer/Shader.cpp +++ b/src/Nazara/Renderer/Shader.cpp @@ -19,6 +19,12 @@ NzShader::NzShader(nzShaderLanguage language) Create(language); } +NzShader::NzShader(NzShader&& shader) : +m_impl(shader.m_impl) +{ + shader.m_impl = nullptr; +} + NzShader::~NzShader() { Destroy(); @@ -609,6 +615,16 @@ void NzShader::Unlock() return m_impl->Unlock(); } +NzShader& NzShader::operator=(NzShader&& shader) +{ + Destroy(); + + m_impl = shader.m_impl; + shader.m_impl = nullptr; + + return *this; +} + bool NzShader::IsLanguageSupported(nzShaderLanguage language) { switch (language)