Previous 199869 Revisions Next

r31073 Sunday 22nd June, 2014 at 09:46:37 UTC by Alex Jackson
emupal/tilemap refactoring: configure_tilemap_groups is now a tilemap_t method rather than a palette_device method (nw)
[src/emu]emupal.c emupal.h tilemap.c tilemap.h
[src/mame/drivers]panicr.c
[src/mame/video]1943.c bankp.c bosco.c clshroad.c equites.c exedexes.c galaga.c gaplus.c gberet.c gunsmoke.c mappy.c polepos.c retofinv.c sprcros2.c stfight.c tceptor.c vulgus.c

trunk/src/emu/emupal.c
r31072r31073
167167}
168168
169169
170//-------------------------------------------------
171//  configure_tilemap_groups - configure groups
172//  within a tilemap to match the indirect masks
173//-------------------------------------------------
174170
175void palette_device::configure_tilemap_groups(tilemap_t &tmap, gfx_element &gfx, int transcolor)
176{
177   int color;
178
179   assert(gfx.colors() <= TILEMAP_NUM_GROUPS);
180
181   // iterate over all colors in the tilemap
182   for (color = 0; color < gfx.colors(); color++)
183      tmap.set_transmask(color, transpen_mask(gfx, color, transcolor), 0);
184}
185
186
187
188171//**************************************************************************
189172//  SHADOW TABLE CONFIGURATION
190173//**************************************************************************
trunk/src/emu/emupal.h
r31072r31073
367367   void set_indirect_color(int index, rgb_t rgb);
368368   void set_pen_indirect(pen_t pen, UINT16 index);
369369   UINT32 transpen_mask(gfx_element &gfx, int color, int transcolor);
370   void configure_tilemap_groups(tilemap_t &tmap, gfx_element &gfx, int transcolor);
371370
372371   // shadow config
373372   void set_shadow_factor(double factor) { assert(m_shadow_group != 0); m_palette->group_set_contrast(m_shadow_group, factor); }
trunk/src/emu/tilemap.c
r31072r31073
525525}
526526
527527
528//-------------------------------------------------
529//  configure_groups - configure groups so that
530//  when group == color, pens whose indirect value
531//  matches the given transcolor are transparent
532//-------------------------------------------------
528533
534void tilemap_t::configure_groups(gfx_element &gfx, int transcolor)
535{
536   int color;
537
538   assert(gfx.colors() <= TILEMAP_NUM_GROUPS);
539
540   // iterate over all colors in the tilemap
541   for (color = 0; color < gfx.colors(); color++)
542      set_transmask(color, m_palette->transpen_mask(gfx, color, transcolor), 0);
543}
544
545
546
529547//**************************************************************************
530548//  COMMON LOGICAL-TO-MEMORY MAPPERS
531549//**************************************************************************
trunk/src/emu/tilemap.h
r31072r31073
533533   void map_pen_to_layer(int group, pen_t pen, UINT8 layermask) { map_pens_to_layer(group, pen, ~0, layermask); }
534534   void set_transparent_pen(pen_t pen);
535535   void set_transmask(int group, UINT32 fgmask, UINT32 bgmask);
536   void configure_groups(gfx_element &gfx, int transcolor);
536537
537538   // drawing
538539   void draw(screen_device &screen, bitmap_ind16 &dest, const rectangle &cliprect, UINT32 flags, UINT8 priority = 0, UINT8 priority_mask = 0xff);
trunk/src/mame/video/bosco.c
r31072r31073
124124   m_bg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(bosco_state::bg_get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
125125   m_fg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(bosco_state::fg_get_tile_info),this),tilemap_mapper_delegate(FUNC(bosco_state::fg_tilemap_scan),this),  8,8, 8,32);
126126
127   m_palette->configure_tilemap_groups(*m_bg_tilemap, *m_gfxdecode->gfx(0), 0x1f);
128   m_palette->configure_tilemap_groups(*m_fg_tilemap, *m_gfxdecode->gfx(0), 0x1f);
127   m_bg_tilemap->configure_groups(*m_gfxdecode->gfx(0), 0x1f);
128   m_fg_tilemap->configure_groups(*m_gfxdecode->gfx(0), 0x1f);
129129
130130   m_bg_tilemap->set_scrolldx(3,3);
131131
trunk/src/mame/video/galaga.c
r31072r31073
429429VIDEO_START_MEMBER(galaga_state,galaga)
430430{
431431   m_fg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(galaga_state::get_tile_info),this),tilemap_mapper_delegate(FUNC(galaga_state::tilemap_scan),this),8,8,36,28);
432   m_palette->configure_tilemap_groups(*m_fg_tilemap, *m_gfxdecode->gfx(0), 0x1f);
432   m_fg_tilemap->configure_groups(*m_gfxdecode->gfx(0), 0x1f);
433433
434434   m_galaga_gfxbank = 0;
435435
trunk/src/mame/video/sprcros2.c
r31072r31073
127127   m_bgtilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(sprcros2_state::get_sprcros2_bgtile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
128128   m_fgtilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(sprcros2_state::get_sprcros2_fgtile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
129129
130   m_palette->configure_tilemap_groups(*m_fgtilemap, *m_gfxdecode->gfx(2), 0);
130   m_fgtilemap->configure_groups(*m_gfxdecode->gfx(2), 0);
131131}
132132
133133void sprcros2_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect)
trunk/src/mame/video/equites.c
r31072r31073
132132   m_fg_tilemap->set_scrolldx(8, -8);
133133
134134   m_bg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(equites_state::splndrbt_bg_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
135   m_palette->configure_tilemap_groups(*m_bg_tilemap, *m_gfxdecode->gfx(1), 0x10);
135   m_bg_tilemap->configure_groups(*m_gfxdecode->gfx(1), 0x10);
136136}
137137
138138
trunk/src/mame/video/clshroad.c
r31072r31073
217217   m_tilemap_0b->set_scrolldx(-0x30, -0xb5);
218218
219219   m_tilemap_0b->set_transparent_pen(0 );
220   m_palette->configure_tilemap_groups(*m_tilemap_1, *m_gfxdecode->gfx(2), 0x0f);
220   m_tilemap_1->configure_groups(*m_gfxdecode->gfx(2), 0x0f);
221221}
222222
223223VIDEO_START_MEMBER(clshroad_state,clshroad)
trunk/src/mame/video/stfight.c
r31072r31073
156156   m_tx_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(stfight_state::get_tx_tile_info),this),TILEMAP_SCAN_ROWS, 8,8,32,32);
157157
158158   m_fg_tilemap->set_transparent_pen(0x0f);
159   m_palette->configure_tilemap_groups(*m_tx_tilemap, *m_gfxdecode->gfx(0), 0xcf);
159   m_tx_tilemap->configure_groups(*m_gfxdecode->gfx(0), 0xcf);
160160}
161161
162162VIDEO_START_MEMBER(stfight_state,cshooter)
r31072r31073
166166   m_tx_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(stfight_state::get_cshooter_tx_tile_info),this),TILEMAP_SCAN_ROWS, 8,8,32,32);
167167
168168   m_fg_tilemap->set_transparent_pen(0x0f);
169   m_palette->configure_tilemap_groups(*m_tx_tilemap, *m_gfxdecode->gfx(0), 0xcf);
169   m_tx_tilemap->configure_groups(*m_gfxdecode->gfx(0), 0xcf);
170170}
171171
172172
trunk/src/mame/video/1943.c
r31072r31073
200200   m_bg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(_1943_state::c1943_get_bg_tile_info),this), TILEMAP_SCAN_COLS, 32, 32, 2048, 8);
201201   m_fg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(_1943_state::c1943_get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
202202
203   m_palette->configure_tilemap_groups(*m_bg_tilemap, *m_gfxdecode->gfx(1), 0x0f);
203   m_bg_tilemap->configure_groups(*m_gfxdecode->gfx(1), 0x0f);
204204   m_fg_tilemap->set_transparent_pen(0);
205205
206206   save_item(NAME(m_char_on));
trunk/src/mame/video/gberet.c
r31072r31073
118118VIDEO_START_MEMBER(gberet_state,gberet)
119119{
120120   m_bg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(gberet_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
121   m_palette->configure_tilemap_groups(*m_bg_tilemap, *m_gfxdecode->gfx(0), 0x10);
121   m_bg_tilemap->configure_groups(*m_gfxdecode->gfx(0), 0x10);
122122   m_bg_tilemap->set_scroll_rows(32);
123123}
124124
trunk/src/mame/video/mappy.c
r31072r31073
311311   m_bg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(mappy_state::superpac_get_tile_info),this),tilemap_mapper_delegate(FUNC(mappy_state::superpac_tilemap_scan),this),8,8,36,28);
312312   m_screen->register_screen_bitmap(m_sprite_bitmap);
313313
314   m_palette->configure_tilemap_groups(*m_bg_tilemap, *m_gfxdecode->gfx(0), 31);
314   m_bg_tilemap->configure_groups(*m_gfxdecode->gfx(0), 31);
315315}
316316
317317VIDEO_START_MEMBER(mappy_state,phozon)
318318{
319319   m_bg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(mappy_state::phozon_get_tile_info),this),tilemap_mapper_delegate(FUNC(mappy_state::superpac_tilemap_scan),this),8,8,36,28);
320320
321   m_palette->configure_tilemap_groups(*m_bg_tilemap, *m_gfxdecode->gfx(0), 15);
321   m_bg_tilemap->configure_groups(*m_gfxdecode->gfx(0), 15);
322322
323323   save_item(NAME(m_scroll));
324324}
r31072r31073
327327{
328328   m_bg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(mappy_state::mappy_get_tile_info),this),tilemap_mapper_delegate(FUNC(mappy_state::mappy_tilemap_scan),this),8,8,36,60);
329329
330   m_palette->configure_tilemap_groups(*m_bg_tilemap, *m_gfxdecode->gfx(0), 31);
330   m_bg_tilemap->configure_groups(*m_gfxdecode->gfx(0), 31);
331331   m_bg_tilemap->set_scroll_cols(36);
332332}
333333
trunk/src/mame/video/vulgus.c
r31072r31073
112112   m_fg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(vulgus_state::get_fg_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8,32,32);
113113   m_bg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(vulgus_state::get_bg_tile_info),this),TILEMAP_SCAN_COLS,16,16,32,32);
114114
115   m_palette->configure_tilemap_groups(*m_fg_tilemap, *m_gfxdecode->gfx(0), 47);
115   m_fg_tilemap->configure_groups(*m_gfxdecode->gfx(0), 47);
116116}
117117
118118
trunk/src/mame/video/exedexes.c
r31072r31073
168168   m_tx_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(exedexes_state::get_tx_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
169169
170170   m_fg_tilemap->set_transparent_pen(0);
171   m_palette->configure_tilemap_groups(*m_tx_tilemap, *m_gfxdecode->gfx(0), 0xcf);
171   m_tx_tilemap->configure_groups(*m_gfxdecode->gfx(0), 0xcf);
172172}
173173
174174void exedexes_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, int priority )
trunk/src/mame/video/gaplus.c
r31072r31073
178178{
179179   m_bg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(gaplus_state::get_tile_info),this),tilemap_mapper_delegate(FUNC(gaplus_state::tilemap_scan),this),8,8,36,28);
180180
181   m_palette->configure_tilemap_groups(*m_bg_tilemap, *m_gfxdecode->gfx(0), 0xff);
181   m_bg_tilemap->configure_groups(*m_gfxdecode->gfx(0), 0xff);
182182
183183   starfield_init();
184184}
trunk/src/mame/video/polepos.c
r31072r31073
190190   m_bg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(polepos_state::bg_get_tile_info),this),TILEMAP_SCAN_COLS,8,8,64,16);
191191   m_tx_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(polepos_state::tx_get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
192192
193   m_palette->configure_tilemap_groups(*m_tx_tilemap, *m_gfxdecode->gfx(0), 0x2f);
193   m_tx_tilemap->configure_groups(*m_gfxdecode->gfx(0), 0x2f);
194194}
195195
196196
trunk/src/mame/video/gunsmoke.c
r31072r31073
127127   m_bg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(gunsmoke_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS,  32, 32, 2048, 8);
128128   m_fg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(gunsmoke_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS,  8, 8, 32, 32);
129129
130   m_palette->configure_tilemap_groups(*m_fg_tilemap, *m_gfxdecode->gfx(0), 0x4f);
130   m_fg_tilemap->configure_groups(*m_gfxdecode->gfx(0), 0x4f);
131131}
132132
133133void gunsmoke_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect )
trunk/src/mame/video/tceptor.c
r31072r31073
386386
387387   m_tx_tilemap->set_scrollx(0, -2*8);
388388   m_tx_tilemap->set_scrolly(0, 0);
389   m_palette->configure_tilemap_groups(*m_tx_tilemap, *m_gfxdecode->gfx(0), 7);
389   m_tx_tilemap->configure_groups(*m_gfxdecode->gfx(0), 7);
390390
391391   m_bg1_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(tceptor_state::get_bg1_tile_info),this), TILEMAP_SCAN_ROWS,  8, 8, 64, 32);
392392   m_bg2_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(tceptor_state::get_bg2_tile_info),this), TILEMAP_SCAN_ROWS,  8, 8, 64, 32);
trunk/src/mame/video/bankp.c
r31072r31073
149149   m_bg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(bankp_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
150150   m_fg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(bankp_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
151151
152   m_palette->configure_tilemap_groups(*m_bg_tilemap, *m_gfxdecode->gfx(1), 0);
153   m_palette->configure_tilemap_groups(*m_fg_tilemap, *m_gfxdecode->gfx(0), 0);
152   m_bg_tilemap->configure_groups(*m_gfxdecode->gfx(1), 0);
153   m_fg_tilemap->configure_groups(*m_gfxdecode->gfx(0), 0);
154154
155155   save_item(NAME(m_scroll_x));
156156   save_item(NAME(m_priority));
trunk/src/mame/video/retofinv.c
r31072r31073
102102   m_bg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(retofinv_state::bg_get_tile_info),this),tilemap_mapper_delegate(FUNC(retofinv_state::tilemap_scan),this),8,8,36,28);
103103   m_fg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(retofinv_state::fg_get_tile_info),this),tilemap_mapper_delegate(FUNC(retofinv_state::tilemap_scan),this),8,8,36,28);
104104
105   m_palette->configure_tilemap_groups(*m_fg_tilemap, *m_gfxdecode->gfx(0), 0);
105   m_fg_tilemap->configure_groups(*m_gfxdecode->gfx(0), 0);
106106}
107107
108108
trunk/src/mame/drivers/panicr.c
r31072r31073
242242   m_infotilemap_2 = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(panicr_state::get_infotile_info_2),this),TILEMAP_SCAN_ROWS,16,16,1024,16 );
243243
244244   m_txttilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(panicr_state::get_txttile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32 );
245   m_palette->configure_tilemap_groups(*m_txttilemap, *m_gfxdecode->gfx(0), 0);
245   m_txttilemap->configure_groups(*m_gfxdecode->gfx(0), 0);
246246}
247247
248248void panicr_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect )

Previous 199869 Revisions Next


© 1997-2024 The MAME Team