From 400410fcd436d5e4310bfa779f0309c5fae5b2c2 Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Sat, 16 Jan 2021 18:09:15 +0000 Subject: Initial commit Stripped back and formatted from https://github.com/BennyQBD/ModernOpenGLTutorial/ --- texture.cpp | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 texture.cpp (limited to 'texture.cpp') diff --git a/texture.cpp b/texture.cpp new file mode 100644 index 0000000..aae16b3 --- /dev/null +++ b/texture.cpp @@ -0,0 +1,34 @@ +#include "texture.h" +#include "stb_image.h" +#include + +Texture::Texture(const std::string & fileName) +{ + int width, height, numComponents; + unsigned char * data = stbi_load((fileName).c_str(), &width, &height, &numComponents, 4); + + if (data == NULL) + std::cerr << "Unable to load texture: " << fileName << std::endl; + + glGenTextures(1, &m_texture); + glBindTexture(GL_TEXTURE_2D, m_texture); + + 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); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, data); + stbi_image_free(data); +} + +Texture::~Texture() +{ + glDeleteTextures(1, &m_texture); +} + +void +Texture::Bind() +{ + glBindTexture(GL_TEXTURE_2D, m_texture); +} -- cgit v1.2.3