gpt4 book ai didi

opengl - 在GLSL中从外部定义预处理器宏

转载 作者:行者123 更新时间:2023-12-03 11:53:18 24 4
gpt4 key购买 nike

GLSL具有完整的C型预处理器。唯一不起作用的是#include。一项很棒的功能是,您可以使用#ifdef注释掉功能,从而创建一个着色器,如果不使用某些功能,则可以将其稀疏。

我的问题是:

是否可以通过C代码定义宏?

使用openGL界面似乎无法做到这一点。快速的技巧是在代码加载表单文件之前在#define FOO之前添加几行。但这似乎有些倒退。

最佳答案

您实际上并不需要在加载的代码之前添加它。这就是为什么glShaderSourceARB API中有多个字符串。

您想要的东西如下所示:

char *sources[2] = { "#define FOO\n", sourceFromFile };
glShaderSourceARB(shader, 2, sources, NULL);

关于opengl - 在GLSL中从外部定义预处理器宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2378448/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com