本文整理汇总了C++中bitmap_ind16::fill方法的典型用法代码示例。如果您正苦于以下问题:C++ bitmap_ind16::fill方法的具体用法?C++ bitmap_ind16::fill怎么用?C++ bitmap_ind16::fill使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类bitmap_ind16
的用法示例。
在下文中一共展示了bitmap_ind16::fill方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: screen_update
uint32_t darkmist_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
#define DM_GETSCROLL(n) (((m_scroll[(n)]<<1)&0xff) + ((m_scroll[(n)]&0x80)?1:0) +( ((m_scroll[(n)-1]<<4) | (m_scroll[(n)-1]<<12) )&0xff00))
m_bgtilemap->set_scrollx(0, DM_GETSCROLL(0x2));
m_bgtilemap->set_scrolly(0, DM_GETSCROLL(0x6));
m_fgtilemap->set_scrollx(0, DM_GETSCROLL(0xa));
m_fgtilemap->set_scrolly(0, DM_GETSCROLL(0xe));
m_temp_bitmap.fill(0,cliprect);
bitmap.fill(m_palette->black_pen(), cliprect);
if(m_hw & DISPLAY_BG)
{
m_bgtilemap->draw(screen, m_temp_bitmap, cliprect, 0,0);
mix_layer(screen, bitmap, cliprect, m_bg_clut);
}
if(m_hw & DISPLAY_FG)
{
m_fgtilemap->draw(screen, m_temp_bitmap, cliprect, 0,0);
mix_layer(screen, bitmap, cliprect, m_fg_clut);
}
if(m_hw & DISPLAY_SPR)
{
draw_sprites(m_temp_bitmap,cliprect);
mix_layer(screen, bitmap, cliprect, m_spr_clut);
}
if(m_hw & DISPLAY_TXT)
{
m_txtilemap->draw(screen, m_temp_bitmap, cliprect, 0,0);
mix_layer(screen, bitmap, cliprect, m_tx_clut);
}
return 0;
}
示例2:
uint32_t namcos1_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
int i;
rectangle new_clip = cliprect;
/* flip screen is embedded in the sprite control registers */
flip_screen_set(m_spriteram[0x0ff6] & 1);
/* background color */
bitmap.fill(m_c116->black_pen(), cliprect);
/* berabohm uses asymmetrical visibility windows to iris on the character */
i = m_c116->get_reg(0) - 1; // min x
if (new_clip.min_x < i) new_clip.min_x = i;
i = m_c116->get_reg(1) - 1 - 1; // max x
if (new_clip.max_x > i) new_clip.max_x = i;
i = m_c116->get_reg(2) - 0x11; // min y
if (new_clip.min_y < i) new_clip.min_y = i;
i = m_c116->get_reg(3) - 0x11 - 1; // max y
if (new_clip.max_y > i) new_clip.max_y = i;
if (new_clip.empty())
return 0;
m_c123tmap->init_scroll(flip_screen());
screen.priority().fill(0, new_clip);
/* bit 0-2 priority */
/* bit 3 disable */
for (int priority = 0; priority < 8; priority++)
{
m_c123tmap->draw(screen, bitmap, new_clip, priority, priority);
}
draw_sprites(screen, bitmap, new_clip);
return 0;
}
示例3: screen_update_taitopjc
UINT32 taitopjc_state::screen_update_taitopjc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
UINT8 *s = (UINT8*)m_screen_ram.get();
int x,y,t,u;
bitmap.fill(0x000000, cliprect);
UINT16 *s16 = (UINT16*)m_screen_ram.get();
for (u=0; u < 24; u++)
{
for (t=0; t < 32; t++)
{
UINT16 tile = s16[(0x7e000 + (u*64) + t) ^ NATIVE_ENDIAN_VALUE_LE_BE(1,0)];
int palette = (tile >> 12) & 0xf;
tile &= 0xfff;
for (y=0; y < 16; y++)
{
UINT16 *fb = &bitmap.pix16(y+(u*16));
for (x=0; x < 16; x++)
{
UINT8 p = s[((tile*256) + ((y*16)+x)) ^ NATIVE_ENDIAN_VALUE_LE_BE(3,0)];
if (p != 0)
{
fb[x+(t*16)] = (palette << 8) + p;
}
}
}
}
}
m_tc0780fpa->draw(bitmap, cliprect);
return 0;
}
示例4: screen_update_lastfght
UINT32 lastfght_state::screen_update_lastfght(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
#ifdef MAME_DEBUG
#if 1
// gfx roms viewer (toggle with enter, use pgup/down to browse)
int x, y, count = 0;
UINT8 *gfxdata = memregion("gfx1")->base();
UINT8 data;
if (machine().input().code_pressed_once(KEYCODE_ENTER)) m_view_roms ^= 1;
if (m_view_roms)
{
if (machine().input().code_pressed_once(KEYCODE_PGDN)) m_base += 512 * 256;
if (machine().input().code_pressed_once(KEYCODE_PGUP)) m_base -= 512 * 256;
m_base %= memregion("gfx1")->bytes();
count = m_base;
bitmap.fill(m_palette->black_pen(), cliprect );
for (y = 0 ; y < 256; y++)
{
for (x = 0; x < 512; x++)
{
data = (((count & 0xf) == 0) && ((count & 0x1e00) == 0)) ? m_palette->white_pen() : gfxdata[count]; // white grid or data
bitmap.pix16(y, x) = data;
count++;
}
}
popmessage("%x", m_base);
return 0;
}
#endif
#endif
copybitmap(bitmap, m_bitmap[m_dest ^ 1], 0, 0, 0, 0, cliprect);
return 0;
}
示例5: screen_update_bigkarnk
UINT32 gaelco_state::screen_update_bigkarnk(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, TILEMAP_DRAW_LAYER1 | 3, 0);
m_tilemap[0]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 3, 0);
m_tilemap[1]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 3, 1);
m_tilemap[0]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 3, 1);
m_tilemap[1]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 2, 1);
m_tilemap[0]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 2, 1);
m_tilemap[1]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 2, 2);
m_tilemap[0]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 2, 2);
m_tilemap[1]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1, 2);
m_tilemap[0]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1, 2);
m_tilemap[1]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1, 4);
m_tilemap[0]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1, 4);
m_tilemap[1]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0, 4);
m_tilemap[0]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0, 4);
m_tilemap[1]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0, 8);
m_tilemap[0]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0, 8);
draw_sprites(screen, bitmap, cliprect);
return 0;
}
示例6: screen_update_majorpkr
UINT32 majorpkr_state::screen_update_majorpkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
bitmap.fill(get_black_pen(machine()), cliprect);
rectangle custom_clip;
/* The following custom_clip is to exclude the last char column (unused)
form the render. We need more proof about how the video is working.
*/
custom_clip = cliprect;
custom_clip.max_x -= 16;
m_bg_tilemap->draw(screen, bitmap, custom_clip, 0, 0);
m_fg_tilemap->draw(screen, bitmap, custom_clip, 0, 0);
if (m_flip_state == 1)
{
m_bg_tilemap->set_flip(TILEMAP_FLIPX | TILEMAP_FLIPY);
m_fg_tilemap->set_flip(TILEMAP_FLIPX | TILEMAP_FLIPY);
}
return 0;
}
示例7: screen_update
UINT32 segaxbd_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
// if no drawing is happening, fill with black and get out
if (!segaic16_display_enable)
{
bitmap.fill(get_black_pen(machine()), cliprect);
return 0;
}
// reset priorities
machine().priority_bitmap.fill(0, cliprect);
// draw the low priority road layer
segaic16_road_draw(0, bitmap, cliprect, SEGAIC16_ROAD_BACKGROUND);
if (m_road_priority == 0)
segaic16_road_draw(0, bitmap, cliprect, SEGAIC16_ROAD_FOREGROUND);
// draw background
segaic16_tilemap_draw(screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_BACKGROUND, 0, 0x01);
segaic16_tilemap_draw(screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_BACKGROUND, 1, 0x02);
// draw foreground
segaic16_tilemap_draw(screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_FOREGROUND, 0, 0x02);
segaic16_tilemap_draw(screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_FOREGROUND, 1, 0x04);
// draw the high priority road
if (m_road_priority == 1)
segaic16_road_draw(0, bitmap, cliprect, SEGAIC16_ROAD_FOREGROUND);
// text layer
segaic16_tilemap_draw(screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_TEXT, 0, 0x04);
segaic16_tilemap_draw(screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_TEXT, 1, 0x08);
// draw the sprites
segaic16_sprites_draw(screen, bitmap, cliprect, 0);
return 0;
}
示例8: screen_update
UINT32 pturn_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
bitmap.fill(m_bgcolor, cliprect);
m_bgmap->draw(screen, bitmap, cliprect, 0,0);
for (int offs = 0x80-4 ; offs >=0 ; offs -= 4)
{
int sy=256-m_spriteram[offs]-16 ;
int sx=m_spriteram[offs+3]-16 ;
int flipx=m_spriteram[offs+1]&0x40;
int flipy=m_spriteram[offs+1]&0x80;
if (flip_screen_x())
{
sx = 224 - sx;
flipx ^= 0x40;
}
if (flip_screen_y())
{
flipy ^= 0x80;
sy = 224 - sy;
}
if(sx|sy)
{
m_gfxdecode->gfx(2)->transpen(bitmap,cliprect,
m_spriteram[offs+1] & 0x3f ,
(m_spriteram[offs+2] & 0x1f),
flipx, flipy,
sx,sy,0);
}
}
m_fgmap->draw(screen, bitmap, cliprect, 0,0);
return 0;
}
示例9: screen_update_funybubl
uint32_t funybubl_state::screen_update_funybubl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
int x, y, offs;
offs = 0;
bitmap.fill(m_palette->black_pen(), cliprect);
/* tilemap .. convert it .. banking makes it slightly more annoying but still easy */
for (y = 0; y < 32; y++)
{
for (x = 0; x< 64; x++)
{
int data;
data = m_banked_vram[offs] | (m_banked_vram[offs + 1] << 8);
m_gfxdecode->gfx(0)->transpen(bitmap,cliprect, data & 0x7fff, (data & 0x8000) ? 2 : 1, 0, 0, x*8, y*8, 0);
offs += 2;
}
}
draw_sprites(bitmap, cliprect);
#if 0
if ( machine().input().code_pressed_once(KEYCODE_W) )
{
FILE *fp;
fp = fopen("funnybubsprites", "w+b");
if (fp)
{
fwrite(&m_banked_vram[0x1000], 0x1000, 1, fp);
fclose(fp);
}
}
#endif
return 0;
}
示例10: BIT
UINT32 mz_state::screen_update_mz800(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
UINT8 *videoram = m_videoram;
bitmap.fill(get_black_pen(machine()), cliprect);
if (m_mz700_mode)
return screen_update_mz700(screen, bitmap, cliprect);
else
{
if (m_hires_mode)
{
}
else
{
int x, y;
UINT8 *start_addr = videoram;
for (x = 0; x < 40; x++)
{
for (y = 0; y < 200; y++)
{
bitmap.pix16(y, x * 8 + 0) = BIT(start_addr[x * 8 + y], 0);
bitmap.pix16(y, x * 8 + 1) = BIT(start_addr[x * 8 + y], 1);
bitmap.pix16(y, x * 8 + 2) = BIT(start_addr[x * 8 + y], 2);
bitmap.pix16(y, x * 8 + 3) = BIT(start_addr[x * 8 + y], 3);
bitmap.pix16(y, x * 8 + 4) = BIT(start_addr[x * 8 + y], 4);
bitmap.pix16(y, x * 8 + 5) = BIT(start_addr[x * 8 + y], 5);
bitmap.pix16(y, x * 8 + 6) = BIT(start_addr[x * 8 + y], 6);
bitmap.pix16(y, x * 8 + 7) = BIT(start_addr[x * 8 + y], 7);
}
}
}
return 0;
}
}
示例11: screen_update_murogem
UINT32 murogem_state::screen_update_murogem(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
int xx,yy,count;
count = 0x000;
bitmap.fill(0, cliprect);
for (yy=0;yy<32;yy++)
{
for(xx=0;xx<32;xx++)
{
int tileno = m_videoram[count]&0x3f;
int attr = m_videoram[count+0x400]&0x0f;
drawgfx_transpen(bitmap,cliprect,machine().gfx[0],tileno,attr,0,0,xx*8,yy*8,0);
count++;
}
}
return 0;
}
示例12: screen_update_ace
UINT32 aceal_state::screen_update_ace(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
int offs;
/* first of all, fill the screen with the background color */
bitmap.fill(0, cliprect);
m_gfxdecode->gfx(1)->opaque(m_palette,bitmap,cliprect,
0,
0,
0, 0,
m_objpos[0], m_objpos[1]);
m_gfxdecode->gfx(2)->opaque(m_palette,bitmap,cliprect,
0,
0,
0, 0,
m_objpos[2], m_objpos[3]);
m_gfxdecode->gfx(3)->opaque(m_palette,bitmap,cliprect,
0,
0,
0, 0,
m_objpos[4], m_objpos[5]);
for (offs = 0; offs < 8; offs++)
{
m_gfxdecode->gfx(4)->opaque(m_palette,bitmap,/* ?? */
cliprect,
offs,
0,
0, 0,
10 * 8 + offs * 16, 256 - 16);
}
return 0;
}
示例13: screen_update
uint32_t fun_tech_corp_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
bitmap.fill(0, cliprect);
if (!(m_vreg & 0x40))
{
for (int i = 0; i < 64; i++)
{
m_reel1_tilemap->set_scrolly(i, m_reel1_scroll[i]);
m_reel2_tilemap->set_scrolly(i, m_reel2_scroll[i]);
m_reel3_tilemap->set_scrolly(i, m_reel3_scroll[i]);
}
const rectangle visible1(0 * 8, (14 + 48) * 8 - 1, 4 * 8, (4 + 7) * 8 - 1);
const rectangle visible2(0 * 8, (14 + 48) * 8 - 1, 12 * 8, (12 + 7) * 8 - 1);
const rectangle visible3(0 * 8, (14 + 48) * 8 - 1, 18 * 8, (18 + 7) * 8 - 1);
m_reel1_tilemap->draw(screen, bitmap, visible1, 0, 0);
m_reel2_tilemap->draw(screen, bitmap, visible2, 0, 0);
m_reel3_tilemap->draw(screen, bitmap, visible3, 0, 0);
}
else
{
// this mode seems to draw reel1 as fullscreen using a different set of scroll regs
for (int i = 0; i < 64; i++)
{
m_reel1_tilemap->set_scrolly(i, m_reel1_alt_scroll[i]);
}
m_reel1_tilemap->draw(screen, bitmap, cliprect, 0, 0);
}
m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
return 0;
}
示例14: screen_update
UINT32 ajax_state::screen_update(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_k051960->k051960_sprites_draw(bitmap, cliprect, screen.priority(), -1, -1);
m_k052109->tilemap_draw(screen, bitmap, cliprect, 0, 0, 0);
return 0;
}
示例15: screen_update_rblaster
UINT32 deco_ld_state::screen_update_rblaster(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
gfx_element *gfx = m_gfxdecode->gfx(0);
int y,x;
bitmap.fill(0, cliprect);
draw_sprites(bitmap,cliprect,m_vram1,0x000);
draw_sprites(bitmap,cliprect,m_vram0,0x100);
for (y=0;y<32;y++)
{
for (x=0;x<32;x++)
{
int attr = m_attr0[x+y*32];
int tile = m_vram0[x+y*32] | ((attr & 3) << 8);
int colour = (6 & 0x7); /* TODO */
gfx->transpen(bitmap,cliprect,tile|0x400,colour,0,0,x*8,y*8,0);
}
}
for (y=0;y<32;y++)
{
for (x=0;x<32;x++)
{
int attr = m_attr1[x+y*32];
int tile = m_vram1[x+y*32] | ((attr & 3) << 8);
int colour = (6 & 0x7); /* TODO */
gfx->transpen(bitmap,cliprect,tile,colour,0,0,x*8,y*8,0);
}
}
return 0;
}