[PATCH 2/7] opengl32: Regenerate for WGL_WINE_fullscreen_exclusive.

Francois Gouget fgouget at codeweavers.com
Tue Mar 10 06:30:10 CDT 2020


On Sat, 7 Mar 2020, Rémi Bernon wrote:

> Signed-off-by: Rémi Bernon <rbernon at codeweavers.com>
> ---
> 
> I wasn't sure if this was required, but the testbot doesn't regenerate
> theses apparently. Also, I manually edited the generated files to only
> include the new extension, it looks like the file is a bit outdated
> compared to the OpenGL registry.
[...]
> -const int extension_registry_size = 2679;
> +const int extension_registry_size = 2680;

So that's strange. When I run make_opengl extension_registry_size grows 
to 2695 and Wine does not compile because gl.xml now depends on 
khronos_*_t types that we don't have in Wine:

In file included from ../d3dx9_36/txc_dxtn.h:29,
                 from ../d3dx9_36/surface.c:28:
../../include/wine/wgl.h:14:9: error: unknown type name ‘khronos_int8_t’
 typedef khronos_int8_t GLbyte;
         ^~~~~~~~~~~~~~

This seems to come from:

diff --git a/include/wine/wgl.h b/include/wine/wgl.h
index d4fe96025d1..f3ddbe3eb45 100644
--- a/include/wine/wgl.h
+++ b/include/wine/wgl.h
@@ -11,32 +11,32 @@ typedef unsigned int GLenum;
 typedef unsigned char GLboolean;
 typedef unsigned int GLbitfield;
 typedef void GLvoid;
-typedef signed char GLbyte;
-typedef short GLshort;
+typedef khronos_int8_t GLbyte;
+typedef khronos_uint8_t GLubyte;
+typedef khronos_int16_t GLshort;
+typedef khronos_uint16_t GLushort;

And from gl.xml before that:

        <type name="khrplatform">#include <KHR/khrplatform.h></type>
[...]
        <type requires="khrplatform">typedef khronos_int8_t <name>GLbyte</name>;</type>
        <type requires="khrplatform">typedef khronos_uint8_t <name>GLubyte</name>;</type>
        <type requires="khrplatform">typedef khronos_int16_t <name>GLshort</name>;</type>
        <type requires="khrplatform">typedef khronos_uint16_t <name>GLushort</name>;</type>

The khronos_*_t types seem to have been introduced back in mid 2018 in 
the 1e2f5a0d commit.

https://github.com/KhronosGroup/OpenGL-Registry/commit/1e2f5a0d5dddae4beafb204e770fb91efa6be377


Is there a trick to running make_opengl?

I see three options:

* Tweak the wget URLs to retrieve older versions of gl.xml and wgl.xml. 
  Which would likely freeze the extension registry to about 2680.

* Add the khronos_*_t types to Wine (but I don't see them in the 
  Windows headers).

* Tweak make_opengl to remove the khronos_*_t references when generating 
  the source files.


-- 
Francois Gouget <fgouget at codeweavers.com>


More information about the wine-devel mailing list