mirror of
https://github.com/holub/mame
synced 2025-04-19 23:12:11 +03:00
Add the rest of the 3-bit palettes and add the possiblity to set
individual r/g/b levels for pens
This commit is contained in:
parent
a9a2c75b49
commit
6f12e6cf06
@ -826,6 +826,50 @@ void palette_device::palette_init_3bit_rgb(palette_device &palette)
|
||||
}
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
3bit_rbg - 8-color rgb
|
||||
-------------------------------------------------*/
|
||||
|
||||
void palette_device::palette_init_3bit_rbg(palette_device &palette)
|
||||
{
|
||||
for (int i = 0; i < 8; i++)
|
||||
palette.set_pen_color(i, rgb_t(pal1bit(i >> 0), pal1bit(i >> 2), pal1bit(i >> 1)));
|
||||
}
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
3bit_brg - 8-color rgb
|
||||
-------------------------------------------------*/
|
||||
|
||||
void palette_device::palette_init_3bit_brg(palette_device &palette)
|
||||
{
|
||||
for (int i = 0; i < 8; i++)
|
||||
palette.set_pen_color(i, rgb_t(pal1bit(i >> 1), pal1bit(i >> 2), pal1bit(i >> 0)));
|
||||
}
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
3bit_grb - 8-color rgb
|
||||
-------------------------------------------------*/
|
||||
|
||||
void palette_device::palette_init_3bit_grb(palette_device &palette)
|
||||
{
|
||||
for (int i = 0; i < 8; i++)
|
||||
palette.set_pen_color(i, rgb_t(pal1bit(i >> 1), pal1bit(i >> 0), pal1bit(i >> 2)));
|
||||
}
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
3bit_gbr - 8-color rgb
|
||||
-------------------------------------------------*/
|
||||
|
||||
void palette_device::palette_init_3bit_gbr(palette_device &palette)
|
||||
{
|
||||
for (int i = 0; i < 8; i++)
|
||||
palette.set_pen_color(i, rgb_t(pal1bit(i >> 2), pal1bit(i >> 0), pal1bit(i >> 1)));
|
||||
}
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
3bit_bgr - 8-color rgb
|
||||
-------------------------------------------------*/
|
||||
|
@ -236,6 +236,22 @@
|
||||
MCFG_PALETTE_ADD(_tag, 8) \
|
||||
palette_device::static_set_init(*device, palette_init_delegate(FUNC(palette_device::palette_init_3bit_rgb), downcast<palette_device *>(device)));
|
||||
|
||||
#define MCFG_PALETTE_ADD_3BIT_RBG(_tag) \
|
||||
MCFG_PALETTE_ADD(_tag, 8) \
|
||||
palette_device::static_set_init(*device, palette_init_delegate(FUNC(palette_device::palette_init_3bit_rbg), downcast<palette_device *>(device)));
|
||||
|
||||
#define MCFG_PALETTE_ADD_3BIT_BRG(_tag) \
|
||||
MCFG_PALETTE_ADD(_tag, 8) \
|
||||
palette_device::static_set_init(*device, palette_init_delegate(FUNC(palette_device::palette_init_3bit_brg), downcast<palette_device *>(device)));
|
||||
|
||||
#define MCFG_PALETTE_ADD_3BIT_GRB(_tag) \
|
||||
MCFG_PALETTE_ADD(_tag, 8) \
|
||||
palette_device::static_set_init(*device, palette_init_delegate(FUNC(palette_device::palette_init_3bit_grb), downcast<palette_device *>(device)));
|
||||
|
||||
#define MCFG_PALETTE_ADD_3BIT_GBR(_tag) \
|
||||
MCFG_PALETTE_ADD(_tag, 8) \
|
||||
palette_device::static_set_init(*device, palette_init_delegate(FUNC(palette_device::palette_init_3bit_gbr), downcast<palette_device *>(device)));
|
||||
|
||||
#define MCFG_PALETTE_ADD_3BIT_BGR(_tag) \
|
||||
MCFG_PALETTE_ADD(_tag, 8) \
|
||||
palette_device::static_set_init(*device, palette_init_delegate(FUNC(palette_device::palette_init_3bit_bgr), downcast<palette_device *>(device)));
|
||||
@ -367,6 +383,9 @@ public:
|
||||
|
||||
// setters
|
||||
void set_pen_color(pen_t pen, rgb_t rgb) { m_palette->entry_set_color(pen, rgb); }
|
||||
void set_pen_red_level(pen_t pen, UINT8 level) { m_palette->entry_set_red_level(pen, level); }
|
||||
void set_pen_green_level(pen_t pen, UINT8 level) { m_palette->entry_set_green_level(pen, level); }
|
||||
void set_pen_blue_level(pen_t pen, UINT8 level) { m_palette->entry_set_blue_level(pen, level); }
|
||||
void set_pen_color(pen_t pen, UINT8 r, UINT8 g, UINT8 b) { m_palette->entry_set_color(pen, rgb_t(r, g, b)); }
|
||||
void set_pen_colors(pen_t color_base, const rgb_t *colors, int color_count) { while (color_count--) set_pen_color(color_base++, *colors++); }
|
||||
void set_pen_colors(pen_t color_base, const std::vector<rgb_t> &colors) { for(unsigned int i=0; i != colors.size(); i++) set_pen_color(color_base+i, colors[i]); }
|
||||
@ -405,6 +424,10 @@ public:
|
||||
void palette_init_monochrome_green_highlight(palette_device &palette);
|
||||
void palette_init_monochrome_yellow(palette_device &palette);
|
||||
void palette_init_3bit_rgb(palette_device &palette);
|
||||
void palette_init_3bit_rbg(palette_device &palette);
|
||||
void palette_init_3bit_brg(palette_device &palette);
|
||||
void palette_init_3bit_grb(palette_device &palette);
|
||||
void palette_init_3bit_gbr(palette_device &palette);
|
||||
void palette_init_3bit_bgr(palette_device &palette);
|
||||
void palette_init_RRRRGGGGBBBB_proms(palette_device &palette);
|
||||
void palette_init_RRRRRGGGGGBBBBB(palette_device &palette);
|
||||
|
@ -364,6 +364,66 @@ void palette_t::entry_set_color(UINT32 index, rgb_t rgb)
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// entry_set_red_level - set the red level for a
|
||||
// given palette index
|
||||
//-------------------------------------------------
|
||||
|
||||
void palette_t::entry_set_red_level(UINT32 index, UINT8 level)
|
||||
{
|
||||
// if out of range, or unchanged, ignore
|
||||
if (index >= m_numcolors || m_entry_color[index].r() == level)
|
||||
return;
|
||||
|
||||
// set the level
|
||||
m_entry_color[index].set_r(level);
|
||||
|
||||
// update across all groups
|
||||
for (int groupnum = 0; groupnum < m_numgroups; groupnum++)
|
||||
update_adjusted_color(groupnum, index);
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// entry_set_green_level - set the green level for a
|
||||
// given palette index
|
||||
//-------------------------------------------------
|
||||
|
||||
void palette_t::entry_set_green_level(UINT32 index, UINT8 level)
|
||||
{
|
||||
// if out of range, or unchanged, ignore
|
||||
if (index >= m_numcolors || m_entry_color[index].g() == level)
|
||||
return;
|
||||
|
||||
// set the level
|
||||
m_entry_color[index].set_g(level);
|
||||
|
||||
// update across all groups
|
||||
for (int groupnum = 0; groupnum < m_numgroups; groupnum++)
|
||||
update_adjusted_color(groupnum, index);
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// entry_set_blue_level - set the blue level for a
|
||||
// given palette index
|
||||
//-------------------------------------------------
|
||||
|
||||
void palette_t::entry_set_blue_level(UINT32 index, UINT8 level)
|
||||
{
|
||||
// if out of range, or unchanged, ignore
|
||||
if (index >= m_numcolors || m_entry_color[index].b() == level)
|
||||
return;
|
||||
|
||||
// set the level
|
||||
m_entry_color[index].set_b(level);
|
||||
|
||||
// update across all groups
|
||||
for (int groupnum = 0; groupnum < m_numgroups; groupnum++)
|
||||
update_adjusted_color(groupnum, index);
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// entry_set_contrast - set the contrast
|
||||
// adjustment for a single palette index
|
||||
|
@ -166,6 +166,9 @@ public:
|
||||
|
||||
// entry setters
|
||||
void entry_set_color(UINT32 index, rgb_t rgb);
|
||||
void entry_set_red_level(UINT32 index, UINT8 level);
|
||||
void entry_set_green_level(UINT32 index, UINT8 level);
|
||||
void entry_set_blue_level(UINT32 index, UINT8 level);
|
||||
void entry_set_contrast(UINT32 index, float contrast);
|
||||
|
||||
// entry list getters
|
||||
|
Loading…
Reference in New Issue
Block a user