https://git.reactos.org/?p=reactos.git;a=commitdiff;h=d1c4fe8cfbb3e173a089cf...
commit d1c4fe8cfbb3e173a089cfbd45f62d411ca1fde3 Author: Amine Khaldi amine.khaldi@reactos.org AuthorDate: Sun Jan 21 22:42:20 2018 +0100 Commit: Amine Khaldi amine.khaldi@reactos.org CommitDate: Sun Jan 21 22:42:20 2018 +0100
[OPENGL32_WINETEST] Sync with Wine 3.0. CORE-14225 --- modules/rostests/winetests/opengl32/opengl.c | 132 +++++---------------------- 1 file changed, 24 insertions(+), 108 deletions(-)
diff --git a/modules/rostests/winetests/opengl32/opengl.c b/modules/rostests/winetests/opengl32/opengl.c index 346b89d45a..8126fbf96d 100644 --- a/modules/rostests/winetests/opengl32/opengl.c +++ b/modules/rostests/winetests/opengl32/opengl.c @@ -24,20 +24,10 @@ #include "wine/wgl.h"
#define MAX_FORMATS 256 -typedef void* HPBUFFERARB;
/* WGL_ARB_create_context */ static HGLRC (WINAPI *pwglCreateContextAttribsARB)(HDC hDC, HGLRC hShareContext, const int *attribList);
-#define WGL_CONTEXT_MAJOR_VERSION_ARB 0x2091 -#define WGL_CONTEXT_MINOR_VERSION_ARB 0x2092 -#define WGL_CONTEXT_LAYER_PLANE_ARB 0x2093 -#define WGL_CONTEXT_FLAGS_ARB 0x2094 - -/* Flags for WGL_CONTEXT_FLAGS_ARB */ -#define WGL_CONTEXT_DEBUG_BIT_ARB 0x0001 -#define WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x0002 - /* WGL_ARB_extensions_string */ static const char* (WINAPI *pwglGetExtensionsStringARB)(HDC); static int (WINAPI *pwglReleasePbufferDCARB)(HPBUFFERARB, HDC); @@ -47,35 +37,17 @@ static BOOL (WINAPI *pwglMakeContextCurrentARB)(HDC hdraw, HDC hread, HGLRC hglr static HDC (WINAPI *pwglGetCurrentReadDCARB)(void);
/* WGL_ARB_pixel_format */ -#define WGL_ACCELERATION_ARB 0x2003 -#define WGL_COLOR_BITS_ARB 0x2014 -#define WGL_RED_BITS_ARB 0x2015 -#define WGL_GREEN_BITS_ARB 0x2017 -#define WGL_BLUE_BITS_ARB 0x2019 -#define WGL_ALPHA_BITS_ARB 0x201B -#define WGL_SUPPORT_GDI_ARB 0x200F -#define WGL_DOUBLE_BUFFER_ARB 0x2011 -#define WGL_NO_ACCELERATION_ARB 0x2025 -#define WGL_GENERIC_ACCELERATION_ARB 0x2026 -#define WGL_FULL_ACCELERATION_ARB 0x2027 - static BOOL (WINAPI *pwglChoosePixelFormatARB)(HDC, const int *, const FLOAT *, UINT, int *, UINT *); static BOOL (WINAPI *pwglGetPixelFormatAttribivARB)(HDC, int, int, UINT, const int *, int *);
/* WGL_ARB_pbuffer */ -#define WGL_DRAW_TO_PBUFFER_ARB 0x202D -static HPBUFFERARB* (WINAPI *pwglCreatePbufferARB)(HDC, int, int, int, const int *); +static HPBUFFERARB (WINAPI *pwglCreatePbufferARB)(HDC, int, int, int, const int *); static HDC (WINAPI *pwglGetPbufferDCARB)(HPBUFFERARB);
/* WGL_EXT_swap_control */ static BOOL (WINAPI *pwglSwapIntervalEXT)(int interval); static int (WINAPI *pwglGetSwapIntervalEXT)(void);
-/* GL_ARB_debug_output */ -static void (WINAPI *pglDebugMessageCallbackARB)(void *, void *); -static void (WINAPI *pglDebugMessageControlARB)(GLenum, GLenum, GLenum, GLsizei, const GLuint *, GLboolean); -static void (WINAPI *pglDebugMessageInsertARB)(GLenum, GLenum, GLuint, GLenum, GLsizei, const char *); - static const char* wgl_extensions = NULL;
static void init_functions(void) @@ -108,11 +80,6 @@ static void init_functions(void) GET_PROC(wglSwapIntervalEXT) GET_PROC(wglGetSwapIntervalEXT)
- /* GL_ARB_debug_output */ - GET_PROC(glDebugMessageCallbackARB) - GET_PROC(glDebugMessageControlARB) - GET_PROC(glDebugMessageInsertARB) - #undef GET_PROC }
@@ -242,7 +209,7 @@ static void test_pbuffers(HDC hdc) else skip("Pbuffer test for offscreen pixelformat skipped as no offscreen-only format with pbuffer capabilities has been found\n"); }
-static int test_pfd(const PIXELFORMATDESCRIPTOR *pfd, PIXELFORMATDESCRIPTOR *fmt) +static int test_pfd(const PIXELFORMATDESCRIPTOR *pfd) { int pf; HDC hdc; @@ -255,12 +222,6 @@ static int test_pfd(const PIXELFORMATDESCRIPTOR *pfd, PIXELFORMATDESCRIPTOR *fmt
hdc = GetDC( hwnd ); pf = ChoosePixelFormat( hdc, pfd ); - if (pf && fmt) - { - memset(fmt, 0, sizeof(*fmt)); - ok(DescribePixelFormat( hdc, pf, sizeof(*fmt), fmt ), - "DescribePixelFormat failed with error: %u\n", GetLastError()); - } ReleaseDC( hwnd, hdc ); DestroyWindow( hwnd );
@@ -288,105 +249,61 @@ static void test_choosepixelformat(void) 0, /* reserved */ 0, 0, 0 /* layer masks */ }; - PIXELFORMATDESCRIPTOR ret_fmt;
- ok( test_pfd(&pfd, NULL), "Simple pfd failed\n" ); + ok( test_pfd(&pfd), "Simple pfd failed\n" ); pfd.dwFlags |= PFD_DOUBLEBUFFER_DONTCARE; - ok( test_pfd(&pfd, NULL), "PFD_DOUBLEBUFFER_DONTCARE failed\n" ); + ok( test_pfd(&pfd), "PFD_DOUBLEBUFFER_DONTCARE failed\n" ); pfd.dwFlags |= PFD_STEREO_DONTCARE; - ok( test_pfd(&pfd, NULL), "PFD_DOUBLEBUFFER_DONTCARE|PFD_STEREO_DONTCARE failed\n" ); + ok( test_pfd(&pfd), "PFD_DOUBLEBUFFER_DONTCARE|PFD_STEREO_DONTCARE failed\n" ); pfd.dwFlags &= ~PFD_DOUBLEBUFFER_DONTCARE; - ok( test_pfd(&pfd, NULL), "PFD_STEREO_DONTCARE failed\n" ); + ok( test_pfd(&pfd), "PFD_STEREO_DONTCARE failed\n" ); pfd.dwFlags &= ~PFD_STEREO_DONTCARE; - pfd.iPixelType = 32; - ok( test_pfd(&pfd, &ret_fmt), "Invalid pixel format 32 failed\n" ); - ok( ret_fmt.iPixelType == PFD_TYPE_RGBA, "Expected pixel type PFD_TYPE_RGBA, got %d\n", ret_fmt.iPixelType ); - pfd.iPixelType = 33; - ok( test_pfd(&pfd, &ret_fmt), "Invalid pixel format 33 failed\n" ); - ok( ret_fmt.iPixelType == PFD_TYPE_RGBA, "Expected pixel type PFD_TYPE_RGBA, got %d\n", ret_fmt.iPixelType ); - pfd.iPixelType = 15; - ok( test_pfd(&pfd, &ret_fmt), "Invalid pixel format 15 failed\n" ); - ok( ret_fmt.iPixelType == PFD_TYPE_RGBA, "Expected pixel type PFD_TYPE_RGBA, got %d\n", ret_fmt.iPixelType ); - pfd.iPixelType = PFD_TYPE_RGBA;
pfd.cColorBits = 32; - ok( test_pfd(&pfd, NULL), "Simple pfd failed\n" ); + ok( test_pfd(&pfd), "Simple pfd failed\n" ); pfd.dwFlags |= PFD_DOUBLEBUFFER_DONTCARE; - ok( test_pfd(&pfd, NULL), "PFD_DOUBLEBUFFER_DONTCARE failed\n" ); + ok( test_pfd(&pfd), "PFD_DOUBLEBUFFER_DONTCARE failed\n" ); pfd.dwFlags |= PFD_STEREO_DONTCARE; - ok( test_pfd(&pfd, NULL), "PFD_DOUBLEBUFFER_DONTCARE|PFD_STEREO_DONTCARE failed\n" ); + ok( test_pfd(&pfd), "PFD_DOUBLEBUFFER_DONTCARE|PFD_STEREO_DONTCARE failed\n" ); pfd.dwFlags &= ~PFD_DOUBLEBUFFER_DONTCARE; - ok( test_pfd(&pfd, NULL), "PFD_STEREO_DONTCARE failed\n" ); + ok( test_pfd(&pfd), "PFD_STEREO_DONTCARE failed\n" ); pfd.dwFlags &= ~PFD_STEREO_DONTCARE; pfd.cColorBits = 0;
pfd.cAlphaBits = 8; - ok( test_pfd(&pfd, NULL), "Simple pfd failed\n" ); + ok( test_pfd(&pfd), "Simple pfd failed\n" ); pfd.dwFlags |= PFD_DOUBLEBUFFER_DONTCARE; - ok( test_pfd(&pfd, NULL), "PFD_DOUBLEBUFFER_DONTCARE failed\n" ); + ok( test_pfd(&pfd), "PFD_DOUBLEBUFFER_DONTCARE failed\n" ); pfd.dwFlags |= PFD_STEREO_DONTCARE; - ok( test_pfd(&pfd, NULL), "PFD_DOUBLEBUFFER_DONTCARE|PFD_STEREO_DONTCARE failed\n" ); + ok( test_pfd(&pfd), "PFD_DOUBLEBUFFER_DONTCARE|PFD_STEREO_DONTCARE failed\n" ); pfd.dwFlags &= ~PFD_DOUBLEBUFFER_DONTCARE; - ok( test_pfd(&pfd, NULL), "PFD_STEREO_DONTCARE failed\n" ); + ok( test_pfd(&pfd), "PFD_STEREO_DONTCARE failed\n" ); pfd.dwFlags &= ~PFD_STEREO_DONTCARE; pfd.cAlphaBits = 0;
pfd.cStencilBits = 8; - ok( test_pfd(&pfd, NULL), "Simple pfd failed\n" ); + ok( test_pfd(&pfd), "Simple pfd failed\n" ); pfd.dwFlags |= PFD_DOUBLEBUFFER_DONTCARE; - ok( test_pfd(&pfd, NULL), "PFD_DOUBLEBUFFER_DONTCARE failed\n" ); + ok( test_pfd(&pfd), "PFD_DOUBLEBUFFER_DONTCARE failed\n" ); pfd.dwFlags |= PFD_STEREO_DONTCARE; - ok( test_pfd(&pfd, NULL), "PFD_DOUBLEBUFFER_DONTCARE|PFD_STEREO_DONTCARE failed\n" ); + ok( test_pfd(&pfd), "PFD_DOUBLEBUFFER_DONTCARE|PFD_STEREO_DONTCARE failed\n" ); pfd.dwFlags &= ~PFD_DOUBLEBUFFER_DONTCARE; - ok( test_pfd(&pfd, NULL), "PFD_STEREO_DONTCARE failed\n" ); + ok( test_pfd(&pfd), "PFD_STEREO_DONTCARE failed\n" ); pfd.dwFlags &= ~PFD_STEREO_DONTCARE; pfd.cStencilBits = 0;
pfd.cAuxBuffers = 1; - ok( test_pfd(&pfd, NULL), "Simple pfd failed\n" ); + ok( test_pfd(&pfd), "Simple pfd failed\n" ); pfd.dwFlags |= PFD_DOUBLEBUFFER_DONTCARE; - ok( test_pfd(&pfd, NULL), "PFD_DOUBLEBUFFER_DONTCARE failed\n" ); + ok( test_pfd(&pfd), "PFD_DOUBLEBUFFER_DONTCARE failed\n" ); pfd.dwFlags |= PFD_STEREO_DONTCARE; - ok( test_pfd(&pfd, NULL), "PFD_DOUBLEBUFFER_DONTCARE|PFD_STEREO_DONTCARE failed\n" ); + ok( test_pfd(&pfd), "PFD_DOUBLEBUFFER_DONTCARE|PFD_STEREO_DONTCARE failed\n" ); pfd.dwFlags &= ~PFD_DOUBLEBUFFER_DONTCARE; - ok( test_pfd(&pfd, NULL), "PFD_STEREO_DONTCARE failed\n" ); + ok( test_pfd(&pfd), "PFD_STEREO_DONTCARE failed\n" ); pfd.dwFlags &= ~PFD_STEREO_DONTCARE; pfd.cAuxBuffers = 0; }
-static void WINAPI gl_debug_message_callback(GLenum source, GLenum type, GLuint id, GLenum severity, - GLsizei length, const GLchar *message, const void *userParam) -{ - DWORD *count = (DWORD *)userParam; - (*count)++; -} - -static void test_debug_message_callback(void) -{ - static const char testmsg[] = "Hello World"; - DWORD count; - - if (!pglDebugMessageCallbackARB) - { - skip("glDebugMessageCallbackARB not supported\n"); - return; - } - - glEnable(GL_DEBUG_OUTPUT); - glEnable(GL_DEBUG_OUTPUT_SYNCHRONOUS); - - pglDebugMessageCallbackARB(gl_debug_message_callback, &count); - pglDebugMessageControlARB(GL_DONT_CARE, GL_DONT_CARE, GL_DONT_CARE, 0, NULL, GL_TRUE); - - count = 0; - pglDebugMessageInsertARB(GL_DEBUG_SOURCE_APPLICATION, GL_DEBUG_TYPE_OTHER, 0x42424242, - GL_DEBUG_SEVERITY_LOW, sizeof(testmsg), testmsg); - ok(count == 1, "expected count == 1, got %u\n", count); - - glDisable(GL_DEBUG_OUTPUT_SYNCHRONOUS); - glDisable(GL_DEBUG_OUTPUT); -} - static void test_setpixelformat(HDC winhdc) { int res = 0; @@ -464,7 +381,7 @@ static void test_setpixelformat(HDC winhdc) ok( GetLastError() == ERROR_INVALID_PIXEL_FORMAT, "wrong error %u\n", GetLastError() ); SetLastError( 0xdeadbeef ); res = SetPixelFormat( hdc, pf, &pfd ); - ok( i == 0, "SetPixelFormat succeeded\n" ); + ok( !res, "SetPixelFormat succeeded\n" ); ok( GetLastError() == ERROR_INVALID_HANDLE, "wrong error %u\n", GetLastError() ); SetLastError( 0xdeadbeef ); res = DescribePixelFormat( hdc, 0, 0, NULL ); @@ -525,7 +442,7 @@ static void test_sharelists(HDC winhdc) res = wglMakeCurrent(winhdc, hglrc2); ok(res, "Make current failed\n"); res = wglShareLists(hglrc1, hglrc2); - ok(res, "Sharing display lists with a destination context which has been made current failed\n"); + todo_wine ok(res, "Sharing display lists with a destination context which has been made current failed\n"); wglMakeCurrent(0, 0); wglDeleteContext(hglrc2); } @@ -1870,7 +1787,6 @@ START_TEST(opengl) }
test_choosepixelformat(); - test_debug_message_callback(); test_setpixelformat(hdc); test_destroy(hdc); test_sharelists(hdc);