bool CScraper::ProcessRegion(RMapCI r_iter) { write_log(Preferences()->debug_scraper(), "[CScraper] ProcessRegion %s (%i, %i, %i, %i)\n", r_iter->first, r_iter->second.left, r_iter->second.top, r_iter->second.right, r_iter->second.bottom); write_log(Preferences()->debug_scraper(), "[CScraper] ProcessRegion color %i radius %i transform %s\n", r_iter->second.color, r_iter->second.radius, r_iter->second.transform); __HDC_HEADER // Get "current" bitmap old_bitmap = (HBITMAP) SelectObject(hdcCompatible, r_iter->second.cur_bmp); BitBlt(hdcCompatible, 0, 0, r_iter->second.right - r_iter->second.left + 1, r_iter->second.bottom - r_iter->second.top + 1, hdc, r_iter->second.left, r_iter->second.top, SRCCOPY); SelectObject(hdcCompatible, old_bitmap); // If the bitmaps are different, then continue on if (!BitmapsAreEqual(r_iter->second.last_bmp, r_iter->second.cur_bmp)) { // Copy into "last" bitmap old_bitmap = (HBITMAP) SelectObject(hdcCompatible, r_iter->second.last_bmp); BitBlt(hdcCompatible, 0, 0, r_iter->second.right - r_iter->second.left + 1, r_iter->second.bottom - r_iter->second.top + 1, hdc, r_iter->second.left, r_iter->second.top, SRCCOPY); SelectObject(hdcCompatible, old_bitmap); __HDC_FOOTER_ATTENTION_HAS_TO_BE_CALLED_ON_EVERY_FUNCTION_EXIT_OTHERWISE_MEMORY_LEAK return true; }
bool CScraper::ProcessRegion(RMapCI r_iter) { __HDC_HEADER // Get "current" bitmap old_bitmap = (HBITMAP) SelectObject(hdcCompatible, r_iter->second.cur_bmp); BitBlt(hdcCompatible, 0, 0, r_iter->second.right - r_iter->second.left + 1, r_iter->second.bottom - r_iter->second.top + 1, hdc, r_iter->second.left, r_iter->second.top, SRCCOPY); SelectObject(hdcCompatible, old_bitmap); // If the bitmaps are different, then continue on if (!BitmapsAreEqual(r_iter->second.last_bmp, r_iter->second.cur_bmp)) { // Copy into "last" bitmap old_bitmap = (HBITMAP) SelectObject(hdcCompatible, r_iter->second.last_bmp); BitBlt(hdcCompatible, 0, 0, r_iter->second.right - r_iter->second.left + 1, r_iter->second.bottom - r_iter->second.top + 1, hdc, r_iter->second.left, r_iter->second.top, SRCCOPY); SelectObject(hdcCompatible, old_bitmap); __HDC_FOOTER_ATTENTION_HAS_TO_BE_CALLED_ON_EVERY_FUNCTION_EXIT_OTHERWISE_MEMORY_LEAK return true; }