diff --git a/src/mame/video/wswan.cpp b/src/mame/video/wswan.cpp index cbfe7219f2f..804af6f985e 100644 --- a/src/mame/video/wswan.cpp +++ b/src/mame/video/wswan.cpp @@ -22,6 +22,7 @@ DEFINE_DEVICE_TYPE(WSWAN_VIDEO, wswan_video_device, "wswan_video", "Bandai Wonde wswan_video_device::wswan_video_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, WSWAN_VIDEO, tag, owner, clock) + , m_screen(*this, ":screen") , m_vdp_type(VDP_TYPE_WSWAN) { } @@ -81,7 +82,7 @@ void wswan_video_device::common_save() void wswan_video_device::device_start() { - machine().first_screen()->register_screen_bitmap(m_bitmap); + m_screen->register_screen_bitmap(m_bitmap); m_timer = timer_alloc(TIMER_SCANLINE); m_timer->adjust(attotime::from_ticks(256, 3072000), 0, attotime::from_ticks(256, 3072000)); diff --git a/src/mame/video/wswan.h b/src/mame/video/wswan.h index 687d5e963d2..6d4e1f0e802 100644 --- a/src/mame/video/wswan.h +++ b/src/mame/video/wswan.h @@ -78,6 +78,8 @@ protected: void scanline_interrupt(); void common_save(); + required_device m_screen; + bitmap_ind16 m_bitmap; uint8_t m_layer_bg_enable; /* Background layer on/off */ uint8_t m_layer_fg_enable; /* Foreground layer on/off */ diff --git a/src/osd/modules/render/d3d/d3dhlsl.cpp b/src/osd/modules/render/d3d/d3dhlsl.cpp index 5831f578391..54f52625b6d 100644 --- a/src/osd/modules/render/d3d/d3dhlsl.cpp +++ b/src/osd/modules/render/d3d/d3dhlsl.cpp @@ -2133,7 +2133,7 @@ void shaders::init_slider_list() } internal_sliders.clear(); - auto first_screen = machine->first_screen(); + const screen_device *first_screen = screen_device_iterator(machine->root_device()).first();; if (first_screen == nullptr) { return; @@ -2224,7 +2224,7 @@ void uniform::update() renderer_d3d9 *d3d = shadersys->d3d; auto win = d3d->assert_window(); - auto first_screen = win->machine().first_screen(); + const screen_device *first_screen = screen_device_iterator(win->machine().root_device()).first(); bool vector_screen = first_screen != nullptr && diff --git a/src/osd/modules/render/drawd3d.cpp b/src/osd/modules/render/drawd3d.cpp index b0427c5b55c..302dfaf49b1 100644 --- a/src/osd/modules/render/drawd3d.cpp +++ b/src/osd/modules/render/drawd3d.cpp @@ -1294,7 +1294,7 @@ void renderer_d3d9::pick_best_mode() auto win = assert_window(); // determine the refresh rate of the primary screen - const screen_device *primary_screen = win->machine().config().first_screen(); + const screen_device *primary_screen = screen_device_iterator(win->machine().root_device()).first(); if (primary_screen != nullptr) { target_refresh = ATTOSECONDS_TO_HZ(primary_screen->refresh_attoseconds()); @@ -2708,7 +2708,7 @@ bool d3d_render_target::init(renderer_d3d9 *d3d, int source_width, int source_he auto win = d3d->assert_window(); - auto first_screen = win->machine().first_screen(); + const screen_device *first_screen = screen_device_iterator(win->machine().root_device()).first(); bool vector_screen = first_screen != nullptr && first_screen->screen_type() == SCREEN_TYPE_VECTOR;