<div dir="ltr">Thanks Robert, excellent answer.<div><br></div><div>I think I have enough for a way forward now.</div><div>One small remaining question,</div><div><br></div><div>Does readRefNodeFile access GL at all for any of these file formats:".3ds",".dae",".shp",".dxf"?</div><div>Or, to put it another way, can readRefNodeFile be called safely from a std:async thread to return something containing a usable osg::Node within the main application?</div><div><br></div><div>Thanks,</div><div><br></div><div>Brian<br><br>On Tuesday, 23 June 2020 18:10:21 UTC+1, Robert Osfield  wrote:<blockquote class="gmail_quote" style="margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div>I can;t say what the leak will be from the code supply but I can say that creating a dedicated viewer, rendering a frame, then destroying really isn't an efficient way to go about generating a thumbnail image.  Rather than than debug a dubious approach I'd suggest you leave it and try another lighter weight approach.</div><div><br></div><div>The best approach is something I can't say at this point as I don't know enough about your application and your needs for generating a thumbnail.  Is it a one off activity, something you do offline, something that is done occasionally?  How to go about things depends upon your usage case.</div><div><br></div><div>As a general comment, creating an destroying objects on OpenGL and consequently the OSG is expensive.  It's far better to create once and reuse, even if you don't reuse often.</div><div><br></div><div>Also creating separate graphics context is very expensive, if you already have a graphics context then the best thing to do for offscreen rendering is to your a frame buffer object and render to texture.  This way you can minimize the amount of new GL objects being created for the task,  W.r.t running in a background thread, OpenGL isn't a multi-threaded API, you can only multi-thread with multiple graphics context with t a thread per context.  It's only really suitable for mulitple GPU tasks.  It's typically far better to just add the work to the standard frame and run it as part of your normal viewer.</div><div><br></div><div>With the OSG you can toggle on/off render to texture by setting the NodeMask of an osg::Camera.</div><div><br></div><div><br></div></blockquote></div></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups "OpenSceneGraph Users" group.<br />
To unsubscribe from this group and stop receiving emails from it, send an email to <a href="mailto:osg-users+unsubscribe@googlegroups.com">osg-users+unsubscribe@googlegroups.com</a>.<br />
To view this discussion on the web visit <a href="https://groups.google.com/d/msgid/osg-users/e44f9dff-198c-48a5-b785-795bd373cc12o%40googlegroups.com?utm_medium=email&utm_source=footer">https://groups.google.com/d/msgid/osg-users/e44f9dff-198c-48a5-b785-795bd373cc12o%40googlegroups.com</a>.<br />