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
This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.
Last modified Sun Mar 12 14:37:41 2006