32 #ifndef vtkPVSynchronizedRenderWindows_h 33 #define vtkPVSynchronizedRenderWindows_h 35 #include "vtkMultiProcessController.h" 36 #include "vtkObject.h" 37 #include "vtkPVClientServerCoreRenderingModule.h" 38 #include "vtkWeakPointer.h" 41 class vtkMultiProcessController;
42 class vtkMultiProcessStream;
45 class vtkRenderWindow;
58 void PrintSelf(ostream& os, vtkIndent indent);
63 virtual vtkRenderWindow* NewRenderWindow();
69 virtual void AddRenderWindow(
unsigned int id, vtkRenderWindow*);
70 virtual void RemoveRenderWindow(
unsigned int id);
71 vtkRenderWindow* GetRenderWindow(
unsigned int id);
80 virtual void AddRenderer(
unsigned int id, vtkRenderer*);
81 virtual void RemoveAllRenderers(
unsigned int id);
82 virtual void AddRenderer(
unsigned int id, vtkRenderer*,
const double viewport[4]);
83 virtual bool UpdateRendererViewport(
unsigned int id, vtkRenderer*,
const double viewport[4]);
96 virtual void SetWindowSize(
unsigned int id,
int width,
int height);
97 virtual void SetWindowPosition(
unsigned int id,
int posx,
int posy);
98 virtual const int* GetWindowSize(
unsigned int id);
99 virtual const int* GetWindowPosition(
unsigned int id);
106 vtkSetMacro(Enabled,
bool);
107 vtkGetMacro(Enabled,
bool);
108 vtkBooleanMacro(Enabled,
bool);
117 vtkSetMacro(RenderEventPropagation,
bool);
118 vtkGetMacro(RenderEventPropagation,
bool);
119 vtkBooleanMacro(RenderEventPropagation,
bool);
128 bool GetLocalProcessIsDriver();
141 bool SynchronizeBounds(
double bounds[6]);
142 bool SynchronizeSize(
double& size);
143 bool SynchronizeSize(
unsigned int& size);
144 bool BroadcastToDataServer(vtkSelection* selection);
145 bool BroadcastToRenderServer(vtkDataObject*);
150 MAX_OP = vtkCommunicator::MAX_OP,
151 MIN_OP = vtkCommunicator::MIN_OP,
152 SUM_OP = vtkCommunicator::SUM_OP
160 void TriggerRMI(vtkMultiProcessStream& stream,
int tag);
161 unsigned long AddRMICallback(vtkRMIFunctionType,
void* localArg,
int tag);
162 bool RemoveRMICallback(
unsigned long id);
167 SYNC_MULTI_RENDER_WINDOW_TAG = 15002,
168 GET_ZBUFFER_VALUE_TAG = 15003,
169 SYNC_TILE_DISPLAY_PARAMATERS = 15004
173 void Render(
unsigned int);
174 void OnGetZBufferValue(
unsigned int,
int,
int);
177 vtkGetObjectMacro(ParallelController, vtkMultiProcessController);
178 vtkGetObjectMacro(ClientServerController, vtkMultiProcessController);
179 vtkGetObjectMacro(ClientDataServerController, vtkMultiProcessController);
191 vtkSetMacro(RenderOneViewAtATime,
bool);
192 vtkGetMacro(RenderOneViewAtATime,
bool);
193 vtkBooleanMacro(RenderOneViewAtATime,
bool);
200 void BeginRender(
unsigned int id);
212 bool GetTileDisplayParameters(
int tile_dims[2],
int tile_mullions[2]);
219 double GetZbufferDataAtPoint(
int x,
int y,
unsigned int id);
249 void SetParallelController(vtkMultiProcessController*);
254 void SetClientServerController(vtkMultiProcessController*);
259 void SetClientDataServerController(vtkMultiProcessController*);
269 void SaveWindowAndLayout(vtkRenderWindow*, vtkMultiProcessStream& stream);
270 void LoadWindowAndLayout(vtkRenderWindow*, vtkMultiProcessStream& stream);
278 void UpdateWindowLayout();
285 void UpdateRendererDrawStates(
unsigned int id);
289 virtual void HandleStartRender(vtkRenderWindow*);
290 virtual void HandleEndRender(vtkRenderWindow*);
293 virtual void ClientStartRender(vtkRenderWindow*);
294 virtual void RootStartRender(vtkRenderWindow*);
295 virtual void SatelliteStartRender(vtkRenderWindow*);
321 vtkInternals* Internals;
324 vtkObserver* Observer;
unsigned long ClientServerRMITag
unsigned long ClientServerGetZBufferValueRMITag
vtkMultiProcessController * ClientDataServerController
vtkMultiProcessController * ParallelController
extends vtkSession to add API for ParaView sessions.
synchronizes render-windows among processes in ParaView configurations.
bool RenderEventPropagation
unsigned long ParallelRMITag
vtkWeakPointer< vtkPVSession > Session
vtkMultiProcessController * ClientServerController
virtual void HandleAbortRender(vtkRenderWindow *)
ModeEnum GetMode()
Streaming uses this class as a conduit for messaging.
bool RenderOneViewAtATime