VTK
vtkSynchronizedRenderWindows.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: $RCSfile$
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
26 #ifndef vtkSynchronizedRenderWindows_h
27 #define vtkSynchronizedRenderWindows_h
28 
29 #include "vtkRenderingParallelModule.h" // For export macro
30 #include "vtkObject.h"
31 
32 class vtkRenderWindow;
34 class vtkCommand;
36 
38 {
39 public:
42  void PrintSelf(ostream& os, vtkIndent indent);
43 
45 
51 
53 
58 
60 
69  void SetIdentifier(unsigned int id);
70  vtkGetMacro(Identifier, unsigned int);
72 
74 
77  vtkSetMacro(ParallelRendering, bool);
78  vtkGetMacro(ParallelRendering, bool);
79  vtkBooleanMacro(ParallelRendering, bool);
81 
82  // Turns on/off render event propagation. When on (the default) and
83  // ParallelRendering is on, process 0 will send an RMI call to all remote
84  // processes to perform a synchronized render. When off, render must be
85  // manually called on each process.
86  vtkSetMacro(RenderEventPropagation, bool);
87  vtkGetMacro(RenderEventPropagation, bool);
88  vtkBooleanMacro(RenderEventPropagation, bool);
89 
92  virtual void AbortRender();
93 
95 
99  vtkSetMacro(RootProcessId, int);
100  vtkGetMacro(RootProcessId, int);
102 
103 //BTX
104  enum
105  {
106  SYNC_RENDER_TAG = 15001,
107  };
108 protected:
111 
113  {
114  int WindowSize[2];
115  int TileScale[2];
116  double TileViewport[4];
118 
119  // Save/restore the struct to/from a stream.
124  };
125 
126  // These methods are called on all processes as a consequence of corresponding
127  // events being called on the render window.
128  virtual void HandleStartRender();
129  virtual void HandleEndRender() {}
130  virtual void HandleAbortRender() {}
131 
132  virtual void MasterStartRender();
133  virtual void SlaveStartRender();
134 
135  unsigned int Identifier;
139 
142 
143 private:
145  void operator=(const vtkSynchronizedRenderWindows&); // Not implemented.
146 
147  class vtkObserver;
148  vtkObserver* Observer;
149  friend class vtkObserver;
150 //ETX
151 };
152 
153 #endif
154 
155 
vtkSynchronizedRenderWindows::New
static vtkSynchronizedRenderWindows * New()
vtkCommand
superclass for callback/observer methods
Definition: vtkCommand.h:326
vtkSynchronizedRenderWindows::RenderEventPropagation
bool RenderEventPropagation
Definition: vtkSynchronizedRenderWindows.h:137
vtkGetObjectMacro
#define vtkGetObjectMacro(name, type)
Definition: vtkSetGet.h:232
vtkSynchronizedRenderWindows::RenderWindowInfo::CopyFrom
void CopyFrom(vtkRenderWindow *)
vtkSynchronizedRenderWindows::HandleAbortRender
virtual void HandleAbortRender()
Definition: vtkSynchronizedRenderWindows.h:130
vtkSynchronizedRenderWindows::RootProcessId
int RootProcessId
Definition: vtkSynchronizedRenderWindows.h:138
vtkSynchronizedRenderWindows::ParallelController
vtkMultiProcessController * ParallelController
Definition: vtkSynchronizedRenderWindows.h:141
vtkSynchronizedRenderWindows::SetRenderWindow
void SetRenderWindow(vtkRenderWindow *)
vtkSynchronizedRenderWindows::HandleEndRender
virtual void HandleEndRender()
Definition: vtkSynchronizedRenderWindows.h:129
vtkMultiProcessStream
stream used to pass data across processes using vtkMultiProcessController.
Definition: vtkMultiProcessStream.h:40
vtkTypeMacro
#define vtkTypeMacro(thisClass, superclass)
Definition: vtkSetGet.h:642
vtkgl::stream
GLuint GLuint stream
Definition: vtkgl.h:14154
vtkObject
abstract base class for most VTK objects
Definition: vtkObject.h:62
vtkSynchronizedRenderWindows::~vtkSynchronizedRenderWindows
~vtkSynchronizedRenderWindows()
vtkSynchronizedRenderWindows::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent)
vtkRenderingParallelModule.h
vtkSynchronizedRenderWindows::HandleStartRender
virtual void HandleStartRender()
vtkSynchronizedRenderWindows::AbortRender
virtual void AbortRender()
vtkSynchronizedRenderWindows::RenderWindowInfo::Save
void Save(vtkMultiProcessStream &stream)
vtkSynchronizedRenderWindows::MasterStartRender
virtual void MasterStartRender()
vtkSynchronizedRenderWindows::SetParallelController
void SetParallelController(vtkMultiProcessController *)
vtkMultiProcessController
Multiprocessing communication superclass.
Definition: vtkMultiProcessController.h:85
vtkSynchronizedRenderWindows::ParallelRendering
bool ParallelRendering
Definition: vtkSynchronizedRenderWindows.h:136
VTKRENDERINGPARALLEL_EXPORT
#define VTKRENDERINGPARALLEL_EXPORT
Definition: vtkRenderingParallelModule.h:15
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkSynchronizedRenderWindows::RenderWindowInfo
Definition: vtkSynchronizedRenderWindows.h:113
vtkGetMacro
#define vtkGetMacro(name, type)
Definition: vtkSetGet.h:93
vtkSynchronizedRenderWindows::SlaveStartRender
virtual void SlaveStartRender()
vtkSynchronizedRenderWindows::Identifier
unsigned int Identifier
Definition: vtkSynchronizedRenderWindows.h:135
vtkSynchronizedRenderWindows::RenderWindowInfo::Restore
bool Restore(vtkMultiProcessStream &stream)
vtkObject.h
vtkBooleanMacro
vtkBooleanMacro(IgnoreDriverBugs, bool)
vtkSynchronizedRenderWindows
synchronizes render windows across processess.
Definition: vtkSynchronizedRenderWindows.h:38
vtkSetMacro
vtkSetMacro(IgnoreDriverBugs, bool)
vtkSynchronizedRenderWindows::RenderWindowInfo::DesiredUpdateRate
double DesiredUpdateRate
Definition: vtkSynchronizedRenderWindows.h:117
vtkRenderWindow
create a window for renderers to draw into
Definition: vtkRenderWindow.h:89
vtkSynchronizedRenderWindows::vtkSynchronizedRenderWindows
vtkSynchronizedRenderWindows()
vtkSynchronizedRenderWindows::RenderWindow
vtkRenderWindow * RenderWindow
Definition: vtkSynchronizedRenderWindows.h:140
vtkSynchronizedRenderWindows::RenderWindowInfo::CopyTo
void CopyTo(vtkRenderWindow *)
vtkSynchronizedRenderWindows::SetIdentifier
void SetIdentifier(unsigned int id)