C++ const char* 将变量/定义放在 init 上

C++ const char* put variable/DEFINE on init

本文关键字:定义 init 变量 const char C++      更新时间:2023-10-16

我有带有顶点着色器代码的常量字符*变量:

const char* FS_source_a =
    #include "fs_a.h"
 ;

在 fs_a.h 中:

"#version 100n"
"varying lowp vec4 v_color;n"
"void main(void)n"
"{n"
        "gl_FragColor = v_color;n"
"}n";

现在,我有一些定义/静态变量,我想把它放在我的着色器代码中,就像这样[伪代码]:

"#version "+SHADER_VERSION+"n"

井。。。。这是否可能以某种方式,或者我必须将它们连接起来?我想将着色器源代码保存在单独的文件中。

附言这不是opengl的问题。

你不能做你写的,但你可以这样做:

代码.c

#include "code.h"
const char* FS_source_a = DEFINEDVALUE;
char FS_dest_a[1024] = {0};
sprintf(FS_dest_a, FS_source_a, 100);

代码.h

#define DEFINEDVALUE "#version %dn
varying lowp vec4 v_color;n
void main(void)n
{n
    gl_FragColor = v_color;n
}n"