Add ES 3 handling to get.c and get_hash_generator.py
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
This commit is contained in:
parent
57616159aa
commit
0cc018526f
|
@ -131,6 +131,7 @@ enum value_extra {
|
|||
EXTRA_API_GL,
|
||||
EXTRA_API_GL_CORE,
|
||||
EXTRA_API_ES2,
|
||||
EXTRA_API_ES3,
|
||||
EXTRA_NEW_BUFFERS,
|
||||
EXTRA_NEW_FRAG_CLAMP,
|
||||
EXTRA_VALID_DRAW_BUFFER,
|
||||
|
@ -874,6 +875,12 @@ check_extra(struct gl_context *ctx, const char *func, const struct value_desc *d
|
|||
enabled++;
|
||||
}
|
||||
break;
|
||||
case EXTRA_API_ES3:
|
||||
if (_mesa_is_gles3(ctx)) {
|
||||
total++;
|
||||
enabled++;
|
||||
}
|
||||
break;
|
||||
case EXTRA_API_GL:
|
||||
if (_mesa_is_desktop_gl(ctx)) {
|
||||
total++;
|
||||
|
@ -973,6 +980,15 @@ find_value(const char *func, GLenum pname, void **p, union value *v)
|
|||
int api;
|
||||
|
||||
api = ctx->API;
|
||||
/* We index into the table_set[] list of per-API hash tables using the API's
|
||||
* value in the gl_api enum. Since GLES 3 doesn't have an API_OPENGL* enum
|
||||
* value since it's compatible with GLES2 its entry in table_set[] is at the
|
||||
* end.
|
||||
*/
|
||||
STATIC_ASSERT(Elements(table_set) == API_OPENGL_LAST + 2);
|
||||
if (_mesa_is_gles3(ctx)) {
|
||||
api = API_OPENGL_LAST + 1;
|
||||
}
|
||||
mask = Elements(table(api)) - 1;
|
||||
hash = (pname * prime_factor);
|
||||
while (1) {
|
||||
|
|
|
@ -44,7 +44,7 @@ prime_factor = 89
|
|||
prime_step = 281
|
||||
hash_table_size = 1024
|
||||
|
||||
gl_apis=set(["GL", "GL_CORE", "GLES", "GLES2"])
|
||||
gl_apis=set(["GL", "GL_CORE", "GLES", "GLES2", "GLES3"])
|
||||
|
||||
def print_header():
|
||||
print "typedef const unsigned short table_t[%d];\n" % (hash_table_size)
|
||||
|
@ -67,6 +67,7 @@ api_enum = [
|
|||
'GLES',
|
||||
'GLES2',
|
||||
'GL_CORE',
|
||||
'GLES3', # Not in gl_api enum in mtypes.h
|
||||
]
|
||||
|
||||
def api_index(api):
|
||||
|
@ -166,6 +167,9 @@ def generate_hash_tables(enum_list, enabled_apis, param_descriptors):
|
|||
|
||||
for api in valid_apis:
|
||||
add_to_hash_table(tables[api], hash_val, len(params))
|
||||
# Also add GLES2 items to the GLES3 hash table
|
||||
if api == "GLES2":
|
||||
add_to_hash_table(tables["GLES3"], hash_val, len(params))
|
||||
|
||||
params.append(["GL_" + enum_name, param[1]])
|
||||
|
||||
|
@ -183,6 +187,8 @@ def opt_to_apis(feature):
|
|||
apis = set([_map[feature]])
|
||||
if "GL" in apis:
|
||||
apis.add("GL_CORE")
|
||||
if "GLES2" in apis:
|
||||
apis.add("GLES3")
|
||||
|
||||
return apis
|
||||
|
||||
|
|
|
@ -3358,6 +3358,7 @@ typedef enum
|
|||
API_OPENGLES,
|
||||
API_OPENGLES2,
|
||||
API_OPENGL_CORE,
|
||||
API_OPENGL_LAST = API_OPENGL_CORE,
|
||||
} gl_api;
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue