 
            -- v2: opengl32: Include legacy aliases in the extension registry.
 
            From: Jacek Caban jacek@codeweavers.com
--- dlls/opengl32/make_opengl | 13 ++++++++++++- dlls/opengl32/unix_thunks.c | 6 +++--- 2 files changed, 15 insertions(+), 4 deletions(-)
diff --git a/dlls/opengl32/make_opengl b/dlls/opengl32/make_opengl index 85e49dc03d2..7dd80b4428e 100755 --- a/dlls/opengl32/make_opengl +++ b/dlls/opengl32/make_opengl @@ -897,6 +897,11 @@ my %supported_egl_extensions = "EGL_KHR_platform_x11" => 1, "EGL_MESA_platform_surfaceless" => 1, ); +my %extension_aliases = + ( + "GL_EXT_blend_equation_separate" => "GL_ATI_blend_equation_separate", + "GL_EXT_multi_draw_arrays" => "GL_SUN_multi_draw_arrays", + );
my %supported_apis = ( @@ -1611,7 +1616,13 @@ foreach (sort keys %ext_functions) { next if $_ =~ /^egl/; # unix-side only API my $func = $ext_functions{$_}; - printf OUT " { "%s", "%s", offsetof(struct opengl_funcs, p_$_) },\n", $_, join(" ", sort @{$func->[2]}); + my @exts; + foreach my $ext (@{$func->[2]}) + { + push @exts, $ext; + push @exts, $extension_aliases{$ext} if defined $extension_aliases{$ext}; + } + printf OUT " { "%s", "%s", offsetof(struct opengl_funcs, p_$_) },\n", $_, join(" ", sort @exts); } print OUT "};\n";
diff --git a/dlls/opengl32/unix_thunks.c b/dlls/opengl32/unix_thunks.c index 986f3fec1b9..5df0022d7c0 100644 --- a/dlls/opengl32/unix_thunks.c +++ b/dlls/opengl32/unix_thunks.c @@ -98236,7 +98236,7 @@ const struct registry_entry extension_registry[2715] = { "glBlendEquationEXT", "GL_EXT_blend_minmax", offsetof(struct opengl_funcs, p_glBlendEquationEXT) }, { "glBlendEquationIndexedAMD", "GL_AMD_draw_buffers_blend", offsetof(struct opengl_funcs, p_glBlendEquationIndexedAMD) }, { "glBlendEquationSeparate", "GL_VERSION_2_0", offsetof(struct opengl_funcs, p_glBlendEquationSeparate) }, - { "glBlendEquationSeparateEXT", "GL_EXT_blend_equation_separate", offsetof(struct opengl_funcs, p_glBlendEquationSeparateEXT) }, + { "glBlendEquationSeparateEXT", "GL_ATI_blend_equation_separate GL_EXT_blend_equation_separate", offsetof(struct opengl_funcs, p_glBlendEquationSeparateEXT) }, { "glBlendEquationSeparateIndexedAMD", "GL_AMD_draw_buffers_blend", offsetof(struct opengl_funcs, p_glBlendEquationSeparateIndexedAMD) }, { "glBlendEquationSeparatei", "GL_VERSION_4_0", offsetof(struct opengl_funcs, p_glBlendEquationSeparatei) }, { "glBlendEquationSeparateiARB", "GL_ARB_draw_buffers_blend", offsetof(struct opengl_funcs, p_glBlendEquationSeparateiARB) }, @@ -99360,7 +99360,7 @@ const struct registry_entry extension_registry[2715] = { "glMultTransposeMatrixfARB", "GL_ARB_transpose_matrix", offsetof(struct opengl_funcs, p_glMultTransposeMatrixfARB) }, { "glMultTransposeMatrixxOES", "GL_OES_fixed_point", offsetof(struct opengl_funcs, p_glMultTransposeMatrixxOES) }, { "glMultiDrawArrays", "GL_VERSION_1_4", offsetof(struct opengl_funcs, p_glMultiDrawArrays) }, - { "glMultiDrawArraysEXT", "GL_EXT_multi_draw_arrays", offsetof(struct opengl_funcs, p_glMultiDrawArraysEXT) }, + { "glMultiDrawArraysEXT", "GL_EXT_multi_draw_arrays GL_SUN_multi_draw_arrays", offsetof(struct opengl_funcs, p_glMultiDrawArraysEXT) }, { "glMultiDrawArraysIndirect", "GL_ARB_multi_draw_indirect GL_VERSION_4_3", offsetof(struct opengl_funcs, p_glMultiDrawArraysIndirect) }, { "glMultiDrawArraysIndirectAMD", "GL_AMD_multi_draw_indirect", offsetof(struct opengl_funcs, p_glMultiDrawArraysIndirectAMD) }, { "glMultiDrawArraysIndirectBindlessCountNV", "GL_NV_bindless_multi_draw_indirect_count", offsetof(struct opengl_funcs, p_glMultiDrawArraysIndirectBindlessCountNV) }, @@ -99370,7 +99370,7 @@ const struct registry_entry extension_registry[2715] = { "glMultiDrawElementArrayAPPLE", "GL_APPLE_element_array", offsetof(struct opengl_funcs, p_glMultiDrawElementArrayAPPLE) }, { "glMultiDrawElements", "GL_VERSION_1_4", offsetof(struct opengl_funcs, p_glMultiDrawElements) }, { "glMultiDrawElementsBaseVertex", "GL_ARB_draw_elements_base_vertex GL_VERSION_3_2", offsetof(struct opengl_funcs, p_glMultiDrawElementsBaseVertex) }, - { "glMultiDrawElementsEXT", "GL_EXT_multi_draw_arrays", offsetof(struct opengl_funcs, p_glMultiDrawElementsEXT) }, + { "glMultiDrawElementsEXT", "GL_EXT_multi_draw_arrays GL_SUN_multi_draw_arrays", offsetof(struct opengl_funcs, p_glMultiDrawElementsEXT) }, { "glMultiDrawElementsIndirect", "GL_ARB_multi_draw_indirect GL_VERSION_4_3", offsetof(struct opengl_funcs, p_glMultiDrawElementsIndirect) }, { "glMultiDrawElementsIndirectAMD", "GL_AMD_multi_draw_indirect", offsetof(struct opengl_funcs, p_glMultiDrawElementsIndirectAMD) }, { "glMultiDrawElementsIndirectBindlessCountNV", "GL_NV_bindless_multi_draw_indirect_count", offsetof(struct opengl_funcs, p_glMultiDrawElementsIndirectBindlessCountNV) },
 
            GL_EXT_buffer_storage is a GL ES 3.1 extension, and it defines the glBufferStorageEXT function, not glBufferStorage (and unlike GL_ARB_buffer_storage, it doesn't define glNamedBufferStorageEXT).
Right, I removed it.
According to https://registry.khronos.org/OpenGL/extensions/EXT/EXT_blend_equation_separa... "Issues", ATI_blend_equation_separate is also a different extensions that doesn't have a specification but defines slightly different tokens. I don't think it should be aliased either.
As far as the extensions registry is considered, that's fine. If exposed functions are the same, it's fine for `wglGetProcAddress` feature checks.
 
            This merge request was approved by Rémi Bernon.


