Textures are working now
This commit is contained in:
@ -63,21 +63,21 @@ void Texture::setSize(
|
||||
// }
|
||||
|
||||
void Texture::updateTextureProperties() {
|
||||
auto setWrapMode = [&](GLenum axis, enum TextureWrapMode wm) {
|
||||
auto setWrapMode = [](GLenum axis, enum TextureWrapMode wm) {
|
||||
switch(wm) {
|
||||
case TEXTURE_WRAP_MODE_REPEAT:
|
||||
case TextureWrapMode::REPEAT:
|
||||
glTexParameteri(GL_TEXTURE_2D, axis, GL_REPEAT);
|
||||
break;
|
||||
|
||||
case TEXTURE_WRAP_MODE_MIRRORED_REPEAT:
|
||||
case TextureWrapMode::MIRRORED_REPEAT:
|
||||
glTexParameteri(GL_TEXTURE_2D, axis, GL_MIRRORED_REPEAT);
|
||||
break;
|
||||
|
||||
case TEXTURE_WRAP_MODE_CLAMP_TO_EDGE:
|
||||
case TextureWrapMode::CLAMP_TO_EDGE:
|
||||
glTexParameteri(GL_TEXTURE_2D, axis, GL_CLAMP_TO_EDGE);
|
||||
break;
|
||||
|
||||
case TEXTURE_WRAP_MODE_CLAMP_TO_BORDER:
|
||||
case TextureWrapMode::CLAMP_TO_BORDER:
|
||||
glTexParameteri(GL_TEXTURE_2D, axis, GL_CLAMP_TO_BORDER);
|
||||
break;
|
||||
|
||||
@ -90,18 +90,18 @@ void Texture::updateTextureProperties() {
|
||||
setWrapMode(GL_TEXTURE_WRAP_S, this->wrapModeX);
|
||||
setWrapMode(GL_TEXTURE_WRAP_T, this->wrapModeY);
|
||||
|
||||
auto setFilterMode = [&](
|
||||
auto setFilterMode = [](
|
||||
GLenum minMag,
|
||||
enum TextureFilterMode filter,
|
||||
enum TextureFilterMode mapFilterMode
|
||||
) {
|
||||
switch(filter) {
|
||||
case TEXTURE_FILTER_MODE_NEAREST: {
|
||||
case TextureFilterMode::NEAREST: {
|
||||
glTexParameteri(GL_TEXTURE_2D, minMag, GL_NEAREST);
|
||||
break;
|
||||
}
|
||||
|
||||
case TEXTURE_FILTER_MODE_LINEAR: {
|
||||
case TextureFilterMode::LINEAR: {
|
||||
glTexParameteri(GL_TEXTURE_2D, minMag, GL_LINEAR);
|
||||
break;
|
||||
}
|
||||
@ -126,19 +126,19 @@ void Texture::bufferRaw(const void *data) {
|
||||
|
||||
GLenum format;
|
||||
switch(this->format) {
|
||||
case TEXTURE_FORMAT_R:
|
||||
case TextureFormat::R:
|
||||
format = GL_RED;
|
||||
break;
|
||||
|
||||
case TEXTURE_FORMAT_RG:
|
||||
case TextureFormat::RG:
|
||||
format = GL_RG;
|
||||
break;
|
||||
|
||||
case TEXTURE_FORMAT_RGB:
|
||||
case TextureFormat::RGB:
|
||||
format = GL_RGB;
|
||||
break;
|
||||
|
||||
case TEXTURE_FORMAT_RGBA:
|
||||
case TextureFormat::RGBA:
|
||||
format = GL_RGBA;
|
||||
break;
|
||||
|
||||
@ -148,11 +148,11 @@ void Texture::bufferRaw(const void *data) {
|
||||
|
||||
GLenum dataFormat;
|
||||
switch(this->dataFormat) {
|
||||
case TEXTURE_DATA_FORMAT_UNSIGNED_BYTE:
|
||||
case TextureDataFormat::UNSIGNED_BYTE:
|
||||
dataFormat = GL_UNSIGNED_BYTE;
|
||||
break;
|
||||
|
||||
case TEXTURE_DATA_FORMAT_FLOAT:
|
||||
case TextureDataFormat::FLOAT:
|
||||
dataFormat = GL_FLOAT;
|
||||
break;
|
||||
|
||||
@ -174,19 +174,20 @@ void Texture::bufferRaw(const void *data) {
|
||||
|
||||
void Texture::buffer(const struct ColorU8 pixels[]) {
|
||||
assertTrue(
|
||||
this->dataFormat == TEXTURE_DATA_FORMAT_UNSIGNED_BYTE,
|
||||
this->dataFormat == TextureDataFormat::UNSIGNED_BYTE,
|
||||
"Texture data format must be unsigned byte!"
|
||||
);
|
||||
this->bufferRaw((void*)pixels);
|
||||
}
|
||||
|
||||
void Texture::buffer(const struct Color pixels[]) {
|
||||
std::cout << "Correct buffer" << std::endl;
|
||||
assertTrue(
|
||||
this->dataFormat == TEXTURE_DATA_FORMAT_FLOAT,
|
||||
this->dataFormat == TextureDataFormat::FLOAT,
|
||||
"Texture data format must be float!"
|
||||
);
|
||||
assertTrue(
|
||||
this->format == TEXTURE_FORMAT_RGBA,
|
||||
this->format == TextureFormat::RGBA,
|
||||
"Texture format must be RGBA!"
|
||||
);
|
||||
this->bufferRaw((void*)pixels);
|
||||
@ -194,7 +195,7 @@ void Texture::buffer(const struct Color pixels[]) {
|
||||
|
||||
void Texture::buffer(const uint8_t pixels[]) {
|
||||
assertTrue(
|
||||
this->dataFormat == TEXTURE_DATA_FORMAT_UNSIGNED_BYTE,
|
||||
this->dataFormat == TextureDataFormat::UNSIGNED_BYTE,
|
||||
"Texture data format must be unsigned byte!"
|
||||
);
|
||||
this->bufferRaw((void*)pixels);
|
||||
|
Reference in New Issue
Block a user