You've already forked wine-staging
							
							
				mirror of
				https://gitlab.winehq.org/wine/wine-staging.git
				synced 2025-09-12 18:50:20 -07:00 
			
		
		
		
	Rebase against 4b028bb09cb9563e111fedab0f4c3663dc278d0a.
This commit is contained in:
		| @@ -1,38 +1,35 @@ | ||||
| From d50a5bcd0bf3da7efba19797045769ef66bb4e0d Mon Sep 17 00:00:00 2001 | ||||
| From 6f813741ccf3790be71ad736260e023dc8f0ac14 Mon Sep 17 00:00:00 2001 | ||||
| From: Sebastian Lackner <sebastian@fds-team.de> | ||||
| Date: Fri, 12 Feb 2016 02:39:07 +0100 | ||||
| Subject: opengl32: Add wrappers for glDebugMessageCallback to handle calling | ||||
|  convention differences. | ||||
|  | ||||
| --- | ||||
|  dlls/opengl32/make_opengl    |  5 ++++ | ||||
|  dlls/opengl32/opengl_ext.c   | 21 ---------------- | ||||
|  dlls/opengl32/opengl_ext.h   |  4 ++++ | ||||
|  dlls/opengl32/make_opengl    |  3 +++ | ||||
|  dlls/opengl32/opengl_ext.c   | 24 +++---------------- | ||||
|  dlls/opengl32/tests/opengl.c | 44 ++++++++++++++++++++++++++++++++++ | ||||
|  dlls/opengl32/wgl.c          | 57 ++++++++++++++++++++++++++++++++++++++++++++ | ||||
|  5 files changed, 110 insertions(+), 21 deletions(-) | ||||
|  4 files changed, 107 insertions(+), 21 deletions(-) | ||||
|  | ||||
| diff --git a/dlls/opengl32/make_opengl b/dlls/opengl32/make_opengl | ||||
| index dc30df5a3cf..83b10013542 100755 | ||||
| index d5d614b6138..1f143f687c6 100755 | ||||
| --- a/dlls/opengl32/make_opengl | ||||
| +++ b/dlls/opengl32/make_opengl | ||||
| @@ -172,6 +172,11 @@ sub GenerateThunk($$$) | ||||
|      return "" if $name eq "glDebugEntry"; | ||||
|      return "" if $name eq "glGetIntegerv"; | ||||
|      return "" if $name eq "glGetString"; | ||||
| + | ||||
| +    return "" if $name eq "glDebugMessageCallback"; | ||||
| +    return "" if $name eq "glDebugMessageCallbackAMD"; | ||||
| +    return "" if $name eq "glDebugMessageCallbackARB"; | ||||
| + | ||||
|      return "" if $func_ref->[2] && $func_ref->[2]->[0] =~ /WGL_/; | ||||
| @@ -418,6 +418,9 @@ sub needs_wrapper($$) | ||||
|           "glGetString" => 1, | ||||
|           "glGetStringi" => 1, | ||||
|           "wglGetCurrentReadDCARB" => 1, | ||||
| +         "glDebugMessageCallback" => 1, | ||||
| +         "glDebugMessageCallbackAMD" => 1, | ||||
| +         "glDebugMessageCallbackARB" => 1, | ||||
|          ); | ||||
|      my ($name, $func) = @_; | ||||
|   | ||||
|      my $ret = get_func_proto( "%s WINAPI %s(%s)", $name, $func_ref ); | ||||
| diff --git a/dlls/opengl32/opengl_ext.c b/dlls/opengl32/opengl_ext.c | ||||
| index 91aa33dd19b..6d058c8c1a8 100644 | ||||
| index aa84c8b8863..90ad75178ce 100644 | ||||
| --- a/dlls/opengl32/opengl_ext.c | ||||
| +++ b/dlls/opengl32/opengl_ext.c | ||||
| @@ -2319,27 +2319,6 @@ static void WINAPI glCurrentPaletteMatrixARB( GLint index ) | ||||
| @@ -2313,27 +2313,6 @@ static void WINAPI glCurrentPaletteMatrixARB( GLint index ) | ||||
|    funcs->ext.p_glCurrentPaletteMatrixARB( index ); | ||||
|  } | ||||
|   | ||||
| @@ -60,24 +57,21 @@ index 91aa33dd19b..6d058c8c1a8 100644 | ||||
|  static void WINAPI glDebugMessageControl( GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled ) | ||||
|  { | ||||
|    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable; | ||||
| diff --git a/dlls/opengl32/opengl_ext.h b/dlls/opengl32/opengl_ext.h | ||||
| index 4f1791a6436..8bffba05023 100644 | ||||
| --- a/dlls/opengl32/opengl_ext.h | ||||
| +++ b/dlls/opengl32/opengl_ext.h | ||||
| @@ -38,4 +38,8 @@ extern BOOL WINAPI wglQueryRendererIntegerWINE( HDC dc, GLint renderer, | ||||
|          GLenum attribute, GLuint *value ) DECLSPEC_HIDDEN; | ||||
|  extern const GLchar * WINAPI wglQueryRendererStringWINE( HDC dc, GLint renderer, GLenum attribute ) DECLSPEC_HIDDEN; | ||||
| @@ -18518,6 +18497,9 @@ static BOOL WINAPI wglSwapIntervalEXT( int interval ) | ||||
|    return funcs->ext.p_wglSwapIntervalEXT( interval ); | ||||
|  } | ||||
|   | ||||
| +extern void WINAPI glDebugMessageCallback( void *callback, const void *userParam ) DECLSPEC_HIDDEN; | ||||
| +extern void WINAPI glDebugMessageCallbackAMD( void *callback, void *userParam ) DECLSPEC_HIDDEN; | ||||
| +extern void WINAPI glDebugMessageCallbackARB( void *callback, const void *userParam ) DECLSPEC_HIDDEN; | ||||
| + | ||||
|  #endif /* __DLLS_OPENGL32_OPENGL_EXT_H */ | ||||
| +extern void WINAPI glDebugMessageCallback( GLDEBUGPROC callback, const void *userParam ) DECLSPEC_HIDDEN; | ||||
| +extern void WINAPI glDebugMessageCallbackAMD( GLDEBUGPROCAMD callback, void *userParam ) DECLSPEC_HIDDEN; | ||||
| +extern void WINAPI glDebugMessageCallbackARB( GLDEBUGPROCARB callback, const void *userParam ) DECLSPEC_HIDDEN; | ||||
|  extern const GLubyte * WINAPI glGetStringi( GLenum name, GLuint index ) DECLSPEC_HIDDEN; | ||||
|  extern BOOL WINAPI wglBindTexImageARB( HPBUFFERARB hPbuffer, int iBuffer ) DECLSPEC_HIDDEN; | ||||
|  extern HGLRC WINAPI wglCreateContextAttribsARB( HDC hDC, HGLRC hShareContext, const int *attribList ) DECLSPEC_HIDDEN; | ||||
| diff --git a/dlls/opengl32/tests/opengl.c b/dlls/opengl32/tests/opengl.c | ||||
| index 4b918424f62..0dc8bd51259 100644 | ||||
| index 8126fbf96dd..a928a9c181d 100644 | ||||
| --- a/dlls/opengl32/tests/opengl.c | ||||
| +++ b/dlls/opengl32/tests/opengl.c | ||||
| @@ -70,6 +70,11 @@ static HDC (WINAPI *pwglGetPbufferDCARB)(HPBUFFERARB); | ||||
| @@ -48,6 +48,11 @@ static HDC (WINAPI *pwglGetPbufferDCARB)(HPBUFFERARB); | ||||
|  static BOOL (WINAPI *pwglSwapIntervalEXT)(int interval); | ||||
|  static int (WINAPI *pwglGetSwapIntervalEXT)(void); | ||||
|   | ||||
| @@ -89,7 +83,7 @@ index 4b918424f62..0dc8bd51259 100644 | ||||
|  static const char* wgl_extensions = NULL; | ||||
|   | ||||
|  static void init_functions(void) | ||||
| @@ -102,6 +107,11 @@ static void init_functions(void) | ||||
| @@ -80,6 +85,11 @@ static void init_functions(void) | ||||
|      GET_PROC(wglSwapIntervalEXT) | ||||
|      GET_PROC(wglGetSwapIntervalEXT) | ||||
|   | ||||
| @@ -101,7 +95,7 @@ index 4b918424f62..0dc8bd51259 100644 | ||||
|  #undef GET_PROC | ||||
|  } | ||||
|   | ||||
| @@ -326,6 +336,39 @@ static void test_choosepixelformat(void) | ||||
| @@ -304,6 +314,39 @@ static void test_choosepixelformat(void) | ||||
|      pfd.cAuxBuffers = 0; | ||||
|  } | ||||
|   | ||||
| @@ -141,7 +135,7 @@ index 4b918424f62..0dc8bd51259 100644 | ||||
|  static void test_setpixelformat(HDC winhdc) | ||||
|  { | ||||
|      int res = 0; | ||||
| @@ -1809,6 +1852,7 @@ START_TEST(opengl) | ||||
| @@ -1787,6 +1830,7 @@ START_TEST(opengl) | ||||
|          } | ||||
|   | ||||
|          test_choosepixelformat(); | ||||
| @@ -150,10 +144,10 @@ index 4b918424f62..0dc8bd51259 100644 | ||||
|          test_destroy(hdc); | ||||
|          test_sharelists(hdc); | ||||
| diff --git a/dlls/opengl32/wgl.c b/dlls/opengl32/wgl.c | ||||
| index dacf0b38d49..271d29405bc 100644 | ||||
| index b73920cb256..d20fedaa98b 100644 | ||||
| --- a/dlls/opengl32/wgl.c | ||||
| +++ b/dlls/opengl32/wgl.c | ||||
| @@ -63,6 +63,9 @@ struct opengl_context | ||||
| @@ -58,6 +58,9 @@ struct opengl_context | ||||
|      DWORD               tid;           /* thread that the context is current in */ | ||||
|      HDC                 draw_dc;       /* current drawing DC */ | ||||
|      HDC                 read_dc;       /* current reading DC */ | ||||
| @@ -163,7 +157,7 @@ index dacf0b38d49..271d29405bc 100644 | ||||
|      GLubyte            *extensions;    /* extension string */ | ||||
|      GLuint             *disabled_exts; /* indices of disabled extensions */ | ||||
|      struct wgl_context *drv_ctx;       /* driver context */ | ||||
| @@ -1943,6 +1946,60 @@ const GLubyte * WINAPI glGetString( GLenum name ) | ||||
| @@ -1746,6 +1749,60 @@ const GLubyte * WINAPI glGetString( GLenum name ) | ||||
|      return ret; | ||||
|  } | ||||
|   | ||||
| @@ -179,12 +173,12 @@ index dacf0b38d49..271d29405bc 100644 | ||||
| +/*********************************************************************** | ||||
| + *      glDebugMessageCallback | ||||
| + */ | ||||
| +void WINAPI glDebugMessageCallback( void *callback, const void *userParam ) | ||||
| +void WINAPI glDebugMessageCallback( GLDEBUGPROC callback, const void *userParam ) | ||||
| +{ | ||||
| +    struct wgl_handle *ptr = get_current_context_ptr(); | ||||
| +    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable; | ||||
| + | ||||
| +    TRACE("(%p, %p)\n", callback, userParam ); | ||||
| +    TRACE( "(%p, %p)\n", callback, userParam ); | ||||
| + | ||||
| +    ptr->u.context->debug_callback = callback; | ||||
| +    ptr->u.context->debug_user     = userParam; | ||||
| @@ -194,12 +188,12 @@ index dacf0b38d49..271d29405bc 100644 | ||||
| +/*********************************************************************** | ||||
| + *      glDebugMessageCallbackAMD | ||||
| + */ | ||||
| +void WINAPI glDebugMessageCallbackAMD( void *callback, void *userParam ) | ||||
| +void WINAPI glDebugMessageCallbackAMD( GLDEBUGPROCAMD callback, void *userParam ) | ||||
| +{ | ||||
| +    struct wgl_handle *ptr = get_current_context_ptr(); | ||||
| +    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable; | ||||
| + | ||||
| +    TRACE("(%p, %p)\n", callback, userParam ); | ||||
| +    TRACE( "(%p, %p)\n", callback, userParam ); | ||||
| + | ||||
| +    ptr->u.context->debug_callback = callback; | ||||
| +    ptr->u.context->debug_user     = userParam; | ||||
| @@ -209,12 +203,12 @@ index dacf0b38d49..271d29405bc 100644 | ||||
| +/*********************************************************************** | ||||
| + *      glDebugMessageCallbackARB | ||||
| + */ | ||||
| +void WINAPI glDebugMessageCallbackARB( void *callback, const void *userParam ) | ||||
| +void WINAPI glDebugMessageCallbackARB( GLDEBUGPROCARB callback, const void *userParam ) | ||||
| +{ | ||||
| +    struct wgl_handle *ptr = get_current_context_ptr(); | ||||
| +    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable; | ||||
| + | ||||
| +    TRACE("(%p, %p)\n", callback, userParam ); | ||||
| +    TRACE( "(%p, %p)\n", callback, userParam ); | ||||
| + | ||||
| +    ptr->u.context->debug_callback = callback; | ||||
| +    ptr->u.context->debug_user     = userParam; | ||||
|   | ||||
| @@ -52,7 +52,7 @@ usage() | ||||
| # Get the upstream commit sha | ||||
| upstream_commit() | ||||
| { | ||||
| 	echo "ee7ddd1ed38a3b2f41bdb676f42e3453021968c1" | ||||
| 	echo "4b028bb09cb9563e111fedab0f4c3663dc278d0a" | ||||
| } | ||||
|  | ||||
| # Show version information | ||||
| @@ -7527,8 +7527,7 @@ fi | ||||
| # |   *	[#38402] Fix calling convention of glDebugMessageCallback callback function | ||||
| # | | ||||
| # | Modified files: | ||||
| # |   *	dlls/opengl32/make_opengl, dlls/opengl32/opengl_ext.c, dlls/opengl32/opengl_ext.h, dlls/opengl32/tests/opengl.c, | ||||
| # | 	dlls/opengl32/wgl.c | ||||
| # |   *	dlls/opengl32/make_opengl, dlls/opengl32/opengl_ext.c, dlls/opengl32/tests/opengl.c, dlls/opengl32/wgl.c | ||||
| # | | ||||
| if test "$enable_opengl32_glDebugMessageCallback" -eq 1; then | ||||
| 	patch_apply opengl32-glDebugMessageCallback/0002-opengl32-Add-wrappers-for-glDebugMessageCallback-to-.patch | ||||
|   | ||||
		Reference in New Issue
	
	Block a user