Hi Dan, It could be that UnRefImageDataAfterApply is being set to true in preprocessing of the data. Are you loading the data from an OSG native format (ive, osg, osgb, osgx,osgt) that you are previously converted from a source format? This processing may have set the UnRefImageDataAfterApply to true.
To reset the value back to false you can use the osgUtil::Optimizer::TextureVisitor, note it's constructor where you can pass in what settings you want to change and the value: class OSGUTIL_EXPORT TextureVisitor : public BaseOptimizerVisitor { public: TextureVisitor(bool changeAutoUnRef, bool valueAutoUnRef, bool changeClientImageStorage, bool valueClientImageStorage, bool changeAnisotropy, float valueAnisotropy, Optimizer* optimizer=0): BaseOptimizerVisitor(optimizer, OPTIMIZE_TEXTURE_SETTINGS), _changeAutoUnRef(changeAutoUnRef), _valueAutoUnRef(valueAutoUnRef), _changeClientImageStorage(changeClientImageStorage), _valueClientImageStorage(valueClientImageStorage), _changeAnisotropy(changeAnisotropy), _valueAnisotropy(valueAnisotropy) {} You can simply create this visitor standalone with the settings you want and apply to your scene graph. No other parts of the OSG set the UnRefImageDataAfterApply - do a search of the OSG to confirm this yourself. The other way is to simply put a breakpoint into osg::Texture::setUnRefImageDataAfterApply() to spot when and where it's being set. Robert. On 8 October 2015 at 21:40, Dan Flickinger <dmflickin...@gmail.com> wrote: > Robert, > > Thank you very much for the swift reply. Good point on switching to > PolytopeIntersector. Another part of the project is already using that for > something else. LineSegmentIntersector is finding intersections, so at > least it's assumed to work okay for now. I'll definitely switch over once I > get this piece working. > > I did find an instance of osgUtil::Optimizer in the code, and I disabled > it. The images are still dereferenced in the textures though. In checking > each texture with osg::Texture::getUnRefImageDataAfterApply(), it's still > set to true. Is there anything else that would enable this aside from > running the optimizer? > > I found where each model has its osg::Node initialized, but I'm at a loss > in pulling out references to the textures from that. (In order to call > setUnRefImageDataAfterApply() there.) Do I need to dig through the > attribute list to find a state attribute that is a texture? I'm concerned > that if I call setUnRefImageDataAfterApply() at initialization, it will > still get reset to true by something else. > > Thanks for all the help! > > Best regards, > > Dan > > ------------------ > Read this topic online here: > http://forum.openscenegraph.org/viewtopic.php?p=65330#65330 > > > > > > _______________________________________________ > osg-users mailing list > osg-users@lists.openscenegraph.org > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org >
_______________________________________________ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org