[Feat] (MG_Utils/Converters): Add converters for TextureSwizzleParam.

This commit is contained in:
BZLZHH
2025-11-01 15:51:58 +08:00
parent 4d8db7fb3b
commit 5ffc4d1e2d
4 changed files with 47 additions and 7 deletions
@@ -376,5 +376,23 @@ namespace MobileGL {
} }
} }
TextureSwizzleParam ConvertGLEnumToTextureSwizzleParam(GLenum v) {
switch (v) {
case GL_RED:
return TextureSwizzleParam::Red;
case GL_GREEN:
return TextureSwizzleParam::Green;
case GL_BLUE:
return TextureSwizzleParam::Blue;
case GL_ALPHA:
return TextureSwizzleParam::Alpha;
case GL_ZERO:
return TextureSwizzleParam::Zero;
case GL_ONE:
return TextureSwizzleParam::One;
default:
return TextureSwizzleParam::Unknown;
}
}
} // namespace MG_Util } // namespace MG_Util
} // namespace MobileGL } // namespace MobileGL
@@ -14,5 +14,6 @@ namespace MobileGL {
SamplerWrapMode ConvertGLEnumToSamplerWrapMode(GLenum value); SamplerWrapMode ConvertGLEnumToSamplerWrapMode(GLenum value);
SamplerCompareMode ConvertGLEnumToSamplerCompareMode(GLenum value); SamplerCompareMode ConvertGLEnumToSamplerCompareMode(GLenum value);
SamplerCompareFunc ConvertGLEnumToSamplerCompareFunc(GLenum value); SamplerCompareFunc ConvertGLEnumToSamplerCompareFunc(GLenum value);
TextureSwizzleParam ConvertGLEnumToTextureSwizzleParam(GLenum value);
} // namespace MG_Util } // namespace MG_Util
} // namespace MobileGL } // namespace MobileGL
@@ -1,4 +1,6 @@
#include "TextureEnumConverter.h" #include "TextureEnumConverter.h"
#include "GL/gl.h"
#include "MG_Util/Types.h"
namespace MobileGL { namespace MobileGL {
namespace MG_Util { namespace MG_Util {
@@ -312,18 +314,18 @@ namespace MobileGL {
case SamplerFilterMode::Linear: case SamplerFilterMode::Linear:
return GL_LINEAR; return GL_LINEAR;
default: default:
return 0; return GL_UNKNOWN_MGL;
} }
} }
GLenum ConvertSamplerMipmapModeToGLEnum(SamplerMipmapMode v) { GLenum ConvertSamplerMipmapModeToGLEnum(SamplerMipmapMode v) {
switch (v) { switch (v) {
case SamplerMipmapMode::None: case SamplerMipmapMode::None:
return 0; return GL_NONE;
case SamplerMipmapMode::Nearest: case SamplerMipmapMode::Nearest:
return GL_NEAREST_MIPMAP_NEAREST; return GL_NEAREST_MIPMAP_NEAREST;
default: default:
return 0; return GL_UNKNOWN_MGL;
} }
} }
@@ -338,18 +340,18 @@ namespace MobileGL {
case SamplerWrapMode::ClampToBorder: case SamplerWrapMode::ClampToBorder:
return GL_CLAMP_TO_BORDER; return GL_CLAMP_TO_BORDER;
default: default:
return 0; return GL_UNKNOWN_MGL;
} }
} }
GLenum ConvertSamplerCompareModeToGLEnum(SamplerCompareMode v) { GLenum ConvertSamplerCompareModeToGLEnum(SamplerCompareMode v) {
switch (v) { switch (v) {
case SamplerCompareMode::None: case SamplerCompareMode::None:
return 0; return GL_NONE;
case SamplerCompareMode::CompareToTexture: case SamplerCompareMode::CompareToTexture:
return GL_COMPARE_REF_TO_TEXTURE; return GL_COMPARE_REF_TO_TEXTURE;
default: default:
return 0; return GL_UNKNOWN_MGL;
} }
} }
@@ -372,9 +374,27 @@ namespace MobileGL {
case SamplerCompareFunc::Always: case SamplerCompareFunc::Always:
return GL_ALWAYS; return GL_ALWAYS;
default: default:
return 0; return GL_UNKNOWN_MGL;
} }
} }
GLenum ConvertTextureSwizzleParamToGLEnum(TextureSwizzleParam v) {
switch (v) {
case TextureSwizzleParam::Red:
return GL_RED;
case TextureSwizzleParam::Green:
return GL_GREEN;
case TextureSwizzleParam::Blue:
return GL_BLUE;
case TextureSwizzleParam::Alpha:
return GL_ALPHA;
case TextureSwizzleParam::Zero:
return GL_ZERO;
case TextureSwizzleParam::One:
return GL_ONE;
default:
return GL_UNKNOWN_MGL;
}
}
} // namespace MG_Util } // namespace MG_Util
} // namespace MobileGL } // namespace MobileGL
@@ -14,5 +14,6 @@ namespace MobileGL {
GLenum ConvertSamplerWrapModeToGLEnum(SamplerWrapMode value); GLenum ConvertSamplerWrapModeToGLEnum(SamplerWrapMode value);
GLenum ConvertSamplerCompareModeToGLEnum(SamplerCompareMode value); GLenum ConvertSamplerCompareModeToGLEnum(SamplerCompareMode value);
GLenum ConvertSamplerCompareFuncToGLEnum(SamplerCompareFunc value); GLenum ConvertSamplerCompareFuncToGLEnum(SamplerCompareFunc value);
GLenum ConvertTextureSwizzleParamToGLEnum(TextureSwizzleParam value);
} // namespace MG_Util } // namespace MG_Util
} // namespace MobileGL } // namespace MobileGL