X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fextension.h;h=cf824e24b0a189b65fc88de30adc6dc862fb5e09;hp=b44d89007c12610344347632c441d175cc5ff89a;hb=b38a4cba9d2a9963a0937757eff9e955f18ddf2a;hpb=5b3aa68610238de4e6f13c4bf9ec1745751e820c diff --git a/source/extension.h b/source/extension.h index b44d8900..cf824e24 100644 --- a/source/extension.h +++ b/source/extension.h @@ -30,9 +30,14 @@ struct Version bool operator>=(const Version &) const; bool operator<(const Version &o) const { return !(*this>=o); } + operator bool() const { return major || minor; } }; +/** +Holds metadata about an extension. Evaluates to true if the extension is +supported. +*/ class Extension { public: @@ -67,9 +72,17 @@ struct Require typedef void ExtFunc(); -/** Indicates whether an extension is supported. */ +/** Checks for extension support. Only intended for internal use. */ bool is_supported(const std::string &); +/** Checks for OpenGL version support. Only intended for internal use. */ +bool is_supported(const Version &, const Version & = Version()); + +/** Indicates whether an extension has been disabled, either explicitly through +the MSPGL_DISABLE_EXTENSIONS environment variable or implicitly as a workaround +for a driver bug. Only intended for internal use. */ +bool is_disabled(const std::string &); + /** Returns the API for which the library was compiled. */ GLApi get_gl_api(); @@ -82,9 +95,6 @@ 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 &);