|
给位前辈
请问我想用纹理更新回调的方法做定时更换图片(比如10秒换一次)。有没有这方面的例子可以参考?
另外下面是我根据FOG例子改写的。主要问题出在哪?谢谢!
此外,还想请教一个C++的问题:像这条语句ss->setUpdateCallback(new TextureCallback(image));程序会直接运行里面的operatorh成员函数,而很多类都要指定成员函数使用如ss->setUpdateCallback(xxxxxx);这是为什么呢?谢谢!
[/code]
public:
TextureCallback(osg::Image *image1):image(image1){}
virtual void operator()(osg::StateSet* ss,osg::NodeVisitor* nv)
{
double time = nv->getFrameStamp()->getReferenceTime();
if(!ss) return;
osg::Texture2D * texture = dynamic_cast<osg::Texture2D*>(ss->getAttribute(osg::StateAttribute::TEXTURE));
if(nv&&texture&&nv->getFrameStamp())
{
double time = nv->getFrameStamp()->getReferenceTime();
if(time ==10.0)texture->setImage(image);
}
}
protected:
osg::Image *image;
}; |
|