vorrei dichiarare stringhe GLSL di shader in linea con macro in stringa:GCC, stringificazione e GLSL in linea?
#define STRINGIFY(A) #A
const GLchar* vert = STRINGIFY(
#version 120\n
attribute vec2 position;
void main()
{
gl_Position = vec4(position, 0.0, 1.0);
}
);
Questo costruisce e funziona benissimo con VS2010, ma non riesce a compilare il gcc
con:
error: invalid preprocessing directive #version
C'è un modo per usare la stringificazione come questa in modo portatile?
Sto cercando di evitare per linea Citazioni:
const GLchar* vert =
"#version 120\n"
"attribute vec2 position;"
"void main()"
"{"
" gl_Position = vec4(position, 0.0, 1.0);"
"}"
;
... e/o di continuazione di riga:
const GLchar* vert = "\
#version 120\n \
attribute vec2 position; \
void main() \
{ \
gl_Position = vec4(position, 0.0, 1.0); \
} \
";
Mi piace prendere di mira GLSL non esteso, quindi funziona alla grande! Grazie! – genpfault