[vlc-devel] Re: [PATCH] Win32 directx/direct3d/opengl: fullscreen mode improved

Damien Fouilleul damien.fouilleul at laposte.net
Tue May 8 17:39:57 CEST 2007


Sergey Volk wrote:
>
> Hi,
> Current implementation of directx video output modules (directx, 
> direct3d, glwin32) leaves main interface window visible when the user 
> toggles fullscreen mode. This causes two problems: (a) the user sees 
> empty main interface window when he switches to another application or 
> cycles through existing windows using Alt-Tab and (b) main interface 
> window overlaps video window when he toggles "video-on-top" option 
> while fullscreen mode is active. In order to fix both these issues, we 
> should hide main interface window when entering fullscreen mode and 
> restore it when leaving fullscreen mode. But some GUI modules (in 
> particular qt4 module) may need to call show() for main interface 
> window in order to apply "video-on-top" flag, so in order to avoid 
> condition (b) described earlier we need also to hide 
> VOUT_SET_STAY_ON_TOP queries from main interface window while we are 
> in fullscreen mode and update "video-on-top" status for main window 
> when we are leaving fullscreen mode.
>
> I have also noticed that there is a code in 
> src/video_output/vout_intf.c:FullscreenCallback (line 1151), which 
> sets video-on-top variable to false, when entering fullscreen mode. I 
> think this code should be removed, there is no point in disabling 
> video-on-top option, as the user may change this option in fullscreen 
> mode anyway (through mouse / hotkey controls, at least). So 
> video_output modules should be aware that video-on-top variable may be 
> toggled in fullscreen mode and should handle such situations 
> appropriately. I'm developing under win32/cygwin, so I haven't checked 
> if similar reasoning applies to X11 module or any of the other video 
> output modules. It seems that at least wingdi output module has the 
> same problem, but it's code is somewhat different from 
> DirectX/Direct3D/Win32 OpenGL code, so I'll provide patch for wingdi 
> module later. In the meantime, I think it is safe to leave that old 
> code as it is.
>
> Two patches are attached to this message: vlc-vout-dx-fullscreen.patch 
> is a version which fixes fullscreen mode for DirectX module only, it 
> is intended only to demonstrate what changes are being applied to 
> current version. Another one - vlc-vout-dx-fullscreen2.patch, does 
> essentially the same, only it fixes all three modules (directx, 
> direct3d and opengl) and refactors some common code for toggling 
> fullscreen mode into Win32ToggleFullscreen function, to remove code 
> duplication between those modules.
>
patch applied thanks !

-- 
This is the vlc-devel mailing-list, see http://www.videolan.org/vlc/
To unsubscribe, please read http://developers.videolan.org/lists.html



More information about the vlc-devel mailing list