summaryrefslogtreecommitdiffstatshomepage
path: root/scripts/build/complay.py
Commit message (Collapse)AuthorAgeFilesLines
* Make layout format more flexible: Vas Crabb2019-07-061-6/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * There is no longer a concept of "layers" - there are only screens and elements. * Elements are now instantiated with <element ref="..."> * Screens and elements can have explicit blending mode specified with blend="..." * Default blending mode for screens is "add" and default for other elements is "alpha" * Other supported modes are "none" and "multiply" * This removes the options to enable/disable layers individually - use views instead * Legacy layouts can still be loaded, and support won't be removed for at least a year The current artwork model is over-stretched. It's based on a Space Invaders cabinet model, and isn't applicable to a lot of the systems MAME emulates now. The fact that MAME has to switch to an "alternate" mode to deal with games like Golly! Ghost! without requiring pre-matted bitmaps shows that the Space Invaders model wasn't even adequate for general arcade use. It shows in that for a lot of the systems that heavily depend on artwork, people just seem to randomly choose layers for elements until they get something that works. Also, the fact that MAME will switch to an alternate (Golly! Ghost!) mode depending on the combination of elements is a trap for people learning to make artwork. There are cases that the current approach of implying the blending mode from the layer doesn't work with. Examples include LEDs behind diffusers (requires additive blending for layout elements), and mutliple stacked LCD panels (requires RGB multiplication for screens). For configurability, it's now a lot easier to make multiple views using groups. For example, if you want to make it possible to hide the control panel section of your layout, you can put the control panel elements in a group and create views with and without it. I will gradually migrate the internal artwork to use the new approach. I have an XSLT stylesheet that helps with this, but I'm not comfortable adding it because it isn't a complete solution and it still requires manul steps. I wanted to get the re-worked pointer handling done sooner so I could push them both at the same time, but unfortunately various things have prevented me from progressing as quickly as I wanted to. Sorry guys, that stuff's going to have to wait.
* (nw) Clean up the mess on master Vas Crabb2019-03-261-1/+9
| | | | | | | | | | | | | This effectively reverts b380514764cf857469bae61c11143a19f79a74c5 and c24473ddff715ecec2e258a6eb38960cf8c8e98e, restoring the state at 598cd5227223c3b04ca31f0dbc1981256d9ea3ff. Before pushing, please check that what you're about to push is sane. Check your local commit log and ensure there isn't anything out-of-place before pushing to mainline. When things like this happen, it wastes everyone's time. I really don't need this in a week when real work™ is busting my balls and I'm behind where I want to be with preparing for MAME release.
* Revert "conflict resolution (nw)" andreasnaive2019-03-251-9/+1
| | | | | This reverts commit c24473ddff715ecec2e258a6eb38960cf8c8e98e, reversing changes made to 009cba4fb8102102168ef32870892438327f3705.
* complay: spaces instead of tabs for indentation? (nw) hap2019-03-241-6/+6
|
* complay: add inputraw (nw) hap2019-03-241-1/+9
|
* (nw) Further layout work: Vas Crabb2018-08-021-2/+29
| | | | | | | | * Allow <orientation> and <color> to work on group references * Fix some corner cases where group bounds could be miscalculated * Fix a corner case where MAME could incorrectly refuse to instantiate groups * Add more checks to complay.py * Document more of the layout format
* (nw) more render work: Vas Crabb2018-07-311-30/+82
| | | | | | | | | | | | * Clean up some corner cases in layouts with repeating blocks * Make complay.py validate many more elements and attributes * Make complay.py easier to use for just validating a layout * Remove redundant view from Sega VMU layout * Make buttons visually respond to input in whousetc.lay * Add view with LED displays as well as terminal for aim65_40 and use repeats * Clean up some outdated "game" terminology in clifront.cpp * Initiaise a couple of members in tap/tun network module * Start documenting layout format
* allow repeating elements and groups - useful if you need e.g. a lot of ↵ Vas Crabb2018-07-221-9/+34
| | | | numbered labels, but it limits complay.py's ability to check for invalid references as it can't evaluate expressions (nw)
* rendlay: allow user variables and repetition in layouts, also add a few more ↵ Vas Crabb2018-07-221-162/+280
| | | | predefined variables
* Allow per-device internal layouts and remove some more MCFG_ macros. Vas Crabb2018-07-161-13/+25
| | | | | | | | | | | Input and screen tags are now resolved relative to a layout's owner device. Easy way to demonstrate is with: mame64 intlc440 -tty ie15 Previously you'd only get the IE15 terminal's layout and you'd be unable to use the INTELLEC 4/40 front panel. Now you'll get the choice of layouts from both the system and the terminal device in video options.
* Allow layouts to specify screen tags rather than indices - makes order of ↵ Vas Crabb2018-07-101-0/+16
| | | | instantiation irrelevant in Model 1 etc.
* Add support for layout item groups, replace simple_list with more Vas Crabb2017-07-291-27/+62
| | | | | | | | | | | | | appropriate containers, remove misleading const qualifiers, reduce repeated XML walking. (nw) Groups aren't parameterised, so they aren't as useful as they could be (yes, it's on my TODO list). However, it's already useful for putting a common set of elements in multiple views, potentially at different locations/scales. See intlc44.lay and intlc440.lay for examples of the level of copypasta this can eliminate. Be aware that groups with explicit bounds don't clip thair content, it's only used for calucating the transform matrix.
* remove vestigial exception class (nw) Vas Crabb2017-07-111-6/+0
|
* (nw) notes, coverity complaints, INTELLEC 4/MOD 4 layout, detect duplicate ↵ Vas Crabb2017-07-091-1/+24
| | | | bounds/color in layouts
* work around python version differences (nw) Vas Crabb2017-07-091-0/+5
|
* Do substantial validation of internal layouts at build time Vas Crabb2017-07-081-2/+202
|
* python why are you incompatible (nw) Vas Crabb2016-11-231-2/+2
|
* Rewrite complay.py to parse/minify layout XML Vas Crabb2016-11-201-55/+138
| | | | Doesn't make much difference to executable size, but it catches XML errors at build time rather than waiting for you to try the system (nw)
* NOTICE (TYPE NAME CONSOLIDATION) Miodrag Milanovic2016-10-221-1/+1
| | | | | Use standard uint64_t, uint32_t, uint16_t or uint8_t instead of UINT64, UINT32, UINT16 or UINT8 also use standard int64_t, int32_t, int16_t or int8_t instead of INT64, INT32, INT16 or INT8
* complay.py: Python 3 compat. (nw) Mike Naberezny2016-03-301-3/+1
|
* Compressed internal layouts [David Haywood] Miodrag Milanovic2016-03-301-0/+71