Signed-off-by: Paul Gofman pgofman@codeweavers.com --- v2: - use "user_driver->" instead of load_driver(); - store is_display DC parameter and base dibdrv choice on that; - move __wine_get_wgl_driver to dc.c.
dlls/user32/driver.c | 4 +++- dlls/win32u/dc.c | 32 ++++++++++++++++++++++++++++++++ dlls/win32u/dibdrv/dc.c | 18 ++---------------- dlls/win32u/driver.c | 31 ++++++++----------------------- dlls/win32u/emfdrv.c | 1 - dlls/win32u/font.c | 1 - dlls/win32u/ntgdi_private.h | 2 ++ dlls/win32u/path.c | 1 - dlls/wineandroid.drv/init.c | 13 +++---------- dlls/winemac.drv/gdi.c | 2 +- dlls/winemac.drv/macdrv.h | 2 +- dlls/winemac.drv/opengl.c | 2 +- dlls/wineps.drv/init.c | 1 - dlls/winex11.drv/init.c | 13 +++---------- dlls/winex11.drv/xrender.c | 1 - include/wine/gdi_driver.h | 5 +++-- 16 files changed, 59 insertions(+), 70 deletions(-)
diff --git a/dlls/user32/driver.c b/dlls/user32/driver.c index 5381e0c52d7..c8df3f31e2e 100644 --- a/dlls/user32/driver.c +++ b/dlls/user32/driver.c @@ -380,8 +380,10 @@ static struct user_driver_funcs lazy_load_driver = NULL, /* vulkan support */ NULL, + /* opengl support */ + NULL, /* thread management */ - NULL + NULL, };
void CDECL __wine_set_user_driver( const struct user_driver_funcs *funcs, UINT version ) diff --git a/dlls/win32u/dc.c b/dlls/win32u/dc.c index 4ee138b2906..ab5f6fe6d28 100644 --- a/dlls/win32u/dc.c +++ b/dlls/win32u/dc.c @@ -36,6 +36,8 @@ #include "winternl.h" #include "winerror.h" #include "ntgdi_private.h" +#include "wine/wgl.h" +#include "wine/wgl_driver.h"
#include "wine/debug.h"
@@ -763,6 +765,7 @@ HDC WINAPI NtGdiOpenDCW( UNICODE_STRING *device, const DEVMODEW *devmode, UNICOD dc->attr->vis_rect.top = 0; dc->attr->vis_rect.right = NtGdiGetDeviceCaps( hdc, DESKTOPHORZRES ); dc->attr->vis_rect.bottom = NtGdiGetDeviceCaps( hdc, DESKTOPVERTRES ); + dc->is_display = !!is_display;
DC_InitDC( dc ); release_dc_ptr( dc ); @@ -1364,3 +1367,32 @@ BOOL CDECL __wine_get_icm_profile( HDC hdc, BOOL allow_default, DWORD *size, WCH release_dc_ptr(dc); return ret; } + +/*********************************************************************** + * __wine_get_wgl_driver (win32u.@) + */ +struct opengl_funcs * CDECL __wine_get_wgl_driver( HDC hdc, UINT version ) +{ + BOOL dibdrv; + DC * dc; + + if (!(dc = get_dc_obj( hdc ))) return NULL; + if (dc->attr->disabled) + { + GDI_ReleaseObj( hdc ); + return NULL; + } + dibdrv = !dc->is_display; + GDI_ReleaseObj( hdc ); + + if (dibdrv) + { + if (version != WINE_WGL_DRIVER_VERSION) + { + ERR( "version mismatch, opengl32 wants %u but dibdrv has %u\n", version, WINE_WGL_DRIVER_VERSION ); + return NULL; + } + return dibdrv_get_wgl_driver(); + } + return user_driver->pwine_get_wgl_driver( version ); +} diff --git a/dlls/win32u/dibdrv/dc.c b/dlls/win32u/dibdrv/dc.c index a96b613d0a3..f29651773c0 100644 --- a/dlls/win32u/dibdrv/dc.c +++ b/dlls/win32u/dibdrv/dc.c @@ -603,15 +603,10 @@ static struct opengl_funcs opengl_funcs = };
/********************************************************************** - * dibdrv_wine_get_wgl_driver + * dibdrv_get_wgl_driver */ -static struct opengl_funcs * CDECL dibdrv_wine_get_wgl_driver( PHYSDEV dev, UINT version ) +struct opengl_funcs *dibdrv_get_wgl_driver(void) { - if (version != WINE_WGL_DRIVER_VERSION) - { - ERR( "version mismatch, opengl32 wants %u but dibdrv has %u\n", version, WINE_WGL_DRIVER_VERSION ); - return NULL; - } if (!osmesa_funcs && !(osmesa_funcs = init_opengl_lib())) { static int warned; @@ -715,7 +710,6 @@ const struct gdi_dc_funcs dib_driver = NULL, /* pUnrealizePalette */ NULL, /* pD3DKMTCheckVidPnExclusiveOwnership */ NULL, /* pD3DKMTSetVidPnSourceOwner */ - dibdrv_wine_get_wgl_driver, /* wine_get_wgl_driver */ GDI_PRIORITY_DIB_DRV /* priority */ };
@@ -1177,13 +1171,6 @@ static INT CDECL windrv_StretchDIBits( PHYSDEV dev, INT x_dst, INT y_dst, INT wi return ret; }
-static struct opengl_funcs * CDECL windrv_wine_get_wgl_driver( PHYSDEV dev, UINT version ) -{ - dev = GET_NEXT_PHYSDEV( dev, wine_get_wgl_driver ); - if (dev->funcs == &dib_driver) dev = GET_NEXT_PHYSDEV( dev, wine_get_wgl_driver ); - return dev->funcs->wine_get_wgl_driver( dev, version ); -} - static const struct gdi_dc_funcs window_driver = { NULL, /* pAbortDoc */ @@ -1277,6 +1264,5 @@ static const struct gdi_dc_funcs window_driver = NULL, /* pUnrealizePalette */ NULL, /* pD3DKMTCheckVidPnExclusiveOwnership */ NULL, /* pD3DKMTSetVidPnSourceOwner */ - windrv_wine_get_wgl_driver, /* wine_get_wgl_driver */ GDI_PRIORITY_DIB_DRV + 10 /* priority */ }; diff --git a/dlls/win32u/driver.c b/dlls/win32u/driver.c index dc858cdc0ce..9e530305cca 100644 --- a/dlls/win32u/driver.c +++ b/dlls/win32u/driver.c @@ -571,11 +571,6 @@ static NTSTATUS CDECL nulldrv_D3DKMTSetVidPnSourceOwner( const D3DKMT_SETVIDPNSO return STATUS_PROCEDURE_NOT_FOUND; }
-static struct opengl_funcs * CDECL nulldrv_wine_get_wgl_driver( PHYSDEV dev, UINT version ) -{ - return (void *)-1; -} - const struct gdi_dc_funcs null_driver = { nulldrv_AbortDoc, /* pAbortDoc */ @@ -669,7 +664,6 @@ const struct gdi_dc_funcs null_driver = nulldrv_UnrealizePalette, /* pUnrealizePalette */ nulldrv_D3DKMTCheckVidPnExclusiveOwnership, /* pD3DKMTCheckVidPnExclusiveOwnership */ nulldrv_D3DKMTSetVidPnSourceOwner, /* pD3DKMTSetVidPnSourceOwner */ - nulldrv_wine_get_wgl_driver, /* wine_get_wgl_driver */
GDI_PRIORITY_NULL_DRV /* priority */ }; @@ -928,6 +922,11 @@ static const struct vulkan_funcs * CDECL nulldrv_wine_get_vulkan_driver( UINT ve return NULL; }
+static struct opengl_funcs * CDECL nulldrv_wine_get_wgl_driver( UINT version ) +{ + return (void *)-1; +} + static void CDECL nulldrv_ThreadDetach( void ) { } @@ -1063,6 +1062,8 @@ static const struct user_driver_funcs lazy_load_driver = .pSystemParametersInfo = nulldrv_SystemParametersInfo, /* vulkan support */ .pwine_get_vulkan_driver = loaderdrv_wine_get_vulkan_driver, + /* opengl support */ + .pwine_get_wgl_driver = nulldrv_wine_get_wgl_driver, /* thread management */ .pThreadDetach = nulldrv_ThreadDetach, }; @@ -1126,6 +1127,7 @@ void CDECL __wine_set_display_driver( struct user_driver_funcs *driver, UINT ver SET_USER_FUNC(WindowPosChanged); SET_USER_FUNC(SystemParametersInfo); SET_USER_FUNC(wine_get_vulkan_driver); + SET_USER_FUNC(wine_get_wgl_driver); SET_USER_FUNC(ThreadDetach); #undef SET_USER_FUNC
@@ -1368,20 +1370,3 @@ NTSTATUS WINAPI NtGdiDdDDICheckVidPnExclusiveOwnership( const D3DKMT_CHECKVIDPNE
return get_display_driver()->pD3DKMTCheckVidPnExclusiveOwnership( desc ); } - -/*********************************************************************** - * __wine_get_wgl_driver (win32u.@) - */ -struct opengl_funcs * CDECL __wine_get_wgl_driver( HDC hdc, UINT version ) -{ - struct opengl_funcs *ret = NULL; - DC * dc = get_dc_ptr( hdc ); - - if (dc) - { - PHYSDEV physdev = GET_DC_PHYSDEV( dc, wine_get_wgl_driver ); - ret = physdev->funcs->wine_get_wgl_driver( physdev, version ); - release_dc_ptr( dc ); - } - return ret; -} diff --git a/dlls/win32u/emfdrv.c b/dlls/win32u/emfdrv.c index f261a86e392..81481953288 100644 --- a/dlls/win32u/emfdrv.c +++ b/dlls/win32u/emfdrv.c @@ -524,7 +524,6 @@ static const struct gdi_dc_funcs emfdrv_driver = NULL, /* pUnrealizePalette */ NULL, /* pD3DKMTCheckVidPnExclusiveOwnership */ NULL, /* pD3DKMTSetVidPnSourceOwner */ - NULL, /* wine_get_wgl_driver */ GDI_PRIORITY_GRAPHICS_DRV /* priority */ };
diff --git a/dlls/win32u/font.c b/dlls/win32u/font.c index b8213ac9e6a..87ef75f04af 100644 --- a/dlls/win32u/font.c +++ b/dlls/win32u/font.c @@ -4351,7 +4351,6 @@ const struct gdi_dc_funcs font_driver = NULL, /* pUnrealizePalette */ NULL, /* pD3DKMTCheckVidPnExclusiveOwnership */ NULL, /* pD3DKMTSetVidPnSourceOwner */ - NULL, /* wine_get_wgl_driver */ GDI_PRIORITY_FONT_DRV /* priority */ };
diff --git a/dlls/win32u/ntgdi_private.h b/dlls/win32u/ntgdi_private.h index 2ed6182e151..e906b029bce 100644 --- a/dlls/win32u/ntgdi_private.h +++ b/dlls/win32u/ntgdi_private.h @@ -59,6 +59,7 @@ typedef struct tagDC DCHOOKPROC hookProc; /* DC hook */ BOOL bounds_enabled:1; /* bounds tracking is enabled */ BOOL path_open:1; /* path is currently open (only for saved DCs) */ + BOOL is_display:1; /* DC is for display device */
RECT device_rect; /* rectangle for the whole device */ int pixel_format; /* pixel format (for memory DCs) */ @@ -207,6 +208,7 @@ extern UINT get_dib_dc_color_table( HDC hdc, UINT startpos, UINT entries, extern UINT set_dib_dc_color_table( HDC hdc, UINT startpos, UINT entries, const RGBQUAD *colors ) DECLSPEC_HIDDEN; extern void dibdrv_set_window_surface( DC *dc, struct window_surface *surface ) DECLSPEC_HIDDEN; +extern struct opengl_funcs *dibdrv_get_wgl_driver(void) DECLSPEC_HIDDEN;
/* driver.c */ extern const struct gdi_dc_funcs null_driver DECLSPEC_HIDDEN; diff --git a/dlls/win32u/path.c b/dlls/win32u/path.c index a87a7ab06c2..93a124953af 100644 --- a/dlls/win32u/path.c +++ b/dlls/win32u/path.c @@ -2121,6 +2121,5 @@ const struct gdi_dc_funcs path_driver = NULL, /* pUnrealizePalette */ NULL, /* pD3DKMTCheckVidPnExclusiveOwnership */ NULL, /* pD3DKMTSetVidPnSourceOwner */ - NULL, /* wine_get_wgl_driver */ GDI_PRIORITY_PATH_DRV /* priority */ }; diff --git a/dlls/wineandroid.drv/init.c b/dlls/wineandroid.drv/init.c index ed9116eb47e..7c103475e6b 100644 --- a/dlls/wineandroid.drv/init.c +++ b/dlls/wineandroid.drv/init.c @@ -261,16 +261,9 @@ BOOL CDECL ANDROID_EnumDisplaySettingsEx( LPCWSTR name, DWORD n, LPDEVMODEW devm /********************************************************************** * ANDROID_wine_get_wgl_driver */ -static struct opengl_funcs * CDECL ANDROID_wine_get_wgl_driver( PHYSDEV dev, UINT version ) +static struct opengl_funcs * CDECL ANDROID_wine_get_wgl_driver( UINT version ) { - struct opengl_funcs *ret; - - if (!(ret = get_wgl_driver( version ))) - { - dev = GET_NEXT_PHYSDEV( dev, wine_get_wgl_driver ); - ret = dev->funcs->wine_get_wgl_driver( dev, version ); - } - return ret; + return get_wgl_driver( version ); }
@@ -279,7 +272,6 @@ static const struct user_driver_funcs android_drv_funcs = .dc_funcs.pCreateCompatibleDC = ANDROID_CreateCompatibleDC, .dc_funcs.pCreateDC = ANDROID_CreateDC, .dc_funcs.pDeleteDC = ANDROID_DeleteDC, - .dc_funcs.wine_get_wgl_driver = ANDROID_wine_get_wgl_driver, .dc_funcs.priority = GDI_PRIORITY_GRAPHICS_DRV,
.pGetKeyNameText = ANDROID_GetKeyNameText, @@ -302,6 +294,7 @@ static const struct user_driver_funcs android_drv_funcs = .pWindowMessage = ANDROID_WindowMessage, .pWindowPosChanging = ANDROID_WindowPosChanging, .pWindowPosChanged = ANDROID_WindowPosChanged, + .pwine_get_wgl_driver = ANDROID_wine_get_wgl_driver, };
diff --git a/dlls/winemac.drv/gdi.c b/dlls/winemac.drv/gdi.c index 40ba4c570c5..264781c6ac1 100644 --- a/dlls/winemac.drv/gdi.c +++ b/dlls/winemac.drv/gdi.c @@ -268,7 +268,6 @@ static const struct user_driver_funcs macdrv_funcs = .dc_funcs.pGetDeviceCaps = macdrv_GetDeviceCaps, .dc_funcs.pGetDeviceGammaRamp = macdrv_GetDeviceGammaRamp, .dc_funcs.pSetDeviceGammaRamp = macdrv_SetDeviceGammaRamp, - .dc_funcs.wine_get_wgl_driver = macdrv_wine_get_wgl_driver, .dc_funcs.priority = GDI_PRIORITY_GRAPHICS_DRV,
.pActivateKeyboardLayout = macdrv_ActivateKeyboardLayout, @@ -309,6 +308,7 @@ static const struct user_driver_funcs macdrv_funcs = .pWindowPosChanged = macdrv_WindowPosChanged, .pWindowPosChanging = macdrv_WindowPosChanging, .pwine_get_vulkan_driver = macdrv_wine_get_vulkan_driver, + .pwine_get_wgl_driver = macdrv_wine_get_wgl_driver, };
diff --git a/dlls/winemac.drv/macdrv.h b/dlls/winemac.drv/macdrv.h index 0bd0a18f111..4e4524722af 100644 --- a/dlls/winemac.drv/macdrv.h +++ b/dlls/winemac.drv/macdrv.h @@ -263,7 +263,7 @@ extern DWORD CDECL macdrv_MsgWaitForMultipleObjectsEx(DWORD count, const HANDLE extern BOOL query_drag_exited(macdrv_query* query) DECLSPEC_HIDDEN; extern BOOL query_drag_drop(macdrv_query* query) DECLSPEC_HIDDEN;
-extern struct opengl_funcs * CDECL macdrv_wine_get_wgl_driver(PHYSDEV dev, UINT version) DECLSPEC_HIDDEN; +extern struct opengl_funcs * CDECL macdrv_wine_get_wgl_driver(UINT version) DECLSPEC_HIDDEN; extern const struct vulkan_funcs * CDECL macdrv_wine_get_vulkan_driver(UINT version) DECLSPEC_HIDDEN; extern void sync_gl_view(struct macdrv_win_data* data, const RECT* old_whole_rect, const RECT* old_client_rect) DECLSPEC_HIDDEN;
diff --git a/dlls/winemac.drv/opengl.c b/dlls/winemac.drv/opengl.c index daf194c2aec..02ac613ddc9 100644 --- a/dlls/winemac.drv/opengl.c +++ b/dlls/winemac.drv/opengl.c @@ -4632,7 +4632,7 @@ static struct opengl_funcs opengl_funcs = /********************************************************************** * macdrv_wine_get_wgl_driver */ -struct opengl_funcs * CDECL macdrv_wine_get_wgl_driver(PHYSDEV dev, UINT version) +struct opengl_funcs * CDECL macdrv_wine_get_wgl_driver(UINT version) { static INIT_ONCE opengl_init = INIT_ONCE_STATIC_INIT;
diff --git a/dlls/wineps.drv/init.c b/dlls/wineps.drv/init.c index 27260e95507..04b00e82709 100644 --- a/dlls/wineps.drv/init.c +++ b/dlls/wineps.drv/init.c @@ -858,7 +858,6 @@ static const struct gdi_dc_funcs psdrv_funcs = NULL, /* pUnrealizePalette */ NULL, /* pD3DKMTCheckVidPnExclusiveOwnership */ NULL, /* pD3DKMTSetVidPnSourceOwner */ - NULL, /* wine_get_wgl_driver */ GDI_PRIORITY_GRAPHICS_DRV /* priority */ };
diff --git a/dlls/winex11.drv/init.c b/dlls/winex11.drv/init.c index 5b31c352a23..fe2c50bffa7 100644 --- a/dlls/winex11.drv/init.c +++ b/dlls/winex11.drv/init.c @@ -312,16 +312,9 @@ static INT CDECL X11DRV_ExtEscape( PHYSDEV dev, INT escape, INT in_count, LPCVOI /********************************************************************** * X11DRV_wine_get_wgl_driver */ -static struct opengl_funcs * CDECL X11DRV_wine_get_wgl_driver( PHYSDEV dev, UINT version ) +static struct opengl_funcs * CDECL X11DRV_wine_get_wgl_driver( UINT version ) { - struct opengl_funcs *ret; - - if (!(ret = get_glx_driver( version ))) - { - dev = GET_NEXT_PHYSDEV( dev, wine_get_wgl_driver ); - ret = dev->funcs->wine_get_wgl_driver( dev, version ); - } - return ret; + return get_glx_driver( version ); }
/********************************************************************** @@ -377,7 +370,6 @@ static const struct user_driver_funcs x11drv_funcs = .dc_funcs.pUnrealizePalette = X11DRV_UnrealizePalette, .dc_funcs.pD3DKMTCheckVidPnExclusiveOwnership = X11DRV_D3DKMTCheckVidPnExclusiveOwnership, .dc_funcs.pD3DKMTSetVidPnSourceOwner = X11DRV_D3DKMTSetVidPnSourceOwner, - .dc_funcs.wine_get_wgl_driver = X11DRV_wine_get_wgl_driver, .dc_funcs.priority = GDI_PRIORITY_GRAPHICS_DRV,
.pActivateKeyboardLayout = X11DRV_ActivateKeyboardLayout, @@ -419,6 +411,7 @@ static const struct user_driver_funcs x11drv_funcs = .pWindowPosChanged = X11DRV_WindowPosChanged, .pSystemParametersInfo = X11DRV_SystemParametersInfo, .pwine_get_vulkan_driver = X11DRV_wine_get_vulkan_driver, + .pwine_get_wgl_driver = X11DRV_wine_get_wgl_driver, .pThreadDetach = X11DRV_ThreadDetach, };
diff --git a/dlls/winex11.drv/xrender.c b/dlls/winex11.drv/xrender.c index 92dc35fa9e1..5ede97fb026 100644 --- a/dlls/winex11.drv/xrender.c +++ b/dlls/winex11.drv/xrender.c @@ -2246,7 +2246,6 @@ static const struct gdi_dc_funcs xrender_funcs = NULL, /* pUnrealizePalette */ NULL, /* pD3DKMTCheckVidPnExclusiveOwnership */ NULL, /* pD3DKMTSetVidPnSourceOwner */ - NULL, /* wine_get_wgl_driver */ GDI_PRIORITY_GRAPHICS_DRV + 10 /* priority */ };
diff --git a/include/wine/gdi_driver.h b/include/wine/gdi_driver.h index 567a6c21608..e6f8239e27d 100644 --- a/include/wine/gdi_driver.h +++ b/include/wine/gdi_driver.h @@ -159,14 +159,13 @@ struct gdi_dc_funcs BOOL (CDECL *pUnrealizePalette)(HPALETTE); NTSTATUS (CDECL *pD3DKMTCheckVidPnExclusiveOwnership)(const D3DKMT_CHECKVIDPNEXCLUSIVEOWNERSHIP *); NTSTATUS (CDECL *pD3DKMTSetVidPnSourceOwner)(const D3DKMT_SETVIDPNSOURCEOWNER *); - struct opengl_funcs * (CDECL *wine_get_wgl_driver)(PHYSDEV,UINT);
/* priority order for the driver on the stack */ UINT priority; };
/* increment this when you change the DC function table */ -#define WINE_GDI_DRIVER_VERSION 74 +#define WINE_GDI_DRIVER_VERSION 75
#define GDI_PRIORITY_NULL_DRV 0 /* null driver */ #define GDI_PRIORITY_FONT_DRV 100 /* any font driver */ @@ -321,6 +320,8 @@ struct user_driver_funcs BOOL (CDECL *pSystemParametersInfo)(UINT,UINT,void*,UINT); /* vulkan support */ const struct vulkan_funcs * (CDECL *pwine_get_vulkan_driver)(UINT); + /* opengl support */ + struct opengl_funcs * (CDECL *pwine_get_wgl_driver)(UINT); /* thread management */ void (CDECL *pThreadDetach)(void); };
Hi Paul,
On 2/24/22 14:15, Paul Gofman wrote:
+/***********************************************************************
__wine_get_wgl_driver (win32u.@)
- */
+struct opengl_funcs * CDECL __wine_get_wgl_driver( HDC hdc, UINT version ) +{
- BOOL dibdrv;
- DC * dc;
- if (!(dc = get_dc_obj( hdc ))) return NULL;
- if (dc->attr->disabled)
- {
GDI_ReleaseObj( hdc );
return NULL;
- }
- dibdrv = !dc->is_display;
- GDI_ReleaseObj( hdc );
- if (dibdrv)
- {
if (version != WINE_WGL_DRIVER_VERSION)
{
ERR( "version mismatch, opengl32 wants %u but dibdrv has %u\n", version, WINE_WGL_DRIVER_VERSION );
return NULL;
}
return dibdrv_get_wgl_driver();
- }
- return user_driver->pwine_get_wgl_driver( version );
+}
I didn't mean to suggest dropping the check for memdc, this changes behaviour over current code. Although such change may make some sense (I'm not sure), it would least deserve a separated commit and consideration about stock bitmap handling in osmesa code. How about doing it like in the attached, modified version of your patch?
Thanks,
Jacek
Hi Jacek,
thanks, this change in behaviour is not intentional. I will recent with your suggested change.
Regards, Paul.
On 3/1/22 19:45, Jacek Caban wrote:
Hi Paul,
On 2/24/22 14:15, Paul Gofman wrote:
+/***********************************************************************
- * __wine_get_wgl_driver (win32u.@)
- */
+struct opengl_funcs * CDECL __wine_get_wgl_driver( HDC hdc, UINT version ) +{ + BOOL dibdrv; + DC * dc;
+ if (!(dc = get_dc_obj( hdc ))) return NULL; + if (dc->attr->disabled) + { + GDI_ReleaseObj( hdc ); + return NULL; + } + dibdrv = !dc->is_display; + GDI_ReleaseObj( hdc );
+ if (dibdrv) + { + if (version != WINE_WGL_DRIVER_VERSION) + { + ERR( "version mismatch, opengl32 wants %u but dibdrv has %u\n", version, WINE_WGL_DRIVER_VERSION ); + return NULL; + } + return dibdrv_get_wgl_driver(); + } + return user_driver->pwine_get_wgl_driver( version ); +}
I didn't mean to suggest dropping the check for memdc, this changes behaviour over current code. Although such change may make some sense (I'm not sure), it would least deserve a separated commit and consideration about stock bitmap handling in osmesa code. How about doing it like in the attached, modified version of your patch?
Thanks,
Jacek
On Tue, Mar 01, 2022 at 10:43:42PM +0300, Paul Gofman wrote:
Hi Jacek,
thanks, this change in behaviour is not intentional. I will recent with your suggested change.
Regards, Paul.
Could you also update the commit msg? The current one is more a reason why the change is made, not what the change is.
Huw.