diff --git a/src/functionObjects/graphics/runTimePostProcessing/runTimePostProcessing.C b/src/functionObjects/graphics/runTimePostProcessing/runTimePostProcessing.C index 8d0deb0e2b42747c8f57e877337a3c357609657e..128caf72553e92bdaad44d50d8bf53620e7e88c8 100644 --- a/src/functionObjects/graphics/runTimePostProcessing/runTimePostProcessing.C +++ b/src/functionObjects/graphics/runTimePostProcessing/runTimePostProcessing.C @@ -42,15 +42,14 @@ License #include "vtkSmartPointer.h" #include "vtkLight.h" +#include "vtkDummyController.h" + #ifdef FOAM_USING_VTK_MPI # include "vtkMPICommunicator.h" # include "vtkMPIController.h" +# include "vtkCompositedSynchronizedRenderers.h" +# include "vtkSynchronizedRenderWindows.h" #endif -#include "vtkDummyController.h" - -#include "vtkSynchronizedRenderWindows.h" -#include "vtkCompositedSynchronizedRenderers.h" - // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // @@ -137,27 +136,21 @@ void Foam::functionObjects::runTimePostProcessing::render Log << name() << " render" << endl; } - - // Normal rendering elements - vtkSmartPointer<vtkRenderer> renderer; - vtkSmartPointer<vtkRenderWindow> renderWindow; - - // Multi-process synchronization - vtkSmartPointer<vtkSynchronizedRenderWindows> syncWindows; - vtkSmartPointer<vtkCompositedSynchronizedRenderers> syncRenderers; - - // Disable any floating point trapping // (some low-level rendering functionality does not like it) sigFpe::ignore sigFpeHandling; //<- disable in local scope + // Normal rendering elements + vtkSmartPointer<vtkRenderer> renderer; + vtkSmartPointer<vtkRenderWindow> renderWindow; + // Initialise render window if (controller || Pstream::master()) { - renderWindow = vtkSmartPointer<vtkRenderWindow>::New(); renderer = vtkSmartPointer<vtkRenderer>::New(); + renderWindow = vtkSmartPointer<vtkRenderWindow>::New(); renderWindow->OffScreenRenderingOn(); renderWindow->SetSize(output_.width_, output_.height_); @@ -174,15 +167,22 @@ void Foam::functionObjects::runTimePostProcessing::render renderWindow->AddRenderer(renderer); } - // Synchronization + + // --------------------- + #ifdef FOAM_USING_VTK_MPI + + // Multi-process synchronization + vtkSmartPointer<vtkCompositedSynchronizedRenderers> syncRenderers; + vtkSmartPointer<vtkSynchronizedRenderWindows> syncWindows; + if (controller) { - syncWindows = - vtkSmartPointer<vtkSynchronizedRenderWindows>::New(); - syncRenderers = vtkSmartPointer<vtkCompositedSynchronizedRenderers>::New(); + syncWindows = + vtkSmartPointer<vtkSynchronizedRenderWindows>::New(); + syncWindows->SetRenderWindow(renderWindow); syncWindows->SetParallelController(controller); syncWindows->SetIdentifier(1); @@ -193,7 +193,7 @@ void Foam::functionObjects::runTimePostProcessing::render syncRenderers->SetRenderer(renderer); syncRenderers->SetParallelController(controller); } - + #endif // --------------------- scene_.initialise(renderer, output_.name_);