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

vtkXMesaRenderWindow.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkXMesaRenderWindow.h,v $
00005   Language:  C++
00006 
00007   Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen 
00008   All rights reserved.
00009   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00010 
00011      This software is distributed WITHOUT ANY WARRANTY; without even 
00012      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
00013      PURPOSE.  See the above copyright notice for more information.
00014 
00015 =========================================================================*/
00034 #ifndef __vtkXMesaRenderWindow_h
00035 #define __vtkXMesaRenderWindow_h
00036 
00037 #include "vtkMesaRenderWindow.h"
00038 #include <X11/Xlib.h> // Needed for X types used in the public interface
00039 #include <X11/Xutil.h> // Needed for X types used in the public interface
00040 
00041 class vtkIdList;
00042 class vtkXMesaRenderWindowInternal;
00043 
00044 class VTK_RENDERING_EXPORT vtkXMesaRenderWindow : public vtkMesaRenderWindow
00045 {
00046 public:
00047   static vtkXMesaRenderWindow *New();
00048   vtkTypeRevisionMacro(vtkXMesaRenderWindow,vtkMesaRenderWindow);
00049   void PrintSelf(ostream& os, vtkIndent indent);
00050 
00052   virtual void Start(void);
00053 
00055   virtual void Frame(void);
00056 
00058   virtual void WindowInitialize(void);
00059 
00061   virtual void Initialize(void);
00062 
00064   virtual void SetFullScreen(int);
00065 
00067   virtual void WindowRemap(void);
00068 
00070   virtual void PrefFullScreen(void);
00071 
00073 
00074   virtual void SetSize(int,int);
00075   virtual void SetSize(int a[2]) {this->SetSize(a[0], a[1]);};
00077 
00079 
00080   virtual Colormap GetDesiredColormap();
00081   virtual Visual  *GetDesiredVisual();
00082   virtual XVisualInfo     *GetDesiredVisualInfo();
00083   virtual int      GetDesiredDepth();
00085 
00090   virtual void SetStereoCapableWindow(int capable);
00091 
00093   void MakeCurrent();
00094   
00098   void SetForceMakeCurrent();
00099 
00101   const char *ReportCapabilities();
00102 
00104   int SupportsOpenGL();
00105 
00107   int IsDirect();
00108 
00110 
00111   virtual void *GetGenericDisplayId() {return (void *)this->GetDisplayId();};
00112   virtual void *GetGenericWindowId();
00113   virtual void *GetGenericParentId()  {return (void *)this->ParentId;};
00114   virtual void *GetGenericContext();
00115   virtual void *GetGenericDrawable()  {return (void *)this->WindowId;};
00117   
00119   virtual int     *GetScreenSize();
00120 
00122   virtual int     *GetPosition();
00123 
00125   Display *GetDisplayId();
00126 
00128 
00130   void     SetDisplayId(Display *);
00131   void     SetDisplayId(void *);
00133 
00135   Window   GetParentId();
00136 
00138 
00139   void     SetParentId(Window);
00140   void     SetParentId(void *);
00142   
00144   Window   GetWindowId();
00145 
00147 
00148   void     SetWindowId(Window);
00149   void     SetWindowId(void *);
00151 
00153 
00154   void     SetNextWindowId(Window);
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 
00182   void     SetParentInfo(char *info);
00183 
00186   void Render();  
00187 
00189   void SetOffScreenRendering(int i);
00190 
00191 protected:
00192   vtkXMesaRenderWindow();
00193   ~vtkXMesaRenderWindow();
00194 
00195   vtkXMesaRenderWindowInternal *Internal;
00196   
00197   Window   ParentId;
00198   Window   WindowId;
00199   Window   NextWindowId;
00200   Display *DisplayId;
00201   Colormap ColorMap;
00202   int      OwnWindow;
00203   int      OwnDisplay;
00204   int      ScreenSize[2];
00205   int      CursorHidden;
00206   int      ForceMakeCurrent;
00207   int      UsingHardware;
00208   char    *Capabilities;
00209 
00210   // we must keep track of the cursors we are using
00211   Cursor XCArrow;
00212   Cursor XCSizeAll;
00213   Cursor XCSizeNS;
00214   Cursor XCSizeWE;
00215   Cursor XCSizeNE;
00216   Cursor XCSizeNW;
00217   Cursor XCSizeSE;
00218   Cursor XCSizeSW;
00219   
00220 private:
00221   vtkXMesaRenderWindow(const vtkXMesaRenderWindow&);  // Not implemented.
00222   void operator=(const vtkXMesaRenderWindow&);  // Not implemented.
00223 };
00224 
00225 
00226 
00227 #endif