mirror of
https://github.com/MobileGL-Dev/MobileGL
synced 2026-09-11 21:58:31 +09:00
[Fix] (MG_State/Program): fix ShaderObject compilation error
This commit is contained in:
@@ -11,7 +11,10 @@ namespace MobileGL {
|
|||||||
void ShaderObject::Compile() {
|
void ShaderObject::Compile() {
|
||||||
using namespace MG_Util::ShaderTranspiler;
|
using namespace MG_Util::ShaderTranspiler;
|
||||||
ShaderAttrib attrib{
|
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);
|
auto result = ShaderCompiler::CompileShader(attrib);
|
||||||
if (result) {
|
if (result) {
|
||||||
|
|||||||
@@ -10,7 +10,8 @@ namespace MobileGL {
|
|||||||
TessEval,
|
TessEval,
|
||||||
Geometry,
|
Geometry,
|
||||||
Fragment,
|
Fragment,
|
||||||
Compute
|
Compute,
|
||||||
|
Unknown = -1
|
||||||
};
|
};
|
||||||
|
|
||||||
inline static GLenum GetGLShaderTypeByMGLShaderStage(ShaderStage stage) {
|
inline static GLenum GetGLShaderTypeByMGLShaderStage(ShaderStage stage) {
|
||||||
@@ -29,7 +30,27 @@ namespace MobileGL {
|
|||||||
return GL_COMPUTE_SHADER;
|
return GL_COMPUTE_SHADER;
|
||||||
default:
|
default:
|
||||||
assert(false);
|
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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user