本文整理汇总了C++中bitmap_rgb32::fill方法的典型用法代码示例。如果您正苦于以下问题:C++ bitmap_rgb32::fill方法的具体用法?C++ bitmap_rgb32::fill怎么用?C++ bitmap_rgb32::fill使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类bitmap_rgb32
的用法示例。
在下文中一共展示了bitmap_rgb32::fill方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: render_jpeg
void sliver_state::render_jpeg()
{
int x;
int addr = (int)m_jpeg2 + (((int)m_jpeg1) << 16);
m_bitmap_bg.fill(0);
if (addr < 0)
{
return;
}
//printf("access address %04x\n", addr);
/* Access libJPEG */
{
struct jpeg_decompress_struct cinfo;
struct jpeg_error_mgr jerr;
JSAMPARRAY buffer;
cinfo.err = jpeg_std_error(&jerr);
jpeg_create_decompress(&cinfo);
jpeg_mem_src(&cinfo, memregion("user2")->base()+addr, memregion("user2")->bytes()-addr);
jpeg_read_header(&cinfo, true);
jpeg_start_decompress(&cinfo);
int row_stride = cinfo.output_width * cinfo.output_components;
buffer = (*cinfo.mem->alloc_sarray)((j_common_ptr) &cinfo, JPOOL_IMAGE, row_stride, 1);
while (cinfo.output_scanline < cinfo.output_height)
{
jpeg_read_scanlines(&cinfo, buffer, 1);
int y = cinfo.output_scanline;
for (x = 0; x < row_stride/3; x++)
{
uint8_t b = buffer[0][(x*3)];
uint8_t g = buffer[0][(x*3)+1];
uint8_t r = buffer[0][(x*3)+2];
plot_pixel_rgb(x - x_offset + m_jpeg_x, y - y_offset - m_jpeg_y, r, g, b);
}
}
jpeg_finish_decompress(&cinfo);
jpeg_destroy_decompress(&cinfo);
}
}
示例2: screen_update_midas
UINT32 midas_state::screen_update_midas(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
// fill with background color first
bitmap.fill(0x0, cliprect);
m_sprgen->draw_sprites(bitmap, cliprect.min_y);
m_sprgen->draw_fixed_layer(bitmap, cliprect.min_y);
return 0;
}
示例3:
UINT32 cdp1861_device::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
if (m_disp)
{
copybitmap(bitmap, m_bitmap, 0, 0, 0, 0, cliprect);
}
else
{
bitmap.fill(rgb_t::black, cliprect);
}
return 0;
}
示例4: screen_update_boogwing
UINT32 boogwing_state::screen_update_boogwing(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
address_space &space = machine().driver_data()->generic_space();
UINT16 flip = m_deco_tilegen1->pf_control_r(space, 0, 0xffff);
UINT16 priority = m_decocomn->priority_r(space, 0, 0xffff);
/* Draw sprite planes to bitmaps for later mixing */
m_sprgen2->draw_sprites(bitmap, cliprect, m_spriteram2->buffer(), 0x400, true);
m_sprgen1->draw_sprites(bitmap, cliprect, m_spriteram->buffer(), 0x400, true);
flip_screen_set(BIT(flip, 7));
m_deco_tilegen1->pf_update(m_pf1_rowscroll, m_pf2_rowscroll);
m_deco_tilegen2->pf_update(m_pf3_rowscroll, m_pf4_rowscroll);
/* Draw playfields */
bitmap.fill(m_palette->pen(0x400), cliprect); /* pen not confirmed */
screen.priority().fill(0);
// bit&0x8 is definitely some kind of palette effect
// bit&0x4 combines playfields
if ((priority & 0x7) == 0x5)
{
m_deco_tilegen1->tilemap_2_draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
m_deco_tilegen2->tilemap_12_combine_draw(screen, bitmap, cliprect, 0, 32);
}
else if ((priority & 0x7) == 0x1 || (priority & 0x7) == 0x2)
{
m_deco_tilegen2->tilemap_2_draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
m_deco_tilegen1->tilemap_2_draw(screen, bitmap, cliprect, 0, 8);
m_deco_tilegen2->tilemap_1_draw(screen, bitmap, cliprect, 0, 32);
}
else if ((priority & 0x7) == 0x3)
{
m_deco_tilegen2->tilemap_2_draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
m_deco_tilegen1->tilemap_2_draw(screen, bitmap, cliprect, 0, 8);
// This mode uses playfield 3 to shadow sprites & playfield 2 (instead of
// regular alpha-blending, the destination is inverted). Not yet implemented.
// m_deco_tilegen1->tilemap_3_draw(screen, bitmap, cliprect, TILEMAP_DRAW_ALPHA(0x80), 32);
}
else
{
m_deco_tilegen2->tilemap_2_draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
m_deco_tilegen2->tilemap_1_draw(screen, bitmap, cliprect, 0, 8);
m_deco_tilegen1->tilemap_2_draw(screen, bitmap, cliprect, 0, 32);
}
mix_boogwing(screen,bitmap,cliprect);
m_deco_tilegen1->tilemap_1_draw(screen, bitmap, cliprect, 0, 0);
return 0;
}
示例5:
UINT32 cdp1864_device::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
if (m_disp)
{
copybitmap(bitmap, m_bitmap, 0, 0, 0, 0, cliprect);
m_bitmap.fill(CDP1864_BACKGROUND_COLOR_SEQUENCE[m_bgcolor] + 8, cliprect);
}
else
{
bitmap.fill(get_black_pen(machine()), cliprect);
}
return 0;
}
示例6:
UINT32 trs80m2_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
if (m_blnkvid)
{
bitmap.fill(rgb_t::black, cliprect);
}
else
{
m_crtc->screen_update(screen, bitmap, cliprect);
}
return 0;
}
示例7: screen_update
uint32_t newbrain_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
if (m_tvp)
{
screen_update(bitmap, cliprect);
}
else
{
bitmap.fill(rgb_t::black(), cliprect);
}
return 0;
}
示例8:
UINT32 zr107_state::screen_update_zr107(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
bitmap.fill(machine().pens[0], cliprect);
m_k056832->tilemap_draw(screen, bitmap, cliprect, 1, 0, 0);
K001005_draw(bitmap, cliprect);
m_k056832->tilemap_draw(screen, bitmap, cliprect, 0, 0, 0);
draw_7segment_led(bitmap, 3, 3, m_led_reg0);
draw_7segment_led(bitmap, 9, 3, m_led_reg1);
sharc_set_flag_input(machine().device("dsp"), 1, ASSERT_LINE);
return 0;
}
示例9:
UINT32 cdp1864_device::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
if (m_disp)
{
copybitmap(bitmap, m_bitmap, 0, 0, 0, 0, cliprect);
m_bitmap.fill(m_palette[bckgnd[m_bgcolor] + 8], cliprect);
}
else
{
bitmap.fill(rgb_t::black, cliprect);
}
return 0;
}
示例10: draw_video
int spbactn_state::draw_video(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, bool alt_sprites)
{
m_tile_bitmap_bg.fill(0, cliprect);
m_tile_bitmap_fg.fill(0, cliprect);
m_sprite_bitmap.fill(0, cliprect);
bitmap.fill(0, cliprect);
m_sprgen->gaiden_draw_sprites(screen, m_gfxdecode, cliprect, m_spvideoram, 0, 0, flip_screen(), m_sprite_bitmap);
m_bg_tilemap->draw(screen, m_tile_bitmap_bg, cliprect, 0, 0);
m_fg_tilemap->draw(screen, m_tile_bitmap_fg, cliprect, 0, 0);
m_mixer->mix_bitmaps(screen, bitmap, cliprect, *m_palette, &m_tile_bitmap_bg, &m_tile_bitmap_fg, (bitmap_ind16*)nullptr, &m_sprite_bitmap);
return 0;
}
示例11:
UINT32 deco156_state::screen_update_wcvol95(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
//FIXME: flip_screen_x should not be written!
flip_screen_set_no_update(1);
screen.priority().fill(0);
bitmap.fill(0);
m_deco_tilegen1->pf_update(m_pf1_rowscroll, m_pf2_rowscroll);
m_deco_tilegen1->tilemap_2_draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram, 0x800);
m_deco_tilegen1->tilemap_1_draw(screen, bitmap, cliprect, 0, 0);
return 0;
}
示例12:
uint32_t deco156_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
// sprites are flipped relative to tilemaps
m_sprgen->set_flip_screen(true);
screen.priority().fill(0);
bitmap.fill(0);
m_deco_tilegen->pf_update(m_pf1_rowscroll, m_pf2_rowscroll);
m_deco_tilegen->tilemap_2_draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram.get(), 0x800);
m_deco_tilegen->tilemap_1_draw(screen, bitmap, cliprect, 0, 0);
return 0;
}
示例13: screen_update_rscreen
uint32_t nwktr_state::screen_update_rscreen(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
bitmap.fill(m_palette->pen(0), cliprect);
m_voodoo[1]->voodoo_update(bitmap, cliprect);
const rectangle &visarea = screen.visible_area();
const rectangle tilemap_rect(visarea.min_x, visarea.max_x, visarea.min_y + 16, visarea.max_y);
m_k001604->draw_front_layer(screen, bitmap, tilemap_rect);
draw_7segment_led(bitmap, 3, 3, m_led_reg0);
draw_7segment_led(bitmap, 9, 3, m_led_reg1);
return 0;
}
示例14: screen_update_magicard
UINT32 magicard_state::screen_update_magicard(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
magicard_state *state = machine().driver_data<magicard_state>();
int x,y;
UINT32 count;
bitmap.fill(get_black_pen(machine()), cliprect); //TODO
if(!(SCC_DE_VREG)) //display enable
return 0;
count = ((SCC_VSR_VREG)/2);
if(SCC_FG_VREG) //4bpp gfx
{
for(y=0;y<300;y++)
{
for(x=0;x<84;x++)
{
UINT32 color;
color = ((m_magicram[count]) & 0x000f)>>0;
if(cliprect.contains((x*4)+3, y))
bitmap.pix32(y, (x*4)+3) = machine().pens[color];
color = ((m_magicram[count]) & 0x00f0)>>4;
if(cliprect.contains((x*4)+2, y))
bitmap.pix32(y, (x*4)+2) = machine().pens[color];
color = ((m_magicram[count]) & 0x0f00)>>8;
if(cliprect.contains((x*4)+1, y))
bitmap.pix32(y, (x*4)+1) = machine().pens[color];
color = ((m_magicram[count]) & 0xf000)>>12;
if(cliprect.contains((x*4)+0, y))
bitmap.pix32(y, (x*4)+0) = machine().pens[color];
count++;
}
}
}
else //8bpp gfx
{
for(y=0;y<300;y++)
示例15: screen_update_apricot
SLOT_INTERFACE_END
//**************************************************************************
// VIDEO EMULATION
//**************************************************************************
uint32_t apricot_state::screen_update_apricot(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
if (!m_display_on)
m_crtc->screen_update(screen, bitmap, cliprect);
else
bitmap.fill(rgb_t::black(), cliprect);
return 0;
}