Commit graph

517 commits

Author SHA1 Message Date
Jacek Caban ecf31ba4c7 opengl32: Use default calling convention for WGL driver entry points. 2022-12-06 17:11:21 +01:00
Alexandre Julliard 80e572451e opengl32: Don't free memory at process exit. 2022-12-06 15:18:57 +01:00
Alexandre Julliard f6a0597d59 opengl32: Pass the TEB pointer in the Unix call parameters.
NtCurrentTeb() is more expensive on the Unix side.
2022-12-06 15:18:57 +01:00
Alexandre Julliard 288da7c8db opengl32: Fix GLdouble type alignment on the Unix side. 2022-12-06 13:44:34 +01:00
Alexandre Julliard 0f67dbb50e opengl32: Fix calling convention of Unix call entry points. 2022-12-01 11:38:23 +01:00
Alexandre Julliard e9c065e590 opengl32: Use the Unix call helpers. 2022-11-25 10:14:36 +01:00
Jacek Caban c2a43defec win32u: Don't use CDECL for __wine_get_wgl_driver. 2022-11-23 18:04:28 +01:00
Rémi Bernon 93dcfef00b opengl32: Use the +opengl debug channel everywhere. 2022-11-21 13:03:48 +01:00
Rémi Bernon 7443db1ce9 opengl32: Cast wow64 pointers in glGet(VertexAttrib)Pointerv.
They are byte offsets in the buffers data.
2022-11-21 13:03:33 +01:00
Rémi Bernon 09652f121c opengl32: Implement wow64 thunks for glMapBuffer (et al.). 2022-11-21 13:03:16 +01:00
Rémi Bernon 50ab0f8f71 opengl32: Use manual win32 thunks for glMapBuffer (et al.). 2022-11-21 13:03:04 +01:00
Rémi Bernon 17abb6f4e7 opengl32: Implement wow64 thunk for glGetString (et al.).
This is a bit tricky because the strings are supposed to be static, but
we also cannot return the unix strings directly either.

So instead we keep track, on the unix side, of known unix / wow64 string
associations, and return the known wow64 string if the unix string was
already requested before.

If the string wasn't found, the syscall returns STATUS_BUFFER_TOO_SMALL,
and the PE side allocates the required memory, calling the syscall once
again with the wow64 string pointer to copy the string to.

On concurrent calls, the syscall may return a different wow64 string, in
which case the PE side uses it instead and frees the one it allocated.

Lastly, the PE side also keeps record of wow64 strings it had allocated,
so that we can free them on process detach. The unix side also does some
cleanup of its mapping buffer, as there's no guarantee that it will be
completely unloaded.
2022-11-21 13:02:47 +01:00
Rémi Bernon eabd176cc0 opengl32: Implement wow64 thunks for glFenceSync (et al.). 2022-11-18 18:52:11 +01:00
Rémi Bernon edcea32c6a opengl32: Implement wow64 thunks for input pointer arrays. 2022-11-18 18:52:11 +01:00
Rémi Bernon 173e91a4b6 opengl32: Implement wow64 thunk for wglGetPbufferDCARB. 2022-11-18 18:52:11 +01:00
Rémi Bernon bfb6119fb3 opengl32: Implement wow64 thunk for wglCreatePbufferARB. 2022-11-18 18:52:11 +01:00
Rémi Bernon 4f1ed0873d opengl32: Implement wow64 thunk for wglCreateContextAttribsARB. 2022-11-18 18:52:11 +01:00
Alexandre Julliard ce951c9ca7 opengl32: Build without -DWINE_NO_LONG_TYPES. 2022-11-17 16:35:54 +01:00
Rémi Bernon c24d7a23ad opengl32: Implement wow64 thunk for wglMakeCurrent (et al.).
Keeping the 32bit TEB context and private data in sync.
2022-11-17 16:35:53 +01:00
Rémi Bernon e9db6bca44 opengl32: Implement wow64 thunk for wglGetProcAddress. 2022-11-17 16:35:53 +01:00
Rémi Bernon 076ac8484e opengl32: Manually write glPathGlyphIndexRangeNV wow64 thunk. 2022-11-17 16:35:53 +01:00
Rémi Bernon 531b8bc483 opengl32: Generate wow64 thunks. 2022-11-17 16:35:53 +01:00
Alexandre Julliard cc0ac7b430 opengl32: Consistently use RtlSetLastWin32Error() everywhere. 2022-11-13 11:31:43 +01:00
Alexandre Julliard e037822581 opengl32: Fix parsing of the DisabledExtensions option. 2022-11-13 11:31:43 +01:00
Rémi Bernon 2f5c985eea opengl32: Use RtlSetLastWin32Error instead of SetLastError. 2022-11-10 22:00:34 +01:00
Rémi Bernon 613bed5327 opengl32: Use msvcrt allocation functions. 2022-11-10 22:00:34 +01:00
Rémi Bernon 60eeb92ae0 opengl32: Build with msvcrt. 2022-11-10 22:00:34 +01:00
Rémi Bernon 40bd3b69ed opengl32: Use ntdll registry functions to read disabled extensions. 2022-11-09 16:19:59 +01:00
Rémi Bernon d4bed8ed2c opengl32: Avoid recursively entering WGL critical section. 2022-11-09 16:19:58 +01:00
Rémi Bernon cb4fecc208 opengl32: Split opengl_ext.h into private.h and unix_private.h. 2022-11-09 16:19:58 +01:00
Rémi Bernon 2e1d5af702 opengl32: Use glReserved1[0] and glReserved1[1] for draw and read DCs. 2022-11-09 16:19:58 +01:00
Rémi Bernon 8c17811312 opengl32: Avoid calling back the wglMakeCurrent win32 thunk. 2022-11-09 16:19:58 +01:00
Rémi Bernon b892720adb opengl32: Move wglGetProcAddress extension filtering to unix_wgl.c. 2022-11-08 20:07:52 +01:00
Rémi Bernon 8a6987af12 opengl32: Move function / extension registry mapping to unix_thunks.c.
Keeping the extension function pointers array on the PE side.
2022-11-08 20:07:52 +01:00
Rémi Bernon b6f80f9fcc opengl32: Move glGetIntegerv extension filtering to unix_wgl.c. 2022-11-08 20:07:52 +01:00
Rémi Bernon 35f64cd7c8 opengl32: Move glGetString extension filtering to unix_wgl.c. 2022-11-08 20:07:52 +01:00
Rémi Bernon 720afb1401 opengl32: Move glGetStringi extension filtering to unix_wgl.c. 2022-11-08 20:07:52 +01:00
Rémi Bernon 0ad02fca3d opengl32: Move extension filtering helpers to unix_wgl.c. 2022-11-08 20:07:52 +01:00
Rémi Bernon 1001745dde opengl32: Introduce new disabled_extensions_index helper. 2022-11-08 20:07:52 +01:00
Rémi Bernon 077c46261a opengl32: Use the unixlib interface for more WGL functions. 2022-11-04 19:23:55 +01:00
Rémi Bernon 494251add7 opengl32: Move some WGL functions to unix_wgl.c. 2022-11-04 19:23:55 +01:00
Rémi Bernon dec91f0631 opengl32: Introduce a new NtUserCallOpenGLDebugMessageCallback callback. 2022-11-04 19:23:55 +01:00
Rémi Bernon df74066f47 opengl32: Avoid using internal functions in wglUseFontOutlines. 2022-11-04 19:23:55 +01:00
Rémi Bernon c656fcf309 opengl32: Avoid using internal functions in wglUseFontBitmaps. 2022-11-04 19:23:55 +01:00
Rémi Bernon 28de0a56ae opengl32: Use the unixlib interface for WGL functions. 2022-11-03 18:33:09 +01:00
Rémi Bernon dceaa225cd opengl32: Use the unixlib interface for EXT functions. 2022-11-03 18:33:09 +01:00
Rémi Bernon 30aada25da opengl32: Move the null functions to unix_thunks.c. 2022-11-03 18:33:09 +01:00
Rémi Bernon cd93ca033c opengl32: Use the unixlib for glGet(String|Integerv). 2022-11-03 18:33:09 +01:00
Rémi Bernon 7dcc6ccf5e opengl32: Create a unixlib interface for GL functions. 2022-11-03 18:33:09 +01:00
Rémi Bernon 60f1436e68 opengl32: Use has_extension in filter_extensions_index. 2022-10-17 11:24:44 +02:00