static void screen_paint(LPRECT logrect, LPRECT physrect) { if (!bActive /* || !fullscreen*/) return; if (!IsRectEmpty(logrect)) { u8 *video_buffer, *orig, *bmp; u32 pitch; int xbord, ybord; orig = video_buffer = screen_lock(&pitch); if (!orig) return; xbord = (fsx - win_logxsize) / 2; ybord = (fsy - win_logysize) / 2; // log("screen_paint (%d,%d)\n", xbord, ybord); if (screen_clearsides) { for (int idx = 0; idx < ybord; idx++) { memset(video_buffer + idx*pitch, BG, fsx); memset(video_buffer + (fsy-idx-1)*pitch, BG, fsx); } for (int idx = 0; idx < fsy; idx++) { memset(video_buffer, BG, xbord); memset(video_buffer + fsx - xbord, BG, xbord); video_buffer += pitch; } screen_clearsides = false; } /* for (int idx = 0; idx<192; idx++) { bmp -= 256; memcpy(video_buffer + xbord, bmp, win_logxsize); video_buffer += pitch; }*/ bmp = win_bitmap + (256 - logrect->top) * 256 + logrect->left; video_buffer = orig + (ybord + logrect->top) * pitch + logrect->left + xbord; for (int idx = logrect->top; idx < logrect->bottom; idx++) { bmp -= 256; memcpy(video_buffer, bmp, logrect->right - logrect->left); video_buffer += pitch; } screen_unlock(orig); } }
void resume(struct device_info * dev) { if(AT_DBG) printf("%s\n",__func__); press_pwrkey(dev); sleep(2); screen_unlock(dev); sleep(2); system("echo autotest > /sys/power/wake_unlock"); }
static void screen_resize(u32 newxsize, u32 newysize) { u8 *video_buffer, *orig; u32 pitch; int xbord,ybord; orig = video_buffer = screen_lock(&pitch); if (!orig) return; xbord = (fsx - newxsize) / 2; ybord = (fsy - newysize) / 2; // log("screen_resize [%d,%d]\n", xbord, ybord); video_buffer = orig; for (int idx = 0; idx < ybord; idx++) { memset(video_buffer, BG, fsx); video_buffer += pitch; } video_buffer = orig + (fsy - ybord) * pitch; for (int idx = 0; idx < ybord; idx++) { memset(video_buffer, BG, fsx); video_buffer += pitch; } video_buffer = orig + ybord*pitch; for (int idx = 0; idx < newysize; idx++) { memset(video_buffer, BG, xbord); memset(video_buffer + fsx - xbord, BG, xbord); video_buffer += pitch; } screen_unlock(orig); }