# How to add multiple viewports to vtkGenericOpenGLRenderWindow

**URL:** https://discourse.vtk.org/t/how-to-add-multiple-viewports-to-vtkgenericopenglrenderwindow/393
**Category:** Support
**Created:** [March 4, 2019, 2:10pm UTC](https://discourse.vtk.org/t/how-to-add-multiple-viewports-to-vtkgenericopenglrenderwindow/393 "2019-03-04T14:10:59Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![Jay](https://discourse.vtk.org/letter_avatar_proxy/v4/letter/j/ed8c4c/32.png) [@Jay](https://discourse.vtk.org/u/Jay)
#### Post date: [March 4, 2019, 2:10pm UTC](https://discourse.vtk.org/t/how-to-add-multiple-viewports-to-vtkgenericopenglrenderwindow/393/1 "2019-03-04T14:10:59Z")

</div>

I had tried to add multiple view ports to vtkRenderWindow and was able to get  
the various viewports displayed as expected.

```
* vtkSmartPointer&lt;vtkRenderer&gt; testRendererA = 
vtkSmartPointer&lt;vtkRenderer&gt;::New(); 
            vtkSmartPointer&lt;vtkRenderer&gt; testRendererB = 
vtkSmartPointer&lt;vtkRenderer&gt;::New(); 
            vtkSmartPointer&lt;vtkRenderWindow&gt; testWindow = 
vtkSmartPointer&lt;vtkRenderWindow&gt;::New(); 
            testRendererA-&gt;AddActor(customGraphics_-&gt;overtube_model); 
            testRendererB-&gt;AddActor(customGraphics_-&gt;overtube_model); 

            testWindow-&gt;AddRenderer(testRendererA); 
            testRendererA-&gt;SetViewport(0,0,0.5,1); 

            testWindow-&gt;AddRenderer(testRendererB); 
            testRendererB-&gt;SetViewport(0.5,0,1,1); 

            testWindow-&gt;Render();* 

```

I tried to do the same for adding the viewports to the  
vtkGenericOpenGLRenderWindow but was only able to display only one view port  
and other viewport is blank. The last added renderer was displayed and the  
previously added renderers were not displayed. In the below pseudo code  
testRendererB was displayed & testRendererA was not displayed

```
* vtkSmartPointer&lt;vtkRenderer&gt; testRendererA = 
vtkSmartPointer&lt;vtkRenderer&gt;::New(); 
            vtkSmartPointer&lt;vtkRenderer&gt; testRendererB = 
vtkSmartPointer&lt;vtkRenderer&gt;::New(); 
            vtkSmartPointer&lt;vtkGenericOpenGLRenderWindow&gt; testWindow = 
vtkSmartPointer&lt;vtkGenericOpenGLRenderWindow&gt;::New(); 
            testRendererA-&gt;AddActor(customGraphics_-&gt;overtube_model); 
            testRendererB-&gt;AddActor(customGraphics_-&gt;overtube_model); 

            testWindow-&gt;AddRenderer(testRendererA); 
            testRendererA-&gt;SetViewport(0,0,0.5,1); 

            testWindow-&gt;AddRenderer(testRendererB); 
            testRendererB-&gt;SetViewport(0.5,0,1,1); 

            testWindow-&gt;Render();* 

```

Can we add multiple viewports to vtkGenericOpenGLRenderWindow ?
