我有const char *变量和顶点着色器代码:
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";
现在,我有一些已定义的/静态变量,我想把它放在我的着色器代码中,就像这个[伪代码]:
"#version "+SHADER_VERSION+"\n"
嗯......这有可能以某种方式,或者我必须将它们连接起来吗?我想将着色器源代码保存在单独的文件中。
P.S。这不是opengl问题。
答案 0 :(得分:0)
你不能做你写的,但你可以这样做:
<强> 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"