mirror of
https://github.com/holub/mame
synced 2025-10-06 17:08:28 +03:00
Flip screen API cleanup (nw)
- Make the global flipping functions of driver_device protected so as not to be accessible from within subdevices - Eliminate the flip_screen_set_no_update kludge
This commit is contained in:
parent
fb260c4259
commit
3f135a40b7
@ -334,23 +334,6 @@ void driver_device::flip_screen_set(u32 on)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//-------------------------------------------------
|
|
||||||
// flip_screen_set_no_update - set global flip
|
|
||||||
// do not call updateflip.
|
|
||||||
//-------------------------------------------------
|
|
||||||
|
|
||||||
void driver_device::flip_screen_set_no_update(u32 on)
|
|
||||||
{
|
|
||||||
// flip_screen_y is not updated on purpose
|
|
||||||
// this function is for drivers which
|
|
||||||
// were writing to flip_screen_x to
|
|
||||||
// bypass updateflip
|
|
||||||
if (on)
|
|
||||||
on = ~0;
|
|
||||||
m_flip_screen_x = on;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
// flip_screen_x_set - set global horizontal flip
|
// flip_screen_x_set - set global horizontal flip
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
|
@ -158,15 +158,6 @@ public:
|
|||||||
INTERRUPT_GEN_MEMBER( irq7_line_assert );
|
INTERRUPT_GEN_MEMBER( irq7_line_assert );
|
||||||
|
|
||||||
|
|
||||||
// generic video
|
|
||||||
void flip_screen_set(u32 on);
|
|
||||||
void flip_screen_set_no_update(u32 on);
|
|
||||||
void flip_screen_x_set(u32 on);
|
|
||||||
void flip_screen_y_set(u32 on);
|
|
||||||
u32 flip_screen() const { return m_flip_screen_x; }
|
|
||||||
u32 flip_screen_x() const { return m_flip_screen_x; }
|
|
||||||
u32 flip_screen_y() const { return m_flip_screen_y; }
|
|
||||||
|
|
||||||
// generic input port helpers
|
// generic input port helpers
|
||||||
DECLARE_CUSTOM_INPUT_MEMBER( custom_port_read );
|
DECLARE_CUSTOM_INPUT_MEMBER( custom_port_read );
|
||||||
|
|
||||||
@ -190,6 +181,14 @@ protected:
|
|||||||
virtual void device_start() override;
|
virtual void device_start() override;
|
||||||
virtual void device_reset_after_children() override;
|
virtual void device_reset_after_children() override;
|
||||||
|
|
||||||
|
// generic video
|
||||||
|
void flip_screen_set(u32 on);
|
||||||
|
void flip_screen_x_set(u32 on);
|
||||||
|
void flip_screen_y_set(u32 on);
|
||||||
|
u32 flip_screen() const { return m_flip_screen_x; }
|
||||||
|
u32 flip_screen_x() const { return m_flip_screen_x; }
|
||||||
|
u32 flip_screen_y() const { return m_flip_screen_y; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// helpers
|
// helpers
|
||||||
void updateflip();
|
void updateflip();
|
||||||
|
@ -49,6 +49,7 @@ public:
|
|||||||
uint8_t m_bg_color;
|
uint8_t m_bg_color;
|
||||||
uint16_t m_bg_position;
|
uint16_t m_bg_position;
|
||||||
uint8_t m_fg_color;
|
uint8_t m_fg_color;
|
||||||
|
bool m_flip_screen;
|
||||||
|
|
||||||
uint8_t m_congo_fg_bank;
|
uint8_t m_congo_fg_bank;
|
||||||
uint8_t m_congo_color_bank;
|
uint8_t m_congo_color_bank;
|
||||||
|
@ -123,6 +123,7 @@ void zaxxon_state::video_start_common(tilemap_get_info_delegate fg_tile_info)
|
|||||||
m_bg_color = 0;
|
m_bg_color = 0;
|
||||||
m_bg_position = 0;
|
m_bg_position = 0;
|
||||||
m_fg_color = 0;
|
m_fg_color = 0;
|
||||||
|
m_flip_screen = false;
|
||||||
m_congo_fg_bank = 0;
|
m_congo_fg_bank = 0;
|
||||||
m_congo_color_bank = 0;
|
m_congo_color_bank = 0;
|
||||||
memset(m_congo_custom, 0, sizeof(m_congo_custom));
|
memset(m_congo_custom, 0, sizeof(m_congo_custom));
|
||||||
@ -139,6 +140,7 @@ void zaxxon_state::video_start_common(tilemap_get_info_delegate fg_tile_info)
|
|||||||
save_item(NAME(m_bg_color));
|
save_item(NAME(m_bg_color));
|
||||||
save_item(NAME(m_bg_position));
|
save_item(NAME(m_bg_position));
|
||||||
save_item(NAME(m_fg_color));
|
save_item(NAME(m_fg_color));
|
||||||
|
save_item(NAME(m_flip_screen));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -178,8 +180,8 @@ VIDEO_START_MEMBER(zaxxon_state,congo)
|
|||||||
WRITE_LINE_MEMBER(zaxxon_state::flipscreen_w)
|
WRITE_LINE_MEMBER(zaxxon_state::flipscreen_w)
|
||||||
{
|
{
|
||||||
/* low bit controls flip; background and sprite flip are handled at render time */
|
/* low bit controls flip; background and sprite flip are handled at render time */
|
||||||
flip_screen_set_no_update(!state);
|
m_flip_screen = !state;
|
||||||
m_fg_tilemap->set_flip(flip_screen() ? (TILEMAP_FLIPX | TILEMAP_FLIPY) : 0);
|
m_fg_tilemap->set_flip(m_flip_screen ? (TILEMAP_FLIPX | TILEMAP_FLIPY) : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -304,13 +306,13 @@ void zaxxon_state::draw_background(bitmap_ind16 &bitmap, const rectangle &clipre
|
|||||||
int colorbase = m_bg_color + (m_congo_color_bank << 8);
|
int colorbase = m_bg_color + (m_congo_color_bank << 8);
|
||||||
int xmask = pixmap.width() - 1;
|
int xmask = pixmap.width() - 1;
|
||||||
int ymask = pixmap.height() - 1;
|
int ymask = pixmap.height() - 1;
|
||||||
int flipmask = flip_screen() ? 0xff : 0x00;
|
int flipmask = m_flip_screen ? 0xff : 0x00;
|
||||||
int flipoffs = flip_screen() ? 0x38 : 0x40;
|
int flipoffs = m_flip_screen ? 0x38 : 0x40;
|
||||||
int x, y;
|
int x, y;
|
||||||
|
|
||||||
/* the starting X value is offset by 1 pixel (normal) or 7 pixels */
|
/* the starting X value is offset by 1 pixel (normal) or 7 pixels */
|
||||||
/* (flipped) due to a delay in the loading */
|
/* (flipped) due to a delay in the loading */
|
||||||
if (!flip_screen())
|
if (!m_flip_screen)
|
||||||
flipoffs -= 1;
|
flipoffs -= 1;
|
||||||
else
|
else
|
||||||
flipoffs += 7;
|
flipoffs += 7;
|
||||||
@ -415,7 +417,7 @@ void zaxxon_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect,
|
|||||||
{
|
{
|
||||||
uint8_t *spriteram = m_spriteram;
|
uint8_t *spriteram = m_spriteram;
|
||||||
gfx_element *gfx = m_gfxdecode->gfx(2);
|
gfx_element *gfx = m_gfxdecode->gfx(2);
|
||||||
int flip = flip_screen();
|
int flip = m_flip_screen;
|
||||||
int flipmask = flip ? 0xff : 0x00;
|
int flipmask = flip ? 0xff : 0x00;
|
||||||
int offs;
|
int offs;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user