trunk/src/emu/emupal.c
r248561 | r248562 | |
827 | 827 | |
828 | 828 | |
829 | 829 | /*------------------------------------------------- |
| 830 | 3bit_rbg - 8-color rgb |
| 831 | -------------------------------------------------*/ |
| 832 | |
| 833 | void palette_device::palette_init_3bit_rbg(palette_device &palette) |
| 834 | { |
| 835 | for (int i = 0; i < 8; i++) |
| 836 | palette.set_pen_color(i, rgb_t(pal1bit(i >> 0), pal1bit(i >> 2), pal1bit(i >> 1))); |
| 837 | } |
| 838 | |
| 839 | |
| 840 | /*------------------------------------------------- |
| 841 | 3bit_brg - 8-color rgb |
| 842 | -------------------------------------------------*/ |
| 843 | |
| 844 | void palette_device::palette_init_3bit_brg(palette_device &palette) |
| 845 | { |
| 846 | for (int i = 0; i < 8; i++) |
| 847 | palette.set_pen_color(i, rgb_t(pal1bit(i >> 1), pal1bit(i >> 2), pal1bit(i >> 0))); |
| 848 | } |
| 849 | |
| 850 | |
| 851 | /*------------------------------------------------- |
| 852 | 3bit_grb - 8-color rgb |
| 853 | -------------------------------------------------*/ |
| 854 | |
| 855 | void palette_device::palette_init_3bit_grb(palette_device &palette) |
| 856 | { |
| 857 | for (int i = 0; i < 8; i++) |
| 858 | palette.set_pen_color(i, rgb_t(pal1bit(i >> 1), pal1bit(i >> 0), pal1bit(i >> 2))); |
| 859 | } |
| 860 | |
| 861 | |
| 862 | /*------------------------------------------------- |
| 863 | 3bit_gbr - 8-color rgb |
| 864 | -------------------------------------------------*/ |
| 865 | |
| 866 | void palette_device::palette_init_3bit_gbr(palette_device &palette) |
| 867 | { |
| 868 | for (int i = 0; i < 8; i++) |
| 869 | palette.set_pen_color(i, rgb_t(pal1bit(i >> 2), pal1bit(i >> 0), pal1bit(i >> 1))); |
| 870 | } |
| 871 | |
| 872 | |
| 873 | /*------------------------------------------------- |
830 | 874 | 3bit_bgr - 8-color rgb |
831 | 875 | -------------------------------------------------*/ |
832 | 876 | |
trunk/src/emu/emupal.h
r248561 | r248562 | |
236 | 236 | MCFG_PALETTE_ADD(_tag, 8) \ |
237 | 237 | palette_device::static_set_init(*device, palette_init_delegate(FUNC(palette_device::palette_init_3bit_rgb), downcast<palette_device *>(device))); |
238 | 238 | |
| 239 | #define MCFG_PALETTE_ADD_3BIT_RBG(_tag) \ |
| 240 | MCFG_PALETTE_ADD(_tag, 8) \ |
| 241 | palette_device::static_set_init(*device, palette_init_delegate(FUNC(palette_device::palette_init_3bit_rbg), downcast<palette_device *>(device))); |
| 242 | |
| 243 | #define MCFG_PALETTE_ADD_3BIT_BRG(_tag) \ |
| 244 | MCFG_PALETTE_ADD(_tag, 8) \ |
| 245 | palette_device::static_set_init(*device, palette_init_delegate(FUNC(palette_device::palette_init_3bit_brg), downcast<palette_device *>(device))); |
| 246 | |
| 247 | #define MCFG_PALETTE_ADD_3BIT_GRB(_tag) \ |
| 248 | MCFG_PALETTE_ADD(_tag, 8) \ |
| 249 | palette_device::static_set_init(*device, palette_init_delegate(FUNC(palette_device::palette_init_3bit_grb), downcast<palette_device *>(device))); |
| 250 | |
| 251 | #define MCFG_PALETTE_ADD_3BIT_GBR(_tag) \ |
| 252 | MCFG_PALETTE_ADD(_tag, 8) \ |
| 253 | palette_device::static_set_init(*device, palette_init_delegate(FUNC(palette_device::palette_init_3bit_gbr), downcast<palette_device *>(device))); |
| 254 | |
239 | 255 | #define MCFG_PALETTE_ADD_3BIT_BGR(_tag) \ |
240 | 256 | MCFG_PALETTE_ADD(_tag, 8) \ |
241 | 257 | palette_device::static_set_init(*device, palette_init_delegate(FUNC(palette_device::palette_init_3bit_bgr), downcast<palette_device *>(device))); |
r248561 | r248562 | |
367 | 383 | |
368 | 384 | // setters |
369 | 385 | void set_pen_color(pen_t pen, rgb_t rgb) { m_palette->entry_set_color(pen, rgb); } |
| 386 | void set_pen_red_level(pen_t pen, UINT8 level) { m_palette->entry_set_red_level(pen, level); } |
| 387 | void set_pen_green_level(pen_t pen, UINT8 level) { m_palette->entry_set_green_level(pen, level); } |
| 388 | void set_pen_blue_level(pen_t pen, UINT8 level) { m_palette->entry_set_blue_level(pen, level); } |
370 | 389 | void set_pen_color(pen_t pen, UINT8 r, UINT8 g, UINT8 b) { m_palette->entry_set_color(pen, rgb_t(r, g, b)); } |
371 | 390 | void set_pen_colors(pen_t color_base, const rgb_t *colors, int color_count) { while (color_count--) set_pen_color(color_base++, *colors++); } |
372 | 391 | 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]); } |
r248561 | r248562 | |
405 | 424 | void palette_init_monochrome_green_highlight(palette_device &palette); |
406 | 425 | void palette_init_monochrome_yellow(palette_device &palette); |
407 | 426 | void palette_init_3bit_rgb(palette_device &palette); |
| 427 | void palette_init_3bit_rbg(palette_device &palette); |
| 428 | void palette_init_3bit_brg(palette_device &palette); |
| 429 | void palette_init_3bit_grb(palette_device &palette); |
| 430 | void palette_init_3bit_gbr(palette_device &palette); |
408 | 431 | void palette_init_3bit_bgr(palette_device &palette); |
409 | 432 | void palette_init_RRRRGGGGBBBB_proms(palette_device &palette); |
410 | 433 | void palette_init_RRRRRGGGGGBBBBB(palette_device &palette); |
trunk/src/lib/util/palette.c
r248561 | r248562 | |
365 | 365 | |
366 | 366 | |
367 | 367 | //------------------------------------------------- |
| 368 | // entry_set_red_level - set the red level for a |
| 369 | // given palette index |
| 370 | //------------------------------------------------- |
| 371 | |
| 372 | void palette_t::entry_set_red_level(UINT32 index, UINT8 level) |
| 373 | { |
| 374 | // if out of range, or unchanged, ignore |
| 375 | if (index >= m_numcolors || m_entry_color[index].r() == level) |
| 376 | return; |
| 377 | |
| 378 | // set the level |
| 379 | m_entry_color[index].set_r(level); |
| 380 | |
| 381 | // update across all groups |
| 382 | for (int groupnum = 0; groupnum < m_numgroups; groupnum++) |
| 383 | update_adjusted_color(groupnum, index); |
| 384 | } |
| 385 | |
| 386 | |
| 387 | //------------------------------------------------- |
| 388 | // entry_set_green_level - set the green level for a |
| 389 | // given palette index |
| 390 | //------------------------------------------------- |
| 391 | |
| 392 | void palette_t::entry_set_green_level(UINT32 index, UINT8 level) |
| 393 | { |
| 394 | // if out of range, or unchanged, ignore |
| 395 | if (index >= m_numcolors || m_entry_color[index].g() == level) |
| 396 | return; |
| 397 | |
| 398 | // set the level |
| 399 | m_entry_color[index].set_g(level); |
| 400 | |
| 401 | // update across all groups |
| 402 | for (int groupnum = 0; groupnum < m_numgroups; groupnum++) |
| 403 | update_adjusted_color(groupnum, index); |
| 404 | } |
| 405 | |
| 406 | |
| 407 | //------------------------------------------------- |
| 408 | // entry_set_blue_level - set the blue level for a |
| 409 | // given palette index |
| 410 | //------------------------------------------------- |
| 411 | |
| 412 | void palette_t::entry_set_blue_level(UINT32 index, UINT8 level) |
| 413 | { |
| 414 | // if out of range, or unchanged, ignore |
| 415 | if (index >= m_numcolors || m_entry_color[index].b() == level) |
| 416 | return; |
| 417 | |
| 418 | // set the level |
| 419 | m_entry_color[index].set_b(level); |
| 420 | |
| 421 | // update across all groups |
| 422 | for (int groupnum = 0; groupnum < m_numgroups; groupnum++) |
| 423 | update_adjusted_color(groupnum, index); |
| 424 | } |
| 425 | |
| 426 | |
| 427 | //------------------------------------------------- |
368 | 428 | // entry_set_contrast - set the contrast |
369 | 429 | // adjustment for a single palette index |
370 | 430 | //------------------------------------------------- |