Dirk Reiners ha scritto: > Hi Marco, > > Marco Spoerl wrote: >> In my application (based on OpenSG 1.8), I use a single FBOViewport with >> changing TextureChunks. Which should be pretty much like a solution >> mentioned here: >> >> http://www.mail-archive.com/[email protected]/msg08847.html >> >> My FBOViewport is created as follows: >> >> // ----- >> m_pViewportPass2 = OSG::FBOViewport::create(); >> OSG::beginEditCP(m_pViewportPass2); >> m_pViewportPass2->setParent(pWindow); >> m_pViewportPass2->setRoot(pRootNode); >> m_pViewportPass2->setBackground(pBackground); >> m_pViewportPass2->setCamera(pCamera); >> m_pViewportPass2->setSize(0, 0, m_width - 1, m_height - 1); >> m_pViewportPass2->setStorageWidth(m_width); >> m_pViewportPass2->setStorageHeight(m_height); >> m_pViewportPass2->setGenCubemaps(false); >> m_pViewportPass2->setGenDepthmaps(false); >> m_pViewportPass2->setFboOn(true); >> m_pViewportPass2->setDirty(true); >> OSG::endEditCP(m_pViewportPass2); >> // ----- >> >> Each time I use that viewport to grab something, the following code is >> executed: >> >> // ----- >> OSG::beginEditCP(m_pViewportPass2); >> m_pViewportPass2->getTextures().push_back(pTexture); >> OSG::endEditCP(m_pViewportPass2); >> >> m_pViewportPass2->render(pAction); >> >> OSG::beginEditCP(m_pViewportPass2); >> m_pViewportPass2->getTextures().clear(); >> OSG::endEditCP(m_pViewportPass2); >> // ----- >> >> This leads to a massive memory leak. Each call to "render" allocates a >> block roughly the size of the image attached to "pTexture", which is >> never freed again. >> >> After narrowing down the problem to the changing textures, I tried to >> attach only one single fixed texture chunk, which eliminates the memory >> issue. But then I have the problem that I don't get any of the image >> data I need (to save to a file), i.e. I only get black textures. To get >> the rendered image out of the FBO and into the "pTexture", I tried both >> solutions from >> >> http://www.mail-archive.com/[email protected]/msg08846.html >> >> with and without setFboOn and setReadBuffer. >> >> Any hints how to get the data I need without the leaks? >> > Hm. Can you try to explicitly delete the textures (i.e. loop over the > getTextures() array and subRef each of them)? That shouldn't be > necessary, but it's the only thing I can think of. > > Yours > > Dirk
yes... it is the same thing that happens with chunks in chunkmaterials, as described in the "memleak tutorial", now accessible from google cache: http://209.85.135.104/search?q=cache:EDGd29vUxVcJ:opensg.vrsource.org/trac/wiki/Tutorial/OpenSG1/Memleak+opensg+memleak+tutorial&hl=it&ct=clnk&cd=1&gl=it cheers francesco ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ Opensg-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/opensg-users
