> Documentation for `ForceUpdate` states that "The system might update any region that is larger than the specified rectangle, including possibly the entire window". While native seems to use a sort of dirty-rectangle approach, for this MR, I am simply dirtying the entire surface. If someday someone did want to more-closely match the behavior of native, much can be learned from the rectangles passed to the update callbacks.
Yeah, I can't say I'm thrilled about this. It doesn't seem like it should be that hard to implement more granular rects, at least for the cases covered here, and assuming that rects are indeed granular.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5161#note_63581
On Tue Mar 5 19:10:33 2024 +0000, Zebediah Figura wrote:
> It'd be nice to rename these parameters to left/right/top/bottom.
Eh, I guess D3DRECT fields are called this. Still, I find the clearer names mildly preferable wherever possible.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5161#note_63580
> Documentation for `ForceUpdate` states that "The system might update any region that is larger than the specified rectangle, including possibly the entire window". While native seems to use a sort of dirty-rectangle approach, for this MR, I am simply dirtying the entire surface. If someday someone did want to more-closely match the behavior of native, much can be learned from the rectangles passed to the update callbacks.
Yeah, I can't say I'm thrilled about this. It doesn't seem like it should be that hard to implement more granular rects, at least for the cases covered here, and assuming that rects are indeed granular.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5161#note_63579
Zebediah Figura (@zfigura) commented about dlls/d3drm/device.c:
> device->width = desc.dwWidth;
> device->height = desc.dwHeight;
>
> + device->needs_update = FALSE;
> +
The device is zero-initialized, so I don't think this hunk is necessary.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5161#note_63576
Zebediah Figura (@zfigura) commented about dlls/d3drm/d3drm_private.h:
> IDirect3DRM *d3drm;
> IDirectDraw *ddraw;
> IDirectDrawSurface *primary_surface, *render_target;
> - IDirectDrawClipper *clipper;
This should ideally be a separate patch.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5161#note_63575