<div dir="ltr">Another option might be to try switching to offscreen on your main render window then switching it back to onscreen. I think the method is SetUseOffscreenBuffers.  Then you don't have to copy any actors etc. That might do the trick for you.</div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jul 9, 2018 at 7:38 AM, Patrick Bergeron <span dir="ltr"><<a href="mailto:pbergeron@spiria.com" target="_blank">pbergeron@spiria.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">



<div dir="auto">
The new OpenGL backend simply works differently than before. 
<div><br>
</div>
<div>The other thing you can try is to debug vtk to try to detect a context change and to re-initialize the graphics resources. </div>
<div><br>
</div>
<div>So when you switch Graphics contexts, they get destroyed and re created.</div>
<div><br>
</div>
<div>You may try this with shaders first since it is your immediate problem. But I might expect you’d have to do it with textures too at least. </div>
<div><br>
</div>
<div>Another way to get around it is to render into a different render target and read the contents of the image (if you can do with the same rendered size) by using a frame buffer object. </div>
<div><br>
</div>
<div><br>
<div id="m_-7393333181499250087AppleMailSignature">Sent from my iPhone</div>
<div><br>
On Jul 9, 2018, at 07:23, Andreas Buykx <<a href="mailto:A.Buykx@dianafea.com" target="_blank">A.Buykx@dianafea.com</a>> wrote:<br>
<br>
</div>
<blockquote type="cite">
<div>


<div class="m_-7393333181499250087WordSection1">
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">I had hoped I would not get this advice as it’s rather painful : we have heaps of actors and mappers with associated properties.
<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">This used to work before, was that a lucky accident?<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u> <u></u></span></p>
<div style="border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm 4.0pt">
<div>
<div style="border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif"> Patrick Bergeron <<a href="mailto:pbergeron@spiria.com" target="_blank">pbergeron@spiria.com</a>>
<br>
<b>Sent:</b> maandag 9 juli 2018 1:15<br>
<b>To:</b> Andreas Buykx <<a href="mailto:A.Buykx@dianafea.com" target="_blank">A.Buykx@dianafea.com</a>>; '<a href="mailto:vtkusers@public.kitware.com" target="_blank">vtkusers@public.kitware.com</a>' <<a href="mailto:vtkusers@public.kitware.com" target="_blank">vtkusers@public.kitware.com</a>><br>
<b>Subject:</b> Re: offscreen rendering from gui application in vtk8/opengl2<u></u><u></u></span></p>
</div>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
<div id="m_-7393333181499250087divtagdefaultwrapper">
<div>
<p class="MsoNormal"><span style="font-family:"Calibri",sans-serif;color:black">Hi Andreas,<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:"Calibri",sans-serif;color:black"><u></u> <u></u></span></p>
</div>
<p class="MsoNormal"><span style="font-family:"Calibri",sans-serif;color:black">The actors and mappers use OpenGL resources that belong to an OpenGL context, but not all can be shared across multiple OpenGL contexts, especially if one context is software OpenGL
 (mesaGL?) and the other is not. <u></u><u></u></span></p>
<div>
<div>
<p class="MsoNormal"><span style="font-family:"Calibri",sans-serif;color:black"><u></u> <u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:"Calibri",sans-serif;color:black">Maybe VTK should have a way to clone the renderer and all its contents to do this automatically, or find a way to share shaders across contexts too...<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:"Calibri",sans-serif;color:black"><u></u> <u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:"Calibri",sans-serif;color:black"><u></u> <u></u></span></p>
</div>
<p class="MsoNormal"><span style="font-family:"Calibri",sans-serif;color:black">For now here is my recommendation, re-create your scene.
<u></u><u></u></span></p>
<div>
<p class="MsoNormal"><span style="font-family:"Calibri",sans-serif;color:black"><u></u> <u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:"Calibri",sans-serif;color:black">- Create a new render window<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:"Calibri",sans-serif;color:black">- Create a new renderer<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:"Calibri",sans-serif;color:black">- Get all actors in the renderer,  and for each actor:<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:"Calibri",sans-serif;color:black">- Create a new actor<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:"Calibri",sans-serif;color:black">- Create a new mapper<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:"Calibri",sans-serif;color:black">- Set the new mapper to the new actor<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:"Calibri",sans-serif;color:black">- Get the input connection source of the mapper and set it to the new mapper<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:"Calibri",sans-serif;color:black">- Copy the actor's rendering property to the new actor<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:"Calibri",sans-serif;color:black">- Set the user transform of the old actor to the new actor.<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:"Calibri",sans-serif;color:black"><u></u> <u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:"Calibri",sans-serif;color:black">Set the active camera from y9our old renderer to new renderer<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:"Calibri",sans-serif;color:black"><u></u> <u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:"Calibri",sans-serif;color:black">Copy the lights too if necessary<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:"Calibri",sans-serif;color:black"><u></u> <u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:"Calibri",sans-serif;color:black">I think that is it!<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:"Calibri",sans-serif;color:black"><u></u> <u></u></span></p>
</div>
</div>
</div>
<div class="MsoNormal" align="center" style="text-align:center">
<hr size="2" width="98%" align="center">
</div>
<div id="m_-7393333181499250087divRplyFwdMsg">
<p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:black">From:</span></b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:black"> vtkusers <<a href="mailto:vtkusers-bounces@public.kitware.com" target="_blank">vtkusers-bounces@public.<wbr>kitware.com</a>>
 on behalf of Andreas Buykx <<a href="mailto:A.Buykx@dianafea.com" target="_blank">A.Buykx@dianafea.com</a>><br>
<b>Sent:</b> July 9, 2018 3:42:27 AM<br>
<b>To:</b> '<a href="mailto:vtkusers@public.kitware.com" target="_blank">vtkusers@public.kitware.com</a>'<br>
<b>Subject:</b> [vtkusers] offscreen rendering from gui application in vtk8/opengl2</span>
<u></u><u></u></p>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class="m_-7393333181499250087xmsonormal"><span lang="EN-US">We recently switched our FEA application from vtk7.1 and the OpenGL backend to using 8.1 and the new OpenGL2 backend.
</span><u></u><u></u></p>
<p class="m_-7393333181499250087xmsonormal"><span lang="EN-US"> </span><u></u><u></u></p>
<p class="m_-7393333181499250087xmsonormal"><span lang="EN-US">With 7.1 we could make off-screen images from the gui application using a
<i>temporary</i> off-screen render window, temporarily moving renderers from the GUI render window to the off-screen render window, render the image and then move all renderers back to the GUI render window.
</span><u></u><u></u></p>
<p class="m_-7393333181499250087xmsonormal"><span lang="EN-US">With vtk8.1 and OpenGL2 this causes OpenGL errors.</span><u></u><u></u></p>
<p class="m_-7393333181499250087xmsonormal"><span lang="EN-US"> </span><u></u><u></u></p>
<p class="m_-7393333181499250087xmsonormal"><span lang="EN-US">I reproduced this with the attached script which on vtk8.1.1 and the current head leads to an openGL error:
</span><u></u><u></u></p>
<p class="m_-7393333181499250087xmsonormal"><span lang="EN-US"> </span><u></u><u></u></p>
<p class="m_-7393333181499250087xmsonormal"><span lang="EN-US">ERROR: In path-to/VTK-master/Rendering/<wbr>OpenGL2/<wbr>vtkOpenGLPolyDataMapper.cxx, line 1814</span><u></u><u></u></p>
<p class="m_-7393333181499250087xmsonormal"><span lang="EN-US">vtkOpenGLPolyDataMapper (0x273dc00): failed after UpdateShader 1 OpenGL errors detected</span><u></u><u></u></p>
<p class="m_-7393333181499250087xmsonormal"><span lang="EN-US">  0 : (1282) Invalid operation</span><u></u><u></u></p>
<p class="m_-7393333181499250087xmsonormal"><span lang="EN-US"> </span><u></u><u></u></p>
<p class="m_-7393333181499250087xmsonormal"><span lang="EN-US">When the script is run with a global off-screen render window things work out fine.
</span><u></u><u></u></p>
<p class="m_-7393333181499250087xmsonormal"><span lang="EN-US"> </span><u></u><u></u></p>
<p class="m_-7393333181499250087xmsonormal"><span lang="EN-US">Is my approach wrong (temporary render window, moving renderers to it temporarily) or is this a bug?</span><u></u><u></u></p>
<p class="m_-7393333181499250087xmsonormal"><span lang="EN-US"> </span><u></u><u></u></p>
<p class="m_-7393333181499250087xmsonormal"><span lang="EN-US">Thanks for your help!</span><u></u><u></u></p>
<p class="m_-7393333181499250087xmsonormal"><span lang="EN-US"> </span><u></u><u></u></p>
<p class="m_-7393333181499250087xmsonormal"><b><span lang="EN-US" style="font-size:10.0pt;font-family:"Arial",sans-serif;color:#c00000">DIANA FEA BV
</span></b><u></u><u></u></p>
<p class="m_-7393333181499250087xmsonormal"><i><span lang="EN-US" style="font-size:8.0pt;font-family:"Arial",sans-serif">Software Developers and Analysis Consultants for Civil and Geotechnical Engineering
</span></i><u></u><u></u></p>
<p class="m_-7393333181499250087xmsonormal"><span lang="EN-US" style="font-size:10.0pt;font-family:"Arial",sans-serif"> </span><u></u><u></u></p>
<p class="m_-7393333181499250087xmsonormal"><span lang="EN-US" style="font-size:9.0pt;font-family:"Arial",sans-serif">Delftechpark 19a, 2628XJ, Delft, The Netherlands</span><u></u><u></u></p>
<p class="m_-7393333181499250087xmsonormal"><span lang="EN-US" style="font-size:9.0pt;font-family:"Arial",sans-serif">Tel: +31 88 34262 15 (Direct) │ Tel: +31 88 34262 00 (Switchboard) │ Fax: +31 88 34262 99</span><u></u><u></u></p>
<p class="m_-7393333181499250087xmsonormal"><span lang="EN-US" style="font-size:9.0pt;font-family:"Arial",sans-serif"><a href="http://dianafea.com/" target="_blank">http://dianafea.com</a>
</span><u></u><u></u></p>
<p class="m_-7393333181499250087xmsonormal"> <u></u><u></u></p>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</div>

<br>______________________________<wbr>_________________<br>
Powered by <a href="http://www.kitware.com" rel="noreferrer" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" rel="noreferrer" target="_blank">http://www.kitware.com/<wbr>opensource/opensource.html</a><br>
<br>
Please keep messages on-topic and check the VTK FAQ at: <a href="http://www.vtk.org/Wiki/VTK_FAQ" rel="noreferrer" target="_blank">http://www.vtk.org/Wiki/VTK_<wbr>FAQ</a><br>
<br>
Search the list archives at: <a href="http://markmail.org/search/?q=vtkusers" rel="noreferrer" target="_blank">http://markmail.org/search/?q=<wbr>vtkusers</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="https://public.kitware.com/mailman/listinfo/vtkusers" rel="noreferrer" target="_blank">https://public.kitware.com/<wbr>mailman/listinfo/vtkusers</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div>Ken Martin PhD<div>Distinguished Engineer<br><span style="font-size:12.8px">Kitware Inc.</span><br></div><div>101 East Weaver Street<br>Carrboro, North Carolina<br>
27510 USA<br><br><div><span style="font-size:10pt;font-family:Tahoma,sans-serif">This communication,
including all attachments, contains confidential and legally privileged
information, and it is intended only for the use of the addressee.  Access to this email by anyone else is
unauthorized. If you are not the intended recipient, any disclosure, copying,
distribution or any action taken in reliance on it is prohibited and may be
unlawful. If you received this communication in error please notify us
immediately and destroy the original message. 
Thank you.</span></div></div></div></div></div></div></div>
</div>