diff options
author | Nanley Chery <[email protected]> | 2015-09-02 11:53:16 -0700 |
---|---|---|
committer | Nanley Chery <[email protected]> | 2015-11-12 13:10:37 -0800 |
commit | f6a818e76d09633c37057703ba1796ecd5678317 (patch) | |
tree | 85043d9db47314104a482ac9b692427263acb672 | |
parent | f47df8f729abfda177120a1437197372fd19b83f (diff) |
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 <[email protected]>
Reviewed-by: Chad Versace <[email protected]>
-rw-r--r-- | src/mesa/main/extensions.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/mesa/main/extensions.c b/src/mesa/main/extensions.c index 4fd7487e7e2..83c492130f2 100644 --- a/src/mesa/main/extensions.c +++ b/src/mesa/main/extensions.c @@ -426,6 +426,24 @@ 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. * |