void save_screen_snapshot(mame_bitmap *bitmap) { #if 1 /* AdvanceMAME has its snapshot code */ osd_save_snapshot(); #else mame_file *fp; if ((fp = mame_fopen_next(FILETYPE_SCREENSHOT)) != NULL) { save_screen_snapshot_as(fp, bitmap); mame_fclose(fp); } #endif }
static void dump_screenshot(int write_file) { mame_file *fp; char buf[128]; mame_bitmap *bitmap; int x, y, is_blank; pen_t color; extern mame_bitmap *scrbitmap[8]; bitmap = artwork_get_ui_bitmap(); if (write_file) { /* dump a screenshot */ snprintf(buf, sizeof(buf) / sizeof(buf[0]), (screenshot_num >= 0) ? "_%s_%d.png" : "_%s.png", current_testcase.name, screenshot_num); fp = mame_fopen(Machine->gamedrv->name, buf, FILETYPE_SCREENSHOT, 1); if (fp) { save_screen_snapshot_as(fp, bitmap); mame_fclose(fp); report_message(MSG_INFO, "Saved screenshot as %s", buf); } if (screenshot_num >= 0) screenshot_num++; } /* check to see if bitmap is blank */ bitmap = scrbitmap[0]; is_blank = 1; color = bitmap->read(bitmap, 0, 0); for (y = 0; is_blank && (y < bitmap->height); y++) { for (x = 0; is_blank && (x < bitmap->width); x++) { if (bitmap->read(bitmap, x, y) != color) is_blank = 0; } } if (is_blank) { had_failure = TRUE; report_message(MSG_FAILURE, "Screenshot is blank"); } }
void save_screen_snapshot(struct osd_bitmap *bitmap) { void *fp; char name[20]; /* avoid overwriting existing files */ /* first of all try with "gamename.png" */ sprintf(name,"%.8s", Machine->gamedrv->name); if (osd_faccess(name,OSD_FILETYPE_SCREENSHOT)) { do { /* otherwise use "nameNNNN.png" */ sprintf(name,"%.4s%04d",Machine->gamedrv->name,snapno++); } while (osd_faccess(name, OSD_FILETYPE_SCREENSHOT)); } if ((fp = osd_fopen(Machine->gamedrv->name, name, OSD_FILETYPE_SCREENSHOT, 1)) != NULL) { save_screen_snapshot_as(fp,bitmap); osd_fclose(fp); } }