This commit is contained in:
2025-08-14 15:32:56 +08:00
7 changed files with 142 additions and 1 deletions
@@ -10,13 +10,35 @@ namespace MobileGL {
Texture2D,
Texture3D,
TextureCubeMap,
Texture2DArray,
TextureRectangle,
Texture2DMultisample,
TextureBuffer,
Texture1DArray,
Texture2DArray,
TextureCubeMapArray,
Texture2DMultisampleArray,
TextureTargetCount,
Unknown = -1
};
enum class TextureUploadTarget {
Texture2D,
ProxyTexture2D,
Texture1DArray,
ProxyTexture1DArray,
TextureRectangle,
ProxyTextureRectangle,
CubeMapPositiveX,
CubeMapNegativeX,
CubeMapPositiveY,
CubeMapNegativeY,
CubeMapPositiveZ,
CubeMapNegativeZ,
ProxyCubeMap,
TextureUploadTargetCount,
Unknown = -1
};
enum class TextureInputFormat {
Red,
RG,
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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