summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/render.h
Commit message (Collapse)AuthorAgeFilesLines
* -render: Added optional per-frame update support to layout elements. [Ryan ↵rendlay_vid mooglyguy2020-06-271-3/+11
| | | | Holtz]
* -render, aviio: Added basic uncompressed Y42B support. [Ryan Holtz] Ryan Holtz2020-06-261-4/+6
|
* -rendlay: Added basic video element support. [Ryan Holtz] Ryan Holtz2020-06-251-0/+1
|
* ui: only warn about external artwork when it wasn't loaded (nw) hap2020-06-131-0/+2
|
* use C++ library includes (nw) firewave2020-01-221-1/+1
|
* Clean up render_screen_list code, replacing simple_list with std::list (nw) AJR2019-11-241-47/+4
|
* srcclean (nw) Vas Crabb2019-10-261-1/+1
|
* -bgfx: Do texture format conversion via a full-screen GPU pass. [Ryan Holtz] MooglyGuy2019-10-131-2/+3
|
* MT07379: better automatic group bounds behaviour Vas Crabb2019-08-201-0/+1
|
* render: more caching gone wrong (nw) Vas Crabb2019-07-061-1/+1
|
* Make layout format more flexible: Vas Crabb2019-07-061-71/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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-0/+2
| | | | | | | | | | | | | 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-2/+0
| | | | | This reverts commit c24473ddff715ecec2e258a6eb38960cf8c8e98e, reversing changes made to 009cba4fb8102102168ef32870892438327f3705.
* hh_tms1k: added switches to simon layout, added buttons to zodiac layout, ↵ hap2019-03-231-0/+1
| | | | changed inputs to sliders in alphie (nw)
* layout: added "inputraw" parameter, for use with inputtag and inputmask. It ↵ hap2019-03-231-0/+1
| | | | 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)
* fixup (nw) Vas Crabb2018-08-271-5/+5
|
* -bgfx: Improved rendering with artwork by 5-10x or more. [Ryan Holtz] mooglyguy2018-08-271-4/+7
|
* (nw) Further layout work: Vas Crabb2018-08-021-4/+11
| | | | | | | | * 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
* allow repeating elements and groups - useful if you need e.g. a lot of ↵ Vas Crabb2018-07-221-0/+11
| | | | 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-83/+98
| | | | predefined variables
* Allow per-device internal layouts and remove some more MCFG_ macros. Vas Crabb2018-07-161-6/+8
| | | | | | | | | | | 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.
* better handling for arbitrary numbers of screens (nw) Vas Crabb2018-03-121-0/+6
|
* Generate layouts for systems with three or more screens Vas Crabb2017-09-291-0/+1
|
* get rid of string hashes when fetching output values in layout rendering, too Vas Crabb2017-07-301-1/+2
|
* Add support for layout item groups, replace simple_list with more Vas Crabb2017-07-291-46/+109
| | | | | | | | | | | | | 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-224/+23
| | | | into rendlay.cpp
* convenience macro for enum bitwise operators (nw) Vas Crabb2017-07-221-1/+1
|
* general cleanup: Vas Crabb2017-05-231-13/+1
| | | | | | | | | | | * move rarely-used output and pty interfaces out of emu.h * consolidate and de-duplicate forward declarations, also remove some obsolete ones * clean up more #include guard macros * scope down a few more things (nw) Everyone, please keep forward declarations for src/emu in src/emu/emufwd.h - this will make it far easier to keep them in sync with declarations than having them scattered through all the other files.
* Fix obvious bugs found by GCC 7.1 (nw) Miodrag Milanovic2017-05-151-1/+1
|
* Self-registering devices prep: Vas Crabb2017-02-271-1/+1
| | | | | | | | | | | | | | * Make device_creator a variable template and get rid of the ampersands * Remove screen.h and speaker.h from emu.h and add where necessary * Centralise instantiations of screen and speaker finder templates * Add/standardise #include guards in many hearers * Remove many redundant #includes * Order #includesr to help catch headers that can't be #included alone (nw) This changes #include order to be prefix, unit header if applicable then other stuff roughly in order from most dependent to least dependent library. This helps catch headers that don't #include things that they use.
* Remove emu.h from headers (nw) Olivier Galibert2017-02-111-1/+0
| | | | | | | | | | | | Per Vas' request. If the compile fails for you (i'm thinking osx and windows native debuggers here in particular), add '#include "emu.h"' as first include of the cpp files that fail. Due to our use of precompilation and forced inclusion, emu.h must be included as the very first non-comment thing we do if we want to be sure msvc compiles are identical to gcc/clang ones. Doing it directly instead of through an include increases the correctness probability by a magnitude.
* XML refactoring: Vas Crabb2016-12-111-26/+26
| | | | | | | * 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-79/+79
| | | | | | | | | | | | * 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
* Fix Visual Studio build (nw) Miodrag Milanovic2016-11-161-1/+1
|
* Turn xmlfile API into something that looks like C++ Vas Crabb2016-11-171-22/+22
| | | | It's still a bit quirky but it's far better encapsulated before, and it plays nice with const (nw)
* NOTICE (TYPE NAME CONSOLIDATION) Miodrag Milanovic2016-10-221-66/+66
| | | | | 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
* Fixed OSX build as suggested by ajrhacker Jezze2016-09-281-4/+4
| | | | * use fabsf rather than abs for float->float
* Fixed several small issues in HLSL/BGFX Jezze2016-09-281-5/+8
| | | | | | * fixed target texture dimension when -intoverscan is used (this fixes the appereance of scanline and shadow mask) * added target_scale and screen_count uniforms * rounded corners now remain aligned with screen bounds when -intoverscan is used (single screen only)
* More cleanup on the back of Osso's fix for ↵ Vas Crabb2016-08-301-0/+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.
* Implement new option -autostretchxy, to automatically apply Antonio Giner2016-08-271-0/+1
| | | | -unevenstretchx or -unevenstretchy based on source native orientation.
* Implement new option -unevenstretchy (complementary to -unevenstretchx) Antonio Giner2016-08-271-0/+1
|
* Use std::map for mapping XML tag name to layout component creation function ↵ Vas Crabb2016-07-021-13/+33
| | | | | | - 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-6/+1
|
* Polymorphize layout_element::component (nw) AJR2016-06-301-45/+210
|
* Fixed MT06222 ImJezze2016-05-281-1/+1
| | | | - fixed offset of vector lines and clipping rectangle when vector primitives are prepared to be rendered into a texture (HLSL) instead of directly on the screen (GDI, D3D)
* Implemented handling for u_screen_scale and u_screen_offset (nw) ImJezze2016-04-211-3/+3
|
* Make OSDs return ui_menu_item lists, not slider_state lists therealmogminer@gmail.com2016-04-101-2/+3
|
* Add includes for dependency documentation. (nw) couriersud2016-04-091-0/+1
|
* Fix SDL compile on linux. Took the opportunity to remove a number of couriersud2016-04-081-0/+1
| | | | | "emu.h" includes from src/osd/modules/render/bgfx code. There is still a conflict between mame memory.h and bgfx memory.h to be resolved.
* Fix keepaspect & unevenstretch toggles in SDL OSD Antonio Giner2016-04-071-0/+2
|