Hi,
I cut an image in 16*16 bitmap files (12M each). I want to put one by one in an 
osg::texture2d, after use, I want to unload it just after (to avoid trouble 
with memory). 

My code is :
[code]
std::pair<int, int> XY = std::make_pair(ix, iy);
osg::StateSet* p_stateSet = geode->getOrCreateStateSet();
osg::Texture2D* texture = new osg::Texture2D();
texture->setWrap(osg::Texture2D::WRAP_S,osg::Texture2D::REPEAT);
texture->setWrap(osg::Texture2D::WRAP_T,osg::Texture2D::REPEAT);
std::string fileImg = p_mapXYImgFileName.at(XY);

texture->setImage(osgDB::readImageFile(fileImg, p_option));
        
p_stateSet->setTextureAttributeAndModes(0,texture,osg::StateAttribute::ON);
        geode->setStateSet(p_stateSet);
p_stateSet->releaseGLObjects();
[/code]

2 questions :
1. because I cannot call texure2d destructor (same for stateset), am I right to 
try to free memory with releaseGLObjects? (my computer don't want to manage 
with 2Gb of data loaded)

2.After iterations on X, Y (not always the same number), I go a bad allocation 
error on the texture->setimage()... 
[code]
Exception Microsoft C++ : std::bad_alloc à l'emplacement mémoire 0x0019c54c.
bad allocation
[/code]

Have you got an idea? some wayround?

Thank you!

Cheers,
Nat

------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=55454#55454





_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to