]> git.eshelyaron.com Git - emacs.git/commit
Implement double buffering on MS Windows
authorPo Lu <luangruo@yahoo.com>
Fri, 29 Apr 2022 03:33:41 +0000 (11:33 +0800)
committerPo Lu <luangruo@yahoo.com>
Sat, 30 Apr 2022 03:20:46 +0000 (11:20 +0800)
commitbc44455f778a256a861c8063e87a662a13f603e1
treea7426525ab8b5a9d9ca5fc28633e45d0dd3bb5c1
parenta33bf0114920a67926761ec2f51c040265b8dfd1
Implement double buffering on MS Windows

* etc/NEWS: Announce changes.
* src/w32fns.c (w32_set_inhibit_double_buffering): New function.
(w32_wnd_proc):
(Fx_create_frame):
(w32_create_tip_frame): Set `inhibit-double-buffering' parameter.
(w32_frame_parm_handlers): Add new handler.

* src/w32term.c (w32_show_back_buffer):
(w32_release_paint_buffer): New functions.
(w32_frame_up_to_date): Show back buffer if applicable.
(w32_buffer_flipping_unblocked_hook): New hook.
(w32_scroll_run): Use BitBlt to scroll instead of window
scrolling functions.
(w32_scroll_bar_clear): Don't clear scroll bars when double
buffered.
(w32_read_socket): Flip buffers after reading input events in
some cases.
(w32_free_frame_resources): Free back buffer.
(w32_create_terminal): Add new hook.

* src/w32term.h (struct w32_output): New fields for handling
back buffers.
* src/w32xfns.c (select_palette): Fix indentation.
(get_frame_dc, release_frame_dc): Return back buffer when
appropriate and set dirty flag.
etc/NEWS
src/w32fns.c
src/w32term.c
src/w32term.h
src/w32xfns.c