Previous 199869 Revisions Next

r33716 Saturday 6th December, 2014 at 20:20:12 UTC by Jürgen Buchmüller
Add led8seg (Futaba) and use in gts1.lay
[src/emu]rendlay.c rendlay.h
[src/mame]mame.mak
[src/mame/drivers]gts1.c

trunk/src/emu/rendlay.c
r242227r242228
677677   else if (strcmp(compnode.name, "led7seg") == 0)
678678      m_type = CTYPE_LED7SEG;
679679
680   // led8seg nodes
681   else if (strcmp(compnode.name, "led8seg") == 0)
682      m_type = CTYPE_LED8SEG;
683
680684   // led14seg nodes
681685   else if (strcmp(compnode.name, "led14seg") == 0)
682686      m_type = CTYPE_LED14SEG;
r242227r242228
749753         draw_led7seg(dest, bounds, state);
750754         break;
751755
756      case CTYPE_LED8SEG:
757         draw_led8seg(dest, bounds, state);
758         break;
759
752760      case CTYPE_LED14SEG:
753761         draw_led14seg(dest, bounds, state);
754762         break;
r242227r242228
13991407}
14001408
14011409
1410//------------------------------------------------------
1411//  draw_led8seg - draw a 8-segment fluorescent (Futaba)
1412//------------------------------------------------------
1413
1414void layout_element::component::draw_led8seg(bitmap_argb32 &dest, const rectangle &bounds, int pattern)
1415{
1416   const rgb_t onpen = rgb_t(0xff,0xff,0xff,0xff);
1417   const rgb_t offpen = rgb_t(0xff,0x20,0x20,0x20);
1418   const rgb_t backpen = rgb_t(0xff,0x00,0x00,0x00);
1419
1420   // sizes for computation
1421   int bmwidth = 250;
1422   int bmheight = 400;
1423   int segwidth = 40;
1424   int skewwidth = 40;
1425
1426   // allocate a temporary bitmap for drawing
1427   bitmap_argb32 tempbitmap(bmwidth + skewwidth, bmheight);
1428   tempbitmap.fill(backpen);
1429
1430   // top bar
1431   draw_segment_horizontal(tempbitmap, 0 + 2*segwidth/3, bmwidth - 2*segwidth/3, 0 + segwidth/2, segwidth, (pattern & (1 << 0)) ? onpen : offpen);
1432
1433   // top-right bar
1434   draw_segment_vertical(tempbitmap, 0 + 2*segwidth/3, bmheight/2 - segwidth/3, bmwidth - segwidth/2, segwidth, (pattern & (1 << 1)) ? onpen : offpen);
1435
1436   // bottom-right bar
1437   draw_segment_vertical(tempbitmap, bmheight/2 + segwidth/3, bmheight - 2*segwidth/3, bmwidth - segwidth/2, segwidth, (pattern & (1 << 2)) ? onpen : offpen);
1438
1439   // bottom bar
1440   draw_segment_horizontal(tempbitmap, 0 + 2*segwidth/3, bmwidth - 2*segwidth/3, bmheight - segwidth/2, segwidth, (pattern & (1 << 3)) ? onpen : offpen);
1441
1442   // bottom-left bar
1443   draw_segment_vertical(tempbitmap, bmheight/2 + segwidth/3, bmheight - 2*segwidth/3, 0 + segwidth/2, segwidth, (pattern & (1 << 4)) ? onpen : offpen);
1444
1445   // top-left bar
1446   draw_segment_vertical(tempbitmap, 0 + 2*segwidth/3, bmheight/2 - segwidth/3, 0 + segwidth/2, segwidth, (pattern & (1 << 5)) ? onpen : offpen);
1447
1448   // horizontal bars
1449   draw_segment_horizontal(tempbitmap, 0 + 2*segwidth/3, 2*bmwidth/3 - 2*segwidth/3, bmheight/2, segwidth, (pattern & (1 << 6)) ? onpen : offpen);
1450   draw_segment_horizontal(tempbitmap, 0 + 2*segwidth/3 + bmwidth/2, bmwidth - 2*segwidth/3, bmheight/2, segwidth, (pattern & (1 << 6)) ? onpen : offpen);
1451
1452   // vertical bars
1453   draw_segment_vertical(tempbitmap, 0 + segwidth/3 - 8, bmheight/2 - segwidth/3 + 2, 2*bmwidth/3 - segwidth/2 - 4, segwidth + 8, backpen);
1454   draw_segment_vertical(tempbitmap, 0 + segwidth/3, bmheight/2 - segwidth/3, 2*bmwidth/3 - segwidth/2 - 4, segwidth, (pattern & (1 << 7)) ? onpen : offpen);
1455
1456   draw_segment_vertical(tempbitmap, bmheight/2 + segwidth/3 - 2, bmheight - 2*segwidth/3 + 4, 2*bmwidth/3 - segwidth/2 - 4, segwidth + 8, backpen);
1457   draw_segment_vertical(tempbitmap, bmheight/2 + segwidth/3, bmheight - 2*segwidth/3, 2*bmwidth/3 - segwidth/2 - 4, segwidth, (pattern & (1 << 7)) ? onpen : offpen);
1458
1459   // apply skew
1460   apply_skew(tempbitmap, 40);
1461
1462   // resample to the target size
1463   render_resample_argb_bitmap_hq(dest, tempbitmap, m_color);
1464}
1465
14021466//-------------------------------------------------
14031467//  draw_led14seg - draw a 14-segment LCD
14041468//-------------------------------------------------
trunk/src/emu/rendlay.h
r242227r242228
8787         CTYPE_DISK,
8888         CTYPE_TEXT,
8989         CTYPE_LED7SEG,
90         CTYPE_LED8SEG,
9091         CTYPE_LED14SEG,
9192         CTYPE_LED16SEG,
9293         CTYPE_LED14SEGSC,
r242227r242228
109110      void load_bitmap();
110111      void load_reel_bitmap(int number);
111112      void draw_led7seg(bitmap_argb32 &dest, const rectangle &bounds, int pattern);
113      void draw_led8seg(bitmap_argb32 &dest, const rectangle &bounds, int pattern);
112114      void draw_led14seg(bitmap_argb32 &dest, const rectangle &bounds, int pattern);
113115      void draw_led14segsc(bitmap_argb32 &dest, const rectangle &bounds, int pattern);
114116      void draw_led16seg(bitmap_argb32 &dest, const rectangle &bounds, int pattern);
trunk/src/mame/drivers/gts1.c
r242227r242228
6868
6969#include "machine/genpin.h"
7070#include "cpu/pps4/pps4.h"
71//#include "gts1.lh"
71#include "gts1.lh"
7272
7373#define VERBOSE    1
7474
r242227r242228
233233    //MCFG_NVRAM_ADD_0FILL("nvram")
234234
235235    /* Video */
236    //MCFG_DEFAULT_LAYOUT(layout_gts1)
236    MCFG_DEFAULT_LAYOUT(layout_gts1)
237237
238238    /* Sound */
239239    MCFG_FRAGMENT_ADD( genpin_audio )
trunk/src/mame/mame.mak
r242227r242228
26502650         $(LAYOUT)/pmpoker.lh \
26512651         $(LAYOUT)/upndown.lh
26522652
2653$(DRIVERS)/gts1.o:      $(LAYOUT)/gts1.lh
26532654$(DRIVERS)/gts3.o:      $(LAYOUT)/gts3.lh
26542655$(DRIVERS)/gts80.o:     $(LAYOUT)/gts80.lh
26552656$(DRIVERS)/gts80a.o:    $(LAYOUT)/gts80a.lh


Previous 199869 Revisions Next


© 1997-2024 The MAME Team