本文整理汇总了C++中ShaderSource::add_macro方法的典型用法代码示例。如果您正苦于以下问题:C++ ShaderSource::add_macro方法的具体用法?C++ ShaderSource::add_macro怎么用?C++ ShaderSource::add_macro使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ShaderSource
的用法示例。
在下文中一共展示了ShaderSource::add_macro方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: deps
void
UberShaderStreamer<T>::
stream_shader(ShaderSource &dst, const std::string &prefix,
get_src_type get_src, get_main_name_type get_main_name,
const StreamVaryingsHelper<T> &stream_varyings_helper,
const StreamSurroundSrcHelper<T> &stream_surround_src,
const fastuidraw::reference_counted_ptr<const T> &sh,
int dependency_depth)
{
using namespace fastuidraw;
c_array<const reference_counted_ptr<const T> > deps(sh->dependency_list_shaders());
c_array<const c_string> dep_names(sh->dependency_list_names());
FASTUIDRAWassert(deps.size() == dep_names.size());
dst << "// Have " << deps.size() << " dependencies at depth " << dependency_depth << "\n";
for (unsigned int i = 0; i < deps.size(); ++i)
{
std::string realized_name;
realized_name = stream_dependency(dst, prefix, i, get_src, get_main_name,
stream_varyings_helper, stream_surround_src,
deps[i], dep_names[i], dependency_depth + 1);
dst.add_macro(dep_names[i], realized_name.c_str());
}
dst.add_macro(get_main_name(sh), prefix.c_str());
stream_surround_src.pre_source(dst, sh);
stream_source(dst, prefix, (sh.get()->*get_src)());
stream_surround_src.post_source(dst);
dst.remove_macro(get_main_name(sh));
for (unsigned int i = 0; i < deps.size(); ++i)
{
dst.remove_macro(dep_names[i]);
}
}