У меня есть константа char * variable с вершинным шейдерным кодом:
const char* FS_source_a =
#include "fs_a.h"
;
в fs_a.h:
"#version 100\n"
"varying lowp vec4 v_color;\n"
"void main(void)\n"
"{\n"
"gl_FragColor = v_color;\n"
"}\n";
Теперь у меня есть определенная/статическая переменная, и я хочу поместить ее в свой шейдерный код, например [pseudocode]:
"#version "+SHADER_VERSION+"\n"
Ну... Это возможно как-то, или я должен их конкатрировать? Я хочу сохранить исходный код шейдера в отдельном файле.
PS Это не проблема.
Вы не можете делать то, что вы написали, но можете это сделать:
code.c
#include "code.h"
const char* FS_source_a = DEFINEDVALUE;
char FS_dest_a[1024] = {0};
sprintf(FS_dest_a, FS_source_a, 100);
code.h
#define DEFINEDVALUE "#version %d\n\
varying lowp vec4 v_color;\n\
void main(void)\n\
{\n\
gl_FragColor = v_color;\n\
}\n"
FS_source_a
. Смотрите мой фиксированный ответ