|
1.使用环境vs2013,osg3.4,oe2.8,mfc。
2.遇到的问题。
在osg初始化时加入空的osgEarth::MapNode节点(图片图层,高程数据都没有添加,即显示为白色的球)。osgEarth::Map 对象...;osgEarth::MapNode 对象...;
添加MFC菜单按钮,在菜单按钮里调用Map对象的addElevationLayer函数报错。错误的地点是addElevationLayer函数末尾的
for( MapCallbackList::iterator i = _mapCallbacks.begin(); i != _mapCallbacks.end(); i++ )
{
i->get()->onMapModelChanged( MapModelChange(
MapModelChange::ADD_ELEVATION_LAYER, newRevision, layer, index) );
}
这部分代码出错了。(根据调试出错在Group::traverse函数里报错。有个子对象的指针为空了(不知道为什么)?)。
但是,如果初始化的时候不加入MapNode节点,在MFC菜单按钮事件里
osgEarth::Map 对象....;
osgEarth::MapNode 对象...;
osgEarth::Map对象->addElevationLayer。就不会报错。
猜想是不是绘制线程与主线程引起的该错误。有没有朋友遇到过的或者知道怎么解决的。谢谢! |
|