[vlc-commits] vout:win32: optimize the placement handling during window resizing

Steve Lhomme git at videolan.org
Tue Apr 30 11:14:03 CEST 2019


vlc | branch: master | Steve Lhomme <robux4 at ycbcr.xyz> | Wed Apr 24 09:24:42 2019 +0200| [70a5b4466cf9f71979cc6c4ceaea971df2d5d0d5] | committer: Steve Lhomme

vout:win32: optimize the placement handling during window resizing

During fast resizing we might get a lot of WM_SIZE messages which are each
sending a CHANGE_DISPLAY_SIZE which may take time to get to the display thread.
We bypass a part of this lag by reading directly the current size of our parent
HWND (since we always place our HWND at 0,0 with the full size).

This is similar to what we have before when we handled all the HWND in this
part of the code. We read the window size directly on each size change.

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=70a5b4466cf9f71979cc6c4ceaea971df2d5d0d5
---

 modules/video_output/win32/common.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/modules/video_output/win32/common.c b/modules/video_output/win32/common.c
index cff32ff017..4e9e5b2bc1 100644
--- a/modules/video_output/win32/common.c
+++ b/modules/video_output/win32/common.c
@@ -215,6 +215,11 @@ int CommonControl(vlc_object_t *obj, display_win32_area_t *area, vout_display_sy
 #if !VLC_WINSTORE_APP
         if (sys->event != NULL)
         {
+            RECT clientRect;
+            GetClientRect(sys->hparent, &clientRect);
+            area->vdcfg.display.width  = RECTWidth(clientRect);
+            area->vdcfg.display.height = RECTHeight(clientRect);
+
             SetWindowPos(sys->hvideownd, 0, 0, 0,
                          area->vdcfg.display.width,
                          area->vdcfg.display.height, SWP_NOZORDER|SWP_NOMOVE|SWP_NOACTIVATE);



More information about the vlc-commits mailing list