宏
宏声明为:
macro NAME(argument1, argument2, ...)
...
endmacro
在宏中,所有出现的 argument1 都将替换为宏调用时传递的参数,包括宏中的 hlsl 块。
无法取消定义宏,但可以选择性地定义宏:
define_macro_if_not_defined NAME(argument1)
...
endmacro
如果之前没有定义过宏 NAME ,它将只定义宏 NAME 。
我们有一些关于宏的命名约定:
INIT_...宏中不应包含任何 hlsl 代码。如果您的宏包含其他宏,
USE_...和INIT_...宏应相应地分开。