本文整理汇总了C++中screen_device::priority方法的典型用法代码示例。如果您正苦于以下问题:C++ screen_device::priority方法的具体用法?C++ screen_device::priority怎么用?C++ screen_device::priority使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类screen_device
的用法示例。
在下文中一共展示了screen_device::priority方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: screen_update_ajax
UINT32 ajax_state::screen_update_ajax(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
m_k052109->tilemap_update();
screen.priority().fill(0, cliprect);
bitmap.fill(m_palette->black_pen(), cliprect);
m_k052109->tilemap_draw(screen, bitmap, cliprect, 2, 0, 1);
if (m_priority)
{
/* basic layer order is B, zoom, A, F */
m_k051316->zoom_draw(screen, bitmap, cliprect, 0, 4);
m_k052109->tilemap_draw(screen, bitmap, cliprect, 1, 0, 2);
}
else
{
/* basic layer order is B, A, zoom, F */
m_k052109->tilemap_draw(screen, bitmap, cliprect, 1, 0, 2);
m_k051316->zoom_draw(screen, bitmap, cliprect, 0, 4);
}
m_k052109->tilemap_draw(screen, bitmap, cliprect, 0, 0, 8);
m_k051960->k051960_sprites_draw(bitmap, cliprect, screen.priority(), -1, -1);
return 0;
}
示例2:
uint32_t segas24_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
if(m_vmixer->get_reg(13) & 1) {
bitmap.fill(m_palette->black_pen());
return 0;
}
screen.priority().fill(0);
bitmap.fill(0, cliprect);
std::vector<int> order;
order.resize(12);
for(int i=0; i<12; i++)
order[i] = i;
std::sort(order.begin(), order.end(), layer_sort(*m_vmixer));
int spri[4];
int level = 0;
for(int i=0; i<12; i++)
if(order[i] < 8)
m_vtile->draw(screen, bitmap, cliprect, order[i], level, 0);
else {
spri[order[i]-8] = level;
level++;
}
m_vsprite->draw(bitmap, cliprect, screen.priority(), spri);
return 0;
}
示例3:
uint32_t _88games_state::screen_update_88games(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
m_k052109->tilemap_update();
if (m_k88games_priority)
{
m_k052109->tilemap_draw(screen, bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE, 0); // tile 0
m_k051960->k051960_sprites_draw(bitmap, cliprect, screen.priority(), 1, 1);
m_k052109->tilemap_draw(screen, bitmap, cliprect, 2, 0, 0); // tile 2
m_k052109->tilemap_draw(screen, bitmap, cliprect, 1, 0, 0); // tile 1
m_k051960->k051960_sprites_draw(bitmap, cliprect, screen.priority(), 0, 0);
m_k051316->zoom_draw(screen, bitmap, cliprect, 0, 0);
}
else
{
m_k052109->tilemap_draw(screen, bitmap, cliprect, 2, TILEMAP_DRAW_OPAQUE, 0); // tile 2
m_k051316->zoom_draw(screen, bitmap, cliprect, 0, 0);
m_k051960->k051960_sprites_draw(bitmap, cliprect, screen.priority(), 0, 0);
m_k052109->tilemap_draw(screen, bitmap, cliprect, 1, 0, 0); // tile 1
m_k051960->k051960_sprites_draw(bitmap, cliprect, screen.priority(), 1, 1);
m_k052109->tilemap_draw(screen, bitmap, cliprect, 0, 0, 0); // tile 0
}
return 0;
}
示例4: machine
UINT32 gradius3_state::screen_update_gradius3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
/* TODO: this kludge enforces the char banks. For some reason, they don't work otherwise. */
address_space &space = machine().driver_data()->generic_space();
m_k052109->write(space, 0x1d80, 0x10);
m_k052109->write(space, 0x1f00, 0x32);
m_k052109->tilemap_update();
screen.priority().fill(0, cliprect);
if (m_priority == 0)
{
m_k052109->tilemap_draw(screen, bitmap, cliprect, 1, TILEMAP_DRAW_OPAQUE, 2);
m_k052109->tilemap_draw(screen, bitmap, cliprect, 2, 0, 4);
m_k052109->tilemap_draw(screen, bitmap, cliprect, 0, 0, 1);
}
else
{
m_k052109->tilemap_draw(screen, bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE, 1);
m_k052109->tilemap_draw(screen, bitmap, cliprect, 1, 0, 2);
m_k052109->tilemap_draw(screen, bitmap, cliprect, 2, 0, 4);
}
m_k051960->k051960_sprites_draw(bitmap, cliprect, screen.priority(), -1, -1);
return 0;
}
示例5: screen_update_shangon
UINT32 segaorun_state::screen_update_shangon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
// start the sprites drawing
m_sprites->draw_async(cliprect);
// reset priorities
screen.priority().fill(0, cliprect);
// draw the low priority road layer
m_segaic16road->segaic16_road_draw(0, bitmap, cliprect, SEGAIC16_ROAD_BACKGROUND);
// draw background
m_segaic16vid->segaic16_tilemap_draw(screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_BACKGROUND, 0, 0x01);
m_segaic16vid->segaic16_tilemap_draw(screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_BACKGROUND, 1, 0x02);
// draw foreground
m_segaic16vid->segaic16_tilemap_draw(screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_FOREGROUND, 0, 0x02);
m_segaic16vid->segaic16_tilemap_draw(screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_FOREGROUND, 1, 0x04);
// draw the high priority road
m_segaic16road->segaic16_road_draw(0, bitmap, cliprect, SEGAIC16_ROAD_FOREGROUND);
// text layer
// note that we inflate the priority of the text layer to prevent sprites
// from drawing over the high scores
m_segaic16vid->segaic16_tilemap_draw(screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_TEXT, 0, 0x08);
m_segaic16vid->segaic16_tilemap_draw(screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_TEXT, 1, 0x08);
// mix in sprites
bitmap_ind16 &sprites = m_sprites->bitmap();
for (const sparse_dirty_rect *rect = m_sprites->first_dirty_rect(cliprect); rect != NULL; rect = rect->next())
for (int y = rect->min_y; y <= rect->max_y; y++)
{
UINT16 *dest = &bitmap.pix(y);
UINT16 *src = &sprites.pix(y);
UINT8 *pri = &screen.priority().pix(y);
for (int x = rect->min_x; x <= rect->max_x; x++)
{
// only process written pixels
UINT16 pix = src[x];
if (pix != 0xffff)
{
// compare sprite priority against tilemap priority
int priority = (pix >> 10) & 3;
if ((1 << priority) > pri[x])
{
// if the color is set to maximum, shadow pixels underneath us
if ((pix & 0x03f0) == 0x03f0)
dest[x] += (m_paletteram[dest[x]] & 0x8000) ? m_palette_entries*2 : m_palette_entries;
// otherwise, just add in sprite palette base
else
dest[x] = 0x400 | (pix & 0x3ff);
}
}
}
}
示例6: screen_update_chqflag
uint32_t chqflag_state::screen_update_chqflag(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
screen.priority().fill(0, cliprect);
m_k051316_2->zoom_draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
m_k051316_2->zoom_draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0, 1);
m_k051960->k051960_sprites_draw(bitmap, cliprect, screen.priority(), -1, -1);
m_k051316_1->zoom_draw(screen, bitmap, cliprect, 0, 0);
return 0;
}
示例7: screen_update_blockhl
UINT32 blockhl_state::screen_update_blockhl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
screen.priority().fill(0, cliprect);
m_k052109->tilemap_update();
m_k052109->tilemap_draw(screen, bitmap, cliprect, 2, TILEMAP_DRAW_OPAQUE, 0); // tile 2
m_k052109->tilemap_draw(screen, bitmap, cliprect, 1, 0, 1); // tile 1
m_k052109->tilemap_draw(screen, bitmap, cliprect, 0, 0, 2); // tile 0
m_k051960->k051960_sprites_draw(bitmap, cliprect, screen.priority(), 0, -1);
return 0;
}
示例8: screen_update_othunder
uint32_t othunder_state::screen_update_othunder(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
int layer[3];
m_tc0100scn->tilemap_update();
layer[0] = m_tc0100scn->bottomlayer();
layer[1] = layer[0] ^ 1;
layer[2] = 2;
screen.priority().fill(0, cliprect);
/* Ensure screen blanked even when bottom layer not drawn due to disable bit */
bitmap.fill(0, cliprect);
m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1);
m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[1], 0, 2);
m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[2], 0, 4);
/* Sprites can be under/over the layer below text layer */
{
static const int primasks[2] = {0xf0, 0xfc};
draw_sprites(screen, bitmap, cliprect, primasks, 3);
}
return 0;
}
示例9:
uint32_t dec0_state::screen_update_midres(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
screen.priority().fill(0,cliprect);
bool flip = m_tilegen[0]->get_flip_state();
m_tilegen[0]->set_flip_screen(flip);
m_tilegen[1]->set_flip_screen(flip);
m_tilegen[2]->set_flip_screen(flip);
m_spritegen->set_flip_screen(flip);
if (m_pri & 0x01)
{
m_tilegen[1]->deco_bac06_pf_draw(screen,bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00, 1);
m_tilegen[2]->deco_bac06_pf_draw(screen,bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00, 2);
}
else
{
m_tilegen[2]->deco_bac06_pf_draw(screen,bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00, 1);
m_tilegen[1]->deco_bac06_pf_draw(screen,bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00, 2);
}
m_spritegen->draw_sprites(screen, bitmap, cliprect, m_gfxdecode->gfx(3), m_buffered_spriteram, 0x800/2);
m_tilegen[0]->deco_bac06_pf_draw(screen,bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00, 0);
return 0;
}
示例10: screen_update
uint32_t fghthist_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
screen.priority().fill(0, cliprect);
bitmap.fill(m_palette->pen(0x300), cliprect); // Palette index not confirmed
m_deco_tilegen[0]->pf_update(m_pf_rowscroll[0].get(), m_pf_rowscroll[1].get());
m_deco_tilegen[1]->pf_update(m_pf_rowscroll[2].get(), m_pf_rowscroll[3].get());
// sprites are flipped relative to tilemaps
m_sprgen[0]->set_flip_screen(true);
m_sprgen[0]->draw_sprites(bitmap, cliprect, m_spriteram16_buffered[0].get(), 0x800);
/* Draw screen */
m_deco_tilegen[1]->tilemap_2_draw(screen, bitmap, cliprect, 0, 1);
if(m_pri&1)
{
m_deco_tilegen[0]->tilemap_2_draw(screen, bitmap, cliprect, 0, 2);
m_sprgen[0]->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0800, 0x0800, 1024, 0x1ff);
m_deco_tilegen[1]->tilemap_1_draw(screen, bitmap, cliprect, 0, 4);
}
else
{
m_deco_tilegen[1]->tilemap_1_draw(screen, bitmap, cliprect, 0, 2);
m_sprgen[0]->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0800, 0x0800, 1024, 0x1ff);
m_deco_tilegen[0]->tilemap_2_draw(screen, bitmap, cliprect, 0, 4);
}
m_sprgen[0]->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0800, 1024, 0x1ff);
m_deco_tilegen[0]->tilemap_1_draw(screen, bitmap, cliprect, 0, 0);
return 0;
}
示例11:
// BOOTLEG
UINT32 f1gp_state::screen_update_f1gpb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
UINT32 startx, starty;
int incxx, incxy, incyx, incyy;
incxy = (INT16)m_rozregs[1];
incyx = -incxy;
incxx = incyy = (INT16)m_rozregs[3];
startx = m_rozregs[0] + 328;
starty = m_rozregs[2];
m_fg_tilemap->set_scrolly(0, m_fgregs[0] + 8);
screen.priority().fill(0, cliprect);
m_roz_tilemap->draw_roz(screen, bitmap, cliprect,
startx << 13, starty << 13,
incxx << 5, incxy << 5, incyx << 5, incyy << 5,
1, 0, 0);
m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 1);
f1gpb_draw_sprites(screen, bitmap, cliprect);
return 0;
}
示例12: screen_update_lethalen
UINT32 lethal_state::screen_update_lethalen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
bitmap.fill(m_back_colorbase, cliprect);
screen.priority().fill(0, cliprect);
m_k056832->tilemap_draw(screen, bitmap, cliprect, 3, K056832_DRAW_FLAG_MIRROR, 1);
m_k056832->tilemap_draw(screen, bitmap, cliprect, 2, K056832_DRAW_FLAG_MIRROR, 2);
m_k056832->tilemap_draw(screen, bitmap, cliprect, 1, K056832_DRAW_FLAG_MIRROR, 4);
m_k053244->sprites_draw(bitmap, cliprect, screen.priority());
// force "A" layer over top of everything
m_k056832->tilemap_draw(screen, bitmap, cliprect, 0, K056832_DRAW_FLAG_MIRROR, 0);
return 0;
}
示例13: screen_update_maniacsq
UINT32 gaelco_state::screen_update_maniacsq(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
/* set scroll registers */
m_tilemap[0]->set_scrolly(0, m_vregs[0]);
m_tilemap[0]->set_scrollx(0, m_vregs[1] + 4);
m_tilemap[1]->set_scrolly(0, m_vregs[2]);
m_tilemap[1]->set_scrollx(0, m_vregs[3]);
screen.priority().fill(0, cliprect);
bitmap.fill(0, cliprect);
m_tilemap[1]->draw(screen, bitmap, cliprect, 3, 0);
m_tilemap[0]->draw(screen, bitmap, cliprect, 3, 0);
m_tilemap[1]->draw(screen, bitmap, cliprect, 2, 1);
m_tilemap[0]->draw(screen, bitmap, cliprect, 2, 1);
m_tilemap[1]->draw(screen, bitmap, cliprect, 1, 2);
m_tilemap[0]->draw(screen, bitmap, cliprect, 1, 2);
m_tilemap[1]->draw(screen, bitmap, cliprect, 0, 4);
m_tilemap[0]->draw(screen, bitmap, cliprect, 0, 4);
draw_sprites(screen, bitmap, cliprect);
return 0;
}
示例14: screen_update_inteladv
uint32_t inteladv_state::screen_update_inteladv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
bitmap.fill(0, cliprect);
screen.priority().fill(0, cliprect);
return 0;
}
示例15: screen_update_backfire_right
UINT32 backfire_state::screen_update_backfire_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
//FIXME: flip_screen_x should not be written!
flip_screen_set_no_update(1);
/* screen 1 uses pf1 as the forground and pf3 as the background */
/* screen 2 uses pf2 as the foreground and pf4 as the background */
m_deco_tilegen1->pf_update(m_pf1_rowscroll, m_pf2_rowscroll);
m_deco_tilegen2->pf_update(m_pf3_rowscroll, m_pf4_rowscroll);
screen.priority().fill(0);
bitmap.fill(0x500, cliprect);
if (m_right_priority[0] == 0)
{
m_deco_tilegen2->tilemap_2_draw(screen, bitmap, cliprect, 0, 1);
m_deco_tilegen1->tilemap_2_draw(screen, bitmap, cliprect, 0, 2);
m_sprgen2->draw_sprites(bitmap, cliprect, m_spriteram_2.get(), 0x800);
}
else if (m_right_priority[0] == 2)
{
m_deco_tilegen1->tilemap_2_draw(screen, bitmap, cliprect, 0, 2);
m_deco_tilegen2->tilemap_2_draw(screen, bitmap, cliprect, 0, 4);
m_sprgen2->draw_sprites(bitmap, cliprect, m_spriteram_2.get(), 0x800);
}
else
popmessage( "unknown right priority %08x", m_right_priority[0]);
return 0;
}