summaryrefslogtreecommitdiffstats
path: root/src/mesa/main/extensions.c
diff options
context:
space:
mode:
authorNanley Chery <[email protected]>2015-09-08 12:41:18 -0700
committerNanley Chery <[email protected]>2015-11-12 13:10:37 -0800
commita82bc779af37334ebc874d38951324f5f0b651cd (patch)
tree789af5b7caa7326cbe9324bdfd8b1e9745db0a13 /src/mesa/main/extensions.c
parentf6a818e76d09633c37057703ba1796ecd5678317 (diff)
mesa/extensions: Use _mesa_extension_supported()
Replace open-coded checks for extension support with _mesa_extension_supported(). Signed-off-by: Nanley Chery <[email protected]> Reviewed-by: Chad Versace <[email protected]>
Diffstat (limited to 'src/mesa/main/extensions.c')
-rw-r--r--src/mesa/main/extensions.c54
1 files changed, 11 insertions, 43 deletions
diff --git a/src/mesa/main/extensions.c b/src/mesa/main/extensions.c
index 83c492130f2..1ce73f3bab0 100644
--- a/src/mesa/main/extensions.c
+++ b/src/mesa/main/extensions.c
@@ -49,8 +49,6 @@ enum {
GL = (1 << API_OPENGL_COMPAT) | (1 << API_OPENGL_CORE),
ES1 = 1 << API_OPENGLES,
ES2 = 1 << API_OPENGLES2,
- ES3 = 1 << (API_OPENGL_LAST + 1),
- ES31 = 1 << (API_OPENGL_LAST + 2),
};
/**
@@ -485,15 +483,9 @@ _mesa_make_extension_string(struct gl_context *ctx)
extension_index *extension_indices;
/* String of extra extensions. */
char *extra_extensions = get_extension_override(ctx);
- GLboolean *base = (GLboolean *) &ctx->Extensions;
unsigned k;
unsigned j;
unsigned maxYear = ~0;
- unsigned api_set = (1 << ctx->API);
- if (_mesa_is_gles3(ctx))
- api_set |= ES3;
- if (_mesa_is_gles31(ctx))
- api_set |= ES31;
/* Check if the MESA_EXTENSION_MAX_YEAR env var is set */
{
@@ -510,9 +502,8 @@ _mesa_make_extension_string(struct gl_context *ctx)
for (k = 0; k < ARRAY_SIZE(extension_table); ++k) {
const struct extension *i = extension_table + k;
- if (base[i->offset] &&
- i->year <= maxYear &&
- (i->api_set & api_set)) {
+ if (i->year <= maxYear &&
+ _mesa_extension_supported(ctx, k)) {
length += strlen(i->name) + 1; /* +1 for space */
++count;
}
@@ -540,11 +531,8 @@ _mesa_make_extension_string(struct gl_context *ctx)
*/
j = 0;
for (k = 0; k < ARRAY_SIZE(extension_table); ++k) {
- const struct extension *i = extension_table + k;
-
- if (base[i->offset] &&
- i->year <= maxYear &&
- (i->api_set & api_set)) {
+ if (extension_table[k].year <= maxYear &&
+ _mesa_extension_supported(ctx, k)) {
extension_indices[j++] = k;
}
}
@@ -555,7 +543,7 @@ _mesa_make_extension_string(struct gl_context *ctx)
/* Build the extension string.*/
for (j = 0; j < count; ++j) {
const struct extension *i = &extension_table[extension_indices[j]];
- assert(base[i->offset] && (i->api_set & api_set));
+ assert(_mesa_extension_supported(ctx, extension_indices[j]));
strcat(exts, i->name);
strcat(exts, " ");
}
@@ -574,25 +562,15 @@ _mesa_make_extension_string(struct gl_context *ctx)
GLuint
_mesa_get_extension_count(struct gl_context *ctx)
{
- GLboolean *base;
unsigned k;
- unsigned api_set = (1 << ctx->API);
- if (_mesa_is_gles3(ctx))
- api_set |= ES3;
- if (_mesa_is_gles31(ctx))
- api_set |= ES31;
/* only count once */
if (ctx->Extensions.Count != 0)
return ctx->Extensions.Count;
- base = (GLboolean *) &ctx->Extensions;
for (k = 0; k < ARRAY_SIZE(extension_table); ++k) {
- const struct extension *i = extension_table + k;
-
- if (base[i->offset] && (i->api_set & api_set)) {
+ if (_mesa_extension_supported(ctx, k))
ctx->Extensions.Count++;
- }
}
return ctx->Extensions.Count;
}
@@ -603,23 +581,13 @@ _mesa_get_extension_count(struct gl_context *ctx)
const GLubyte *
_mesa_get_enabled_extension(struct gl_context *ctx, GLuint index)
{
- const GLboolean *base;
- size_t n;
- unsigned k;
- unsigned api_set = (1 << ctx->API);
- if (_mesa_is_gles3(ctx))
- api_set |= ES3;
- if (_mesa_is_gles31(ctx))
- api_set |= ES31;
-
- base = (GLboolean*) &ctx->Extensions;
- n = 0;
- for (k = 0; k < ARRAY_SIZE(extension_table); ++k) {
- const struct extension *i = extension_table + k;
+ size_t n = 0;
+ unsigned i;
- if (base[i->offset] && (i->api_set & api_set)) {
+ for (i = 0; i < ARRAY_SIZE(extension_table); ++i) {
+ if (_mesa_extension_supported(ctx, i)) {
if (n == index)
- return (const GLubyte*) i->name;
+ return (const GLubyte*) extension_table[i].name;
else
++n;
}