mirror of
https://github.com/holub/mame
synced 2025-10-10 01:56:53 +03:00
neogeo: simplify sprite_on_scanline calculation (nw)
This commit is contained in:
parent
5d7f380540
commit
c7baadaa7c
@ -298,23 +298,10 @@ static const int zoom_x_tables[][16] =
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
inline int neosprite_base_device::rows_to_height(int rows)
|
|
||||||
|
inline bool neosprite_base_device::sprite_on_scanline(int scanline, int y, int rows)
|
||||||
{
|
{
|
||||||
if ((rows == 0) || (rows > 0x20))
|
return (rows == 0) || (rows >= 0x20) || ((scanline - y) & 0x1ff) < (rows * 0x10);
|
||||||
rows = 0x20;
|
|
||||||
|
|
||||||
return rows * 0x10;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
inline int neosprite_base_device::sprite_on_scanline(int scanline, int y, int rows)
|
|
||||||
{
|
|
||||||
/* check if the current scanline falls inside this sprite,
|
|
||||||
two possible scenerios, wrap around or not */
|
|
||||||
int max_y = (y + rows_to_height(rows) - 1) & 0x1ff;
|
|
||||||
|
|
||||||
return (((max_y >= y) && (scanline >= y) && (scanline <= max_y)) ||
|
|
||||||
((max_y < y) && ((scanline >= y) || (scanline <= max_y))));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -36,8 +36,7 @@ public:
|
|||||||
void create_auto_animation_timer( );
|
void create_auto_animation_timer( );
|
||||||
void start_auto_animation_timer( );
|
void start_auto_animation_timer( );
|
||||||
void neogeo_set_fixed_layer_source( UINT8 data );
|
void neogeo_set_fixed_layer_source( UINT8 data );
|
||||||
inline int rows_to_height(int rows);
|
inline bool sprite_on_scanline(int scanline, int y, int rows);
|
||||||
inline int sprite_on_scanline(int scanline, int y, int rows);
|
|
||||||
virtual void draw_pixel(int romaddr, UINT32* dst, pen_t *line_pens) = 0;
|
virtual void draw_pixel(int romaddr, UINT32* dst, pen_t *line_pens) = 0;
|
||||||
void draw_sprites( bitmap_rgb32 &bitmap, int scanline );
|
void draw_sprites( bitmap_rgb32 &bitmap, int scanline );
|
||||||
void parse_sprites( int scanline );
|
void parse_sprites( int scanline );
|
||||||
|
Loading…
Reference in New Issue
Block a user