本文整理汇总了C++中context_guard函数的典型用法代码示例。如果您正苦于以下问题:C++ context_guard函数的具体用法?C++ context_guard怎么用?C++ context_guard使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了context_guard函数的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: context_guard
void madara::knowledge::containers::FlexMap::set_name(
const std::string& var_name, KnowledgeBase& knowledge)
{
if (context_ != &(knowledge.get_context()) || name_ != var_name)
{
context_ = &(knowledge.get_context());
ContextGuard context_guard(*context_);
MADARA_GUARD_TYPE guard(mutex_);
name_ = var_name;
if (context_->exists(var_name, settings_))
{
KnowledgeUpdateSettings keep_local(true);
variable_ = context_->get_ref(var_name, keep_local);
}
else
{
// reset variable reference
variable_ = VariableReference();
}
}
}
开发者ID:jredmondson,项目名称:madara,代码行数:25,代码来源:FlexMap.cpp
示例2: result
bool madara::knowledge::containers::FlexMap::exists(
const std::string& key, bool first_level_key) const
{
bool result(false);
if (context_)
{
ContextGuard context_guard(*context_);
MADARA_GUARD_TYPE guard(mutex_);
// check if the key exists
std::string exact_key = name_ + delimiter_ + key;
result = context_->exists(exact_key);
if (!result && first_level_key)
{
std::vector<std::string> curkeys;
keys(curkeys);
std::vector<std::string>::iterator found;
// look for the key in the sub keys
found = std::find(curkeys.begin(), curkeys.end(), key);
result = found != curkeys.end();
}
}
return result;
}
开发者ID:jredmondson,项目名称:madara,代码行数:30,代码来源:FlexMap.cpp
示例3: render_sub_pass
void NormalizationSubRenderer::
render_sub_pass(Pipeline& pipe, PipelinePassDescription const& desc,
gua::plod_shared_resources& shared_resources,
std::vector<node::Node*>& sorted_models,
std::unordered_map<node::PLodNode*, std::unordered_set<lamure::node_t> >& nodes_in_frustum_per_model,
lamure::context_t context_id,
lamure::view_t lamure_view_id
) {
RenderContext const& ctx(pipe.get_context());
auto& target = *pipe.current_viewstate().target;
scm::gl::context_all_guard context_guard(ctx.render_context);
_check_for_shader_program();
assert(shader_program_);
if(!fullscreen_quad_) {
fullscreen_quad_.reset(new scm::gl::quad_geometry(ctx.render_device,
scm::math::vec2(-1.0f, -1.0f), scm::math::vec2(1.0f, 1.0f )));
}
bool write_depth = true;
target.bind(ctx, write_depth);
std::string const gpu_query_name_normalization_pass = "GPU: Camera uuid: " + std::to_string(pipe.current_viewstate().viewpoint_uuid) + " / PLodRenderer::NormalizationPass";
pipe.begin_gpu_query(ctx, gpu_query_name_normalization_pass);
shader_program_->use(ctx);
{
_upload_normalization_pass_uniforms(ctx, shared_resources);
ctx.render_context->apply();
fullscreen_quad_->draw(ctx.render_context);
}
shader_program_->unuse(ctx);
target.unbind(ctx);
pipe.end_gpu_query(ctx, gpu_query_name_normalization_pass);
}
开发者ID:AnimationInVR,项目名称:guacamole,代码行数:48,代码来源:NormalizationSubRenderer.cpp
示例4: map
madara::knowledge::containers::FlexMap madara::knowledge::containers::FlexMap::
operator[](const std::string& key)
{
FlexMap map(settings_, delimiter_);
if (key != "" && context_)
{
ContextGuard context_guard(*context_);
MADARA_GUARD_TYPE guard(mutex_);
KnowledgeBase knowledge;
knowledge.facade_for(*context_);
map.set_name(name_ + delimiter_ + key, knowledge);
}
return map;
}
开发者ID:jredmondson,项目名称:madara,代码行数:17,代码来源:FlexMap.cpp
注:本文中的context_guard函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论