emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: MS Windows double buffering


From: Po Lu
Subject: Re: MS Windows double buffering
Date: Sat, 30 Apr 2022 13:41:25 +0800
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.91 (gnu/linux)

Po Lu <luangruo@yahoo.com> writes:

> From ee8cc91559c04a4f21a1ad14ff5461453638145e Mon Sep 17 00:00:00 2001
> From: Po Lu <luangruo@yahoo.com>
> Date: Fri, 29 Apr 2022 11:33:41 +0800
> Subject: [PATCH] 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.

I fixed a few minor problems with this, synchronized parts of the tool
bar code with X to fix a bug, and installed the resulting changes, since
they seems to be working fine for me and eliminates all of the dreadful
flickering that was previously present on MS Windows.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]