From 4f9db1e7349c32161abca4444e38591f4b7bceab Mon Sep 17 00:00:00 2001 From: Oliver Stöneberg Date: Sat, 25 Oct 2014 18:14:16 +0200 Subject: added command-line option -[no]snapbilinear to control binlinear filtering for snapshots (enabled by default) [Oliver Stöneberg] MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit this is mainly for making testruns and debugging faster - could also be used to speed up -aviwrite usage though --- src/emu/emuopts.c | 1 + src/emu/emuopts.h | 2 ++ src/emu/video.c | 8 +++++++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/emu/emuopts.c b/src/emu/emuopts.c index 5ddb588c75a..3f845cc888e 100644 --- a/src/emu/emuopts.c +++ b/src/emu/emuopts.c @@ -65,6 +65,7 @@ const options_entry emu_options::s_option_entries[] = { OPTION_SNAPNAME, "%g/%i", OPTION_STRING, "override of the default snapshot/movie naming; %g == gamename, %i == index" }, { OPTION_SNAPSIZE, "auto", OPTION_STRING, "specify snapshot/movie resolution (x) or 'auto' to use minimal size " }, { OPTION_SNAPVIEW, "internal", OPTION_STRING, "specify snapshot/movie view or 'internal' to use internal pixel-aspect views" }, + { OPTION_SNAPBILINEAR, "1", OPTION_BOOLEAN, "specify if the snapshot should have bilinear filtering applied" }, { OPTION_STATENAME, "%g", OPTION_STRING, "override of the default state subfolder naming; %g == gamename" }, { OPTION_BURNIN, "0", OPTION_BOOLEAN, "create burn-in snapshots for each screen" }, diff --git a/src/emu/emuopts.h b/src/emu/emuopts.h index 71846945f8a..39bea138d2d 100644 --- a/src/emu/emuopts.h +++ b/src/emu/emuopts.h @@ -78,6 +78,7 @@ enum #define OPTION_SNAPNAME "snapname" #define OPTION_SNAPSIZE "snapsize" #define OPTION_SNAPVIEW "snapview" +#define OPTION_SNAPBILINEAR "snapbilinear" #define OPTION_STATENAME "statename" #define OPTION_BURNIN "burnin" @@ -239,6 +240,7 @@ public: const char *snap_name() const { return value(OPTION_SNAPNAME); } const char *snap_size() const { return value(OPTION_SNAPSIZE); } const char *snap_view() const { return value(OPTION_SNAPVIEW); } + bool snap_bilinear() const { return bool_value(OPTION_SNAPBILINEAR); } const char *state_name() const { return value(OPTION_STATENAME); } bool burnin() const { return bool_value(OPTION_BURNIN); } diff --git a/src/emu/video.c b/src/emu/video.c index 1194d7bd6f6..63c8e6d4b80 100644 --- a/src/emu/video.c +++ b/src/emu/video.c @@ -1058,6 +1058,9 @@ void video_manager::recompute_speed(const attotime &emutime) // given screen //------------------------------------------------- +typedef software_renderer snap_renderer_bilinear; +typedef software_renderer snap_renderer; + void video_manager::create_snapshot_bitmap(screen_device *screen) { // select the appropriate view in our dummy target @@ -1083,7 +1086,10 @@ void video_manager::create_snapshot_bitmap(screen_device *screen) // render the screen there render_primitive_list &primlist = m_snap_target->get_primitives(); primlist.acquire_lock(); - software_renderer::draw_primitives(primlist, &m_snap_bitmap.pix32(0), width, height, m_snap_bitmap.rowpixels()); + if (machine().options().snap_bilinear()) + snap_renderer_bilinear::draw_primitives(primlist, &m_snap_bitmap.pix32(0), width, height, m_snap_bitmap.rowpixels()); + else + snap_renderer::draw_primitives(primlist, &m_snap_bitmap.pix32(0), width, height, m_snap_bitmap.rowpixels()); primlist.release_lock(); } -- cgit v1.2.3