From f713a3785b539effb7f594544234e7c2acc66f61 Mon Sep 17 00:00:00 2001 From: BZLZHH Date: Thu, 14 Aug 2025 15:21:48 +0800 Subject: [PATCH] [Feat] (MG_Util/Converters): Add converters for TextureUploadTarget and additional TextureTarget. --- .../GLToMG/TextureEnumConverter.cpp | 41 +++++++++++++++++++ .../Converters/GLToMG/TextureEnumConverter.h | 1 + .../MGToGL/TextureEnumConverter.cpp | 41 +++++++++++++++++++ .../Converters/MGToGL/TextureEnumConverter.h | 1 + .../MGToStr/TextureEnumConverter.cpp | 34 +++++++++++++++ .../Converters/MGToStr/TextureEnumConverter.h | 1 + 6 files changed, 119 insertions(+) diff --git a/MobileGL/MG_Util/Converters/GLToMG/TextureEnumConverter.cpp b/MobileGL/MG_Util/Converters/GLToMG/TextureEnumConverter.cpp index a61d11f2..7b249e1d 100644 --- a/MobileGL/MG_Util/Converters/GLToMG/TextureEnumConverter.cpp +++ b/MobileGL/MG_Util/Converters/GLToMG/TextureEnumConverter.cpp @@ -18,6 +18,14 @@ namespace MobileGL { return TextureTarget::Texture2DMultisample; case GL_TEXTURE_CUBE_MAP_ARRAY: return TextureTarget::TextureCubeMapArray; + case GL_TEXTURE_BUFFER: + return TextureTarget::TextureBuffer; + case GL_TEXTURE_1D_ARRAY: + return TextureTarget::Texture1DArray; + case GL_TEXTURE_RECTANGLE: + return TextureTarget::TextureRectangle; + case GL_TEXTURE_2D_MULTISAMPLE_ARRAY: + return TextureTarget::Texture2DMultisampleArray; default: return TextureTarget::Unknown; } @@ -234,5 +242,38 @@ namespace MobileGL { } } + TextureUploadTarget ConvertGLEnumToTextureUploadTarget(GLenum target) { + switch (target) { + case GL_TEXTURE_2D: + return TextureUploadTarget::Texture2D; + case GL_PROXY_TEXTURE_2D: + return TextureUploadTarget::ProxyTexture2D; + case GL_TEXTURE_1D_ARRAY: + return TextureUploadTarget::Texture1DArray; + case GL_PROXY_TEXTURE_1D_ARRAY: + return TextureUploadTarget::ProxyTexture1DArray; + case GL_TEXTURE_RECTANGLE: + return TextureUploadTarget::TextureRectangle; + case GL_PROXY_TEXTURE_RECTANGLE: + return TextureUploadTarget::ProxyTextureRectangle; + case GL_TEXTURE_CUBE_MAP_POSITIVE_X: + return TextureUploadTarget::CubeMapPositiveX; + case GL_TEXTURE_CUBE_MAP_NEGATIVE_X: + return TextureUploadTarget::CubeMapNegativeX; + case GL_TEXTURE_CUBE_MAP_POSITIVE_Y: + return TextureUploadTarget::CubeMapPositiveY; + case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y: + return TextureUploadTarget::CubeMapNegativeY; + case GL_TEXTURE_CUBE_MAP_POSITIVE_Z: + return TextureUploadTarget::CubeMapPositiveZ; + case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z: + return TextureUploadTarget::CubeMapNegativeZ; + case GL_PROXY_TEXTURE_CUBE_MAP: + return TextureUploadTarget::ProxyCubeMap; + default: + return TextureUploadTarget::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 c3060b26..e23caf7b 100644 --- a/MobileGL/MG_Util/Converters/GLToMG/TextureEnumConverter.h +++ b/MobileGL/MG_Util/Converters/GLToMG/TextureEnumConverter.h @@ -8,5 +8,6 @@ namespace MobileGL { TextureInputFormat ConvertGLEnumToTextureInputFormat(GLenum format); TextureSizedInternalFormat ConvertGLEnumToTextureSizedInternalFormat(GLenum internalformat); TexturePixelDataType ConvertGLEnumToTexturePixelDataType(GLenum type); + TextureUploadTarget ConvertGLEnumToTextureUploadTarget(GLenum target); } // namespace MG_Util } // namespace MobileGL \ No newline at end of file diff --git a/MobileGL/MG_Util/Converters/MGToGL/TextureEnumConverter.cpp b/MobileGL/MG_Util/Converters/MGToGL/TextureEnumConverter.cpp index ea807bf6..bf4b332c 100644 --- a/MobileGL/MG_Util/Converters/MGToGL/TextureEnumConverter.cpp +++ b/MobileGL/MG_Util/Converters/MGToGL/TextureEnumConverter.cpp @@ -18,6 +18,14 @@ namespace MobileGL { return GL_TEXTURE_2D_MULTISAMPLE; case TextureTarget::TextureCubeMapArray: return GL_TEXTURE_CUBE_MAP_ARRAY; + case TextureTarget::TextureBuffer: + return GL_TEXTURE_BUFFER; + case TextureTarget::Texture1DArray: + return GL_TEXTURE_1D_ARRAY; + case TextureTarget::TextureRectangle: + return GL_TEXTURE_RECTANGLE; + case TextureTarget::Texture2DMultisampleArray: + return GL_TEXTURE_2D_MULTISAMPLE_ARRAY; default: return GL_UNKNOWN_MGL; } @@ -230,5 +238,38 @@ namespace MobileGL { } } + GLenum ConvertTextureUploadTargetToGLEnum(TextureUploadTarget target) { + switch (target) { + case TextureUploadTarget::Texture2D: + return GL_TEXTURE_2D; + case TextureUploadTarget::ProxyTexture2D: + return GL_PROXY_TEXTURE_2D; + case TextureUploadTarget::Texture1DArray: + return GL_TEXTURE_1D_ARRAY; + case TextureUploadTarget::ProxyTexture1DArray: + return GL_PROXY_TEXTURE_1D_ARRAY; + case TextureUploadTarget::TextureRectangle: + return GL_TEXTURE_RECTANGLE; + case TextureUploadTarget::ProxyTextureRectangle: + return GL_PROXY_TEXTURE_RECTANGLE; + case TextureUploadTarget::CubeMapPositiveX: + return GL_TEXTURE_CUBE_MAP_POSITIVE_X; + case TextureUploadTarget::CubeMapNegativeX: + return GL_TEXTURE_CUBE_MAP_NEGATIVE_X; + case TextureUploadTarget::CubeMapPositiveY: + return GL_TEXTURE_CUBE_MAP_POSITIVE_Y; + case TextureUploadTarget::CubeMapNegativeY: + return GL_TEXTURE_CUBE_MAP_NEGATIVE_Y; + case TextureUploadTarget::CubeMapPositiveZ: + return GL_TEXTURE_CUBE_MAP_POSITIVE_Z; + case TextureUploadTarget::CubeMapNegativeZ: + return GL_TEXTURE_CUBE_MAP_NEGATIVE_Z; + case TextureUploadTarget::ProxyCubeMap: + return GL_PROXY_TEXTURE_CUBE_MAP; + default: + return GL_UNKNOWN_MGL; + } + } + } // namespace MG_Util } // namespace MobileGL \ No newline at end of file diff --git a/MobileGL/MG_Util/Converters/MGToGL/TextureEnumConverter.h b/MobileGL/MG_Util/Converters/MGToGL/TextureEnumConverter.h index fd9c9b92..f0c694cd 100644 --- a/MobileGL/MG_Util/Converters/MGToGL/TextureEnumConverter.h +++ b/MobileGL/MG_Util/Converters/MGToGL/TextureEnumConverter.h @@ -8,5 +8,6 @@ namespace MobileGL { GLenum ConvertTextureInputFormatToGLEnum(TextureInputFormat format); GLenum ConvertTextureSizedInternalFormatToGLEnum(TextureSizedInternalFormat internalformat); GLenum ConvertTexturePixelDataTypeToGLEnum(TexturePixelDataType type); + GLenum ConvertTextureUploadTargetToGLEnum(TextureUploadTarget target); } // namespace MG_Util } // namespace MobileGL \ No newline at end of file diff --git a/MobileGL/MG_Util/Converters/MGToStr/TextureEnumConverter.cpp b/MobileGL/MG_Util/Converters/MGToStr/TextureEnumConverter.cpp index eecf2aab..50c08c49 100644 --- a/MobileGL/MG_Util/Converters/MGToStr/TextureEnumConverter.cpp +++ b/MobileGL/MG_Util/Converters/MGToStr/TextureEnumConverter.cpp @@ -1,4 +1,5 @@ #include "TextureEnumConverter.h" +#include "MG_State/GLState/TextureState/TextureObject.h" #include "MG_Util/Types.h" namespace MobileGL { @@ -226,5 +227,38 @@ namespace MobileGL { return "Unknown"; } } + + String ConvertTextureUploadTargetToString(TextureUploadTarget target) { + switch (target) { + case TextureUploadTarget::Texture2D: + return "Texture2D"; + case TextureUploadTarget::ProxyTexture2D: + return "ProxyTexture2D"; + case TextureUploadTarget::Texture1DArray: + return "Texture1DArray"; + case TextureUploadTarget::ProxyTexture1DArray: + return "ProxyTexture1DArray"; + case TextureUploadTarget::TextureRectangle: + return "TextureRectangle"; + case TextureUploadTarget::ProxyTextureRectangle: + return "ProxyTextureRectangle"; + case TextureUploadTarget::CubeMapPositiveX: + return "CubeMapPositiveX"; + case TextureUploadTarget::CubeMapNegativeX: + return "CubeMapNegativeX"; + case TextureUploadTarget::CubeMapPositiveY: + return "CubeMapPositiveY"; + case TextureUploadTarget::CubeMapNegativeY: + return "CubeMapNegativeY"; + case TextureUploadTarget::CubeMapPositiveZ: + return "CubeMapPositiveZ"; + case TextureUploadTarget::CubeMapNegativeZ: + return "CubeMapNegativeZ"; + case TextureUploadTarget::ProxyCubeMap: + return "ProxyCubeMap"; + default: + return "Unknown"; + } + } } // namespace MG_Util } // namespace MobileGL \ No newline at end of file diff --git a/MobileGL/MG_Util/Converters/MGToStr/TextureEnumConverter.h b/MobileGL/MG_Util/Converters/MGToStr/TextureEnumConverter.h index 5489c01b..fb97e56d 100644 --- a/MobileGL/MG_Util/Converters/MGToStr/TextureEnumConverter.h +++ b/MobileGL/MG_Util/Converters/MGToStr/TextureEnumConverter.h @@ -8,5 +8,6 @@ namespace MobileGL { String ConvertTextureInputFormatToString(TextureInputFormat format); String ConvertTextureSizedInternalFormatToString(TextureSizedInternalFormat internalformat); String ConvertTexturePixelDataTypeToString(TexturePixelDataType type); + String ConvertTextureUploadTargetToString(TextureUploadTarget target); } // namespace MG_Util } // namespace MobileGL \ No newline at end of file