summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/screen.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* -screen.cpp: Added a devcb for easier hooking of the scanline timer. [Ryan ↵ mooglyguy2018-11-171-5/+11
| | | | | | Holtz] -zerozone, zexall, zr107, zrt80, zt8802, zwackery, zx: Removed MACHINE_CONFIG_START/_END. [Ryan Holtz]
* luaengine: Added pixel(x,y) function. [Ryan Holtz] mooglyguy2018-11-041-0/+90
|
* -bgfx: Improved rendering with artwork by 5-10x or more. [Ryan Holtz] mooglyguy2018-08-261-2/+2
|
* divideo: Fetch screen to be potentially configured during ↵ AJR2018-08-211-8/+22
| | | | | | | | | | device_config_complete (nw) - Allow device finder to be used as an argument for set_screen (nw) screen: Calculate physical aspect ratio whenever required, not in device_config_complete, since the renderer caches the result anyway (nw) cdp1861, cdp1864: Eliminate the "magic reference" constructors, doing their work in device_config_complete instead (nw)
* ignore SVG dimensions, like we always did (nw) Vas Crabb2018-07-281-4/+9
|
* make rectangle work better with constexpr, change many things to use ↵ Vas Crabb2018-07-281-48/+41
| | | | designated getters/setters (nw)
* Better support for screen orientation/geometry: Vas Crabb2018-07-261-45/+86
| | | | | | | | | | | | | | | | | | | | | * 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.
* fixup, improve validation (nw) Vas Crabb2018-06-011-8/+7
|
* svis_snd cleanups, nw mooglyguy2018-06-011-26/+7
|
* Address performance concerns with previous change to screen.h/.cpp, nw mooglyguy2018-03-111-2/+4
|
* Remove all uses of first_screen() from core files, nw Ryan Holtz2018-03-111-2/+2
|
* destaticify initializations (nw) (#3289) wilbertpol2018-03-041-153/+0
| | | | | | * destaticify initializations (nw) * fix this->set_screen (nw)
* binding reference to nullptr is bad, mkay? (nw) Vas Crabb2018-01-061-8/+9
|
* Various palette and screen improvements (nw) AJR2017-11-131-28/+33
| | | | | - Use device_resolve_objects to remove the need for resolve_palette - Palette format no longer depends on configuration of first screen
* png: make it not leak memory by default, and look a but more like C++ Vas Crabb2017-08-131-7/+3
|
* general cleanup: Vas Crabb2017-05-231-20/+20
| | | | | | | | | | | * 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.
* Move static data out of devices into the device types. This is a ↵ Vas Crabb2017-05-141-6/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | significant change, so please pay attention. The core changes are: * Short name, full name and source file are no longer members of device_t, they are part of the device type * MACHINE_COFIG_START no longer needs a driver class * MACHINE_CONFIG_DERIVED_CLASS is no longer necessary * Specify the state class you want in the GAME/COMP/CONS line * The compiler will work out the base class where the driver init member is declared * There is one static device type object per driver rather than one per machine configuration Use DECLARE_DEVICE_TYPE or DECLARE_DEVICE_TYPE_NS to declare device type. * DECLARE_DEVICE_TYPE forward-declares teh device type and class, and declares extern object finders. * DECLARE_DEVICE_TYPE_NS is for devices classes in namespaces - it doesn't forward-declare the device type. Use DEFINE_DEVICE_TYPE or DEFINE_DEVICE_TYPE_NS to define device types. * These macros declare storage for the static data, and instantiate the device type and device finder templates. The rest of the changes are mostly just moving stuff out of headers that shouldn't be there, renaming stuff for consistency, and scoping stuff down where appropriate. Things I've actually messed with substantially: * More descriptive names for a lot of devices * Untangled the fantasy sound from the driver state, which necessitates breaking up sound/flip writes * Changed DECO BSMT2000 ready callback into a device delegate * Untangled Microprose 3D noise from driver state * Used object finders for CoCo multipak, KC85 D002, and Irem sound subdevices * Started to get TI-99 stuff out of the TI-990 directory and arrange bus devices properly * Started to break out common parts of Samsung ARM SoC devices * Turned some of FM, SID, SCSP DSP, EPIC12 and Voodoo cores into something resmbling C++ * Tried to make Z180 table allocation/setup a bit safer * Converted generic keyboard/terminal to not use WRITE8 - space/offset aren't relevant * Dynamically allocate generic terminal buffer so derived devices (e.g. teleprinter) can specify size * Imporved encapsulation of Z80DART channels * Refactored the SPC7110 bit table generator loop to make it more readable * Added wrappers for SNES PPU operations so members can be made protected * Factored out some boilerplate for YM chips with PSG * toaplan2 gfx * stic/intv resolution * Video System video * Out Run/Y-board sprite alignment * GIC video hookup * Amstrad CPC ROM box members * IQ151 ROM cart region * MSX cart IRQ callback resolution time * SMS passthrough control devices starting subslots I've smoke-tested several drivers, but I've probably missed something. Things I've missed will likely blow up spectacularly with failure to bind errors and the like. Let me know if there's more subtle breakage (could have happened in FM or Voodoo). And can everyone please, please try to keep stuff clean. In particular, please stop polluting the global namespace. Keep things out of headers that don't need to be there, and use things that can be scoped down rather than macros. It feels like an uphill battle trying to get this stuff under control while more of it's added.
* New device interface for palettes AJR2017-04-061-6/+43
| | | | | | - Create device_palette_interface, which takes over most functionality from palette_device except for the initialization/decoding routines and RAM interface. - Update screen_device and device_gfx_interface to use a device_palette_interface object rather than a palette_device. This necessitates slight alterations to a few drivers and devices. - Modify v9938 and v9958 to use the new device_palette_interface rather than a subdevice. This entails breaking a cyclic dependency between device_video_interface and screen_device for this case.
* isa8_device: Provide proper unitmask for address spaces of any data width (nw) AJR2017-03-301-3/+6
| | | | screen_device: Guard against assert failure on partial updates starting from incomplete first line (nw)
* Convert screen_device VBLANK callback to devcb_write_line AJR2017-03-101-16/+4
| | | | | | - WRITE_LINE callback has same functionality, except that screen is not an argument - Rename screen_eof_xxx to screen_vblank_xxx in many drivers - No changes to externally registered vblank delegates or screen update methods
* Self-registering devices prep: Vas Crabb2017-02-271-1/+4
| | | | | | | | | | | | | | * 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.
* Introduce u8/u16/u32/u64/s8/s16/s32/s64 Vas Crabb2016-11-191-59/+59
| | | | | | | | | | | | * 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
* Revert "Added IS_ENABLED, so we have compiler check for non used part, it is ↵ Miodrag Milanovic2016-11-121-1/+1
| | | | | | 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-1/+1
| | | | | | but not compiled in (nw) false and true now used instead of integer where used as bool
* Reverting part of changes from previous commits as described in mail on list ↵ Miodrag Milanovic2016-10-231-1/+1
| | | | (nw)
* there you go (nw) Miodrag Milanovic2016-10-221-1/+1
|
* NOTICE (TYPE NAME CONSOLIDATION) Miodrag Milanovic2016-10-221-59/+59
| | | | | 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 std algo instead of manual setting (nw) Miodrag Milanovic2016-10-211-3/+1
|
* some bool <-> int not needed conversions, also cleaned drivenum.* was using ↵ Miodrag Milanovic2016-10-211-1/+1
| | | | memset for clearing vector (nw)
* More prep for removing pointer/reference duality (nw) Vas Crabb2016-08-271-1/+1
|
* for bool type use true and false (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-4/+4
| | | | to inline functions (nw)
* simple_list to vector in screen (nw) Miodrag Milanovic2016-06-191-10/+10
|
* ... and analog noise being generated like ass (nw) Angelo Salese2016-06-171-0/+1
|
* Cleanups and version bumpmame0174 Miodrag Milanovic2016-05-251-12/+12
|
* hh*: reduce svg screen size from 4K to 1080p, this gets rid of framerate ↵ hap2016-05-021-2/+2
| | | | hiccup at start for me
* screen.cpp: only log at start the message about deprecated vblank etabeta782016-05-011-3/+2
| | | | | to avoid spamming logerror debugger window at each frame, which makes debugging quite hard ;) . nw.
* hh_hmcs40/ucom4: increased screensize hap2016-04-271-1/+1
|
* svg artwork: now that caching is done, we can increase screensize without ↵ hap2016-04-271-0/+17
| | | | worrying about a speed hit
* screen: Add svg shapes pre-computation [O. Galibert] Olivier Galibert2016-04-271-37/+417
|
* Various cleanups suggested by static analyzer (nw) Miodrag Milanovic2016-04-241-1/+1
|
* Split UI and frontend part from core [Miodrag Milanovic] Miodrag Milanovic2016-04-231-1/+1
|
* screen: Fix alpha handling, cdkong looks good now [O. Galibert] Olivier Galibert2016-04-141-0/+9
|
* screen: POC||GTFO of svg rendering from inside the rom. [O. Galibert] Olivier Galibert2016-04-041-8/+141
| | | | | | | | 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.
* Iterate over core classes C++11 style AJR2016-03-311-13/+11
| | | | | | | | 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).
* Make osd_file a polymorphic class that's held with smart pointers Vas Crabb2016-03-141-2/+2
| | | | | | | | | | | | | | | Make avi_file a class that's held with smart pointers, encapsulate various AVI I/O structures Make zip_file and _7z_file classes rather than having free functions everywhere Hide zip/7z class implementation behind an interface, no longer need to call close() to send back to the cache Don't dump as much crap in global namespace Add solaris PTY implementation Improve variable expansion for SDL OSD - supports ~/$FOO/${BAR} syntax Rearrange stuff so the same things are in file module for all OSDs Move file stuff into its own module 7z/zip open and destruct are still not thread-safe due to lack of interlocks around cache access Directory functions still need to be moved to file module SDL OSD may not initialise WinSock on Windows
* Add support to adjust the screen color Dirk Best2016-03-121-0/+13
| | | | This is now used for monochrome screens instead of creating custom palettes.
* reverting: Miodrag Milanovic2016-01-201-5/+5
| | | | | | | SHA-1: 1f90ceab075c4869298e963bf0a14a0aac2f1caa * tags are now strings (nw) fix start project for custom builds in Visual Studio (nw)
* Revert "Fix for hang, emu_options::add_slot_options was changed, other ↵ Miodrag Milanovic2016-01-201-1/+1
| | | | | | things are just cleanup (nw)" This reverts commit 841a55985e60a16f745422fb9aa06c420d8be8ba.
* Fix for hang, emu_options::add_slot_options was changed, other things are ↵ Miodrag Milanovic2016-01-181-1/+1
| | | | just cleanup (nw)