Paul Gofman (@gofman) commented about dlls/ddraw/surface.c:
SetRectEmpty(&src_rect); }
- if (!dst_surface->clipper) + if (dst_surface->clipper && !ddraw_clipper_is_valid(dst_surface->clipper)) + { + FIXME("Attempting to blit with an invalid clipper.\n"); + return DDERR_INVALIDPARAMS; + } + + /* Windows 10 won't clip to the window in exclusive fullscreen mode. + * Windows 98 does. Super Naughty Maid 2, released in 2019, depends on + * the modern Windows behaviour. */
Well, it is not quite the case: I think the game would probably be fine with either old or new Windows behaviour (like it was fine on Wine before 'exclusive fullscreen mode' support). The problem is not clipping, the problem is that the rendering to a separate (clipper) window just goes nowhere in exclusive fullscreen mode now. There are various ways to fix it. It seems to me that avoiding using clipper window surface is preferred (and it is orthogonal to old vs new Windows, it is just our internal kitchen how the image gets onscreen). It is not strictly necessary to remove the actual clipping, we could probably keep it and still fix a regression. Although that would need more changes (how the clipping region is got in fullscreen), I'd probably suggest to stick to the new Windows behaviour (well, at least until it breaks something) as it is easier to unit test. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/10842#note_139179