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