summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/video/ygv608.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/video/ygv608.c')
-rw-r--r--src/mame/video/ygv608.c25
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