From 8182d9e4027e084657cb2aeb9948ae6c000e7678 Mon Sep 17 00:00:00 2001 From: Swung0x48 Date: Sun, 16 Nov 2025 22:56:03 +0800 Subject: [PATCH] [Fix] (MG_Util/Converters): fix incorrectly converted `GL_TEXTURE_SWIZZLE_*` pnames --- MobileGL/MG_Impl/GLImpl/Texture/GL_Texture.cpp | 9 ++------- .../Converters/GLToMG/TextureEnumConverter.cpp | 15 +++++++++++++++ .../Converters/GLToMG/TextureEnumConverter.h | 1 + 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/MobileGL/MG_Impl/GLImpl/Texture/GL_Texture.cpp b/MobileGL/MG_Impl/GLImpl/Texture/GL_Texture.cpp index b779db2b..5d540832 100644 --- a/MobileGL/MG_Impl/GLImpl/Texture/GL_Texture.cpp +++ b/MobileGL/MG_Impl/GLImpl/Texture/GL_Texture.cpp @@ -177,7 +177,7 @@ namespace MobileGL { case GL_TEXTURE_SWIZZLE_G: case GL_TEXTURE_SWIZZLE_B: case GL_TEXTURE_SWIZZLE_A: { - auto swizzleParam = MG_Util::ConvertGLEnumToTextureSwizzleParam(pname); + auto swizzleParam = MG_Util::ConvertGLEnumPnameToTextureSwizzleParam(pname); auto swizzleValue = MG_Util::ConvertGLEnumToTextureSwizzleParam(param); textureObject->SetSwizzleParam(swizzleParam, swizzleValue); break; @@ -258,7 +258,7 @@ namespace MobileGL { case GL_TEXTURE_SWIZZLE_G: case GL_TEXTURE_SWIZZLE_B: case GL_TEXTURE_SWIZZLE_A: { - auto swizzleParam = MG_Util::ConvertGLEnumToTextureSwizzleParam(pname); + auto swizzleParam = MG_Util::ConvertGLEnumPnameToTextureSwizzleParam(pname); auto swizzleValue = MG_Util::ConvertGLEnumToTextureSwizzleParam(param); textureObject->SetSwizzleParam(swizzleParam, swizzleValue); break; @@ -495,11 +495,6 @@ namespace MobileGL { break; case GL_TEXTURE_BASE_LEVEL: case GL_TEXTURE_MAX_LEVEL: - case GL_TEXTURE_SWIZZLE_R: - case GL_TEXTURE_SWIZZLE_G: - case GL_TEXTURE_SWIZZLE_B: - case GL_TEXTURE_SWIZZLE_A: - case GL_TEXTURE_SWIZZLE_RGBA: case GL_TEXTURE_BORDER_COLOR: break; // TODO case GL_TEXTURE_WRAP_S: diff --git a/MobileGL/MG_Util/Converters/GLToMG/TextureEnumConverter.cpp b/MobileGL/MG_Util/Converters/GLToMG/TextureEnumConverter.cpp index b2e77b79..99d36f88 100644 --- a/MobileGL/MG_Util/Converters/GLToMG/TextureEnumConverter.cpp +++ b/MobileGL/MG_Util/Converters/GLToMG/TextureEnumConverter.cpp @@ -402,5 +402,20 @@ namespace MobileGL { return TextureSwizzleParam::Unknown; } } + + TextureSwizzleParam ConvertGLEnumPnameToTextureSwizzleParam(GLenum v) { + switch (v) { + case GL_TEXTURE_SWIZZLE_R: + return TextureSwizzleParam::Red; + case GL_TEXTURE_SWIZZLE_G: + return TextureSwizzleParam::Green; + case GL_TEXTURE_SWIZZLE_B: + return TextureSwizzleParam::Blue; + case GL_TEXTURE_SWIZZLE_A: + return TextureSwizzleParam::Alpha; + default: + return TextureSwizzleParam::Unknown; + } + } } // namespace MG_Util } // namespace MobileGL \ No newline at end of file diff --git a/MobileGL/MG_Util/Converters/GLToMG/TextureEnumConverter.h b/MobileGL/MG_Util/Converters/GLToMG/TextureEnumConverter.h index 74b028ee..13833c3a 100644 --- a/MobileGL/MG_Util/Converters/GLToMG/TextureEnumConverter.h +++ b/MobileGL/MG_Util/Converters/GLToMG/TextureEnumConverter.h @@ -15,5 +15,6 @@ namespace MobileGL { SamplerCompareMode ConvertGLEnumToSamplerCompareMode(GLenum value); SamplerCompareFunc ConvertGLEnumToSamplerCompareFunc(GLenum value); TextureSwizzleParam ConvertGLEnumToTextureSwizzleParam(GLenum value); + TextureSwizzleParam ConvertGLEnumPnameToTextureSwizzleParam(GLenum value); } // namespace MG_Util } // namespace MobileGL \ No newline at end of file