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

OgreGLSupport.h

Go to the documentation of this file.
00001 #ifndef OGRE_GLSUPPORT_H
00002 #define OGRE_GLSUPPORT_H
00003 
00004 #include "OgreGLPrerequisites.h"
00005 #include "OgreGLRenderSystem.h"
00006 
00007 #include "OgreRenderWindow.h"
00008 #include "OgreConfigOptionMap.h"
00009 #include "OgreGLPBuffer.h"
00010 
00011 namespace Ogre
00012 {
00013     
00014 class GLSupport
00015 {
00016 public:
00017     GLSupport() { }
00018     virtual ~GLSupport() { }
00019 
00025     virtual void addConfig() = 0;
00026 
00027     virtual void setConfigOption(const String &name, const String &value);
00028 
00033     virtual String validateConfig() = 0;
00034 
00035     virtual ConfigOptionMap& getConfigOptions(void);
00036 
00037     virtual RenderWindow* createWindow(bool autoCreateWindow, GLRenderSystem* renderSystem, const String& windowTitle) = 0;
00038 
00040     virtual RenderWindow* newWindow(const String &name, unsigned int width, unsigned int height, 
00041         bool fullScreen, const NameValuePairList *miscParams = 0) = 0;
00042 
00043     virtual bool supportsPBuffers();
00044     virtual GLPBuffer *createPBuffer(PixelComponentType format, size_t width, size_t height);
00045 
00049     virtual void start() = 0;
00053     virtual void stop() = 0;
00054 
00058     const String& getGLVendor(void) const
00059     {
00060         return mVendor;
00061     }
00062 
00066     const String& getGLVersion(void) const
00067     {
00068         return mVersion;
00069     }
00070 
00074     bool checkMinGLVersion(const String& v) const;
00075 
00079     virtual bool checkExtension(const String& ext) const;
00083     virtual void* getProcAddress(const String& procname) = 0;
00084 
00088     virtual void initialiseExtensions();
00089 
00090 protected:
00091     // Stored options
00092     ConfigOptionMap mOptions;
00093 
00094     // This contains the complete list of supported extensions
00095     std::set<String> extensionList;
00096 private:
00097     String mVersion;
00098     String mVendor;
00099 
00100 }; // class GLSupport
00101 
00102 }; // namespace Ogre
00103 
00104 #endif // OGRE_GLSUPPORT_H

Copyright © 2000-2005 by The OGRE Team
Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.
Last modified Sun Mar 12 14:37:41 2006