trunk/src/emu/emuopts.c
r241465 | r241466 | |
65 | 65 | { OPTION_SNAPNAME, "%g/%i", OPTION_STRING, "override of the default snapshot/movie naming; %g == gamename, %i == index" }, |
66 | 66 | { OPTION_SNAPSIZE, "auto", OPTION_STRING, "specify snapshot/movie resolution (<width>x<height>) or 'auto' to use minimal size " }, |
67 | 67 | { OPTION_SNAPVIEW, "internal", OPTION_STRING, "specify snapshot/movie view or 'internal' to use internal pixel-aspect views" }, |
| 68 | { OPTION_SNAPBILINEAR, "1", OPTION_BOOLEAN, "specify if the snapshot should have bilinear filtering applied" }, |
68 | 69 | { OPTION_STATENAME, "%g", OPTION_STRING, "override of the default state subfolder naming; %g == gamename" }, |
69 | 70 | { OPTION_BURNIN, "0", OPTION_BOOLEAN, "create burn-in snapshots for each screen" }, |
70 | 71 | |
trunk/src/emu/emuopts.h
r241465 | r241466 | |
78 | 78 | #define OPTION_SNAPNAME "snapname" |
79 | 79 | #define OPTION_SNAPSIZE "snapsize" |
80 | 80 | #define OPTION_SNAPVIEW "snapview" |
| 81 | #define OPTION_SNAPBILINEAR "snapbilinear" |
81 | 82 | #define OPTION_STATENAME "statename" |
82 | 83 | #define OPTION_BURNIN "burnin" |
83 | 84 | |
r241465 | r241466 | |
239 | 240 | const char *snap_name() const { return value(OPTION_SNAPNAME); } |
240 | 241 | const char *snap_size() const { return value(OPTION_SNAPSIZE); } |
241 | 242 | const char *snap_view() const { return value(OPTION_SNAPVIEW); } |
| 243 | bool snap_bilinear() const { return bool_value(OPTION_SNAPBILINEAR); } |
242 | 244 | const char *state_name() const { return value(OPTION_STATENAME); } |
243 | 245 | bool burnin() const { return bool_value(OPTION_BURNIN); } |
244 | 246 | |
trunk/src/emu/video.c
r241465 | r241466 | |
1058 | 1058 | // given screen |
1059 | 1059 | //------------------------------------------------- |
1060 | 1060 | |
| 1061 | typedef software_renderer<UINT32, 0,0,0, 16,8,0, false, true> snap_renderer_bilinear; |
| 1062 | typedef software_renderer<UINT32, 0,0,0, 16,8,0, false, false> snap_renderer; |
| 1063 | |
1061 | 1064 | void video_manager::create_snapshot_bitmap(screen_device *screen) |
1062 | 1065 | { |
1063 | 1066 | // select the appropriate view in our dummy target |
r241465 | r241466 | |
1083 | 1086 | // render the screen there |
1084 | 1087 | render_primitive_list &primlist = m_snap_target->get_primitives(); |
1085 | 1088 | primlist.acquire_lock(); |
1086 | | software_renderer<UINT32, 0,0,0, 16,8,0, false, true>::draw_primitives(primlist, &m_snap_bitmap.pix32(0), width, height, m_snap_bitmap.rowpixels()); |
| 1089 | if (machine().options().snap_bilinear()) |
| 1090 | snap_renderer_bilinear::draw_primitives(primlist, &m_snap_bitmap.pix32(0), width, height, m_snap_bitmap.rowpixels()); |
| 1091 | else |
| 1092 | snap_renderer::draw_primitives(primlist, &m_snap_bitmap.pix32(0), width, height, m_snap_bitmap.rowpixels()); |
1087 | 1093 | primlist.release_lock(); |
1088 | 1094 | } |
1089 | 1095 | |