Module: wine Branch: master Commit: bfa3c9561161193424971cfbbeb4e915e96fffc4 URL: https://source.winehq.org/git/wine.git/?a=commit;h=bfa3c9561161193424971cfbb... Author: Paul Gofman <pgofman(a)codeweavers.com> Date: Wed Feb 24 17:04:52 2021 +0300 winex11.drv: Factor out describe_pixel_format() function. Signed-off-by: Paul Gofman <pgofman(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/winex11.drv/opengl.c | 37 ++++++++++++++++++++++++------------- 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/dlls/winex11.drv/opengl.c b/dlls/winex11.drv/opengl.c index 4a3ab31273a..373182dec44 100644 --- a/dlls/winex11.drv/opengl.c +++ b/dlls/winex11.drv/opengl.c @@ -1533,8 +1533,7 @@ void destroy_gl_drawable( HWND hwnd ) * * Get the pixel-format descriptor associated to the given id */ -static int WINAPI glxdrv_wglDescribePixelFormat( HDC hdc, int iPixelFormat, - UINT nBytes, PIXELFORMATDESCRIPTOR *ppfd) +static int WINAPI describe_pixel_format( int iPixelFormat, PIXELFORMATDESCRIPTOR *ppfd, BOOL allow_offscreen ) { /*XVisualInfo *vis;*/ int value; @@ -1543,23 +1542,13 @@ static int WINAPI glxdrv_wglDescribePixelFormat( HDC hdc, int iPixelFormat, if (!has_opengl()) return 0; - TRACE("(%p,%d,%d,%p)\n", hdc, iPixelFormat, nBytes, ppfd); - - if (!ppfd) return nb_onscreen_formats; - /* Look for the iPixelFormat in our list of supported formats. If it is supported we get the index in the FBConfig table and the number of supported formats back */ - fmt = get_pixel_format(gdi_display, iPixelFormat, FALSE /* Offscreen */); + fmt = get_pixel_format(gdi_display, iPixelFormat, allow_offscreen); if (!fmt) { WARN("unexpected format %d\n", iPixelFormat); return 0; } - if (nBytes < sizeof(PIXELFORMATDESCRIPTOR)) { - ERR("Wrong structure size !\n"); - /* Should set error */ - return 0; - } - memset(ppfd, 0, sizeof(PIXELFORMATDESCRIPTOR)); ppfd->nSize = sizeof(PIXELFORMATDESCRIPTOR); ppfd->nVersion = 1; @@ -1662,6 +1651,28 @@ static int WINAPI glxdrv_wglDescribePixelFormat( HDC hdc, int iPixelFormat, return nb_onscreen_formats; } +/** + * glxdrv_DescribePixelFormat + * + * Get the pixel-format descriptor associated to the given id + */ +static int WINAPI glxdrv_wglDescribePixelFormat( HDC hdc, int iPixelFormat, + UINT nBytes, PIXELFORMATDESCRIPTOR *ppfd) +{ + TRACE("(%p,%d,%d,%p)\n", hdc, iPixelFormat, nBytes, ppfd); + + if (!ppfd) return nb_onscreen_formats; + + if (nBytes < sizeof(PIXELFORMATDESCRIPTOR)) + { + ERR("Wrong structure size !\n"); + /* Should set error */ + return 0; + } + + return describe_pixel_format(iPixelFormat, ppfd, FALSE); +} + /*********************************************************************** * glxdrv_wglGetPixelFormat */