dox/Rendering/vtkOpenGLExtensionManager.h

Go to the documentation of this file.
00001 // -*- c++ -*-
00002 
00003 /*=========================================================================
00004 
00005   Program:   Visualization Toolkit
00006   Module:    $RCSfile: vtkOpenGLExtensionManager.h,v $
00007 
00008   Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
00009   All rights reserved.
00010   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00011 
00012      This software is distributed WITHOUT ANY WARRANTY; without even
00013      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00014      PURPOSE.  See the above copyright notice for more information.
00015 
00016   Copyright 2003 Sandia Corporation.
00017   Under the terms of Contract DE-AC04-94AL85000, there is a non-exclusive
00018   license for use of this work by or on behalf of the
00019   U.S. Government. Redistribution and use in source and binary forms, with
00020   or without modification, are permitted provided that this Notice and any
00021   statement of authorship are reproduced on all copies.
00022 
00023 =========================================================================*/
00024 
00126 #ifndef __vtkOpenGLExtensionManager_h
00127 #define __vtkOpenGLExtensionManager_h
00128 
00129 #include <vtkObject.h>
00130 #include <vtkWeakPointer.h> // needed for vtkWeakPointer.
00131 
00132 class vtkRenderWindow;
00133 
00134 //BTX
00135 extern "C" {
00136 #ifdef _WIN32
00137 #include <vtkOpenGL.h>  // Needed for WINAPI
00138   typedef int (WINAPI *vtkOpenGLExtensionManagerFunctionPointer)(void);
00139 #else
00140   typedef void (*vtkOpenGLExtensionManagerFunctionPointer)(void);
00141 #endif
00142 }
00143 //ETX
00144 
00145 class VTK_RENDERING_EXPORT vtkOpenGLExtensionManager : public vtkObject
00146 {
00147 public:
00148   vtkTypeRevisionMacro(vtkOpenGLExtensionManager, vtkObject);
00149   static vtkOpenGLExtensionManager *New();
00150   void PrintSelf(ostream &os, vtkIndent indent);
00151 
00153 
00155   vtkRenderWindow* GetRenderWindow();
00156   virtual void SetRenderWindow(vtkRenderWindow *renwin);
00158 
00160   virtual void Update();
00161 
00163 
00165   vtkGetStringMacro(ExtensionsString);
00167 
00169   virtual int ExtensionSupported(const char *name);
00170 
00171 //BTX
00173 
00175   virtual vtkOpenGLExtensionManagerFunctionPointer GetProcAddress(
00176     const char *fname);
00178 //ETX
00179 
00184   virtual void LoadExtension(const char *name);
00185 
00192   virtual int LoadSupportedExtension(const char *name);
00193 
00194   
00226   virtual void LoadCorePromotedExtension(const char *name);
00227 //BTX
00228 protected:
00229   vtkOpenGLExtensionManager();
00230   virtual ~vtkOpenGLExtensionManager();
00231 
00232   vtkWeakPointer<vtkRenderWindow> RenderWindow;
00233 
00234   int OwnRenderWindow;
00235   char *ExtensionsString;
00236 
00237   vtkTimeStamp BuildTime;
00238 
00239   virtual void ReadOpenGLExtensions();
00240   
00246   virtual int SafeLoadExtension(const char *name);
00247 
00248 private:
00249   vtkOpenGLExtensionManager(const vtkOpenGLExtensionManager&); // Not implemented
00250   void operator=(const vtkOpenGLExtensionManager&); // Not implemented
00251 //ETX
00252 };
00253 
00254 #endif //__vtkOpenGLExtensionManager

Generated on Thu Jan 8 14:39:11 2009 for VTK by  doxygen 1.4.7