本文整理汇总了C++中GeometryNode::get_filename方法的典型用法代码示例。如果您正苦于以下问题:C++ GeometryNode::get_filename方法的具体用法?C++ GeometryNode::get_filename怎么用?C++ GeometryNode::get_filename使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类GeometryNode
的用法示例。
在下文中一共展示了GeometryNode::get_filename方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: update_ubershader_from_scene
void GBufferPass::update_ubershader_from_scene(SerializedScene const& scene,
SceneGraph const& graph) {
bool ubershader_available = true;
for (auto const& geometry_pair : scene.geometrynodes_) {
ubershader_available =
ubershader_available && ubershaders_.count(geometry_pair.first);
}
if (!ubershader_available) {
auto get_ubershader = [&](Node * n) {
GeometryNode* geode = dynamic_cast<GeometryNode*>(n);
if (geode) {
std::type_index type(typeid(*geode));
if (!ubershaders_.count(type)) {
auto const& ressource =
GeometryDatabase::instance()->lookup(geode->get_filename());
if (ressource) {
auto ubershader = ressource->get_ubershader();
ubershader->create(materials_);
ubershaders_[type] = ubershader;
}
}
}
}
;
gua::dfs_traverse(graph.get_root().get(), get_ubershader);
}
}