void __console_flush(int retrace_min) { u32 ycnt,xcnt, fb_stride; u32 *fb,*ptr; if (!fb_change && retrace_min >= 0) { if (retrace_min == 0) retrace_cnt = 0; return; } if (retrace_cnt < retrace_min) return; fb_change = 0; retrace_cnt = 0; ptr = curr_con->destbuffer; fb = VIDEO_GetCurrentFramebuffer()+(curr_con->target_y*curr_con->tgt_stride) + curr_con->target_x*VI_DISPLAY_PIX_SZ; fb_stride = curr_con->tgt_stride/4 - (curr_con->con_xres/VI_DISPLAY_PIX_SZ); for(ycnt=curr_con->con_yres;ycnt>0;ycnt--) { for(xcnt=curr_con->con_xres;xcnt>0;xcnt-=VI_DISPLAY_PIX_SZ) { *fb++ = *ptr++; } fb += fb_stride; } }
void _bg_grab() { u32 ycnt,xcnt, fb_stride; u32 *fb,*ptr; ptr = _bg_buffer; fb = VIDEO_GetCurrentFramebuffer()+(curr_con->target_y*curr_con->tgt_stride) + curr_con->target_x*VI_DISPLAY_PIX_SZ; fb_stride = curr_con->tgt_stride/4 - (curr_con->con_xres/VI_DISPLAY_PIX_SZ); for(ycnt=curr_con->con_yres;ycnt>0;ycnt--) { for(xcnt=curr_con->con_xres;xcnt>0;xcnt-=VI_DISPLAY_PIX_SZ) { *ptr++ = *fb++; } fb += fb_stride; } }
void __console_vipostcb(u32 retraceCnt) { u32 ycnt,xcnt, fb_stride; u32 *fb,*ptr; do_xfb_copy = TRUE; ptr = curr_con->destbuffer; fb = VIDEO_GetCurrentFramebuffer()+(curr_con->target_y*curr_con->tgt_stride) + curr_con->target_x*VI_DISPLAY_PIX_SZ; fb_stride = curr_con->tgt_stride/4 - (curr_con->con_xres/VI_DISPLAY_PIX_SZ); for(ycnt=curr_con->con_yres;ycnt>0;ycnt--) { for(xcnt=curr_con->con_xres;xcnt>0;xcnt-=VI_DISPLAY_PIX_SZ) { *fb++ = *ptr++; } fb += fb_stride; } do_xfb_copy = FALSE; }