summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/render.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Add support for layout item groups, replace simple_list with more Vas Crabb2017-07-291-33/+36
| | | | | | | | | | | | | 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.
* Move unemulated/imperfect flags from machines into devices. Vas Crabb2017-07-271-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Right now, flags for unemulated/imperfect features apply at system level. This falls over quickly with systems that have slot devices. For example you can plug in a broken sound card or keyboard on a PC or Amiga driver and get no warnings. There's also no way to propagate these flags from a device to all systems using it. This changeset addresses these issues. It's now possible to report unemulated/imperfect features on a device level with static unemulated_feeatures() and imperfect_features() member functions. So far the only thing using this is the votrax device. To support front-ends, this is exposed in -listxml output as a new "feature" element that can appear in system/device descriptions. It has a "type" attribute indicating which feature it is, potentially a "status" attribute if the device itself declares that the feature is unemulated/imperfect, and potentially an "overall" attribute if the device inherits a more severe indication from a subdevice. The embedded DTD describes possible values. Example: device/machine declares imperfect sound: <feature type="sound" status="imperfect"/> Example: device/machine declares unemulated keyboard: <feature type="keyboard" status="unemulated"/> Example: device declares imperfect controls but inherits unemulated controls from a subdevice: <feature type="controls" status="imperfect" overall="unemulated"/> Example: device doesn't declare imperfect LAN but inherits it from a subdevice: <feature type="lan" overall="imperfect"/> It's still possible to add these flags to machines in the GAME/COMP/CONS macro. If the state class declares them with static member functions, the two sources will be combined. If you subclass a device, you inherit its flags if you don't redefine the relevant static member functions (no override qualifier is necessary since they're static). The UI has been updated to display appropriate warnings for the overall machine configuration, including selected slot devices, at launch time. The menus don't display overall status, only status for the machine itself. We can make it scan subdevices if we decide that's desirable, it just needs caching to enure we don't take a huge performance hit.
* * Make XML file a class of its own managed with smart poitners Vas Crabb2017-07-211-7/+8
| | | | * Save/restore a little more of Cocoa debugger state
* general cleanup: Vas Crabb2017-05-231-2/+2
| | | | | | | | | | | * 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.
* XML refactoring: Vas Crabb2016-12-111-16/+16
| | | | | | | * 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-47/+47
| | | | | | | | | | | | * 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-48/+48
| | | | It's still a bit quirky but it's far better encapsulated before, and it plays nice with const (nw)
* Do not use FUNC in delegate where applicable (nw) Miodrag Milanovic2016-11-061-1/+1
|
* Reverting part of changes from previous commits as described in mail on list ↵ Miodrag Milanovic2016-10-231-8/+8
| | | | (nw)
* there you go (nw) Miodrag Milanovic2016-10-221-2/+2
|
* more TRUE/FALSE cleanup (nw) Miodrag Milanovic2016-10-221-1/+1
|
* NOTICE (TYPE NAME CONSOLIDATION) Miodrag Milanovic2016-10-221-47/+47
| | | | | 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-1/+1
| | | | utf16_char, unicode_char (nw)
* some bool <-> int not needed conversions, also cleaned drivenum.* was using ↵ Miodrag Milanovic2016-10-211-8/+8
| | | | memset for clearing vector (nw)
* Fixed several small issues in HLSL/BGFX Jezze2016-09-281-9/+17
| | | | | | * 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)
* Consistently apply -intscalex to the long dimension of the target Antonio Giner2016-08-271-2/+4
| | | | monitor, and -intscaley to the short dimension.
* Implement new option -autostretchxy, to automatically apply Antonio Giner2016-08-271-6/+15
| | | | -unevenstretchx or -unevenstretchy based on source native orientation.
* Implement new option -unevenstretchy (complementary to -unevenstretchx) Antonio Giner2016-08-271-4/+9
|
* Change warning flags for Clang build (nw) AJR2016-08-251-2/+2
| | | | | | -Wno-missing-braces is unfortunately now necessary to avoid errors on almost every single use of the std::array initializer in devfind.h. (Apparently C++14 does make double braces optional for std::array initializers, but clang and GCC's -Wmissing-braces never took that into proper account, which is why GCC may still have it disabled by default.) Several other Clang-specific warnings have been undisabled; some might perhaps need to be locally reenabled if legacy 3rdparty code or sundry OSD includes happen to disagree with them. The only warning to require any code changes was -Wabsolute-value, which seems to have caught a minor render bug (and nothing more).
* reverted semantic changes of 161a08d Jezze2016-08-141-20/+2
|
* - intscalex, intscaley and unevenstretchx now consider the system ↵ Jezze2016-08-131-18/+27
| | | | orientation and screen rotation
* fix after pass through the diff Vas Crabb2016-08-011-2/+2
|
* win compile fix due to previous changes (nw) Miodrag Milanovic2016-07-311-2/+2
|
* fix linux compile (nw) Miodrag Milanovic2016-07-311-2/+2
|
* std::min and std:max instead of MIN and MAX, also some more macros converted ↵ Miodrag Milanovic2016-07-311-12/+12
| | | | to inline functions (nw)
* This part was not meant to be commited (nw) Miodrag Milanovic2016-07-231-7/+2
|
* prevent crashing (nw) Miodrag Milanovic2016-07-231-2/+9
|
* Prevent NaN errors by initializing variable in ui::text_layout (nw) AJR2016-06-181-0/+5
| | | | Use osd_printf_verbose instead of popmessage in ay8910 (too annoying even for debug build)
* Fixed MT06222 ImJezze2016-05-281-11/+38
| | | | - 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)
* plugins/layout: layout embedded script helper plugin [Carl] cracyc2016-04-271-0/+2
| | | | | | | | luaengine: callbacks for plugins (nw) rendlay: layout tag external handler support (nw) fidel_csc and mdndclab: example layout scripts (nw) -- Neither layout script is complete. The chess doesn't handle castling or en passant and the Dungeons and Dragons only does the walls.
* Various cleanups suggested by static analyzer (nw) Miodrag Milanovic2016-04-241-3/+3
|
* Split UI and frontend part from core [Miodrag Milanovic] Miodrag Milanovic2016-04-231-1/+1
|
* Implemented handling for u_screen_scale and u_screen_offset (nw) ImJezze2016-04-211-2/+2
|
* Cleanup (nw) Miodrag Milanovic2016-04-201-5/+5
|
* Iterate over devices C++11 style AJR2016-04-181-7/+9
| | | | | | 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.
* Added reasonable texcoord handling without known examples (nw) ImJezze2016-04-171-10/+10
|
* Fixed texture coordinates for vector screen quad (nw) ImJezze2016-04-161-1/+32
|
* Removed hacks for vector screens from shaders (nw) ImJezze2016-04-131-11/+26
| | | | | - added handling of texture coordinates for vector screens to core render - added handling of orientation/rotation for vector screens to D3D renderer
* Make overscan on integer scaled targets optional (add option -intoverscan). Antonio Giner2016-04-051-14/+17
|
* Conflict resolution (nw) AJR2016-03-311-9/+59
|\
| * Compressed internal layouts [David Haywood] Miodrag Milanovic2016-03-301-9/+59
| |
* | Iterate over core classes C++11 style AJR2016-03-311-84/+82
|/ | | | | | | | 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).
* Cleanups and version bump Miodrag Milanovic2016-03-301-2/+2
|
* Fix issue with ui aspect due to recent changes in -keepaspect Antonio Giner2016-03-251-1/+9
| | | | | This also makes sure ui aspect ratio is computed correctly even on rotated targets.
* Fix wrong aspect in snapshots due to rencent changes in -keepaspect Antonio Giner2016-03-221-1/+1
|
* Apply better factors on multiple-screen views Antonio Giner2016-03-211-22/+15
|
* Fix aspect on rotated games Antonio Giner2016-03-211-9/+13
|
* Move integer scaling implementation to render_target::compute_visible_area Antonio Giner2016-03-201-31/+85
| | | | | - Add core option -unevenstretch - Add core option -unevenstretchx
* Revert changes in layout view prior to rework of integer scaling Antonio Giner2016-03-191-11/+3
|
* Merge remote-tracking branch 'refs/remotes/mamedev/master' Antonio Giner2016-03-181-10/+20
|\