int spbactn_state::draw_video(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, bool alt_sprites) { m_tile_bitmap_fg.fill(0, cliprect); m_bg_tilemap->draw(screen, m_tile_bitmap_bg, cliprect, TILEMAP_DRAW_OPAQUE, 0); if (spbactn_draw_sprites(screen, m_gfxdecode, m_tile_bitmap_bg, cliprect, 0, alt_sprites, m_spvideoram)) { m_bg_tilemap->draw(screen, m_tile_bitmap_bg, cliprect, 0, 0); } spbactn_draw_sprites(screen, m_gfxdecode, m_tile_bitmap_bg, cliprect, 1, alt_sprites, m_spvideoram); m_fg_tilemap->draw(screen, m_tile_bitmap_fg, cliprect, 0, 0); spbactn_draw_sprites(screen, m_gfxdecode, m_tile_bitmap_fg, cliprect, 2, alt_sprites, m_spvideoram); spbactn_draw_sprites(screen, m_gfxdecode, m_tile_bitmap_fg, cliprect, 3, alt_sprites, m_spvideoram); /* mix & blend the tilemaps and sprites into a 32-bit bitmap */ blendbitmaps(m_palette, bitmap, m_tile_bitmap_bg, m_tile_bitmap_fg, cliprect); return 0; }
UINT32 tecmo16_state::screen_update_tecmo16(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { screen.priority().fill(0, cliprect); m_tile_bitmap_bg.fill(0x300, cliprect); m_tile_bitmap_fg.fill(0, cliprect); m_sprite_bitmap.fill(0, cliprect); /* draw tilemaps into a 16-bit bitmap */ m_bg_tilemap->draw(screen, m_tile_bitmap_bg, cliprect, 0, 1); m_fg_tilemap->draw(screen, m_tile_bitmap_fg, cliprect, 0, 2); /* draw the blended tiles at a lower priority so sprites covered by them will still be drawn */ m_fg_tilemap->draw(screen, m_tile_bitmap_fg, cliprect, 1, 0); m_tx_tilemap->draw(screen, m_tile_bitmap_fg, cliprect, 0, 4); /* draw sprites into a 16-bit bitmap */ tecmo16_draw_sprites(screen, m_tile_bitmap_bg, m_tile_bitmap_fg, m_sprite_bitmap, cliprect, m_spriteram, m_spriteram.bytes(), m_game_is_riot, m_flipscreen); /* mix & blend the tilemaps and sprites into a 32-bit bitmap */ blendbitmaps(machine(), bitmap, m_tile_bitmap_bg, m_tile_bitmap_fg, m_sprite_bitmap, 0, 0, cliprect); return 0; }
UINT32 gaiden_state::screen_update_raiga(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { screen.priority().fill(0, cliprect); m_tile_bitmap_bg.fill(0x200, cliprect); m_tile_bitmap_fg.fill(0, cliprect); m_sprite_bitmap.fill(0, cliprect); /* draw tilemaps into a 16-bit bitmap */ m_background->draw(screen, m_tile_bitmap_bg, cliprect, 0, 1); m_foreground->draw(screen, m_tile_bitmap_fg, cliprect, 0, 2); /* draw the blended tiles at a lower priority so sprites covered by them will still be drawn */ m_foreground->draw(screen, m_tile_bitmap_fg, cliprect, 1, 0); m_text_layer->draw(screen, m_tile_bitmap_fg, cliprect, 0, 4); /* draw sprites into a 16-bit bitmap */ raiga_draw_sprites(screen, m_gfxdecode, m_tile_bitmap_bg, m_tile_bitmap_fg, m_sprite_bitmap, cliprect, m_spriteram, m_sprite_sizey, m_spr_offset_y, flip_screen()); /* mix & blend the tilemaps and sprites into a 32-bit bitmap */ blendbitmaps(bitmap, m_tile_bitmap_bg, m_tile_bitmap_fg, m_sprite_bitmap, 0, 0, cliprect); return 0; }