From: <gb...@di...> - 2000-09-24 17:12:32
|
Hi, > Something is wrong. The (windowed) display looks very confused (see attached > screenshot) on my machine (Linux 2.2.16 on a PII with XFree86 4.0.1). This > is with both real and direct addressing. In banked mode, it works fine. This could also simply be the fact that I mis-implemented the incremental screen update method. Here is a patch that disables it. Since I didn't put the correct dependancies into the Makefile, you will have to touch video_x.cpp first. <--- begin patch ---> --- BasiliskII.orig/src/Unix/video_vosf.h Sun Sep 24 19:08:26 2000 +++ BasiliskII/src/Unix/video_vosf.h Sun Sep 24 19:08:33 2000 @@ -332,6 +332,18 @@ const uint32 length = (page - first_page) << mainBuffer.pageBits; mprotect((caddr_t)(mainBuffer.memStart + offset), length, PROT_READ); +#if 1 + do_update_framebuffer(the_host_buffer + offset, the_buffer + offset, length); + + const int y1 = mainBuffer.pageInfo[first_page].top; + const int y2 = mainBuffer.pageInfo[page - 1].bottom; + const int width = VideoMonitor.x; + const int height = y2 - y1 + 1; + if (have_shm) + XShmPutImage(x_display, the_win, the_gc, img, 0, y1, 0, y1, width, height, 0); + else + XPutImage(x_display, the_win, the_gc, img, 0, y1, 0, y1, width, height); +#else // There is at least one line to update const int y1 = mainBuffer.pageInfo[first_page].top; const int y2 = mainBuffer.pageInfo[page - 1].bottom; @@ -383,6 +395,7 @@ XShmPutImage(x_display, the_win, the_gc, img, x1, y1, x1, y1, width, height, 0); else XPutImage(x_display, the_win, the_gc, img, x1, y1, x1, y1, width, height); +#endif } } <--- end patch --> Bye. -- Gwenolé Beauchesne |