From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Po Lu Newsgroups: gmane.emacs.devel Subject: Re: MS Windows double buffering Date: Sat, 30 Apr 2022 13:41:25 +0800 Message-ID: <87mtg3unzu.fsf@yahoo.com> References: <877d791thh.fsf.ref@yahoo.com> <877d791thh.fsf@yahoo.com> <83ilqtbl3p.fsf@gnu.org> <87sfpxz8a7.fsf@yahoo.com> <87mtg4zhlg.fsf@yahoo.com> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="30175"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.91 (gnu/linux) Cc: emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sat Apr 30 07:45:33 2022 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nkfvB-0007kK-9t for ged-emacs-devel@m.gmane-mx.org; Sat, 30 Apr 2022 07:45:33 +0200 Original-Received: from localhost ([::1]:55606 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nkfv2-0003FJ-7U for ged-emacs-devel@m.gmane-mx.org; Sat, 30 Apr 2022 01:45:31 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:60216) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nkfrN-0001JR-Bq for emacs-devel@gnu.org; Sat, 30 Apr 2022 01:41:37 -0400 Original-Received: from sonic314-22.consmr.mail.ne1.yahoo.com ([66.163.189.148]:39490) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nkfrL-0007xV-AI for emacs-devel@gnu.org; Sat, 30 Apr 2022 01:41:36 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1651297293; bh=fjABKaAKYc1e+0bDMXYMM/w+X6Z1fvd4NjOvWWxkW5I=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From:Subject:Reply-To; b=CaTxWdG5XIpr9+2CpnGrRTKa4f1VdvXkTObih3hPtC/SIrspdh4OZw0LhsAkJ40+BSEipgqE0fNW3rxlrjF1AVSKIzVysqufJG/oF8vG1JcsgWGVD6fe6TuINFqp3vApn7J6zaQvvdjuh4IBJSQYO5aDxAFMExU0Z28TlPVhidQuVs5qRCfAVxxSe+abetDQK/PNS2c0u17AJlTygaHiEbADnC/TPJwSUsAqJCtIrDrRG2V7cheuGW0T98nLMZ7MnOVOgAI32qCqnmzEu6L5MLaSEObhLrwZP4bGhd4t89mlb4SWADrnFTpqCsOlCzBSHBo3fRdKXWi4V0VSkHFMfQ== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1651297293; bh=aHQ7opG7wr/AQu8h6O+J13uN/9Fldf6jDUeeg/Xo3K3=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=PgDVGeNtCZL1baL7K55kX3Lw7vLYjnPxsxPKbmspd+kuzEZ72Vsn+YXYG/tGFuKYFya/lrXf3F3xQSTx4pKsZvnnIvUKFvi2cBxtOvdmbVafnnZcaJD/QSC7+cPrQ4+ecwb+Tq2eQfexMsgFvdlwRzBnpfJ/luo4Lo3ESefLIzPnvK4GVRU91GKiiNVeND4fzEu0AlxRGJ8TEyNLiJfHNaA2Fusgjs2mY3vbTWhLHnIlIGkbA8EBHvA2dx/CqlRzJ9iM3iadmOROBaEMvTGJU3KfanraGbsItrFqfsjj81guZJcsC3KYKa8jIPqNQWj9ho67ygMSq9jxjeYL45s+3g== X-YMail-OSG: 507BsdkVM1l7XWiW_kW8543mYgWk4767Wf__BKuMWmoRHiBxyyOm76_mq61WWHw _VN1dFdA8ULe6SfEd2c0YzFMZVBm1rJnRIoHRLcd6y8yg_ENm2HAkVBU1TTgrYLADk58qWE8SAry zmZubykl7S12h8ZJxkJJjSJsPH58Yr8LK.lApJ9vhYYA6eiRpt5DS21f6OxDo4_itEKam_qddPBD Q3EdXNhT0PI8Yp2ZLJSyhVNAa1DLsMUAbwN70oInjQSDUDQMidQrv2PWErtCYy_iu4ZOgQtGDRiz 6OVP5P3afh7US0MeYXFtSNx2dp.q6PjJxRWYHfdH.MUrQtLIyjbIfkwLRtC7ZCQU9J3R6DHveXdM u9qdYlw8fDkWISkCo64Qda6ZdSiyeIE1nvDoLLHcEcqwHfEyiGDRbOQTYgjqbFYF.jsVztRuQ4zR 3eUym17pO6hReizbtO.LzDf6qzkckcLxEtxrSdeS37EBVC2Rvhg3N4NWMTV0zYt8TesU3tPVQZIQ P_h_jfi2O2Bik65xFNRpbf9sAFAHROfPF5SWifaKI0OJOXc7zg.cmK7PC_m4NWzsFlF3rq0xCQGv MwzUIv2misOlVkRICZ35alAP6xfg4xXIq.lT3wBBou0eOj3b.K8RlEtCOYf9GEa_kDbY.S4_.tym _8_1AZjTkbXYjOqYRUWsDPQD8sXaR33J_enuQSaMHWL3PBQ9aQK7lp.nYT1juh1ZPffBTPVP90J8 hdz5XcUhwi5JjWZoq618Ik_SFKQEe6ne2hiPp_R_ULRSpw8Is63t8k8cFUruZRi_4da35zVM3xJA yFlPCKFHqXCAJd9kqVVyugsy6sHWKvaZKMSjRdzd8b X-Sonic-MF: Original-Received: from sonic.gate.mail.ne1.yahoo.com by sonic314.consmr.mail.ne1.yahoo.com with HTTP; Sat, 30 Apr 2022 05:41:33 +0000 Original-Received: by hermes--canary-production-sg3-795d7b4d54-tb6rw (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID 84e81526fe3ccee04e2a9d344da5cfca; Sat, 30 Apr 2022 05:41:30 +0000 (UTC) In-Reply-To: <87mtg4zhlg.fsf@yahoo.com> (Po Lu's message of "Fri, 29 Apr 2022 11:36:11 +0800") X-Mailer: WebService/1.1.20118 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.yahoo Received-SPF: pass client-ip=66.163.189.148; envelope-from=luangruo@yahoo.com; helo=sonic314-22.consmr.mail.ne1.yahoo.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:289028 Archived-At: Po Lu writes: > From ee8cc91559c04a4f21a1ad14ff5461453638145e Mon Sep 17 00:00:00 2001 > From: Po Lu > 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.