Enrico -

is the image really empty, or a small size like 2x2?

If you're trying to save the images to files, use OSGGrabFileForeground 
instead of just plain OSGGrabForeground :


        FileGrabForegroundPtr fgp = FileGrabForeground::create();
        string s;
        s.assign("%04d.png");

        beginEditCP(fgp);
        fgp->setName(s);
        fgp->setActive(true);
        fgp->setIncrement(true);
        fgp->setAutoResize(true);
        endEditCP(fgp);

        f_worldP->getViewport()->getMFForegrounds()->push_back(fgp);
        _SLOG(f_pslog, render::util::sINFO, "Grabbing frames and saving 
to file(s) named " + fgp->getName());
        _SLOG(f_pslog, render::util::sINFO, "Expect slow performance!!!");

The FileGrabForeground automatically saves to files named, in this 
example, 0000.png, 0001.png, etc. This assumes that you have compiled 
png support into your OSG libs (jpg extension allowed, also, if you 
compiled in jpg support).

Nice thing about FileGrabForeground is that it automatically allocates 
the Image for you. The 'setAutoResize(true)' call automatically resizes 
the images saved to the window size.

**Caution** this saves one image per frame..... Don't run a long app at 
high resolution unless you have a lot of time and disk space!

One final word of caution. If running XWindows (not sure about Windows) 
you have to ensure that the window's resize() function is called once 
prior to rendering. If you're running fullscreen, that might not happen 
if you use the CONFIGURE_NOTIFY event to resize the window (e.g. by 
calling window->resize(w, h) from that event in your x event loop), 
because at fullscreen on XWindows the CONFIGURE_NOTIFY event does not 
get called! Its safe to just call window->resize(w, h) with the correct 
values - all it does is save those values in the Window object for later 
retrieval.



Dan







Enrico wrote:
> Hi opensg users,
>
>  
>
> i am working to a cluster/server application.
>
> I would like to take screenshots of what is being rendered
>
> On the remote windows,
>
> so I attached to the viewport a GrabForegroundPtr.
>
>  
>
> The problem is that when I try to save the grabbed image,
>
> it is empty. 
>
>  
>
> fgndImage->setActive(true);
>
>       m_pMgr->redraw();                              // render pass
>
> fgndImage->setActive(false);
>
>  
>
> // get foreground image
>
> beginEditCP(fgndImage, GrabForeground::ImageFieldMask);
>
>       ImagePtr img = fgndImage->getImage();
>
> endEditCP(fgndImage, GrabForeground::ImageFieldMask);
>
>  
>
> //get pixel data
>
> beginEditCP(fgndImage, Image::PixelFieldMask);
>
>       UInt8 *imageData = img->getData();
>
>       int width  = img->getWidth();
>
>       int height = img->getHeight();
>
> endEditCP(fgndImage, Image::PixelFieldMask);
>
>  
>
> Does anyone has any clue?
>
>  
>
> Thanks
>
> E.
>
>
>   
> ------------------------------------------------------------------------
>
> -------------------------------------------------------------------------
> Take Surveys. Earn Cash. Influence the Future of IT
> Join SourceForge.net's Techsay panel and you'll get the chance to share your
> opinions on IT & business topics through brief surveys - and earn cash
> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
> ------------------------------------------------------------------------
>
> _______________________________________________
> Opensg-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/opensg-users
>   

-- 
Daniel J. Sperka, Ph. D. 
UC Davis Center for Neuroscience


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Opensg-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensg-users

Reply via email to