osgearth2.5 对controls Container里addControl作了修改,所有从Control 继承来的控件容器和addChild一起放在同一节点下面,不再单独放置,即addchild包括了addcontrol .但在ControlCanvas类中源码仍然使用Control* control = static_cast<Control*>( getChild(i) );control->handle(ea, aa, _context);进行强制转换,这对于不是从Control类继承来的子节点是不对的.参考源码controls.cpp中其它类并没这样使用.如.Control* c = dynamic_cast<Control*>( rowGroup->getChild(j) ); if ( c ){ c->draw( cx );} .所以解决办法 Control* control = dynamic_cast<Control*>( getChild(i) );if ( NULL == control ){continue;}
osgearth2.5 Container
最新推荐文章于 2022-04-06 22:12:16 发布