void fixedfreq_device::recompute_parameters(bool postload) { bool needs_realloc = (m_htotal != m_hbackporch) && (m_vtotal != m_vbackporch); if (m_bitmap[0] != NULL || needs_realloc) auto_free(machine(), m_bitmap[0]); if (m_bitmap[1] != NULL || needs_realloc) auto_free(machine(), m_bitmap[0]); m_htotal = m_hbackporch; m_vtotal = m_vbackporch; /* sync separator */ m_int_trig = (exp(- 3.0/(3.0+3.0))) - exp(-1.0); m_mult = (double) (m_monitor_clock) / (double) m_htotal * 1.0; // / (3.0 + 3.0); VERBOSE_OUT(("trigger %f with len %f\n", m_int_trig, 1e6 / m_mult)); m_bitmap[0] = auto_bitmap_rgb32_alloc(machine(),m_htotal, m_vtotal); m_bitmap[1] = auto_bitmap_rgb32_alloc(machine(),m_htotal, m_vtotal); rectangle visarea( m_hbackporch - m_hfrontporch, m_hbackporch - m_hfrontporch + m_hvisible - 1, m_vbackporch - m_vfrontporch, m_vbackporch - m_vfrontporch + m_vvisible - 1); m_clock_period = attotime::from_hz(m_monitor_clock); m_refresh = attotime::from_hz(m_monitor_clock) * m_vtotal * m_htotal; screen().configure(m_htotal, m_vtotal, visarea, m_refresh.as_attoseconds()); }
void huc6261_device::device_start() { /* Make sure we are supplied all our mandatory tags */ assert( m_huc6270_a_tag != NULL ); assert( m_huc6270_b_tag != NULL ); m_timer = timer_alloc(); m_huc6270_a = machine().device<huc6270_device>(m_huc6270_a_tag); m_huc6270_b = machine().device<huc6270_device>(m_huc6270_b_tag); m_bmp = auto_bitmap_rgb32_alloc( machine(), HUC6261_WPF, HUC6261_LPF ); /* We want to have valid devices */ assert( m_huc6270_a != NULL ); assert( m_huc6270_b != NULL ); save_item(NAME(m_last_h)); save_item(NAME(m_last_v)); save_item(NAME(m_height)); save_item(NAME(m_palette)); save_item(NAME(m_palette_latch)); save_item(NAME(m_address)); save_item(NAME(m_register)); save_item(NAME(m_control)); save_item(NAME(m_priority)); save_item(NAME(m_pixels_per_clock)); save_item(NAME(m_pixel_data)); save_item(NAME(m_pixel_clock)); }
void ui_menu::init(running_machine &machine) { int x; /* initialize the menu stack */ ui_menu::stack_reset(machine); /* create a texture for hilighting items */ hilight_bitmap = auto_bitmap_rgb32_alloc(machine, 256, 1); for (x = 0; x < 256; x++) { int alpha = 0xff; if (x < 25) alpha = 0xff * x / 25; if (x > 256 - 25) alpha = 0xff * (255 - x) / 25; hilight_bitmap->pix32(0, x) = MAKE_ARGB(alpha,0xff,0xff,0xff); } hilight_texture = machine.render().texture_alloc(); hilight_texture->set_bitmap(*hilight_bitmap, hilight_bitmap->cliprect(), TEXFORMAT_ARGB32); /* create a texture for arrow icons */ arrow_texture = machine.render().texture_alloc(render_triangle); /* add an exit callback to free memory */ machine.add_notifier(MACHINE_NOTIFY_EXIT, machine_notify_delegate(FUNC(ui_menu::exit), &machine)); }
void pong_state::machine_start() { m_bitmap = auto_bitmap_rgb32_alloc(machine(),H_TOTAL * HRES_MULT,V_TOTAL); m_maincpu->setup().register_callback("sound_cb", net_output_delegate(&pong_state::sound_cb, "pong_state::sound_cb", this)); m_maincpu->setup().register_callback("video_cb", net_output_delegate(&pong_state::video_cb, "pong_state::video_cb", this)); }