diff --git a/src/game/Core/PNG.cpp b/src/game/Core/PNG.cpp index 7034559..a35be44 100755 --- a/src/game/Core/PNG.cpp +++ b/src/game/Core/PNG.cpp @@ -97,6 +97,7 @@ dd::PNG::PNG(std::string path) // Read in the data png_read_image(png_ptr, row_pointers); + delete[] row_pointers; this->Width = width; this->Height = height; @@ -107,8 +108,9 @@ dd::PNG::PNG(std::string path) dd::PNG::~PNG() { - if (Data) { - delete[] Data; + if (this->Data != nullptr) { + delete[] this->Data; + this->Data = nullptr; } } diff --git a/src/game/Core/Texture.cpp b/src/game/Core/Texture.cpp index 8fb8b33..2dd9f49 100755 --- a/src/game/Core/Texture.cpp +++ b/src/game/Core/Texture.cpp @@ -21,21 +21,21 @@ dd::Texture::Texture(std::string path) { - std::unique_ptr image = std::make_unique(path); + PNG image(path); - if (image->Width == 0 && image->Height == 0 || image->Format == Image::ImageFormat::Unknown) { - image = std::make_unique("Textures/Core/ErrorTexture.png"); - if (image->Width == 0 && image->Height == 0 || image->Format == Image::ImageFormat::Unknown) { + if (image.Width == 0 && image.Height == 0 || image.Format == Image::ImageFormat::Unknown) { + image = PNG("Textures/Core/ErrorTexture.png"); + if (image.Width == 0 && image.Height == 0 || image.Format == Image::ImageFormat::Unknown) { LOG_ERROR("Couldn't even load the error texture. This is a dark day indeed."); return; } } - this->Width = image->Width; - this->Height = image->Height; + this->Width = image.Width; + this->Height = image.Height; GLint format; - switch (image->Format) { + switch (image.Format) { case Image::ImageFormat::RGB: format = GL_RGB; break; @@ -48,7 +48,7 @@ dd::Texture::Texture(std::string path) glGenTextures(1, &m_Texture); glBindTexture(GL_TEXTURE_2D, m_Texture); glPixelStorei(GL_UNPACK_ALIGNMENT, 1); - glTexImage2D(GL_TEXTURE_2D, 0, format, image->Width, image->Height, 0, format, GL_UNSIGNED_BYTE, image->Data); + glTexImage2D(GL_TEXTURE_2D, 0, format, image.Width, image.Height, 0, format, GL_UNSIGNED_BYTE, image.Data); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);