mesa/extensions: Create _mesa_extension_supported()

Create a function which determines if an extension is supported in the
current context.

v2: Use common variable names (Emil)
    Insert new line between variables and return statement (Chad)
    Rename api_set variable to api_bit (Chad)

Signed-off-by: Nanley Chery <nanley.g.chery@intel.com>
Reviewed-by: Chad Versace <chad.versace@intel.com>
This commit is contained in:
Nanley Chery 2015-09-02 11:53:16 -07:00
parent f47df8f729
commit f6a818e76d

View file

@ -425,6 +425,24 @@ _mesa_init_extensions(struct gl_extensions *extensions)
typedef unsigned short extension_index;
/**
* Given an extension enum, return whether or not the extension is supported
* dependent on the following factors:
* There's driver support and the OpenGL/ES version is at least that
* specified in the extension_table.
*/
static inline bool
_mesa_extension_supported(const struct gl_context *ctx, extension_index i)
{
const bool *base = (bool *) &ctx->Extensions;
const struct extension *ext = extension_table + i;
const uint8_t api_bit = 1 << ctx->API;
return (ext->api_set & api_bit) &&
(ctx->Version >= ext->version[ctx->API]) &&
base[ext->offset];
}
/**
* Compare two entries of the extensions table. Sorts first by year,
* then by name.