+ if(!dirty_valid) return;
+ 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);
+
+ if(mx >= dirty.x && my >= dirty.y && mx < dirty.x + dirty.width && my < dirty.y + dirty.height) {
+ draw_cursor(mx, my);
+ }
+ } else {
+ vid_blitfb32(framebuf, 0);
+ draw_cursor(mx, my);
+ }
+
+ dirty_valid = 0;