Add msw.window.no-composited system option

For some applications turning off double buffering for individual
windows may be infeasible, so allow doing it globally using this system
option.

Note that wxAutoBufferedPaintDC still does no buffering in wxMSW now,
even when this option is set, so setting it will result in flickering in
any code using it. The solution is to use wxBufferedPaintDC directly in
the programs that use this option.

Closes #22953.
This commit is contained in:
Vadim Zeitlin 2022-11-08 18:08:01 +00:00
parent 1c2ec47676
commit d9734baed5
3 changed files with 14 additions and 1 deletions

View file

@ -19,6 +19,11 @@ Changes in behaviour not resulting in compilation errors
strongly recommended to change your redrawing logic to avoid using wxClientDC
instead, as the code using it still won't work with wxGTK/wxOSX.
You may also choose to globally set the new msw.window.no-composited system
option to disable the use of double buffering, but please consider doing it
only as a last resort and/or temporary solution, as this _will_ result in
flicker and won't be supported at all in the future wxWidgets versions.
- As first mentioned in 3.0 release notes, the value of wxTHREAD_WAIT_DEFAULT,
used by wxThread::Delete() and Wait() by default, has changed from
wxTHREAD_WAIT_YIELD to wxTHREAD_WAIT_BLOCK for safety and consistency.