Sukender wrote on 2012-10-31: > Hi all, > > Here is a problem to solve : how can you highlight surfaces where textures > didn't load properly (missing file, read error...)? > My first answer was to create a ReadFileCallback, and make readImage() > encapsulate "default" call. If call fails, then I return a "dummy" image (1x1 > pixel, flashy color, such as magenta). > > However this doesn't work, as readers may call readImageFile() multiple > times. Ex: > image = readImageFile(path1); > if (!image) readImageFile(path2); > if (!image) etc... > In my case, readImageFile(path1) returns either the normal image, or the > dummy one (path2 is never tested). > > I propose to add some stuff to allow a ReadFileCallback to know a bit more > about where the caller is. I'd like to know if you have any idea... Here are > mine : > 1. In all readers, call readImageFile("") in the last case (or another method > such as "Registry::readImageFileFailed()"), so that ReadFileCallback knows all > other calls failed. Just ugly, I think. > 2. In all readers, add something in the osgDB::Options structure in > their last call, for the same purpose. Ugly too. 3. Change > readImageFile() / ReadFileCallback to pass an additional parameter. > Very ulgy! 4. In all readers, add a ValueObject (or something else) to > record the fact > loading failed. This would allow post-load code to detect this info. > As you can see, I got no "clean" idea. Please help !
It seems better to just write your own visitor to traverse the scenegraph after loading to find the images that didn't load. Hope this helps, -- Bryan Thrall Principal Software Engineer FlightSafety International bryan.thr...@flightsafety.com _______________________________________________ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org