预处理指令以#开头,#号之前不能有除了空白字符之外的任何字符。每一个指令独占一行。 预处理指令只能使用上面列出的指令,使用其他未定义指令会报错。
完整的预处理器指令如下:
#
#define
#undef
#if
#ifdef
#ifndef
#else
#elif
#endif
#error
#pragma
#extension
#version
#line
下面的这个操作符也是合法的:
#define and #undef
这两个和C++中的用法完全一样,不做过多说明
#if, #ifdef, #ifndef, #else, #elif, and #endif
这几个也基本和C++的用法一样,不过有下面几点差别。
1. #if和#elif只能判断int类型,0为false,非0为true
2. 不支持string类型
#pragma
编译指示。用来控制编译器的一些行为。
#pragma optimize(on)
#pragma optimize(off)
在开发和调试时可以设置为off,默认设为on。
#pragma debug(on)
#pragma debug(off)
在开发和调试时可以打开debug选项,以便获取更多的调试信息。默认设为off。
#pragma multi_compile FANCY_STUFF_OFF FANCY_STUFF_ON
#pragma multi_compile SIMPLE_SHADING BETTER_SHADING GOOD_SHADING BEST_SHADIN

本文介绍了OpenGL中的预编译指令,包括#define、#undef、#if系列、#pragma、#version和#extension等,强调了它们在GLSL中的作用和使用注意事项,如指定版本、启用扩展以及预定义变量的应用。
最低0.47元/天 解锁文章
1246

被折叠的 条评论
为什么被折叠?



