summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/rendlay.cpp
Commit message (Collapse)AuthorAgeFilesLines
* (nw) Clean up the mess on master Vas Crabb2019-03-261-3/+14
| | | | | | | | | | | | | 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-14/+3
| | | | | This reverts commit c24473ddff715ecec2e258a6eb38960cf8c8e98e, reversing changes made to 009cba4fb8102102168ef32870892438327f3705.
* hh_tms1k: added switches to simon layout, added buttons to zodiac layout, ↵ hap2019-03-231-1/+3
| | | | changed inputs to sliders in alphie (nw)
* layout: added "inputraw" parameter, for use with inputtag and inputmask. It ↵ hap2019-03-231-3/+12
| | | | sets the element state directly to the raw input data & mask. Example uses: 8 way joystick state, multi-bitmask dipswitch state. If you don't want it to respond to layout mouse clicks, add a dummy inputtag rect under it. (nw)
* (nw) apparently msys glibstdc++ doesn't have that std::abs overload... Vas Crabb2018-08-021-6/+7
|
* (nw) Further layout work: Vas Crabb2018-08-021-95/+173
| | | | | | | | * 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-35/+45
| | | | | | | | | | | | * 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
* make rectangle work better with constexpr, change many things to use ↵ Vas Crabb2018-07-281-34/+34
| | | | designated getters/setters (nw)
* Better support for screen orientation/geometry: Vas Crabb2018-07-261-44/+12
| | | | | | | | | | | | | | | | | | | | | * Eliminates the need for the horizontal/vertical/LCD/SVG layout files * Screens can now have orientation and physical aspect ratio specified * RASTER/VECTOR defaults to 4:3, LCD/SVG defaults to square pixels at config time * System orientation is applied on top of screen orientation Automatically generated single-screen views and orientation flags in XML output now work correctly for systems with multiple screens in different geometries/orientations, e.g. housemnq, rocnms, stepstag, or netmerc. The "core rotation options" only interact with system orientation. Allowing multi-screen systems to work well with one monitor per emulated screen is a complex topic. System orientation also affects the GFX viewer while screen orientation doesn't. The orientation displayed in the system selection menu is from the system orientation. Let me know if I've broken any systems or use cases. Also, add save state support for std::array/C array nested to any depth.
* allow repeating elements and groups - useful if you need e.g. a lot of ↵ Vas Crabb2018-07-221-25/+58
| | | | numbered labels, but it limits complay.py's ability to check for invalid references as it can't evaluate expressions (nw)
* remember to unwind if environment changes (nw) Vas Crabb2018-07-221-0/+9
|
* rendlay: allow user variables and repetition in layouts, also add a few more ↵ Vas Crabb2018-07-221-346/+909
| | | | predefined variables
* Allow per-device internal layouts and remove some more MCFG_ macros. Vas Crabb2018-07-161-30/+51
| | | | | | | | | | | 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.
* cleanup (nw) Vas Crabb2018-07-121-3/+3
|
* Allow layouts to specify screen tags rather than indices - makes order of ↵ Vas Crabb2018-07-101-1/+4
| | | | instantiation irrelevant in Model 1 etc.
* cleaner handling of layout parsing errors (nw) Vas Crabb2018-03-291-75/+97
|
* rendlay image_component: detect image format(png) before loading image. No ↵ hap2017-09-021-9/+20
| | | | PNG error message anymore when loading JPG. (nw)
* get rid of string hashes when fetching output values in layout rendering, too Vas Crabb2017-07-301-6/+11
|
* Add support for layout item groups, replace simple_list with more Vas Crabb2017-07-291-124/+300
| | | | | | | | | | | | | 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.
* reduce weight of render.h by moving component specialisation declarations ↵ Vas Crabb2017-07-281-1161/+1196
| | | | into rendlay.cpp
* forgot these (nw) Vas Crabb2017-07-131-1/+1
|
* don't drop an entire layout if one view fails to load - it breaks ↵ Vas Crabb2017-07-131-1/+14
| | | | intlc44/intlc440 with null_modem
* XML refactoring: Vas Crabb2016-12-111-37/+37
| | | | | | | * move stuff to namespace util::xml * scope down some enums * split config load/save delegate types * make config load take const so it can't mangle data
* Introduce u8/u16/u32/u64/s8/s16/s32/s64 Vas Crabb2016-11-191-80/+80
| | | | | | | | | | | | * New abbreviated types are in osd and util namespaces, and also in global namespace for things that #include "emu.h" * Get rid of import of cstdint types to global namespace (C99 does this anyway) * Remove the cstdint types from everything in emu * Get rid of U64/S64 macros * Fix a bug in dps16 caused by incorrect use of macro * Fix debugcon not checking for "do " prefix case-insensitively * Fix a lot of messed up tabulation * More constexpr * Fix up many __names
* Turn xmlfile API into something that looks like C++ Vas Crabb2016-11-171-62/+62
| | | | It's still a bit quirky but it's far better encapsulated before, and it plays nice with const (nw)
* Revert "Added IS_ENABLED, so we have compiler check for non used part, it is ↵ Miodrag Milanovic2016-11-121-3/+3
| | | | | | checked but not compiled in (nw)" This reverts commit c0407f073bf7afe26407c4add5cfeaf7104913c9.
* Added IS_ENABLED, so we have compiler check for non used part, it is checked ↵ Miodrag Milanovic2016-11-111-3/+3
| | | | | | but not compiled in (nw) false and true now used instead of integer where used as bool
* abuse of auto is bad, mkay? (nw) Vas Crabb2016-11-121-5/+4
|
* NOTICE (TYPE NAME CONSOLIDATION) Miodrag Milanovic2016-10-221-80/+80
| | | | | 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
* use standard types uintptr_t, char16_t and char32_t instead of FPTR, ↵ Miodrag Milanovic2016-10-221-3/+3
| | | | utf16_char, unicode_char (nw)
* More cleanup on the back of Osso's fix for ↵ Vas Crabb2016-08-301-2/+2
| | | | | | | | | | | a7e393b36b57cead61978f332135a509b2ddc82a (nw) * Make iterators actually meet requirements of ForwardIterator (and by consequence, ForwardIterator, Iterator and EqualityComparable) * Don't use function statics if they can be avoided - it isn't thread-safe * Remove leftover crud from when dynamic_buffer and friends were templates in lib/util It's still dangerous that the const behaviour of iterators doesn't match STL. Also, simple_list members with similar functionality to STL container members should be renamed.
* Use std::map for mapping XML tag name to layout component creation function ↵ Vas Crabb2016-07-021-71/+76
| | | | | | - makes the code simpler and easier to read as well as being more scalable Fix problem using layout_element::texture in vector - destructor frees resources but generated copy/assignment operators don't release them, leading to a problem any time vector expands or element is added/removed anywhere but end
* simple_list to vector in rendlay (nw) Miodrag Milanovic2016-07-011-30/+29
|
* Polymorphize layout_element::component (nw) AJR2016-06-301-657/+695
|
* Cleanups and version bumpmame0173 Miodrag Milanovic2016-04-271-7/+7
|
* Various cleanups suggested by static analyzer (nw) Miodrag Milanovic2016-04-241-1/+1
|
* Iterate over devices C++11 style AJR2016-04-181-12/+11
| | | | | | Replace the old device_iterator and its specialized versions with functionally equivalent classes that use standard operators to yield references to devices/interfaces rather than pointers. With range-based for loops, they no longer have to be stored in named variables, though they can also be reused concurrently since the iteration state is now maintained by a subclass. Add a few more typical getters to device_t::subdevice_list.
* screen: POC||GTFO of svg rendering from inside the rom. [O. Galibert] Olivier Galibert2016-04-041-0/+2
| | | | | | | | It's damn slow, ~50ms/frame on cdkong. Caching and/or hw accel will solve that easily. It doesn't look very good, nanosvg need better anti-aliasing. It also doesn't do texturing very well and images not at all, so some of our current svgs won't look good. But all that's fixable.
* Merge pull request #772 from ajrhacker/auto_iterator Miodrag Milanović2016-03-311-39/+43
|\ | | | | Iterate over core classes C++11 style [ARJ]
| * Iterate over core classes C++11 style AJR2016-03-311-39/+43
| | | | | | | | | | | | | | | | C++11 range-based for loops can now iterate over simple_list, tagged_list, core_options, device_t::subdevice_list, device_t::interface_list, render_primitive_list and all subclasses of the above, and much code has been refactored to use them. Most core classes that have these lists as members now have methods that return the lists themselves, replacing most of the methods that returned the object at an owned list's head. (A few have been retained due to their use in drivers or OSD.) device_t now manages subdevice and interface lists through subclasses, but has given up the work of adding and removing subdevices to machine_config. memory_manager has its tagged lists exposed, though the old rooted tag lookup methods have been removed (they were privatized already).
* | borrow string processing code from ui.cpp so that £ works in layouts (using ↵ David Haywood2016-03-311-11/+44
|/ | | | | | UTF-8 encoding at least) [David Haywood] updated sc4fd7tha.lay with UTF8 encoding of £ sign [Krick]
* Cleanups and version bump Miodrag Milanovic2016-03-301-1/+1
|
* moved emu/ui/util render_load_jpeg to emu/rendutil hap2016-03-271-1/+5
| | | | This also adds simple support for loading JPG in external artwork
* modernize output_manager (nw) Miodrag Milanovic2016-01-101-2/+2
|
* clang-modernize part 1 (nw) Miodrag Milanovic2015-12-031-63/+63
|
* Initial conversion of core to C++14. Note that compilers are now limited to ↵ Miodrag Milanovic2015-12-031-2/+2
| | | | GCC 4.9.0 and up, Clang 3.4.0 and up, and VS2013 and up [Miodrag Milanovic]
* Fixed some suggestions by ReSharper C++ (nw) Miodrag Milanovic2015-11-141-3/+3
|
* Some cleanups and init fixes with help of ReSharper C++ (nw) Miodrag Milanovic2015-11-111-3/+1
|
* Rename *.c -> *.cpp in our source (nw) Miodrag Milanovic2015-11-081-0/+2493