osg学习(十九)osg的线程模型及其确定

本文详细探讨了osg程序启动时如何选择和配置线程模型,揭示了其在多线程环境下的工作原理。
摘要由CSDN通过智能技术生成

在启动osg程序时会确定使用什么线程模型

osgViewer/ViewBase.cpp
ViewerBase::ThreadingModel ViewerBase::suggestBestThreadingModel()
{
    std::string str;
    if (osg::getEnvVar("OSG_THREADING", str))
    {
        if (str=="SingleThreaded") return SingleThreaded;
        else if (str=="CullDrawThreadPerContext") return CullDrawThreadPerContext;
        else if (str=="DrawThreadPerContext") return DrawThreadPerContext;
        else if (str=="CullThreadPerCameraDrawThreadPerContext") return CullThreadPerCameraDrawThreadPerContext;
    }

    Contexts contexts;
    getContexts(contexts);

    if (contexts.empty()) return SingleThreaded;

#if 0
    // temporary hack to disable multi-threading under Windows till we find good solutions for
    // cras
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值