+ if(opt.vsync) {
+ vid_vsync();
+ }
+ if(dirty_valid) {
+ if(dirty.width < win_width || dirty.height < win_height) {
+ uint32_t *src = framebuf + dirty.y * win_width + dirty.x;
+ vid_blit32(dirty.x, dirty.y, dirty.width, dirty.height, src, 0);
+ } else {
+ vid_blitfb32(framebuf, 0);
+ }
+ dirty_valid = 0;
+ }
+ if(prev_mx >= 0) {
+ draw_cursor(prev_mx, prev_my);
+ }
+ draw_cursor(mx, my);
+ prev_mx = mx;
+ prev_my = my;
+
+ if(prev_rband.width) {
+ draw_rband(&prev_rband);
+ }
+ if(rband.width) {
+ draw_rband(&rband);
+ }
+ prev_rband = rband;