Ich habe ein Problem mit einer sehr spezifischen Direktive in meinem Glsl-Shader.OpenGL/GLSL: Preprocessor Problem mit bestimmten Direktive
Ich mag eine Richtlinie so verwenden:
#if defined(numDirectionalLights) && (numDirectionalLights > 0)
struct DirectionalLight
{
vec3 color;
vec3 direction;
};
uniform DirectionalLight u_dirLights[numDirectionalLights];
#endif
Wenn ich das GLSL-Programm zu kompilieren, bekomme ich diesen Fehler:
ERROR: 0:6: '' : syntax error: incorrect preprocessor directive
WARNING: 0:6: unexpected tokens following the preprocessor directive - expected a newline
Sie here diese Fehler sehen.
Es ist seltsam, weil in C-Sprache diese Syntax erlaubt ist, aber es ist seltsamer, das LibGDX Framework verwendet diese Syntax here und mit LibGDX, es funktioniert! Ich habe zuerst über einen Kodierungsfehler nachgedacht, aber meine Shader sind in UTF-8 und das ist nicht das Problem.
Wissen Sie, wie diese Syntax funktioniert?
Geht es um OpenGL-ES oder OpenGL? Welche Version liefern Sie in Ihrem Shader? – BDL