VTK
vtkOpenGLExtensionManager.h
Go to the documentation of this file.
1 // -*- c++ -*-
2 
3 /*=========================================================================
4 
5  Program: Visualization Toolkit
6  Module: vtkOpenGLExtensionManager.h
7 
8  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
9  All rights reserved.
10  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
11 
12  This software is distributed WITHOUT ANY WARRANTY; without even
13  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
14  PURPOSE. See the above copyright notice for more information.
15 
16  Copyright 2003 Sandia Corporation.
17  Under the terms of Contract DE-AC04-94AL85000, there is a non-exclusive
18  license for use of this work by or on behalf of the
19  U.S. Government. Redistribution and use in source and binary forms, with
20  or without modification, are permitted provided that this Notice and any
21  statement of authorship are reproduced on all copies.
22 
23 =========================================================================*/
24 
126 #ifndef __vtkOpenGLExtensionManager_h
127 #define __vtkOpenGLExtensionManager_h
128 
129 #include <vtkObject.h>
130 #include <vtkWeakPointer.h> // needed for vtkWeakPointer.
131 
132 class vtkRenderWindow;
133 
134 //BTX
135 extern "C" {
136 #ifdef _WIN32
137 #include <vtkOpenGL.h> // Needed for WINAPI
138  typedef int (WINAPI *vtkOpenGLExtensionManagerFunctionPointer)(void);
139 #else
141 #endif
142 }
143 //ETX
144 
146 {
147 public:
149  static vtkOpenGLExtensionManager *New();
150  void PrintSelf(ostream &os, vtkIndent indent);
151 
153 
155  vtkRenderWindow* GetRenderWindow();
156  virtual void SetRenderWindow(vtkRenderWindow *renwin);
158 
160  virtual void Update();
161 
163 
165  vtkGetStringMacro(ExtensionsString);
167 
169  virtual int ExtensionSupported(const char *name);
170 
171 //BTX
173 
175  virtual vtkOpenGLExtensionManagerFunctionPointer GetProcAddress(
176  const char *fname);
177 //ETX
179 
184  virtual void LoadExtension(const char *name);
185 
192  virtual int LoadSupportedExtension(const char *name);
193 
194 
226  virtual void LoadCorePromotedExtension(const char *name);
227 
229 
231  virtual void LoadAsARBExtension(const char *name);
232 //BTX
233 protected:
235  virtual ~vtkOpenGLExtensionManager();
237 
238 
241 
243 
244  virtual void ReadOpenGLExtensions();
245 
251  virtual int SafeLoadExtension(const char *name);
252 
253 private:
254  vtkOpenGLExtensionManager(const vtkOpenGLExtensionManager&); // Not implemented
255  void operator=(const vtkOpenGLExtensionManager&); // Not implemented
256 
257  vtkWeakPointer<vtkRenderWindow> RenderWindow;
258 //ETX
259 };
260 
261 #endif //__vtkOpenGLExtensionManager
abstract base class for most VTK objects
Definition: vtkObject.h:60
record modification and/or execution time
Definition: vtkTimeStamp.h:33
virtual void PrintSelf(ostream &os, vtkIndent indent)
a simple class to control print indentation
Definition: vtkIndent.h:37
void(* vtkOpenGLExtensionManagerFunctionPointer)(void)
Interface class for querying and using OpenGL extensions.
#define VTK_RENDERING_EXPORT
create a window for renderers to draw into
static vtkObject * New()