[Fix] (MG_State/Program): fix ShaderObject compilation error

This commit is contained in:
2025-08-11 13:12:50 +08:00
parent ace0b6d226
commit e96e0ecc42
2 changed files with 27 additions and 3 deletions
@@ -11,7 +11,10 @@ namespace MobileGL {
void ShaderObject::Compile() {
using namespace MG_Util::ShaderTranspiler;
ShaderAttrib attrib{
.sourceStr = m_source, .shaderType = GetGLShaderTypeByMGLShaderStage(m_stage), .flags = 0};
.shaderType = GetGLShaderTypeByMGLShaderStage(m_stage),
.sourceStr = m_source,
.flags = 0
};
auto result = ShaderCompiler::CompileShader(attrib);
if (result) {
@@ -10,7 +10,8 @@ namespace MobileGL {
TessEval,
Geometry,
Fragment,
Compute
Compute,
Unknown = -1
};
inline static GLenum GetGLShaderTypeByMGLShaderStage(ShaderStage stage) {
@@ -29,7 +30,27 @@ namespace MobileGL {
return GL_COMPUTE_SHADER;
default:
assert(false);
return 0;
return GL_FALSE;
}
}
inline static ShaderStage GetMGLShaderStageByGLShaderType(GLenum type) {
switch (type) {
case GL_VERTEX_SHADER:
return ShaderStage::Vertex;
case GL_TESS_CONTROL_SHADER:
return ShaderStage::TessControl;
case GL_TESS_EVALUATION_SHADER:
return ShaderStage::TessEval;
case GL_GEOMETRY_SHADER:
return ShaderStage::Geometry;
case GL_FRAGMENT_SHADER:
return ShaderStage::Fragment;
case GL_COMPUTE_SHADER:
return ShaderStage::Compute;
default:
assert(false);
return ShaderStage::Unknown;
}
}