ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/cebix/BasiliskII/src/Unix/video_x.cpp
(Generate patch)

Comparing BasiliskII/src/Unix/video_x.cpp (file contents):
Revision 1.19 by gbeauche, 2000-09-22T17:16:31Z vs.
Revision 1.20 by gbeauche, 2000-09-25T21:49:19Z

# Line 704 | Line 704 | static bool init_xf86_dga(int width, int
704                  memset(the_buffer, 0, the_buffer_size);
705          }
706   #elif ENABLE_VOSF
707 <        // The UAE memory handlers will already color conversion, if needed.
707 >        // The UAE memory handlers will already handle color conversion, if needed.
708          use_vosf = false;
709   #endif
710          
# Line 1589 | Line 1589 | static void handle_events(void)
1589                          // Hidden parts exposed, force complete refresh of window
1590                          case Expose:
1591                                  if (display_type == DISPLAY_WINDOW) {
1592 +                                        if (frame_skip == 0) {  // Dynamic refresh
1593 +                                                int x1, y1;
1594 +                                                for (y1=0; y1<16; y1++)
1595 +                                                for (x1=0; x1<16; x1++)
1596 +                                                        updt_box[x1][y1] = true;
1597 +                                                nr_boxes = 16 * 16;
1598 +                                        } else {
1599   #ifdef ENABLE_VOSF
1593                                        const XExposeEvent & xev = event.xexpose;
1594                                        const uint32 start = xev.y * VideoMonitor.bytes_per_row + xev.x;
1595                                        const uint32 end = (xev.y + xev.height - 1) * VideoMonitor.bytes_per_row + (xev.x + xev.width);
1596                                        int page = start >> mainBuffer.pageBits;
1597                                        uint32 addr = start;
1598                                        while (addr < end) {
1599                                                memset(the_buffer_copy + addr, 0, mainBuffer.pageSize);
1600                                                addr += mainBuffer.pageSize;
1600   #ifdef HAVE_PTHREADS
1601                                                  pthread_mutex_lock(&Screen_draw_lock);
1602   #endif
1603 <                                                PFLAG_SET(page);
1603 >                                                PFLAG_SET_ALL;
1604   #ifdef HAVE_PTHREADS
1605                                                  pthread_mutex_unlock(&Screen_draw_lock);
1606   #endif
1607 <                                                ++page;
1609 <                                        }
1610 < #else
1611 <                                        if (frame_skip == 0) {  // Dynamic refresh
1612 <                                                int x1, y1;
1613 <                                                for (y1=0; y1<16; y1++)
1614 <                                                for (x1=0; x1<16; x1++)
1615 <                                                        updt_box[x1][y1] = true;
1616 <                                                nr_boxes = 16 * 16;
1617 <                                        } else
1607 > #endif
1608                                                  memset(the_buffer_copy, 0, VideoMonitor.bytes_per_row * VideoMonitor.y);
1609 < #endif /* ENABLE_VOSF */
1609 >                                        }
1610                                  }
1611                                  break;
1612                  }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines