From 14e64e64c7da7535e62c275980669d9cf56b7a6d Mon Sep 17 00:00:00 2001 From: dec05eba Date: Wed, 30 Mar 2022 17:30:43 +0200 Subject: Add move assignment to texture, fix move constructor not setting owner field --- src/graphics/Texture.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/graphics') diff --git a/src/graphics/Texture.cpp b/src/graphics/Texture.cpp index 794c563..86c4ac0 100644 --- a/src/graphics/Texture.cpp +++ b/src/graphics/Texture.cpp @@ -9,7 +9,22 @@ namespace mgl { Texture::Texture(Texture &&other) { memcpy(&texture, &other.texture, sizeof(mgl_texture)); + owned = other.owned; + + other.texture.id = 0; + other.owned = false; + } + + Texture& Texture::operator=(Texture &&other) { + if(owned) + mgl_texture_unload(&texture); + + memcpy(&texture, &other.texture, sizeof(mgl_texture)); + owned = other.owned; + other.texture.id = 0; + other.owned = false; + return *this; } Texture::~Texture() { -- cgit v1.2.3