From 7cbd64fe0f813cf5d4d213471694572ecc5584f6 Mon Sep 17 00:00:00 2001 From: korenkonder Date: Mon, 15 Apr 2024 15:41:52 +0300 Subject: [PATCH] Texture stuff --- src/DivaGL/texture.cpp | 15 +++++++++++---- src/DivaGL/wrap.cpp | 9 +++++++++ 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/src/DivaGL/texture.cpp b/src/DivaGL/texture.cpp index a4dab8b..0961763 100644 --- a/src/DivaGL/texture.cpp +++ b/src/DivaGL/texture.cpp @@ -447,19 +447,19 @@ static void texture_get_format_type_by_internal_format(GLenum internal_format, G GLenum _type; switch (internal_format) { case GL_ALPHA8: - _format = GL_ALPHA; + _format = GL_R; _type = GL_UNSIGNED_BYTE; break; case GL_LUMINANCE8: - _format = GL_LUMINANCE; + _format = GL_R; _type = GL_UNSIGNED_BYTE; break; case GL_LUMINANCE8_ALPHA8: - _format = GL_LUMINANCE_ALPHA; + _format = GL_RG; _type = GL_UNSIGNED_BYTE; break; case GL_INTENSITY8: - _format = GL_INTENSITY; + _format = GL_R; _type = GL_UNSIGNED_BYTE; break; case GL_RGB5: @@ -698,6 +698,13 @@ static texture* texture_load_tex(texture_id id, GLenum target, swizzle[3] = GL_GREEN; glTexParameteriv(target, GL_TEXTURE_SWIZZLE_RGBA, swizzle); break; + case GL_INTENSITY8: + swizzle[0] = GL_RED; + swizzle[1] = GL_RED; + swizzle[2] = GL_RED; + swizzle[3] = GL_RED; + glTexParameteriv(target, GL_TEXTURE_SWIZZLE_RGBA, swizzle); + break; } GLuint working_internal_format = texture_get_working_internal_format(internal_format); diff --git a/src/DivaGL/wrap.cpp b/src/DivaGL/wrap.cpp index 41fbe00..d8bce78 100644 --- a/src/DivaGL/wrap.cpp +++ b/src/DivaGL/wrap.cpp @@ -2078,6 +2078,9 @@ void GLAPIENTRY glTexImage2DDLL(GLenum target, GLint level, GLint internalformat case GL_LUMINANCE8_ALPHA8: _internalformat = GL_RG8; break; + case GL_INTENSITY8: + _internalformat = GL_R8; + break; default: _internalformat = internalformat; break; @@ -2104,6 +2107,12 @@ void GLAPIENTRY glTexImage2DDLL(GLenum target, GLint level, GLint internalformat glTexParameteriDLL(target, GL_TEXTURE_SWIZZLE_B, GL_RED); glTexParameteriDLL(target, GL_TEXTURE_SWIZZLE_A, GL_GREEN); break; + case GL_INTENSITY8: + glTexParameteriDLL(target, GL_TEXTURE_SWIZZLE_R, GL_RED); + glTexParameteriDLL(target, GL_TEXTURE_SWIZZLE_G, GL_RED); + glTexParameteriDLL(target, GL_TEXTURE_SWIZZLE_B, GL_RED); + glTexParameteriDLL(target, GL_TEXTURE_SWIZZLE_A, GL_RED); + break; } }