mirror of
https://github.com/kuhyx/engineer-thesis-WUT.git
synced 2026-07-04 14:43:10 +02:00
48 lines
1.2 KiB
C++
48 lines
1.2 KiB
C++
// Copyright [2023] Krzysztof Rudnicki
|
|
#ifndef BREAKOUT_TEXTURE_CPP_
|
|
#define BREAKOUT_TEXTURE_CPP_
|
|
|
|
#include <iostream>
|
|
|
|
|
|
#include "../breakout/texture.hpp"
|
|
|
|
|
|
Texture2D::Texture2D()
|
|
: Width(0),
|
|
Height(0),
|
|
Internal_Format(GL_RGB),
|
|
Image_Format(GL_RGB),
|
|
Wrap_S(GL_REPEAT),
|
|
Wrap_T(GL_REPEAT),
|
|
Filter_Min(GL_LINEAR),
|
|
Filter_Max(GL_LINEAR) {
|
|
glGenTextures(1, &this->ID);
|
|
}
|
|
|
|
void Texture2D::Generate(
|
|
unsigned int width,
|
|
unsigned int height,
|
|
unsigned char* data) {
|
|
this->Width = width;
|
|
this->Height = height;
|
|
// create Texture
|
|
glBindTexture(GL_TEXTURE_2D, this->ID);
|
|
glTexImage2D(GL_TEXTURE_2D,
|
|
0, this->Internal_Format, width, height,
|
|
0, this->Image_Format, GL_UNSIGNED_BYTE, data);
|
|
// set Texture wrap and filter modes
|
|
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, this->Wrap_S);
|
|
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, this->Wrap_T);
|
|
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, this->Filter_Min);
|
|
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, this->Filter_Max);
|
|
// unbind texture
|
|
glBindTexture(GL_TEXTURE_2D, 0);
|
|
}
|
|
|
|
void Texture2D::Bind() const {
|
|
glBindTexture(GL_TEXTURE_2D, this->ID);
|
|
}
|
|
|
|
#endif // BREAKOUT_TEXTURE_CPP
|