本文整理汇总了C++中screen_device类的典型用法代码示例。如果您正苦于以下问题:C++ screen_device类的具体用法?C++ screen_device怎么用?C++ screen_device使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了screen_device类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: screen_update_dreambal
UINT32 dreambal_state::screen_update_dreambal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
address_space &space = generic_space();
UINT16 flip = m_deco_tilegen1->pf_control_r(space, 0, 0xffff);
flip_screen_set(BIT(flip, 7));
m_deco_tilegen1->pf_update(NULL, NULL);
bitmap.fill(0, cliprect); /* not Confirmed */
screen.priority().fill(0);
m_deco_tilegen1->tilemap_2_draw(screen, bitmap, cliprect, 0, 2);
m_deco_tilegen1->tilemap_1_draw(screen, bitmap, cliprect, 0, 4);
return 0;
}
示例2: 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;
}
示例3: 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;
}
示例4:
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.get(), 0x800);
m_deco_tilegen1->tilemap_1_draw(screen, bitmap, cliprect, 0, 0);
return 0;
}
示例5: machine
UINT32 hec2hrp_state::screen_update_hec2hrp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
UINT8 *videoram = m_videoram;
UINT8 *videoram_HR = m_hector_videoram;
if (m_hector_flag_hr==1)
{
if (m_hector_flag_80c==0)
{
screen.set_visible_area(0, 243, 0, 227);
hector_hr( machine(), bitmap , &videoram_HR[0], 227, 64);
}
else
{
screen.set_visible_area(0, 243*2, 0, 227);
hector_80c( machine(), bitmap , &videoram_HR[0], 227, 64);
}
}
else
{
screen.set_visible_area(0, 113, 0, 75);
hector_hr( machine(), bitmap, videoram, 77, 32);
}
return 0;
}
示例6: vblank_state_changed
void laserdisc_device::vblank_state_changed(screen_device &screen, bool vblank_state)
{
// update current track based on slider speed
update_slider_pos();
// on rising edge, process previously-read frame and inform the player
if (vblank_state)
{
// call the player's VSYNC callback
player_vsync(m_metadata[m_fieldnum], m_fieldnum, machine().time());
// set a timer to begin fetching the next frame just before the VBI data would be fetched
timer_set(screen.time_until_pos(16*2), TID_VBI_FETCH);
}
}
示例7:
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;
}
示例8: update_screen
static UINT32 update_screen(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, int index)
{
vcombat_state *state = screen.machine().driver_data<vcombat_state>();
int y;
const rgb_t *const pens = state->m_tlc34076->get_pens();
UINT16 *m68k_buf = state->m_m68k_framebuffer[(*state->m_framebuffer_ctrl & 0x20) ? 1 : 0];
UINT16 *i860_buf = state->m_i860_framebuffer[index][0];
/* TODO: It looks like the leftmost chunk of the ground should really be on the right side? */
/* But the i860 draws the background correctly, so it may be an original game issue. */
/* There's also some garbage in the upper-left corner. Might be related to this 'wraparound'. */
/* Or maybe it's related to the 68k's alpha? It might come from the 68k side of the house. */
for (y = cliprect.min_y; y <= cliprect.max_y; ++y)
{
int x;
int src_addr = 256/2 * y;
const UINT16 *m68k_src = &m68k_buf[src_addr];
const UINT16 *i860_src = &i860_buf[src_addr];
UINT32 *dst = &bitmap.pix32(y, cliprect.min_x);
for (x = cliprect.min_x; x <= cliprect.max_x; x += 2)
{
int i;
UINT16 m68k_pix = *m68k_src++;
UINT16 i860_pix = *i860_src++;
/* Draw two pixels */
for (i = 0; i < 2; ++i)
{
/* Vcombat's screen renders 'flopped' - very likely because VR headset displays may reflect off mirrors.
Shadfgtr isn't flopped, so it's not a constant feature of the hardware. */
/* Combine the two layers */
if ((m68k_pix & 0xff) == 0)
*dst++ = pens[i860_pix & 0xff];
else
*dst++ = pens[m68k_pix & 0xff];
m68k_pix >>= 8;
i860_pix >>= 8;
}
}
}
return 0;
}
示例9: screen_update_kongambl
uint32_t kongambl_state::screen_update_kongambl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
#if CUSTOM_DRAW
gfx_element *gfx = m_gfxdecode->gfx(0);
uint32_t count;
count = 0;
for (int y=0;y<64;y++)
{
for (int x=0;x<128;x++)
{
uint32_t tile = m_vram[count] & 0xffff;
if(m_screen->visible_area().contains(x*8, y*8))
gfx->opaque(bitmap,cliprect,tile,0,0,0,x*8,y*8);
count++;
}
}
count = 0x8000/4;
for (int y=0;y<64;y++)
{
for (int x=0;x<128;x++)
{
uint32_t tile = m_vram[count] & 0xffff;
if(m_screen->visible_area().contains(x*8, y*8))
gfx->transpen(bitmap,cliprect,tile,0,0,0,x*8,y*8,0);
count++;
}
}
#else
bitmap.fill(0, cliprect);
screen.priority().fill(0, cliprect);
m_k056832->tilemap_draw(screen, bitmap, cliprect, 3, 0, 0);
m_k056832->tilemap_draw(screen, bitmap, cliprect, 2, 0, 0);
m_k056832->tilemap_draw(screen, bitmap, cliprect, 1, 0, 0);
m_k056832->tilemap_draw(screen, bitmap, cliprect, 0, 0, 0);
#endif
return 0;
}
示例10: screen_update_dblewing
UINT32 dblewing_state::screen_update_dblewing(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
address_space &space = generic_space();
UINT16 flip = m_deco_tilegen1->pf_control_r(space, 0, 0xffff);
flip_screen_set(BIT(flip, 7));
m_deco_tilegen1->pf_update(m_pf1_rowscroll, m_pf2_rowscroll);
bitmap.fill(0, cliprect); /* not Confirmed */
screen.priority().fill(0);
m_deco_tilegen1->tilemap_2_draw(screen, bitmap, cliprect, 0, 2);
m_deco_tilegen1->tilemap_1_draw(screen, bitmap, cliprect, 0, 4);
m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram, 0x400);
return 0;
}
示例11: screen_update_pktgaldx
uint32_t pktgaldx_state::screen_update_pktgaldx(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
address_space &space = machine().dummy_space();
uint16_t flip = m_deco_tilegen1->pf_control_r(space, 0, 0xffff);
flip_screen_set(BIT(flip, 7));
m_deco_tilegen1->pf_update(m_pf1_rowscroll, m_pf2_rowscroll);
bitmap.fill(0, cliprect); /* not Confirmed */
screen.priority().fill(0);
m_deco_tilegen1->tilemap_2_draw(screen, bitmap, cliprect, 0, 0);
m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram, 0x400, true);
m_deco_tilegen1->tilemap_1_draw(screen, bitmap, cliprect, 0, 0);
return 0;
}
示例12: render
void crosshair_manager::render(screen_device &screen)
{
int player;
for (player = 0; player < MAX_PLAYERS; player++)
/* draw if visible and the right screen */
if (m_visible[player] &&
((m_screen[player] == &screen) || (m_screen[player] == CROSSHAIR_SCREEN_ALL)))
{
/* add a quad assuming a 4:3 screen (this is not perfect) */
screen.container().add_quad(m_x[player] - 0.03f, m_y[player] - 0.04f,
m_x[player] + 0.03f, m_y[player] + 0.04f,
rgb_t(0xc0, m_fade, m_fade, m_fade),
m_texture[player], PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
}
}
示例13: crosshair_render
void crosshair_render(screen_device &screen)
{
int player;
for (player = 0; player < MAX_PLAYERS; player++)
/* draw if visible and the right screen */
if (global.visible[player] &&
((global.screen[player] == &screen) || (global.screen[player] == CROSSHAIR_SCREEN_ALL)))
{
/* add a quad assuming a 4:3 screen (this is not perfect) */
screen.container().add_quad(global.x[player] - 0.03f, global.y[player] - 0.04f,
global.x[player] + 0.03f, global.y[player] + 0.04f,
MAKE_ARGB(0xc0, global.fade, global.fade, global.fade),
global.texture[player], PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
}
}
示例14: skeetsht_scanline_update
static void skeetsht_scanline_update(screen_device &screen, bitmap_rgb32 &bitmap, int scanline, const tms34010_display_params *params)
{
skeetsht_state *state = screen.machine().driver_data<skeetsht_state>();
const rgb_t *const pens = state->m_tlc34076->get_pens();
UINT16 *vram = &state->m_tms_vram[(params->rowaddr << 8) & 0x3ff00];
UINT32 *dest = &bitmap.pix32(scanline);
int coladdr = params->coladdr;
int x;
for (x = params->heblnk; x < params->hsblnk; x += 2)
{
UINT16 pixels = vram[coladdr++ & 0xff];
dest[x + 0] = pens[pixels & 0xff];
dest[x + 1] = pens[pixels >> 8];
}
}
示例15: screen_update_mogura
UINT32 mogura_state::screen_update_mogura(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
const rectangle &visarea = screen.visible_area();
/* tilemap layout is a bit strange ... */
rectangle clip = visarea;
clip.max_x = 256 - 1;
m_tilemap->set_scrollx(0, 256);
m_tilemap->draw(screen, bitmap, clip, 0, 0);
clip.min_x = 256;
clip.max_x = 512 - 1;
m_tilemap->set_scrollx(0, -128);
m_tilemap->draw(screen, bitmap, clip, 0, 0);
return 0;
}