This is my first commit so I thought with something pretty unobjectionable. The merge request !8210 seems to have switched from pixmaps to pbuffers for bitmap rendering (although it might have been an earlier change). This flag was overlooked and is still checking for pixmap compatibility.
This caused problems with 16-bit bitmap rendering because, on my Nvidia driver, the pixmap bit is only ever set for onscreen (`DRAW_TO_WINDOW`) pixel formats. None of the 16-bit pixel formats are `DRAW_TO_WINDOW`, so that means it won't be able to find a good 16-bit pixel format. The pbuffer bit, on the other hand, is set for most offscreen formats and also more common for onscreen formats.
Notably this doesn't actually fix 16-bit bitmap rendering — it's pretty darn broken. Other changes need some more research & discussion though, I'll keep it for another day.
From: Zowie van Dillen zowie+wine@vandillen.io
!8210 seems to have switched from pixmaps to pbuffers for bitmap rendering (might have been an earlier change though). This flag was overlooked. --- dlls/winex11.drv/opengl.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/dlls/winex11.drv/opengl.c b/dlls/winex11.drv/opengl.c index a5fd7bcb26c..a25f291a2cf 100644 --- a/dlls/winex11.drv/opengl.c +++ b/dlls/winex11.drv/opengl.c @@ -743,9 +743,10 @@ static BOOL check_fbconfig_bitmap_capability( GLXFBConfig fbconfig, const XVisua pglXGetFBConfigAttrib( gdi_display, fbconfig, GLX_DOUBLEBUFFER, &dbuf ); pglXGetFBConfigAttrib(gdi_display, fbconfig, GLX_DRAWABLE_TYPE, &value);
- /* Windows only supports bitmap rendering on single buffered formats, further the fbconfig needs to have - * the GLX_PIXMAP_BIT set. */ - return !dbuf && (value & GLX_PIXMAP_BIT); + /* Windows only supports bitmap rendering on single buffered formats. The fbconfig also needs to + * have the GLX_PBUFFER_BIT set, because Wine's implementation of bitmap rendering uses + * pbuffers. */ + return !dbuf && (value & GLX_PBUFFER_BIT); }
static UINT x11drv_init_pixel_formats( UINT *onscreen_count )
This merge request was approved by Rémi Bernon.