Previous 199869 Revisions Next

r40050 Wednesday 29th July, 2015 at 13:56:07 UTC by Dirk Best
Add the rest of the 3-bit palettes and add the possiblity to set
individual r/g/b levels for pens
[src/emu]emupal.c emupal.h
[src/lib/util]palette.c palette.h

trunk/src/emu/emupal.c
r248561r248562
827827
828828
829829/*-------------------------------------------------
830    3bit_rbg - 8-color rgb
831-------------------------------------------------*/
832
833void 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
844void 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
855void 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
866void 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/*-------------------------------------------------
830874    3bit_bgr - 8-color rgb
831875-------------------------------------------------*/
832876
trunk/src/emu/emupal.h
r248561r248562
236236   MCFG_PALETTE_ADD(_tag, 8) \
237237   palette_device::static_set_init(*device, palette_init_delegate(FUNC(palette_device::palette_init_3bit_rgb), downcast<palette_device *>(device)));
238238
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
239255#define MCFG_PALETTE_ADD_3BIT_BGR(_tag) \
240256   MCFG_PALETTE_ADD(_tag, 8) \
241257   palette_device::static_set_init(*device, palette_init_delegate(FUNC(palette_device::palette_init_3bit_bgr), downcast<palette_device *>(device)));
r248561r248562
367383
368384   // setters
369385   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); }
370389   void set_pen_color(pen_t pen, UINT8 r, UINT8 g, UINT8 b) { m_palette->entry_set_color(pen, rgb_t(r, g, b)); }
371390   void set_pen_colors(pen_t color_base, const rgb_t *colors, int color_count) { while (color_count--) set_pen_color(color_base++, *colors++); }
372391   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]); }
r248561r248562
405424   void palette_init_monochrome_green_highlight(palette_device &palette);
406425   void palette_init_monochrome_yellow(palette_device &palette);
407426   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);
408431   void palette_init_3bit_bgr(palette_device &palette);
409432   void palette_init_RRRRGGGGBBBB_proms(palette_device &palette);
410433   void palette_init_RRRRRGGGGGBBBBB(palette_device &palette);
trunk/src/lib/util/palette.c
r248561r248562
365365
366366
367367//-------------------------------------------------
368//  entry_set_red_level - set the red level for a
369//  given palette index
370//-------------------------------------------------
371
372void 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
392void 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
412void 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//-------------------------------------------------
368428//  entry_set_contrast - set the contrast
369429//  adjustment for a single palette index
370430//-------------------------------------------------
trunk/src/lib/util/palette.h
r248561r248562
166166
167167   // entry setters
168168   void entry_set_color(UINT32 index, rgb_t rgb);
169   void entry_set_red_level(UINT32 index, UINT8 level);
170   void entry_set_green_level(UINT32 index, UINT8 level);
171   void entry_set_blue_level(UINT32 index, UINT8 level);
169172   void entry_set_contrast(UINT32 index, float contrast);
170173
171174   // entry list getters


Previous 199869 Revisions Next


© 1997-2024 The MAME Team