Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

Servers/Filters/vtkDesktopDeliveryServer.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   ParaView
00004   Module:    $RCSfile: vtkDesktopDeliveryServer.h,v $
00005 
00006   Copyright (c) Kitware, Inc.
00007   All rights reserved.
00008   See Copyright.txt or http://www.paraview.org/HTML/Copyright.html for details.
00009 
00010      This software is distributed WITHOUT ANY WARRANTY; without even
00011      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00012      PURPOSE.  See the above copyright notice for more information.
00013 
00014 =========================================================================*/
00033 #ifndef __vtkDesktopDeliveryServer_h
00034 #define __vtkDesktopDeliveryServer_h
00035 
00036 #include "vtkParallelRenderManager.h"
00037 
00038 class VTK_EXPORT vtkDesktopDeliveryServer : public vtkParallelRenderManager
00039 {
00040 public:
00041   vtkTypeRevisionMacro(vtkDesktopDeliveryServer, vtkParallelRenderManager);
00042   virtual void PrintSelf(ostream &os, vtkIndent indent);
00043 
00044   static vtkDesktopDeliveryServer *New();
00045 
00050   virtual void SetController(vtkMultiProcessController *controller);
00051 
00053 
00058   virtual void SetParallelRenderManager(vtkParallelRenderManager *prm);
00059   vtkGetObjectMacro(ParallelRenderManager, vtkParallelRenderManager);
00061 
00062   virtual void SetRenderWindow(vtkRenderWindow *renWin);
00063 
00065 
00070   virtual void SetRemoteDisplay(int);
00071   vtkGetMacro(RemoteDisplay, int);
00072   vtkBooleanMacro(RemoteDisplay, int);
00074 
00075 //BTX
00076 
00077   enum Tags {
00078     IMAGE_TAG=12433,
00079     IMAGE_SIZE_TAG=12434,
00080     REMOTE_DISPLAY_TAG=834340,
00081     TIMING_METRICS_TAG=834341,
00082     SQUIRT_OPTIONS_TAG=834342,
00083     IMAGE_PARAMS_TAG=834343
00084   };
00085 
00086   struct TimingMetrics {
00087     double ImageProcessingTime;
00088   };
00089 
00090   struct SquirtOptions {
00091     int Enabled;
00092     int CompressLevel;
00093   };
00094 
00095   struct ImageParams {
00096     int RemoteDisplay;
00097     int SquirtCompressed;
00098     int NumberOfComponents;
00099     int BufferSize;
00100     int ImageSize[2];
00101   };
00102 
00103   enum TimingMetricSize {
00104     TIMING_METRICS_SIZE=sizeof(struct TimingMetrics)/sizeof(double)
00105   };
00106   enum SquirtOptionSize {
00107     SQUIRT_OPTIONS_SIZE=sizeof(struct SquirtOptions)/sizeof(int)
00108   };
00109   enum ImageParamsSize {
00110     IMAGE_PARAMS_SIZE=sizeof(struct ImageParams)/sizeof(int)
00111   };
00112 
00113 //ETX
00114   
00115 protected:
00116   vtkDesktopDeliveryServer();
00117   virtual ~vtkDesktopDeliveryServer();
00118 
00119   virtual void PreRenderProcessing();
00120   virtual void PostRenderProcessing();
00121   virtual void LocalComputeVisiblePropBounds(vtkRenderer *ren, double bounds[6]);
00122 
00123   vtkParallelRenderManager *ParallelRenderManager;
00124 
00125   unsigned long StartParallelRenderTag;
00126   unsigned long EndParallelRenderTag;
00127 
00128   virtual void SetRenderWindowSize();
00129 
00130   virtual void ReadReducedImage();
00131 
00132   virtual void ReceiveWindowInformation();
00133 
00134   int Squirt;
00135   int SquirtCompressionLevel;
00136   void SquirtCompress(vtkUnsignedCharArray *in, vtkUnsignedCharArray *out);
00137 
00138   int RemoteDisplay;
00139 
00140   vtkUnsignedCharArray *SquirtBuffer;
00141 
00142 private:
00143   vtkDesktopDeliveryServer(const vtkDesktopDeliveryServer &); //Not implemented
00144   void operator=(const vtkDesktopDeliveryServer &);    //Not implemented
00145 };
00146 
00147 #endif
00148 

Generated on Tue May 30 12:31:46 2006 for ParaView by doxygen 1.3.5