VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 00005 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00006 All rights reserved. 00007 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00008 00009 This software is distributed WITHOUT ANY WARRANTY; without even 00010 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00011 PURPOSE. See the above copyright notice for more information. 00012 00013 =========================================================================*/ 00014 #ifndef vtkXOpenGLRenderDevice_h 00015 #define vtkXOpenGLRenderDevice_h 00016 00017 #include "vtkAbstractRenderDevice.h" 00018 #include "vtkRenderingOpenGL2Module.h" // For export macro 00019 #include <X11/Xutil.h> // Needed for X types used in the public interface 00020 00021 class vtkXInteractionDevice; 00022 00023 class VTKRENDERINGOPENGL2_EXPORT vtkXOpenGLRenderDevice 00024 : public vtkAbstractRenderDevice 00025 { 00026 public: 00027 vtkTypeMacro(vtkXOpenGLRenderDevice, vtkAbstractRenderDevice) 00028 void PrintSelf(ostream& os, vtkIndent indent); 00029 00030 static vtkXOpenGLRenderDevice* New(); 00031 00032 virtual bool CreateNewWindow(const vtkRecti &geometry, const std::string &name); 00033 00034 virtual void MakeCurrent(); 00035 00036 protected: 00037 vtkXOpenGLRenderDevice(); 00038 ~vtkXOpenGLRenderDevice(); 00039 00040 Window ParentId; 00041 Window WindowId; 00042 Display *DisplayId; 00043 Colormap ColorMap; 00044 00045 bool OwnDisplay; // Do we own the display? 00046 bool OwnWindow; // Do we own the window? 00047 bool OffScreenRendering; // Is this for off screen rendering? 00048 bool Mapped; 00049 00050 double Borders; 00051 00052 private: 00053 vtkXOpenGLRenderDevice(const vtkXOpenGLRenderDevice&); // Not implemented. 00054 void operator=(const vtkXOpenGLRenderDevice&); // Not implemented. 00055 00056 class Private; 00057 Private *Internal; 00058 00059 friend class vtkXInteractionDevice; 00060 }; 00061 00062 #endif