Browse Source

Report disabled extensions also when the driver doesn't claim their support.

Can handle also cases when the driver doesn't report extension support
in GL, but exposes the extension string in GLSL.
pull/77/head
Vladimír Vondruš 12 years ago
parent
commit
a760aeeff8
  1. 10
      src/Magnum/Context.h

10
src/Magnum/Context.h

@ -413,7 +413,7 @@ class MAGNUM_EXPORT Context {
}
/**
* @brief Whether given extension is supported by the driver but disabled
* @brief Whether given extension is disabled
*
* Can be used for detecting driver bug workarounds. Disabled
* extensions return `false` in @ref isExtensionSupported() even if
@ -424,18 +424,18 @@ class MAGNUM_EXPORT Context {
}
/**
* @brief Whether given extension is supported by the driver but disabled for given version
* @brief Whether given extension is disabled for given version
*
* Similar to above, but can also check for extensions which are
* disabled only for particular versions.
*/
template<class T> bool isExtensionDisabled(Version version) const {
/* The extension is advertised, but the minimal version has been increased */
return T::requiredVersion() <= version && extensionStatus[T::Index] && _extensionRequiredVersion[T::Index] > version;
return T::requiredVersion() <= version && _extensionRequiredVersion[T::Index] > version;
}
/**
* @brief Whether given extension is supported by the driver but disabled
* @brief Whether given extension is disabled
*
* Can be used e.g. for listing extensions available on current
* hardware, but for general usage prefer isExtensionDisabled() const,
@ -443,7 +443,7 @@ class MAGNUM_EXPORT Context {
* @todoc Explicit reference when Doxygen can handle const
*/
bool isExtensionDisabled(const Extension& extension) const {
return isVersionSupported(extension._requiredVersion) && extensionStatus[extension._index] && !isVersionSupported(_extensionRequiredVersion[extension._index]);
return isVersionSupported(extension._requiredVersion) && !isVersionSupported(_extensionRequiredVersion[extension._index]);
}
/**

Loading…
Cancel
Save