<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=koi8-r">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Helvetica,sans-serif;" dir="ltr">
<div>Hi Andreas,</div>
<div><br>
</div>
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.
<div>
<div style="font-family: Calibri, Helvetica, sans-serif, Helvetica, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
<br>
</div>
<div style="font-family: Calibri, Helvetica, sans-serif, Helvetica, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
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...</div>
<div style="font-family: Calibri, Helvetica, sans-serif, Helvetica, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
<br>
</div>
<div><br>
</div>
For now h<span style="font-size: 12pt;">ere is my recommendation, re-create your scene.</span>
<div><br>
</div>
<div>- Create a new render window</div>
<div>- Create a new renderer</div>
<div>- Get all actors in the renderer,  and for each actor:</div>
<div>- Create a new actor</div>
<div>- Create a new mapper</div>
<div>- Set the new mapper to the new actor</div>
<div>- Get the input connection source of the mapper and set it to the new mapper</div>
<div><span style="font-size: 12pt;">- Copy the actor's rendering property to the new actor</span></div>
<div><span style="font-size: 12pt;">- Set the user transform of the old actor to the new actor.</span></div>
<div><span style="font-size: 12pt;"><br>
</span></div>
<div><span style="font-size: 12pt;">Set the active camera from y9our old renderer to new renderer</span></div>
<div><br>
</div>
<div>Copy the lights too if necessary</div>
<div><br>
</div>
<div></div>
<div><span style="font-size: 12pt;">I think that is it!</span></div>
<div><br>
</div>
<div></div>
</div>
</div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> vtkusers <vtkusers-bounces@public.kitware.com> on behalf of Andreas Buykx <A.Buykx@dianafea.com><br>
<b>Sent:</b> July 9, 2018 3:42:27 AM<br>
<b>To:</b> 'vtkusers@public.kitware.com'<br>
<b>Subject:</b> [vtkusers] offscreen rendering from gui application in vtk8/opengl2</font>
<div> </div>
</div>
<meta content="text/html; charset=koi8-r">
<meta name="x_Generator" content="Microsoft Word 15 (filtered medium)">
<style>
<!--
@font-face
        {font-family:"Cambria Math"}
@font-face
        {font-family:Calibri}
p.x_MsoNormal, li.x_MsoNormal, div.x_MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif}
a:x_link, span.x_MsoHyperlink
        {color:blue;
        text-decoration:underline}
a:x_visited, span.x_MsoHyperlinkFollowed
        {color:purple;
        text-decoration:underline}
span.x_EmailStyle17
        {font-family:"Calibri",sans-serif;
        color:windowtext}
.x_MsoChpDefault
        {font-family:"Calibri",sans-serif}
@page WordSection1
        {margin:70.85pt 70.85pt 70.85pt 70.85pt}
div.x_WordSection1
        {}
-->
</style>
<div lang="NL" link="blue" vlink="purple">
<div class="x_WordSection1">
<p class="x_MsoNormal"><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></p>
<p class="x_MsoNormal"><span lang="EN-US"> </span></p>
<p class="x_MsoNormal"><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></p>
<p class="x_MsoNormal"><span lang="EN-US">With vtk8.1 and OpenGL2 this causes OpenGL errors.</span></p>
<p class="x_MsoNormal"><span lang="EN-US"> </span></p>
<p class="x_MsoNormal"><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></p>
<p class="x_MsoNormal"><span lang="EN-US"> </span></p>
<p class="x_MsoNormal"><span lang="EN-US">ERROR: In path-to/VTK-master/Rendering/OpenGL2/vtkOpenGLPolyDataMapper.cxx, line 1814</span></p>
<p class="x_MsoNormal"><span lang="EN-US">vtkOpenGLPolyDataMapper (0x273dc00): failed after UpdateShader 1 OpenGL errors detected</span></p>
<p class="x_MsoNormal"><span lang="EN-US">  0 : (1282) Invalid operation</span></p>
<p class="x_MsoNormal"><span lang="EN-US"> </span></p>
<p class="x_MsoNormal"><span lang="EN-US">When the script is run with a global off-screen render window things work out fine.
</span></p>
<p class="x_MsoNormal"><span lang="EN-US"> </span></p>
<p class="x_MsoNormal"><span lang="EN-US">Is my approach wrong (temporary render window, moving renderers to it temporarily) or is this a bug?</span></p>
<p class="x_MsoNormal"><span lang="EN-US"> </span></p>
<p class="x_MsoNormal"><span lang="EN-US">Thanks for your help!</span></p>
<p class="x_MsoNormal"><span lang="EN-US"> </span></p>
<p class="x_MsoNormal"><b><span lang="EN-US" style="font-size:10.0pt; font-family:"Arial",sans-serif; color:#C00000">DIANA FEA BV
</span></b></p>
<p class="x_MsoNormal"><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></p>
<p class="x_MsoNormal"><span lang="EN-US" style="font-size:10.0pt; font-family:"Arial",sans-serif"> </span></p>
<p class="x_MsoNormal"><span lang="EN-US" style="font-size:9.0pt; font-family:"Arial",sans-serif">Delftechpark 19a, 2628XJ, Delft, The Netherlands</span></p>
<p class="x_MsoNormal"><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></p>
<p class="x_MsoNormal"><span lang="EN-US" style="font-size:9.0pt; font-family:"Arial",sans-serif"><a href="http://dianafea.com/"><span style="color:blue">http://dianafea.com</span></a>
</span></p>
<p class="x_MsoNormal"> </p>
</div>
</div>
</body>
</html>