winedos / Minor VGA fixes

Jukka Heinonen jhei at iki.fi
Wed Feb 19 13:54:48 CST 2003


Here are a few cosmetic fixes for DOS programs.



Changelog:
  Ignore get shadow buffer function.
  Remember to synchronize VGA display on program exit
  because update thread may not have time to run.



Index: dlls/winedos/vga.c
===================================================================
RCS file: /home/wine/wine/dlls/winedos/vga.c,v
retrieving revision 1.31
diff -u -r1.31 vga.c
--- dlls/winedos/vga.c	14 Feb 2003 19:23:16 -0000	1.31
+++ dlls/winedos/vga.c	19 Feb 2003 19:49:21 -0000
@@ -283,11 +283,32 @@
 {
     if (VGA_timer_thread)
     {
+        /*
+         * Make sure the update thread is not holding
+         * system resources when we kill it.
+         *
+         * Now, we only need to worry about update thread
+         * getting terminated while in EnterCriticalSection 
+         * or WaitForMultipleObjectsEx.
+         *
+         * FIXME: Is this a problem?
+         */
+        EnterCriticalSection(&vga_lock);
+
         CancelWaitableTimer( VGA_timer );
         CloseHandle( VGA_timer );
         TerminateThread( VGA_timer_thread, 0 );
         CloseHandle( VGA_timer_thread );
         VGA_timer_thread = 0;
+
+        LeaveCriticalSection(&vga_lock);
+
+        /*
+         * Synchronize display. This makes sure that
+         * changes to display become visible even if program 
+         * terminates before update thread had time to run.
+         */
+        VGA_Poll( 0, 0, 0 );
     }
 }
 




Index: dlls/winedos/int10.c
===================================================================
RCS file: /home/wine/wine/dlls/winedos/int10.c,v
retrieving revision 1.27
diff -u -r1.27 int10.c
--- dlls/winedos/int10.c	14 Feb 2003 19:23:16 -0000	1.27
+++ dlls/winedos/int10.c	19 Feb 2003 19:49:24 -0000
@@ -1110,6 +1110,11 @@
         INT10_HandleVESA(context);
         break;
 
+    case 0xfe: /* GET SHADOW BUFFER */
+        TRACE( "GET SHADOW BUFFER %x:%x - ignored\n",
+               context->SegEs, DI_reg(context) );
+        break;
+
     default:
         FIXME("Unknown - 0x%x\n", AH_reg(context));
         INT_BARF( context, 0x10 );


-- 
Jukka Heinonen <http://www.iki.fi/jhei/>



More information about the wine-patches mailing list