VTK
dox/Rendering/vtkXMesaRenderWindow.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    vtkXMesaRenderWindow.h
00005 
00006   Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
00007   All rights reserved.
00008   See Copyright.txt or http://www.kitware.com/Copyright.htm 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 =========================================================================*/
00030 #ifndef __vtkXMesaRenderWindow_h
00031 #define __vtkXMesaRenderWindow_h
00032 
00033 #include "vtkMesaRenderWindow.h"
00034 #include <X11/Xlib.h> // Needed for X types used in the public interface
00035 #include <X11/Xutil.h> // Needed for X types used in the public interface
00036 
00037 class vtkIdList;
00038 class vtkXMesaRenderWindowInternal;
00039 
00040 class VTK_RENDERING_EXPORT vtkXMesaRenderWindow : public vtkMesaRenderWindow
00041 {
00042 public:
00043   static vtkXMesaRenderWindow *New();
00044   vtkTypeMacro(vtkXMesaRenderWindow,vtkMesaRenderWindow);
00045   void PrintSelf(ostream& os, vtkIndent indent);
00046 
00048   virtual void Start(void);
00049 
00051   virtual void Frame(void);
00052 
00054   virtual void WindowInitialize(void);
00055 
00057   virtual void Initialize(void);
00058 
00060   virtual void Finalize(void);
00061 
00063   virtual void SetFullScreen(int);
00064 
00066   virtual void WindowRemap(void);
00067 
00069   virtual void PrefFullScreen(void);
00070 
00072 
00073   virtual void SetSize(int,int);
00074   virtual void SetSize(int a[2]) {this->SetSize(a[0], a[1]);};
00076 
00078 
00079   virtual Colormap GetDesiredColormap();
00080   virtual Visual  *GetDesiredVisual();
00081   virtual XVisualInfo     *GetDesiredVisualInfo();
00082   virtual int      GetDesiredDepth();
00084 
00089   virtual void SetStereoCapableWindow(int capable);
00090 
00092   void MakeCurrent();
00093   
00097   void SetForceMakeCurrent();
00098 
00100   const char *ReportCapabilities();
00101 
00103   int SupportsOpenGL();
00104 
00106   int IsDirect();
00107 
00109 
00110   virtual void *GetGenericDisplayId() {return (void *)this->GetDisplayId();};
00111   virtual void *GetGenericWindowId();
00112   virtual void *GetGenericParentId()  {return (void *)this->ParentId;};
00113   virtual void *GetGenericContext();
00114   virtual void *GetGenericDrawable()  {return (void *)this->WindowId;};
00116   
00118   virtual int     *GetScreenSize();
00119 
00121   virtual int     *GetPosition();
00122 
00124   Display *GetDisplayId();
00125 
00127 
00129   void     SetDisplayId(Display *);
00130   void     SetDisplayId(void *);
00132 
00134   Window   GetParentId();
00135 
00137 
00138   void     SetParentId(Window);
00139   void     SetParentId(void *);
00141   
00143   Window   GetWindowId();
00144 
00146 
00147   void     SetWindowId(Window);
00148   void     SetWindowId(void *);
00150 
00152 
00153   void     SetNextWindowId(Window);
00154   void     SetNextWindowId(void *);
00155   void     SetWindowName(const char *);
00157 
00159 
00160   void     SetPosition(int,int);
00161   void     SetPosition(int a[2]) {this->SetPosition(a[0], a[1]);};
00163   
00165 
00167   void HideCursor();
00168   void ShowCursor();
00170 
00172   virtual void SetCurrentCursor(int);
00173 
00176   virtual  int GetEventPending();
00177   
00179   void     SetWindowInfo(char *info);
00180 
00181   void     SetNextWindowInfo(char *);
00182 
00184   void     SetParentInfo(char *info);
00185 
00188   void Render();  
00189 
00191   void SetOffScreenRendering(int i);
00192 
00193 protected:
00194   vtkXMesaRenderWindow();
00195   ~vtkXMesaRenderWindow();
00196 
00197   vtkXMesaRenderWindowInternal *Internal;
00198   
00199   Window   ParentId;
00200   Window   WindowId;
00201   Window   NextWindowId;
00202   Display *DisplayId;
00203   Colormap ColorMap;
00204   int      OwnWindow;
00205   int      OwnDisplay;
00206   int      ScreenSize[2];
00207   int      CursorHidden;
00208   int      ForceMakeCurrent;
00209   int      UsingHardware;
00210   char    *Capabilities;
00211 
00212   // we must keep track of the cursors we are using
00213   Cursor XCArrow;
00214   Cursor XCSizeAll;
00215   Cursor XCSizeNS;
00216   Cursor XCSizeWE;
00217   Cursor XCSizeNE;
00218   Cursor XCSizeNW;
00219   Cursor XCSizeSE;
00220   Cursor XCSizeSW;
00221 
00222 
00223   void CreateAWindow();
00224   void DestroyWindow();
00225   void CreateOffScreenWindow(int x, int y);
00226   void DestroyOffScreenWindow();
00227   void ResizeOffScreenWindow(int x, int y);
00228   
00229 private:
00230   vtkXMesaRenderWindow(const vtkXMesaRenderWindow&);  // Not implemented.
00231   void operator=(const vtkXMesaRenderWindow&);  // Not implemented.
00232 };
00233 
00234 
00235 
00236 #endif