Version(const std::string &);
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:
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();
/** 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 &);