C ++ const char *在init上放置变量/ DEFINE

时间:2013-12-23 11:58:32

标签: c++

我有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问题。

1 个答案:

答案 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"