+++ /dev/null
-#ifndef MSP_GL_EXTENSION_H_
-#define MSP_GL_EXTENSION_H_
-
-#include <string>
-
-namespace Msp {
-namespace GL {
-
-enum GLApi
-{
- OPENGL,
- OPENGL_ES2
-};
-
-
-struct Version
-{
- unsigned short major;
- unsigned short minor;
-
- Version();
- Version(unsigned short, unsigned short);
- Version(const std::string &);
-
- bool operator>=(const Version &) const;
-};
-
-
-class Extension
-{
-public:
- enum SupportLevel
- {
- UNSUPPORTED,
- EXTENSION,
- CORE
- };
-
- typedef SupportLevel (*InitFunc)();
-
-private:
- const char *name;
- InitFunc init_func;
- mutable bool init_done;
- mutable SupportLevel support;
-
-public:
- Extension(const char *, InitFunc);
-
- const char *get_name() const { return name; }
- operator bool() const;
-};
-
-
-struct Require
-{
- Require(const Extension &);
-};
-
-
-typedef void ExtFunc();
-
-/** Indicates whether an extension is supported. */
-bool is_supported(const std::string &);
-
-/** Returns the API for which the library was compiled. */
-GLApi get_gl_api();
-
-/** Returns the OpenGL version number, as reported by the implementation. */
-const Version &get_gl_version();
-
-/** Returns the GLSL version number, as reported by the implementation. */
-const Version &get_glsl_version();
-
-/** Indicates whether the OpenGL version is at least a.b. */
-bool is_version_at_least(unsigned a, unsigned b);
-
-/** Returns the address of an extension function. Only indended for internal
-use. */
-ExtFunc *get_proc_address(const std::string &);
-
-} // namespace GL
-} // namespace Msp
-
-#endif