diff options
-rwxr-xr-x | scripts/build/complay.py | 30 | ||||
-rw-r--r-- | src/emu/rendlay.cpp | 199 | ||||
-rw-r--r-- | src/mame/layout/brkball.lay | 13 | ||||
-rw-r--r-- | src/mame/layout/esq2by16.lay | 136 | ||||
-rw-r--r-- | src/mame/layout/hp9825.lay | 42 | ||||
-rw-r--r-- | src/mame/layout/sc2_dmd.lay | 12 | ||||
-rw-r--r-- | src/mame/layout/sc2copcl7.lay | 12 | ||||
-rw-r--r-- | src/mame/layout/sc2cpe.lay | 12 | ||||
-rw-r--r-- | src/mame/layout/sc2prem2.lay | 12 | ||||
-rw-r--r-- | src/mame/layout/sc2prom.lay | 12 | ||||
-rw-r--r-- | src/mame/layout/sc2ptytm1.lay | 12 | ||||
-rw-r--r-- | src/mame/layout/sc2town2.lay | 12 | ||||
-rw-r--r-- | src/mame/layout/sc4_dmd.lay | 11 | ||||
-rw-r--r-- | src/mame/layout/tecnbras.lay | 348 | ||||
-rw-r--r-- | src/mame/layout/tmtennis.lay | 66 |
15 files changed, 446 insertions, 483 deletions
diff --git a/scripts/build/complay.py b/scripts/build/complay.py index 3e9d6ed693c..6903418e242 100755 --- a/scripts/build/complay.py +++ b/scripts/build/complay.py @@ -96,7 +96,7 @@ class LayoutChecker(Minifyer): BADTAGPATTERN = re.compile('[^abcdefghijklmnopqrstuvwxyz0123456789_.:^$]') VARPATTERN = re.compile('^.*~[0-9A-Za-z_]+~.*$') FLOATCHARS = re.compile('^.*[.eE].*$') - SHAPES = frozenset(('disk', 'dotmatrix', 'dotmatrix5dot', 'dotmatrixdot', 'led14seg', 'led14segsc', 'led16seg', 'led16segsc', 'led7seg', 'led8seg_gts1', 'rect')) + SHAPES = frozenset(('disk', 'led14seg', 'led14segsc', 'led16seg', 'led16segsc', 'led7seg', 'led8seg_gts1', 'rect')) ORIENTATIONS = frozenset((0, 90, 180, 270)) YESNO = frozenset(('yes', 'no')) BLENDMODES = frozenset(('none', 'alpha', 'multiply', 'add')) @@ -291,7 +291,10 @@ class LayoutChecker(Minifyer): self.handleError('Element %s attribute state "%s" is negative' % (name, attrs['state'])) if (statemask is not None) and (stateval & ~statemask): self.handleError('Element %s attribute state "%s" has bits set that are clear in attribute statemask "%s"' % (name, attrs['state'], attrs['statemask'])) - self.handlers.append((self.componentStartHandler, self.componentEndHandler)) + if 'image' == name: + self.handlers.append((self.imageComponentStartHandler, self.imageComponentEndHandler)) + else: + self.handlers.append((self.componentStartHandler, self.componentEndHandler)) self.have_bounds.append({ }) self.have_color.append({ }) @@ -448,8 +451,8 @@ class LayoutChecker(Minifyer): self.handleError('Element simplecounter attribute align "%s" not in valid range 0-2' % (attrs['align'], )) self.checkComponent(name, attrs) elif 'image' == name: - if 'file' not in attrs: - self.handleError('Element image missing attribute file') + self.have_file = 'file' in attrs + self.have_data = None self.checkComponent(name, attrs) elif 'reel' == name: # TODO: validate symbollist and improve validation of other attributes @@ -499,6 +502,25 @@ class LayoutChecker(Minifyer): self.have_color.pop() self.handlers.pop() + def imageComponentStartHandler(self, name, attrs): + if 'data' == name: + if self.have_data is not None: + self.handleError('Element image has multiple data child elements (previous %s)' % (self.have_data)) + else: + self.have_data = self.formatLocation() + if self.have_file: + self.handleError('Element image has attribute file and child element data') + self.ignored_depth = 1 + else: + self.componentStartHandler(name, attrs) + + def imageComponentEndHandler(self, name): + if (not self.have_file) and (self.have_data is None): + self.handleError('Element image missing attribute file or child element data') + del self.have_file + del self.have_data + self.componentEndHandler(name) + def groupViewStartHandler(self, name, attrs): if 'element' == name: if 'ref' not in attrs: diff --git a/src/emu/rendlay.cpp b/src/emu/rendlay.cpp index 2f57c7ade1d..25604722212 100644 --- a/src/emu/rendlay.cpp +++ b/src/emu/rendlay.cpp @@ -1521,14 +1521,14 @@ void layout_element::element_scale(bitmap_argb32 &dest, bitmap_argb32 &source, c // get the local scaled bounds render_bounds const compbounds(curcomp->bounds(elemtex.m_state)); rectangle bounds( - render_round_nearest(compbounds.x0 * dest.width()), - render_round_nearest(compbounds.x1 * dest.width()), - render_round_nearest(compbounds.y0 * dest.height()), - render_round_nearest(compbounds.y1 * dest.height())); - bounds &= dest.cliprect(); + s32(compbounds.x0 * float(dest.width()) + 0.5F), + s32(floorf(compbounds.x1 * float(dest.width()) - 0.5F)), + s32(compbounds.y0 * float(dest.height()) + 0.5F), + s32(floorf(compbounds.y1 * float(dest.height()) - 0.5F))); // based on the component type, add to the texture - curcomp->draw(elemtex.m_element->machine(), dest, bounds, elemtex.m_state); + if (!bounds.empty()) + curcomp->draw(elemtex.m_element->machine(), dest, bounds, elemtex.m_state); } } } @@ -1684,44 +1684,29 @@ private: void load_image(running_machine &machine) { - // attempt to open the file - LOGMASKED(LOG_IMAGE_LOAD, "Image component attempt to load image file '%s%s%s'\n", m_dirname, PATH_SEPARATOR, m_imagefile); + // if we have a filename, go with that emu_file file(machine.options().art_path(), OPEN_FLAG_READ); - osd_file::error const imgerr = file.open(m_dirname.empty() ? m_imagefile : (m_dirname + PATH_SEPARATOR + m_imagefile)); - if (osd_file::error::NONE == imgerr) + if (!m_imagefile.empty()) { - ru_imgformat const format = render_detect_image(file); - switch (format) + LOGMASKED(LOG_IMAGE_LOAD, "Image component attempt to load image file '%s%s%s'\n", m_dirname, PATH_SEPARATOR, m_imagefile); + osd_file::error const imgerr = file.open(m_dirname.empty() ? m_imagefile : (m_dirname + PATH_SEPARATOR + m_imagefile)); + if (osd_file::error::NONE == imgerr) { - case RENDUTIL_IMGFORMAT_ERROR: - LOGMASKED(LOG_IMAGE_LOAD, "Image component error detecting image file format\n"); - break; - - case RENDUTIL_IMGFORMAT_PNG: - LOGMASKED(LOG_IMAGE_LOAD, "Image component detected PNG file format\n"); - m_hasalpha = render_load_png(m_bitmap, file); - break; - - case RENDUTIL_IMGFORMAT_JPEG: - LOGMASKED(LOG_IMAGE_LOAD, "Image component detected JPEG file format\n"); - render_load_jpeg(m_bitmap, file); - break; - - case RENDUTIL_IMGFORMAT_MSDIB: - LOGMASKED(LOG_IMAGE_LOAD, "Image component detected Microsoft DIB file format\n"); - render_load_msdib(m_bitmap, file); - break; - - default: - LOGMASKED(LOG_IMAGE_LOAD, "Image component failed to detect image file format, trying SVG\n"); - load_svg(file); - break; + if (!load_bitmap(file)) + { + LOGMASKED(LOG_IMAGE_LOAD, "Image component will attempt to parse file as SVG\n"); + load_svg(file); + } + file.close(); + } + else + { + LOGMASKED(LOG_IMAGE_LOAD, "Image component unable to open image file '%s%s%s'\n", m_dirname, PATH_SEPARATOR, m_imagefile); } - file.close(); } else { - LOGMASKED(LOG_IMAGE_LOAD, "Image component unable to open image file '%s%s%s'\n", m_dirname, PATH_SEPARATOR, m_imagefile); + load_image_data(); } // load the alpha bitmap if specified @@ -1775,13 +1760,104 @@ private: m_data.clear(); } - void load_svg(util::core_file &file) + void load_image_data() { - if (!m_rasterizer) + // in-place Base64 decode + static constexpr char base64chars[] = + "\t\n\v\f\r +/0123456789" + "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "abcdefghijklmnopqrstuvwxyz"; + static constexpr char base64tail[] = + "\t\n\v\f\r ="; + std::string::size_type const tail(m_data.find_first_not_of(base64chars)); + std::string::size_type const end(m_data.find_first_not_of(base64tail, tail)); + if (std::string::npos == end) { - osd_printf_warning("No SVG rasteriser available, won't attempt to parse component image '%s' as SVG\n", m_imagefile); - return; + LOGMASKED(LOG_IMAGE_LOAD, "Image component decoding Base64 image m_data\n"); + char *dst(&m_data[0]); + unsigned trailing(0U); + for (std::string::size_type i = 0U; (m_data.size() > i) && ('=' != m_data[i]); ++i) + { + u8 sym; + if (('A' <= m_data[i]) && ('Z' >= m_data[i])) + sym = m_data[i] - 'A'; + else if (('a' <= m_data[i]) && ('z' >= m_data[i])) + sym = m_data[i] - 'a' + 26; + else if (('0' <= m_data[i]) && ('9' >= m_data[i])) + sym = m_data[i] - '0' + 52; + else if ('+' == m_data[i]) + sym = 62; + else if ('/' == m_data[i]) + sym = 63; + else + continue; + if (trailing) + *dst |= (sym << 2) >> trailing; + else + *dst = sym << 2; + if (trailing >= 2U) + ++dst; + trailing = (trailing + 6U) & 7U; + if (trailing) + *dst = sym << (8U - trailing); + } + m_data.resize(dst - &m_data[0]); } + + // make a file wrapper for the data and see if it looks like a bitmap + util::core_file::ptr file; + osd_file::error const filerr(util::core_file::open_ram(m_data.c_str(), m_data.size(), OPEN_FLAG_READ, file)); + bool const bitmapdata((osd_file::error::NONE == filerr) && file && load_bitmap(*file)); + file.reset(); + + // if it didn't look like a bitmap, see if it looks like it might be XML and hence SVG + if (!bitmapdata) + { + bool const utf16be((0xfe == u8(m_data[0])) && (0xff == u8(m_data[1]))); + bool const utf16le((0xff == u8(m_data[0])) && (0xfe == u8(m_data[1]))); + bool const utf8((0xef == u8(m_data[0])) && (0xbb == u8(m_data[1])) && (0xbf == u8(m_data[2]))); + std::string::size_type const found(m_data.find_first_not_of("\t\n\v\f\r ")); + bool const xmltag((std::string::npos != found) && ('<' == m_data[found])); + if (utf16be || utf16le || utf8 || xmltag) + { + LOGMASKED(LOG_IMAGE_LOAD, "Image component will attempt to parse data as SVG\n"); + parse_svg(&m_data[0]); + } + } + } + + bool load_bitmap(util::core_file &file) + { + ru_imgformat const format = render_detect_image(file); + switch (format) + { + case RENDUTIL_IMGFORMAT_ERROR: + LOGMASKED(LOG_IMAGE_LOAD, "Image component error detecting image file format\n"); + return false; + + case RENDUTIL_IMGFORMAT_PNG: + LOGMASKED(LOG_IMAGE_LOAD, "Image component detected PNG file format\n"); + m_hasalpha = render_load_png(m_bitmap, file); + return true; + + case RENDUTIL_IMGFORMAT_JPEG: + LOGMASKED(LOG_IMAGE_LOAD, "Image component detected JPEG file format\n"); + render_load_jpeg(m_bitmap, file); + return true; + + case RENDUTIL_IMGFORMAT_MSDIB: + LOGMASKED(LOG_IMAGE_LOAD, "Image component detected Microsoft DIB file format\n"); + render_load_msdib(m_bitmap, file); + return true; + + default: + LOGMASKED(LOG_IMAGE_LOAD, "Image component failed to detect bitmap file format\n"); + return false; + } + } + + void load_svg(util::core_file &file) + { u64 len(file.size()); if ((std::numeric_limits<size_t>::max() - 1) < len) { @@ -1807,8 +1883,17 @@ private: ptr += read; len -= read; } - m_svg.reset(nsvgParse(svgbuf.get(), "px", 72)); - svgbuf.reset(); + parse_svg(svgbuf.get()); + } + + void parse_svg(char *svgdata) + { + if (!m_rasterizer) + { + osd_printf_warning("No SVG rasteriser available, won't attempt to parse component image '%s' as SVG\n", m_imagefile); + return; + } + m_svg.reset(nsvgParse(svgdata, "px", 72)); if (!m_svg) { osd_printf_warning("Failed to parse component image '%s' as SVG\n", m_imagefile); @@ -1922,8 +2007,8 @@ protected: u32 const inva(255 - a); // find the center - float const xcenter = float(bounds.xcenter()); - float const ycenter = float(bounds.ycenter()); + float const xcenter = float(bounds.left() + bounds.right()) * 0.5F; + float const ycenter = float(bounds.top() + bounds.bottom()) * 0.5F; float const xradius = float(bounds.width()) * 0.5F; float const yradius = float(bounds.height()) * 0.5F; float const ooyradius2 = 1.0F / (yradius * yradius); @@ -1932,22 +2017,21 @@ protected: for (u32 y = bounds.top(); y <= bounds.bottom(); ++y) { // compute left/right coordinates - float const ycoord = ycenter - (float(y) + 0.5F); + float const ycoord = ycenter - float(y); float const xval = xradius * sqrtf(1.0F - (ycoord * ycoord) * ooyradius2); - s32 const left = s32(xcenter - xval + 0.5F); - s32 const right = s32(xcenter + xval + 0.5F); + s32 const right = bounds.right() - left + bounds.left(); // draw this scanline if (255 <= a) { // optimise opaque pixels - std::fill_n(&dest.pix(y, left), right - left, f); + std::fill_n(&dest.pix(y, left), right - left + 1, f); } else if (a) { - u32 *dst(&dest.pix(y, bounds.left())); - for (u32 x = left; x < right; ++x, ++dst) + u32 *dst(&dest.pix(y, left)); + for (s32 x = left; x <= right; ++x, ++dst) { // we're translucent, add in the destination pixel contribution rgb_t const dpix(*dst); @@ -4354,9 +4438,16 @@ layout_view::item::color_vector layout_view::item::make_color( itemnode.get_name())); } } - for (emu::render::detail::color_step &step : result) - step.color *= mult; - set_color_deltas(result); + if (result.empty()) + { + result.emplace_back(emu::render::detail::color_step{ 0, mult, { 0.0F, 0.0F, 0.0F, 0.0F } }); + } + else + { + for (emu::render::detail::color_step &step : result) + step.color *= mult; + set_color_deltas(result); + } return result; } diff --git a/src/mame/layout/brkball.lay b/src/mame/layout/brkball.lay index 809b5901cf2..e895f502a65 100644 --- a/src/mame/layout/brkball.lay +++ b/src/mame/layout/brkball.lay @@ -7,10 +7,16 @@ </element> <element name="dotmatrixdot"> - <dotmatrixdot> - <color red="1.0" green="0.12" blue="0.12" /> - </dotmatrixdot> + <rect> + <color red="0" green="0" blue="0" /> + <bounds left="-0.1" top="-0.1" right="1.1" bottom="1.1" /> + </rect> + <disk> + <color state="1" red="1.0" green="1.0" blue="1.0" /> + <color state="0" red="0.125" green="0.125" blue="0.125" /> + </disk> </element> + <group name="dmd"> <repeat count="21"> <param name="s" start="0" increment="65" /> @@ -20,6 +26,7 @@ <param name="x" start="0" increment="1" /> <element name="dotmatrix~n~" ref="dotmatrixdot" state="0"> <bounds x="~x~" y="~y~" width="1" height="1" /> + <color red="1.0" green="0.12" blue="0.12" /> </element> </repeat> </repeat> diff --git a/src/mame/layout/esq2by16.lay b/src/mame/layout/esq2by16.lay index aa05f652938..546803dc527 100644 --- a/src/mame/layout/esq2by16.lay +++ b/src/mame/layout/esq2by16.lay @@ -32,30 +32,64 @@ license:CC0 </rect> </element> - - <element name="Page1"> - <dotmatrix5dot> - <color red="0.0" green="1.0" blue="1.0" /> - </dotmatrix5dot> - </element> - - <element name="Page2"> - <dotmatrix5dot> - <color red="0.0" green="1.0" blue="0.0" /> - </dotmatrix5dot> - </element> - - <element name="Page3"> - <dotmatrix5dot> - <color red="1.0" green="1.0" blue="0.0" /> - </dotmatrix5dot> + <element name="dotrow"> + <rect> + <bounds x="-0.1" width="5.6" y="-0.1" height="1.2" /> + <color red="0.0" green="0.0" blue="0.0" /> + </rect> + <disk state="0" statemask="0x01"> + <bounds x="0.0" /> + <color red="0.125" green="0.125" blue="0.125" /> + </disk> + <disk state="0" statemask="0x02"> + <bounds x="1.1" /> + <color red="0.125" green="0.125" blue="0.125" /> + </disk> + <disk state="0" statemask="0x04"> + <bounds x="2.2" /> + <color red="0.125" green="0.125" blue="0.125" /> + </disk> + <disk state="0" statemask="0x08"> + <bounds x="3.3" /> + <color red="0.125" green="0.125" blue="0.125" /></disk> + <disk state="0" statemask="0x10"> + <bounds x="4.4" /> + <color red="0.125" green="0.125" blue="0.125" /> + </disk> + <disk statemask="0x01"> + <bounds x="0.0" /> + </disk> + <disk statemask="0x02"> + <bounds x="1.1" /> + </disk> + <disk statemask="0x04"> + <bounds x="2.2" /> + </disk> + <disk statemask="0x08"> + <bounds x="3.3" /> + </disk> + <disk statemask="0x10"> + <bounds x="4.4" /> + </disk> </element> - <element name="Page4"> - <dotmatrix5dot> - <color red="0.0" green="0.0" blue="1.0" /> - </dotmatrix5dot> - </element> + <group name="page"> + <repeat count="2"> + <param name="origin" start="~start~" increment="112" /> + <param name="row" start="0" increment="10" /> + <repeat count="16"> + <param name="char" start="~origin~" increment="7" /> + <param name="x" start="0" increment="6" /> + <repeat count="7"> + <param name="n" start="~char~" increment="1" /> + <param name="y" start="~row~" increment="1" /> + <element name="pg_~n~" ref="dotrow" state="0"> + <bounds x="~x~" y="~y~" width="5" height="1" /> + </element> + </repeat> + </repeat> + </repeat> + </group> <view name="Default Layout"> <!-- Background --> @@ -81,41 +115,29 @@ license:CC0 <element name="rLed_14" ref="rLeds"> <bounds x="280" y="20" width="5" height="3" /> </element> <element name="rLed_15" ref="rLeds"> <bounds x="290" y="20" width="5" height="3" /> </element> - <repeat count="3"> - <param name="page" start="3" increment="-1" /> - <param name="start" start="3000" increment="-1000" /> - <param name="baseline" start="0" increment="20" /> - <repeat count="2"> - <param name="origin" start="~start~" increment="112" /> - <param name="row" start="~baseline~" increment="10" /> - <repeat count="16"> - <param name="char" start="~origin~" increment="7" /> - <param name="x" start="0" increment="6" /> - <repeat count="7"> - <param name="n" start="~char~" increment="1" /> - <param name="y" start="~row~" increment="1" /> - <element name="pg_~n~" ref="Page~page~" state="0"> - <bounds x="~x~" y="~y~" width="5" height="1" /> - </element> - </repeat> - </repeat> - </repeat> - </repeat> - <repeat count="2"> - <param name="origin" start="4000" increment="112" /> - <param name="row" start="80" increment="10" /> - <repeat count="16"> - <param name="char" start="~origin~" increment="7" /> - <param name="x" start="0" increment="6" /> - <repeat count="7"> - <param name="n" start="~char~" increment="1" /> - <param name="y" start="~row~" increment="1" /> - <element name="pg_~n~" ref="Page4" state="0"> - <bounds x="~x~" y="~y~" width="5" height="1" /> - </element> - </repeat> - </repeat> - </repeat> + <param name="start" value="3000" /> + <group ref="page"> + <bounds x="0" y="0" width="95" height="17" /> + <color red="1.0" green="1.0" blue="0.0" /> + </group> + + <param name="start" value="2000" /> + <group ref="page"> + <bounds x="0" y="20" width="95" height="17" /> + <color red="0.0" green="1.0" blue="0.0" /> + </group> + + <param name="start" value="1000" /> + <group ref="page"> + <bounds x="0" y="40" width="95" height="17" /> + <color red="0.0" green="1.0" blue="1.0" /> + </group> + + <param name="start" value="4000" /> + <group ref="page"> + <bounds x="0" y="80" width="95" height="17" /> + <color red="0.0" green="0.0" blue="1.0" /> + </group> </view> </mamelayout> diff --git a/src/mame/layout/hp9825.lay b/src/mame/layout/hp9825.lay index 98341bd0bff..78db4e34edf 100644 --- a/src/mame/layout/hp9825.lay +++ b/src/mame/layout/hp9825.lay @@ -6,9 +6,44 @@ Hewlett-Packard 9825 Layout --> <mamelayout version="2"> <element name="dotmatrix5dot"> - <dotmatrix5dot> - <color red="1.0" green="0" blue="0" /> - </dotmatrix5dot> + <rect> + <bounds x="-0.1" width="5.6" y="-0.1" height="1.2" /> + <color red="0.0" green="0.0" blue="0.0" /> + </rect> + <disk state="0" statemask="0x01"> + <bounds x="0.0" /> + <color red="0.25" green="0.25" blue="0.25" /> + </disk> + <disk state="0" statemask="0x02"> + <bounds x="1.1" /> + <color red="0.25" green="0.25" blue="0.25" /> + </disk> + <disk state="0" statemask="0x04"> + <bounds x="2.2" /> + <color red="0.25" green="0.25" blue="0.25" /> + </disk> + <disk state="0" statemask="0x08"> + <bounds x="3.3" /> + <color red="0.25" green="0.25" blue="0.25" /></disk> + <disk state="0" statemask="0x10"> + <bounds x="4.4" /> + <color red="0.25" green="0.25" blue="0.25" /> + </disk> + <disk statemask="0x01"> + <bounds x="0.0" /> + </disk> + <disk statemask="0x02"> + <bounds x="1.1" /> + </disk> + <disk statemask="0x04"> + <bounds x="2.2" /> + </disk> + <disk statemask="0x08"> + <bounds x="3.3" /> + </disk> + <disk statemask="0x10"> + <bounds x="4.4" /> + </disk> </element> <element name="run_light" defstate="0"> @@ -34,6 +69,7 @@ Hewlett-Packard 9825 Layout <param name="rowidx" start="0" increment="1" /> <element name="char_~digitidx~_~rowidx~" ref="dotmatrix5dot" state="0"> <bounds x="~digit_x~" y="~rowidx~" width="5" height="1" /> + <color red="1.0" green="0.0" blue="0.0" /> </element> </repeat> </repeat> diff --git a/src/mame/layout/sc2_dmd.lay b/src/mame/layout/sc2_dmd.lay index 0d3b9b1f41e..75f1c28825b 100644 --- a/src/mame/layout/sc2_dmd.lay +++ b/src/mame/layout/sc2_dmd.lay @@ -18,9 +18,14 @@ license:CC0 </rect> </element> <element name="dotmatrixdot"> - <dotmatrixdot> - <color red="1.0" green="0.12" blue="0.12" /> - </dotmatrixdot> + <rect> + <color red="0" green="0" blue="0" /> + <bounds left="-0.1" top="-0.1" right="1.1" bottom="1.1" /> + </rect> + <disk> + <color state="1" red="1.0" green="1.0" blue="1.0" /> + <color state="0" red="0.125" green="0.125" blue="0.125" /> + </disk> </element> <element name="Steppers" defstate="0"> <simplecounter maxstate="999" digits="3"> @@ -38,6 +43,7 @@ license:CC0 <param name="x" start="0" increment="1" /> <element name="dotmatrix~n~" ref="dotmatrixdot" state="0"> <bounds x="~x~" y="~y~" width="1" height="1" /> + <color red="1.0" green="0.12" blue="0.12" /> </element> </repeat> </repeat> diff --git a/src/mame/layout/sc2copcl7.lay b/src/mame/layout/sc2copcl7.lay index d8588a2a311..32e8a52e26d 100644 --- a/src/mame/layout/sc2copcl7.lay +++ b/src/mame/layout/sc2copcl7.lay @@ -2099,9 +2099,14 @@ </element> <element name="dotmatrixdot"> - <dotmatrixdot> - <color red="1.0" green="0.12" blue="0.12" /> - </dotmatrixdot> + <rect> + <color red="0" green="0" blue="0" /> + <bounds left="-0.1" top="-0.1" right="1.1" bottom="1.1" /> + </rect> + <disk> + <color state="1" red="1.0" green="1.0" blue="1.0" /> + <color state="0" red="0.125" green="0.125" blue="0.125" /> + </disk> </element> <group name="dmd"> <repeat count="21"> @@ -2112,6 +2117,7 @@ <param name="x" start="0" increment="1" /> <element name="dotmatrix~n~" ref="dotmatrixdot" state="0"> <bounds x="~x~" y="~y~" width="1" height="1" /> + <color red="1.0" green="0.12" blue="0.12" /> </element> </repeat> </repeat> diff --git a/src/mame/layout/sc2cpe.lay b/src/mame/layout/sc2cpe.lay index d52439a3590..eceb3fd15c8 100644 --- a/src/mame/layout/sc2cpe.lay +++ b/src/mame/layout/sc2cpe.lay @@ -2125,9 +2125,14 @@ </element> <element name="dotmatrixdot"> - <dotmatrixdot> - <color red="1.0" green="0.12" blue="0.12" /> - </dotmatrixdot> + <rect> + <color red="0" green="0" blue="0" /> + <bounds left="-0.1" top="-0.1" right="1.1" bottom="1.1" /> + </rect> + <disk> + <color state="1" red="1.0" green="1.0" blue="1.0" /> + <color state="0" red="0.125" green="0.125" blue="0.125" /> + </disk> </element> <group name="dmd"> <repeat count="21"> @@ -2138,6 +2143,7 @@ <param name="x" start="0" increment="1" /> <element name="dotmatrix~n~" ref="dotmatrixdot" state="0"> <bounds x="~x~" y="~y~" width="1" height="1" /> + <color red="1.0" green="0.12" blue="0.12" /> </element> </repeat> </repeat> diff --git a/src/mame/layout/sc2prem2.lay b/src/mame/layout/sc2prem2.lay index 71b79ae888a..d376251548e 100644 --- a/src/mame/layout/sc2prem2.lay +++ b/src/mame/layout/sc2prem2.lay @@ -2185,9 +2185,14 @@ </element> <element name="dotmatrixdot"> - <dotmatrixdot> - <color red="1.0" green="0.12" blue="0.12" /> - </dotmatrixdot> + <rect> + <color red="0" green="0" blue="0" /> + <bounds left="-0.1" top="-0.1" right="1.1" bottom="1.1" /> + </rect> + <disk> + <color state="1" red="1.0" green="1.0" blue="1.0" /> + <color state="0" red="0.125" green="0.125" blue="0.125" /> + </disk> </element> <group name="dmd"> <repeat count="21"> @@ -2198,6 +2203,7 @@ <param name="x" start="0" increment="1" /> <element name="dotmatrix~n~" ref="dotmatrixdot" state="0"> <bounds x="~x~" y="~y~" width="1" height="1" /> + <color red="1.0" green="0.12" blue="0.12" /> </element> </repeat> </repeat> diff --git a/src/mame/layout/sc2prom.lay b/src/mame/layout/sc2prom.lay index 63c9b8d1679..369aef18a6e 100644 --- a/src/mame/layout/sc2prom.lay +++ b/src/mame/layout/sc2prom.lay @@ -1609,9 +1609,14 @@ </element> <element name="dotmatrixdot"> - <dotmatrixdot> - <color red="1.0" green="0.12" blue="0.12" /> - </dotmatrixdot> + <rect> + <color red="0" green="0" blue="0" /> + <bounds left="-0.1" top="-0.1" right="1.1" bottom="1.1" /> + </rect> + <disk> + <color state="1" red="1.0" green="1.0" blue="1.0" /> + <color state="0" red="0.125" green="0.125" blue="0.125" /> + </disk> </element> <group name="dmd"> <repeat count="21"> @@ -1622,6 +1627,7 @@ <param name="x" start="0" increment="1" /> <element name="dotmatrix~n~" ref="dotmatrixdot" state="0"> <bounds x="~x~" y="~y~" width="1" height="1" /> + <color red="1.0" green="0.12" blue="0.12" /> </element> </repeat> </repeat> diff --git a/src/mame/layout/sc2ptytm1.lay b/src/mame/layout/sc2ptytm1.lay index 1cde0618a3b..3b39ac670ba 100644 --- a/src/mame/layout/sc2ptytm1.lay +++ b/src/mame/layout/sc2ptytm1.lay @@ -1153,9 +1153,14 @@ </element> <element name="dotmatrixdot"> - <dotmatrixdot> - <color red="1.0" green="0.12" blue="0.12" /> - </dotmatrixdot> + <rect> + <color red="0" green="0" blue="0" /> + <bounds left="-0.1" top="-0.1" right="1.1" bottom="1.1" /> + </rect> + <disk> + <color state="1" red="1.0" green="1.0" blue="1.0" /> + <color state="0" red="0.125" green="0.125" blue="0.125" /> + </disk> </element> <group name="dmd"> <repeat count="21"> @@ -1166,6 +1171,7 @@ <param name="x" start="0" increment="1" /> <element name="dotmatrix~n~" ref="dotmatrixdot" state="0"> <bounds x="~x~" y="~y~" width="1" height="1" /> + <color red="1.0" green="0.12" blue="0.12" /> </element> </repeat> </repeat> diff --git a/src/mame/layout/sc2town2.lay b/src/mame/layout/sc2town2.lay index d0595ea60ea..14c06cd4514 100644 --- a/src/mame/layout/sc2town2.lay +++ b/src/mame/layout/sc2town2.lay @@ -1887,9 +1887,14 @@ </element> <element name="dotmatrixdot"> - <dotmatrixdot> - <color red="1.0" green="0.12" blue="0.12" /> - </dotmatrixdot> + <rect> + <color red="0" green="0" blue="0" /> + <bounds left="-0.1" top="-0.1" right="1.1" bottom="1.1" /> + </rect> + <disk> + <color state="1" red="1.0" green="1.0" blue="1.0" /> + <color state="0" red="0.125" green="0.125" blue="0.125" /> + </disk> </element> <group name="dmd"> <repeat count="21"> @@ -1900,6 +1905,7 @@ <param name="x" start="0" increment="1" /> <element name="dotmatrix~n~" ref="dotmatrixdot" state="0"> <bounds x="~x~" y="~y~" width="1" height="1" /> + <color red="1.0" green="0.12" blue="0.12" /> </element> </repeat> </repeat> diff --git a/src/mame/layout/sc4_dmd.lay b/src/mame/layout/sc4_dmd.lay index b42cda68acd..6d965bdb4ea 100644 --- a/src/mame/layout/sc4_dmd.lay +++ b/src/mame/layout/sc4_dmd.lay @@ -87,9 +87,14 @@ license:CC0 <element name="dotmatrixdot"> - <dotmatrixdot> - <color red="1.0" green="0" blue="0" /> - </dotmatrixdot> + <rect> + <color red="0" green="0" blue="0" /> + <bounds left="-0.1" top="-0.1" right="1.1" bottom="1.1" /> + </rect> + <disk> + <color state="1" red="1.0" green="0.0" blue="0.0" /> + <color state="0" red="0.125" green="0.0" blue="0.0" /> + </disk> </element> <element name="digit" defstate="10"> <led7seg> diff --git a/src/mame/layout/tecnbras.lay b/src/mame/layout/tecnbras.lay index c65cea29235..da18525567f 100644 --- a/src/mame/layout/tecnbras.lay +++ b/src/mame/layout/tecnbras.lay @@ -4,9 +4,45 @@ license:CC0 --> <mamelayout version="2"> <element name="dotmatrix5dot"> - <dotmatrix5dot> - <color red="1.0" green="0" blue="0" /> - </dotmatrix5dot> + <rect> + <bounds x="-0.1" width="5.6" y="-0.1" height="1.2" /> + <color red="0.0" green="0.0" blue="0.0" /> + </rect> + <disk state="0" statemask="0x01"> + <bounds x="0.0" /> + <color red="0.125" green="0.125" blue="0.125" /> + </disk> + <disk state="0" statemask="0x02"> + <bounds x="1.1" /> + <color red="0.125" green="0.125" blue="0.125" /> + </disk> + <disk state="0" statemask="0x04"> + <bounds x="2.2" /> + <color red="0.125" green="0.125" blue="0.125" /> + </disk> + <disk state="0" statemask="0x08"> + <bounds x="3.3" /> + <color red="0.125" green="0.125" blue="0.125" /> + </disk> + <disk state="0" statemask="0x10"> + <bounds x="4.4" /> + <color red="0.125" green="0.125" blue="0.125" /> + </disk> + <disk statemask="0x01"> + <bounds x="0.0" /> + </disk> + <disk statemask="0x02"> + <bounds x="1.1" /> + </disk> + <disk statemask="0x04"> + <bounds x="2.2" /> + </disk> + <disk statemask="0x08"> + <bounds x="3.3" /> + </disk> + <disk statemask="0x10"> + <bounds x="4.4" /> + </disk> </element> <element name="background"> <rect> @@ -18,299 +54,17 @@ license:CC0 <element ref="background"> <bounds left="00" top="00" right="70" bottom="7" /> </element> - <element name="dmd_0" ref="dotmatrix5dot" state="0"> - <bounds x="0" y="0" width="5" height="1" /> - </element> - <element name="dmd_1" ref="dotmatrix5dot" state="0"> - <bounds x="0" y="1" width="5" height="1" /> - </element> - <element name="dmd_2" ref="dotmatrix5dot" state="0"> - <bounds x="0" y="2" width="5" height="1" /> - </element> - <element name="dmd_3" ref="dotmatrix5dot" state="0"> - <bounds x="0" y="3" width="5" height="1" /> - </element> - <element name="dmd_4" ref="dotmatrix5dot" state="0"> - <bounds x="0" y="4" width="5" height="1" /> - </element> - <element name="dmd_5" ref="dotmatrix5dot" state="0"> - <bounds x="0" y="5" width="5" height="1" /> - </element> - <element name="dmd_6" ref="dotmatrix5dot" state="0"> - <bounds x="0" y="6" width="5" height="1" /> - </element> - <element name="dmd_7" ref="dotmatrix5dot" state="0"> - <bounds x="5" y="0" width="5" height="1" /> - </element> - <element name="dmd_8" ref="dotmatrix5dot" state="0"> - <bounds x="5" y="1" width="5" height="1" /> - </element> - <element name="dmd_9" ref="dotmatrix5dot" state="0"> - <bounds x="5" y="2" width="5" height="1" /> - </element> - <element name="dmd_10" ref="dotmatrix5dot" state="0"> - <bounds x="5" y="3" width="5" height="1" /> - </element> - <element name="dmd_11" ref="dotmatrix5dot" state="0"> - <bounds x="5" y="4" width="5" height="1" /> - </element> - <element name="dmd_12" ref="dotmatrix5dot" state="0"> - <bounds x="5" y="5" width="5" height="1" /> - </element> - <element name="dmd_13" ref="dotmatrix5dot" state="0"> - <bounds x="5" y="6" width="5" height="1" /> - </element> - <element name="dmd_14" ref="dotmatrix5dot" state="0"> - <bounds x="10" y="0" width="5" height="1" /> - </element> - <element name="dmd_15" ref="dotmatrix5dot" state="0"> - <bounds x="10" y="1" width="5" height="1" /> - </element> - <element name="dmd_16" ref="dotmatrix5dot" state="0"> - <bounds x="10" y="2" width="5" height="1" /> - </element> - <element name="dmd_17" ref="dotmatrix5dot" state="0"> - <bounds x="10" y="3" width="5" height="1" /> - </element> - <element name="dmd_18" ref="dotmatrix5dot" state="0"> - <bounds x="10" y="4" width="5" height="1" /> - </element> - <element name="dmd_19" ref="dotmatrix5dot" state="0"> - <bounds x="10" y="5" width="5" height="1" /> - </element> - <element name="dmd_20" ref="dotmatrix5dot" state="0"> - <bounds x="10" y="6" width="5" height="1" /> - </element> - <element name="dmd_21" ref="dotmatrix5dot" state="0"> - <bounds x="15" y="0" width="5" height="1" /> - </element> - <element name="dmd_22" ref="dotmatrix5dot" state="0"> - <bounds x="15" y="1" width="5" height="1" /> - </element> - <element name="dmd_23" ref="dotmatrix5dot" state="0"> - <bounds x="15" y="2" width="5" height="1" /> - </element> - <element name="dmd_24" ref="dotmatrix5dot" state="0"> - <bounds x="15" y="3" width="5" height="1" /> - </element> - <element name="dmd_25" ref="dotmatrix5dot" state="0"> - <bounds x="15" y="4" width="5" height="1" /> - </element> - <element name="dmd_26" ref="dotmatrix5dot" state="0"> - <bounds x="15" y="5" width="5" height="1" /> - </element> - <element name="dmd_27" ref="dotmatrix5dot" state="0"> - <bounds x="15" y="6" width="5" height="1" /> - </element> - <element name="dmd_28" ref="dotmatrix5dot" state="0"> - <bounds x="20" y="0" width="5" height="1" /> - </element> - <element name="dmd_29" ref="dotmatrix5dot" state="0"> - <bounds x="20" y="1" width="5" height="1" /> - </element> - <element name="dmd_30" ref="dotmatrix5dot" state="0"> - <bounds x="20" y="2" width="5" height="1" /> - </element> - <element name="dmd_31" ref="dotmatrix5dot" state="0"> - <bounds x="20" y="3" width="5" height="1" /> - </element> - <element name="dmd_32" ref="dotmatrix5dot" state="0"> - <bounds x="20" y="4" width="5" height="1" /> - </element> - <element name="dmd_33" ref="dotmatrix5dot" state="0"> - <bounds x="20" y="5" width="5" height="1" /> - </element> - <element name="dmd_34" ref="dotmatrix5dot" state="0"> - <bounds x="20" y="6" width="5" height="1" /> - </element> - <element name="dmd_35" ref="dotmatrix5dot" state="0"> - <bounds x="25" y="0" width="5" height="1" /> - </element> - <element name="dmd_36" ref="dotmatrix5dot" state="0"> - <bounds x="25" y="1" width="5" height="1" /> - </element> - <element name="dmd_37" ref="dotmatrix5dot" state="0"> - <bounds x="25" y="2" width="5" height="1" /> - </element> - <element name="dmd_38" ref="dotmatrix5dot" state="0"> - <bounds x="25" y="3" width="5" height="1" /> - </element> - <element name="dmd_39" ref="dotmatrix5dot" state="0"> - <bounds x="25" y="4" width="5" height="1" /> - </element> - <element name="dmd_40" ref="dotmatrix5dot" state="0"> - <bounds x="25" y="5" width="5" height="1" /> - </element> - <element name="dmd_41" ref="dotmatrix5dot" state="0"> - <bounds x="25" y="6" width="5" height="1" /> - </element> - <element name="dmd_42" ref="dotmatrix5dot" state="0"> - <bounds x="30" y="0" width="5" height="1" /> - </element> - <element name="dmd_43" ref="dotmatrix5dot" state="0"> - <bounds x="30" y="1" width="5" height="1" /> - </element> - <element name="dmd_44" ref="dotmatrix5dot" state="0"> - <bounds x="30" y="2" width="5" height="1" /> - </element> - <element name="dmd_45" ref="dotmatrix5dot" state="0"> - <bounds x="30" y="3" width="5" height="1" /> - </element> - <element name="dmd_46" ref="dotmatrix5dot" state="0"> - <bounds x="30" y="4" width="5" height="1" /> - </element> - <element name="dmd_47" ref="dotmatrix5dot" state="0"> - <bounds x="30" y="5" width="5" height="1" /> - </element> - <element name="dmd_48" ref="dotmatrix5dot" state="0"> - <bounds x="30" y="6" width="5" height="1" /> - </element> - <element name="dmd_49" ref="dotmatrix5dot" state="0"> - <bounds x="35" y="0" width="5" height="1" /> - </element> - <element name="dmd_50" ref="dotmatrix5dot" state="0"> - <bounds x="35" y="1" width="5" height="1" /> - </element> - <element name="dmd_51" ref="dotmatrix5dot" state="0"> - <bounds x="35" y="2" width="5" height="1" /> - </element> - <element name="dmd_52" ref="dotmatrix5dot" state="0"> - <bounds x="35" y="3" width="5" height="1" /> - </element> - <element name="dmd_53" ref="dotmatrix5dot" state="0"> - <bounds x="35" y="4" width="5" height="1" /> - </element> - <element name="dmd_54" ref="dotmatrix5dot" state="0"> - <bounds x="35" y="5" width="5" height="1" /> - </element> - <element name="dmd_55" ref="dotmatrix5dot" state="0"> - <bounds x="35" y="6" width="5" height="1" /> - </element> - <element name="dmd_56" ref="dotmatrix5dot" state="0"> - <bounds x="40" y="0" width="5" height="1" /> - </element> - <element name="dmd_57" ref="dotmatrix5dot" state="0"> - <bounds x="40" y="1" width="5" height="1" /> - </element> - <element name="dmd_58" ref="dotmatrix5dot" state="0"> - <bounds x="40" y="2" width="5" height="1" /> - </element> - <element name="dmd_59" ref="dotmatrix5dot" state="0"> - <bounds x="40" y="3" width="5" height="1" /> - </element> - <element name="dmd_60" ref="dotmatrix5dot" state="0"> - <bounds x="40" y="4" width="5" height="1" /> - </element> - <element name="dmd_61" ref="dotmatrix5dot" state="0"> - <bounds x="40" y="5" width="5" height="1" /> - </element> - <element name="dmd_62" ref="dotmatrix5dot" state="0"> - <bounds x="40" y="6" width="5" height="1" /> - </element> - <element name="dmd_63" ref="dotmatrix5dot" state="0"> - <bounds x="45" y="0" width="5" height="1" /> - </element> - <element name="dmd_64" ref="dotmatrix5dot" state="0"> - <bounds x="45" y="1" width="5" height="1" /> - </element> - <element name="dmd_65" ref="dotmatrix5dot" state="0"> - <bounds x="45" y="2" width="5" height="1" /> - </element> - <element name="dmd_66" ref="dotmatrix5dot" state="0"> - <bounds x="45" y="3" width="5" height="1" /> - </element> - <element name="dmd_67" ref="dotmatrix5dot" state="0"> - <bounds x="45" y="4" width="5" height="1" /> - </element> - <element name="dmd_68" ref="dotmatrix5dot" state="0"> - <bounds x="45" y="5" width="5" height="1" /> - </element> - <element name="dmd_69" ref="dotmatrix5dot" state="0"> - <bounds x="45" y="6" width="5" height="1" /> - </element> - <element name="dmd_70" ref="dotmatrix5dot" state="0"> - <bounds x="50" y="0" width="5" height="1" /> - </element> - <element name="dmd_71" ref="dotmatrix5dot" state="0"> - <bounds x="50" y="1" width="5" height="1" /> - </element> - <element name="dmd_72" ref="dotmatrix5dot" state="0"> - <bounds x="50" y="2" width="5" height="1" /> - </element> - <element name="dmd_73" ref="dotmatrix5dot" state="0"> - <bounds x="50" y="3" width="5" height="1" /> - </element> - <element name="dmd_74" ref="dotmatrix5dot" state="0"> - <bounds x="50" y="4" width="5" height="1" /> - </element> - <element name="dmd_75" ref="dotmatrix5dot" state="0"> - <bounds x="50" y="5" width="5" height="1" /> - </element> - <element name="dmd_76" ref="dotmatrix5dot" state="0"> - <bounds x="50" y="6" width="5" height="1" /> - </element> - <element name="dmd_77" ref="dotmatrix5dot" state="0"> - <bounds x="55" y="0" width="5" height="1" /> - </element> - <element name="dmd_78" ref="dotmatrix5dot" state="0"> - <bounds x="55" y="1" width="5" height="1" /> - </element> - <element name="dmd_79" ref="dotmatrix5dot" state="0"> - <bounds x="55" y="2" width="5" height="1" /> - </element> - <element name="dmd_80" ref="dotmatrix5dot" state="0"> - <bounds x="55" y="3" width="5" height="1" /> - </element> - <element name="dmd_81" ref="dotmatrix5dot" state="0"> - <bounds x="55" y="4" width="5" height="1" /> - </element> - <element name="dmd_82" ref="dotmatrix5dot" state="0"> - <bounds x="55" y="5" width="5" height="1" /> - </element> - <element name="dmd_83" ref="dotmatrix5dot" state="0"> - <bounds x="55" y="6" width="5" height="1" /> - </element> - <element name="dmd_84" ref="dotmatrix5dot" state="0"> - <bounds x="60" y="0" width="5" height="1" /> - </element> - <element name="dmd_85" ref="dotmatrix5dot" state="0"> - <bounds x="60" y="1" width="5" height="1" /> - </element> - <element name="dmd_86" ref="dotmatrix5dot" state="0"> - <bounds x="60" y="2" width="5" height="1" /> - </element> - <element name="dmd_87" ref="dotmatrix5dot" state="0"> - <bounds x="60" y="3" width="5" height="1" /> - </element> - <element name="dmd_88" ref="dotmatrix5dot" state="0"> - <bounds x="60" y="4" width="5" height="1" /> - </element> - <element name="dmd_89" ref="dotmatrix5dot" state="0"> - <bounds x="60" y="5" width="5" height="1" /> - </element> - <element name="dmd_90" ref="dotmatrix5dot" state="0"> - <bounds x="60" y="6" width="5" height="1" /> - </element> - <element name="dmd_91" ref="dotmatrix5dot" state="0"> - <bounds x="65" y="0" width="5" height="1" /> - </element> - <element name="dmd_92" ref="dotmatrix5dot" state="0"> - <bounds x="65" y="1" width="5" height="1" /> - </element> - <element name="dmd_93" ref="dotmatrix5dot" state="0"> - <bounds x="65" y="2" width="5" height="1" /> - </element> - <element name="dmd_94" ref="dotmatrix5dot" state="0"> - <bounds x="65" y="3" width="5" height="1" /> - </element> - <element name="dmd_95" ref="dotmatrix5dot" state="0"> - <bounds x="65" y="4" width="5" height="1" /> - </element> - <element name="dmd_96" ref="dotmatrix5dot" state="0"> - <bounds x="65" y="5" width="5" height="1" /> - </element> - <element name="dmd_97" ref="dotmatrix5dot" state="0"> - <bounds x="65" y="6" width="5" height="1" /> - </element> + <repeat count="14"> + <param name="char" start="0" increment="7" /> + <param name="x" start="0" increment="5" /> + <repeat count="7"> + <param name="n" start="~char~" increment="1" /> + <param name="y" start="0" increment="1" /> + <element name="dmd_~n~" ref="dotmatrix5dot" state="0"> + <bounds x="~x~" y="~y~" width="5" height="1" /> + <color red="1.0" green="0.0" blue="0.0" /> + </element> + </repeat> + </repeat> </view> </mamelayout> diff --git a/src/mame/layout/tmtennis.lay b/src/mame/layout/tmtennis.lay index db4e50b1aee..aa6a2b48e1a 100644 --- a/src/mame/layout/tmtennis.lay +++ b/src/mame/layout/tmtennis.lay @@ -6,54 +6,38 @@ license:CC0 <!-- define elements --> - <element name="green"><rect><color red="0" green="0.5" blue="0" /></rect></element> - <element name="greena"><rect><color red="0" green="1" blue="0" /></rect></element> - <element name="greend"><rect><color red="0" green="1" blue="0" /></rect></element> - + <element name="court"> + <image><data><![CDATA[ + <svg xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" width="700" height="249" viewBox="0 0 700 249" version="1.1" id="svg1"> + <path id="path1" d="m 1.5,247.5 h 697 l -95,-208 h -507 z" + style="fill:none;stroke:#00ff00;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" /> + <path id="path2" d="M 88,58.5 H 612" + style="fill:none;stroke:#00ff00;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" /> + <path id="path3" d="M 12,224.5 H 688" + style="fill:none;stroke:#00ff00;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" /> + <path id="path4" d="m 138.5,224.5 47,-166" + style="fill:none;stroke:#00ff00;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" /> + <path id="path5" d="m 561.5,224.5 -47,-166" + style="fill:none;stroke:#00ff00;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" /> + <path id="path6" d="M 163,136.5 H 537" + style="fill:none;stroke:#00ff00;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" /> + <path id="path7" d="M 350,247.5 V 38.5" + style="fill:none;stroke:#00ff00;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" /> + <rect id="rect1" width="12" height="39" x="344" y="0" style="opacity:1;fill:#00ff00;fill-opacity:1;stroke:none" /> + <rect id="rect2" width="12" height="42" x="344" y="206" style="opacity:1;fill:#00ff00;fill-opacity:1;stroke:none" /> + </svg> + ]]></data></image> + </element> <!-- build screen --> <view name="Internal Layout"> - <screen index="0"><bounds x="10" y="10" width="64" height="13.9" /></screen> - - <!-- draw the tennis court --> - - <repeat count="201"> - <param name="x" start="6.9" increment="0.0475" /> - <param name="y" start="27" increment="-0.105" /> - <element ref="greend"><bounds x="~x~" y="~y~" width="0.35" height="0.35" /><color alpha="0.18" /></element> - </repeat> - - <repeat count="201"> - <param name="x" start="76.8" increment="-0.0475" /> - <param name="y" start="27" increment="-0.105" /> - <element ref="greend"><bounds x="~x~" y="~y~" width="0.35" height="0.35" /><color alpha="0.18" /></element> - </repeat> - <repeat count="159"> - <param name="x" start="20.7" increment="0.029" /> - <param name="y" start="24.7" increment="-0.105" /> - <element ref="greend"><bounds x="~x~" y="~y~" width="0.35" height="0.35" /><color alpha="0.18" /></element> - </repeat> + <screen index="0" blend="add"><bounds x="3" y="7.6" width="64" height="13.9" /></screen> - <repeat count="159"> - <param name="x" start="63" increment="-0.029" /> - <param name="y" start="24.7" increment="-0.105" /> - <element ref="greend"><bounds x="~x~" y="~y~" width="0.35" height="0.35" /><color alpha="0.18" /></element> - </repeat> - - <element ref="greena"><bounds x="41.85" y="6" width="0.3" height="20" /><color alpha="0.5" /></element> - - <element ref="green"><bounds x="16.5" y="6.1" width="51" height="0.3" /></element> - <element ref="green"><bounds x="15.7" y="8" width="52.6" height="0.3" /></element> - - <element ref="green"><bounds x="23.35" y="15.9" width="37.3" height="0.3" /></element> - - <element ref="green"><bounds x="8.1" y="24.8" width="67.8" height="0.3" /></element> - <element ref="green"><bounds x="7" y="27" width="70" height="0.3" /></element> + <!-- draw the tennis court --> - <element ref="green"><bounds x="41.4" y="2.3" width="1.2" height="3.9" /></element> - <element ref="green"><bounds x="41.4" y="23" width="1.2" height="4.2" /></element> + <element ref="court"><bounds width="70" height="24.9" /><color alpha="0.5" /></element> </view> </mamelayout> |