[vtk-developers] [VTK 0011912]: vtkXOpenGLRenderWindow: blank window appears in off-screen rendering mode

Mantis Bug Tracker mantis at public.kitware.com
Tue Mar 1 08:11:57 EST 2011


The following issue has been SUBMITTED. 
====================================================================== 
http://www.vtk.org/Bug/view.php?id=11912 
====================================================================== 
Reported By:                Sergey Slyadnev
Assigned To:                
====================================================================== 
Project:                    VTK
Issue ID:                   11912
Category:                   (No Category)
Reproducibility:            always
Severity:                   minor
Priority:                   normal
Status:                     new
====================================================================== 
Date Submitted:             2011-03-01 08:11 EST
Last Modified:              2011-03-01 08:11 EST
====================================================================== 
Summary:                    vtkXOpenGLRenderWindow: blank window appears in
off-screen rendering mode
Description: 
Tests were performed on Red Hat 5.5 (64bit) with VTK 5.6.1. 

I've tried to enable the off-screen rendering mode on both Windows & Linux
platforms with vtkRenderWindow::SetOffScreenRendering() method. While it works
properly on Windows, the blank rendering window is surprisingly displayed on
Linux.

Here is my sample code:

==========================================================================
vtkSmartPointer<vtkRenderWindow> aRenderWindow =
  vtkSmartPointer<vtkRenderWindow>::New();
vtkSmartPointer<vtkRenderer> aRenderer = 
  vtkSmartPointer<vtkRenderer>::New();
aRenderWindow->AddRenderer(aRenderer);

aRenderWindow->SetOffScreenRendering(1);
aRenderWindow->SetSize(600, 600);

vtkSmartPointer<vtkCamera> aCamera = aRenderer->GetActiveCamera();
aCamera->ParallelProjectionOn();
aCamera->SetPosition(1.0, 1.0, 1.0);
aRenderer->ResetCamera();

vtkSmartPointer<vtkActor> anActor = vtkSmartPointer<vtkActor>::New();
vtkSmartPointer<vtkPolyDataMapper> aMapper = 
  vtkSmartPointer<vtkPolyDataMapper>::New();
vtkSmartPointer<vtkSphereSource> aSphereSource = 
  vtkSmartPointer<vtkSphereSource>::New();
aMapper->SetInput( aSphereSource->GetOutput() );
anActor->SetMapper(aMapper);
aRenderer->AddActor(anActor);

vtkSmartPointer<vtkPNGWriter> aPNGWriter = 
  vtkSmartPointer<vtkPNGWriter>::New();
vtkSmartPointer<vtkWindowToImageFilter> aWinToImageFilter = 
  vtkSmartPointer<vtkWindowToImageFilter>::New();

aWinToImageFilter->SetInput(aRenderWindow);
aWinToImageFilter->SetInputBufferTypeToRGB();
aWinToImageFilter->SetMagnification(1);
aWinToImageFilter->ShouldRerenderOn();
aWinToImageFilter->Update();

aPNGWriter->SetInput( aWinToImageFilter->GetOutput() );
aPNGWriter->SetFileName("sphere_output.png");
aPNGWriter->Write(); 
==========================================================================

It seems like there is a problem in vtkXOpenGLRenderWindow, line
http://www.vtk.org/Bug/view.php?id=643:

=================================================
if(this->OwnWindow)
{
  ...
  XMapWindow(this->DisplayId, this->WindowId);
  ...
=================================================

This code is executed even in the off-screen rendering mode. I've used the
following patch to prevent the window from mapping:

=================================================
if(this->OwnWindow !this->OffScreenRendering)
{
  ...
  XMapWindow(this->DisplayId, this->WindowId);
  ...
=================================================

I resolves the problem with the blank window. Do you think it is possible to
apply that patch on future versions of VTK?
====================================================================== 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2011-03-01 08:11 Sergey SlyadnevNew Issue                                    
======================================================================




More information about the vtk-developers mailing list