diff options
Diffstat (limited to 'src/mame/video/ygv608.c')
-rw-r--r-- | src/mame/video/ygv608.c | 25 |
1 files changed, 11 insertions, 14 deletions
diff --git a/src/mame/video/ygv608.c b/src/mame/video/ygv608.c index 4950ec87efc..56219794b67 100644 --- a/src/mame/video/ygv608.c +++ b/src/mame/video/ygv608.c @@ -497,8 +497,6 @@ static void ygv608_register_state_save(running_machine *machine) static void ygv608_exit(running_machine *machine) { - if( work_bitmap ) - bitmap_free( work_bitmap ); work_bitmap = NULL; } @@ -733,13 +731,13 @@ VIDEO_UPDATE( ygv608 ) double r, alpha, sin_theta, cos_theta; #endif rectangle finalclip; - const rectangle *visarea = video_screen_get_visible_area(screen); + const rectangle &visarea = screen->visible_area(); // clip to the current bitmap finalclip.min_x = 0; - finalclip.max_x = video_screen_get_width(screen) - 1; + finalclip.max_x = screen->width() - 1; finalclip.min_y = 0; - finalclip.max_y = video_screen_get_height(screen) - 1; + finalclip.max_y = screen->height() - 1; sect_rect(&finalclip, cliprect); cliprect = &finalclip; @@ -755,13 +753,12 @@ VIDEO_UPDATE( ygv608 ) #ifdef _ENABLE_SCREEN_RESIZE // hdw should be scaled by 16, not 8 // - is it something to do with double dot-clocks??? - video_screen_set_visarea(screen, 0, ((int)(ygv608.regs.s.hdw)<<3/*4*/)-1, + screen->set_visible_area(0, ((int)(ygv608.regs.s.hdw)<<3/*4*/)-1, 0, ((int)(ygv608.regs.s.vdw)<<3)-1 ); #endif - if( work_bitmap ) - bitmap_free( work_bitmap ); - work_bitmap = bitmap_alloc(video_screen_get_width(screen), video_screen_get_height(screen), video_screen_get_format(screen)); + auto_free( screen->machine, work_bitmap ); + work_bitmap = screen->alloc_compatible_bitmap(); // reset resize flag ygv608.screen_resize = 0; @@ -874,10 +871,10 @@ VIDEO_UPDATE( ygv608 ) if( ygv608.regs.s.zron ) copyrozbitmap( bitmap, cliprect, work_bitmap, - ( visarea->min_x << 16 ) + + ( visarea.min_x << 16 ) + ygv608.ax + 0x10000 * r * ( -sin( alpha ) * cos_theta + cos( alpha ) * sin_theta ), - ( visarea->min_y << 16 ) + + ( visarea.min_y << 16 ) + ygv608.ay + 0x10000 * r * ( cos( alpha ) * cos_theta + sin( alpha ) * sin_theta ), ygv608.dx, ygv608.dxy, ygv608.dyx, ygv608.dy, 0); @@ -888,7 +885,7 @@ VIDEO_UPDATE( ygv608 ) // for some reason we can't use an opaque tilemap_A // so use a transparent but clear the work bitmap first // - look at why this is the case?!? - bitmap_fill( work_bitmap,visarea ,0); + bitmap_fill( work_bitmap,&visarea ,0); if ((ygv608.regs.s.r11 & r11_prm) == PRM_ASBDEX || (ygv608.regs.s.r11 & r11_prm) == PRM_ASEBDX ) @@ -899,8 +896,8 @@ VIDEO_UPDATE( ygv608 ) #ifdef _ENABLE_ROTATE_ZOOM if( ygv608.regs.s.zron ) copyrozbitmap_trans( bitmap, cliprect, work_bitmap, - ygv608.ax, // + ( visarea->min_x << 16 ), - ygv608.ay, // + ( visarea->min_y << 16 ), + ygv608.ax, // + ( visarea.min_x << 16 ), + ygv608.ay, // + ( visarea.min_y << 16 ), ygv608.dx, ygv608.dxy, ygv608.dyx, ygv608.dy, 0, 0 ); else |