# 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
This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.
Last modified Sun Sep 17 15:39:08 2006