]> git.sesse.net Git - vlc/blobdiff - modules/video_output/kva.c
sftp: change item b_net
[vlc] / modules / video_output / kva.c
index 4803088807e7a7b85664ee1ec36bdec1ca5f1480..eb9aed4a991d15b277f07b1c8a426fde8299ee69 100644 (file)
@@ -175,18 +175,9 @@ static void PMThread( void *arg )
     sys->b_fixt23 = var_CreateGetBool( vd, "kva-fixt23");
 
     if( !sys->b_fixt23 )
-    {
-        vout_window_cfg_t wnd_cfg;
-
-        wnd_cfg.is_standalone = false;
-        wnd_cfg.type          = VOUT_WINDOW_TYPE_HWND;
-        wnd_cfg.width         = vd->cfg->display.width;
-        wnd_cfg.height        = vd->cfg->display.height;
-
         /* If an external window was specified, we'll draw in it. */
         sys->parent_window =
-            vout_display_NewWindow( vd, &wnd_cfg );
-    }
+            vout_display_NewWindow( vd, VOUT_WINDOW_TYPE_HWND );
 
     if( sys->parent_window )
     {
@@ -265,14 +256,9 @@ static void PMThread( void *arg )
         goto exit_open_display;
     }
 
-    if( vd->cfg->is_fullscreen )
-    {
-        if( sys->parent_window )
-            vout_window_SetFullScreen(sys->parent_window, true);
-        else
-            WinPostMsg( sys->client, WM_VLC_FULLSCREEN_CHANGE,
-                        MPFROMLONG( true ), 0 );
-    }
+    if( vd->cfg->is_fullscreen && !sys->parent_window )
+        WinPostMsg( sys->client, WM_VLC_FULLSCREEN_CHANGE,
+                    MPFROMLONG( true ), 0 );
 
     kvaDisableScreenSaver();
 
@@ -373,7 +359,7 @@ static void Close ( vlc_object_t *object )
     DosWaitThread( &sys->tid, DCWW_WAIT );
 
     if( sys->pool )
-        picture_pool_Delete( sys->pool );
+        picture_pool_Release( sys->pool );
 
     DosCloseEventSem( sys->ack_event );
 
@@ -447,14 +433,9 @@ static int Control( vout_display_t *vd, int query, va_list args )
 
     case VOUT_DISPLAY_CHANGE_FULLSCREEN:
     {
-        vout_display_cfg_t cfg = *va_arg(args, const vout_display_cfg_t *);
-
-        if( sys->parent_window )
-            vout_window_SetFullScreen(sys->parent_window, cfg.is_fullscreen);
-        else
-            WinPostMsg( sys->client, WM_VLC_FULLSCREEN_CHANGE,
-                        MPFROMLONG( cfg.is_fullscreen ), 0 );
+        bool fs = va_arg(args, int);
 
+        WinPostMsg( sys->client, WM_VLC_FULLSCREEN_CHANGE, MPFROMLONG(fs), 0 );
         return VLC_SUCCESS;
     }
 
@@ -463,12 +444,7 @@ static int Control( vout_display_t *vd, int query, va_list args )
         const unsigned state = va_arg( args, unsigned );
         const bool is_on_top = (state & VOUT_WINDOW_STATE_ABOVE) != 0;
 
-        if( sys->parent_window )
-        {
-            if( vout_window_SetState( sys->parent_window, state ))
-                return VLC_EGENERIC;
-        }
-        else if( is_on_top )
+        if( is_on_top )
             WinSetWindowPos( sys->frame, HWND_TOP, 0, 0, 0, 0, SWP_ZORDER );
 
         sys->is_on_top = is_on_top;
@@ -520,7 +496,6 @@ static int Control( vout_display_t *vd, int query, va_list args )
 
     case VOUT_DISPLAY_RESET_PICTURES:
     case VOUT_DISPLAY_CHANGE_DISPLAY_FILLED:
-    case VOUT_DISPLAY_GET_OPENGL:
         /* TODO */
         break;
     }
@@ -631,10 +606,10 @@ static int OpenDisplay( vout_display_t *vd, video_format_t *fmt )
     sys->kvas.ulLength           = sizeof( KVASETUP );
     sys->kvas.szlSrcSize.cx      = w;
     sys->kvas.szlSrcSize.cy      = h;
-    sys->kvas.rclSrcRect.xLeft   = 0;
-    sys->kvas.rclSrcRect.yTop    = 0;
-    sys->kvas.rclSrcRect.xRight  = w;
-    sys->kvas.rclSrcRect.yBottom = h;
+    sys->kvas.rclSrcRect.xLeft   = fmt->i_x_offset;
+    sys->kvas.rclSrcRect.yTop    = fmt->i_y_offset;
+    sys->kvas.rclSrcRect.xRight  = fmt->i_x_offset + fmt->i_visible_width;
+    sys->kvas.rclSrcRect.yBottom = fmt->i_y_offset + fmt->i_visible_height;
     sys->kvas.ulRatio            = KVAR_FORCEANY;
     sys->kvas.ulAspectWidth      = w;
     sys->kvas.ulAspectHeight     = h;