diff options
Diffstat (limited to 'src/emu/screen.h')
-rw-r--r-- | src/emu/screen.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/emu/screen.h b/src/emu/screen.h index c530dc75502..2211e38ee2c 100644 --- a/src/emu/screen.h +++ b/src/emu/screen.h @@ -217,6 +217,15 @@ public: m_height = vtotal; m_visarea.set(hbend, hbstart - 1, vbend, vbstart - 1); } + void set_raw_fractional(u32 pixclock, double htotal, double hbend, double hbstart, double vtotal, double vbend, double vbstart) + { + m_clock = pixclock; + m_refresh = HZ_TO_ATTOSECONDS(pixclock) * htotal * vtotal; + m_vblank = m_refresh / vtotal * (vtotal - (vbstart - vbend)); + m_width = (int)ceil(htotal); + m_height = (int)ceil(vtotal); + m_visarea.set((int)ceil(hbend), (int)floor(hbstart) - 1, (int)ceil(vbend), (int)floor(vbstart) - 1); + } void set_raw(const XTAL &xtal, u16 htotal, u16 hbend, u16 hbstart, u16 vtotal, u16 vbend, u16 vbstart) { set_raw(xtal.value(), htotal, hbend, hbstart, vtotal, vbend, vbstart); } void set_refresh(attoseconds_t rate) { m_refresh = rate; } template <typename T> void set_refresh_hz(T &&hz) { set_refresh(HZ_TO_ATTOSECONDS(std::forward<T>(hz))); } |