summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/screen.c
Commit message (Collapse)AuthorAgeFilesLines
* Rename *.c -> *.cpp in our source (nw) Miodrag Milanovic2015-11-081-1184/+0
|
* scanline partial updates checkpoint (nw) arbee2015-10-241-12/+114
| | | | This isn't working right yet with my test case, but I'm fairly certain the actual core part is generally correct, just the Apple II video rendering and/or floating-bus reading isn't quite right.
* Revert "Make screen rotation to be per-screen attribute (nw)" Miodrag Milanovic2015-10-121-15/+0
| | | | This reverts commit 63844e14f5dca4098937e5895194d8199f9d9780.
* Revert "fixed commented validation to show all cases (nw)" Miodrag Milanovic2015-10-121-1/+1
| | | | This reverts commit feef4e980ecc5d2d08cd9c40d1e6f081896fc786.
* fixed commented validation to show all cases (nw) Miodrag Milanovic2015-10-091-1/+1
|
* Make screen rotation to be per-screen attribute (nw) Miodrag Milanovic2015-10-091-0/+15
| | | | commented validation used to compare it to existing rotation flags
* screen: add an adjustable global brightness Dirk Best2015-08-051-1/+18
|
* Fix compile angelosa2015-07-071-1/+1
|
* I'm sick of seeing MCFG_SCREEN_VBLANK_TIME ... angelosa2015-07-071-0/+3
| | | | | | ... It's an AIDS-inducting blantant hack, and it roots from 199x original MAME design. (in pull request just because it needs compiling and testing)
* moved all to std::string (nw) Miodrag Milanovic2015-04-221-4/+4
|
* There is no implicit conversion to char* in std::string (nw) Miodrag Milanovic2015-04-121-1/+1
|
* cstr() - > c_str() as preparation for move to std::string (nw) Miodrag Milanovic2015-04-111-1/+1
|
* Partially revert r30524 screen.c changes; bring back the separate timer for ↵ Alex W. Jackson2014-05-251-7/+32
| | | | resetting partial updates, but ensure that the vblank timer and the partial-update-reset timer always fire in the correct order when vblank starts on scanline 0 [Alex Jackson]
* screen.c: remove redundant checks from update_partial() (nw) Alex W. Jackson2014-05-201-36/+23
|
* Call reset_partial_updates() at the end of vblank instead of at the end Dirk Best2014-05-191-5/+21
| | | | of the visible display. Fix an issue in screen->configure() to always recalculate the vblank timing on screen changes.
* Amiga: Support PAL/NTSC switch for machines equipped with an ECS Agnus Dirk Best2014-05-181-21/+3
| | | | | | | | | | | | chip or better. Core changes: - Save screen pixelclock. - Call reset_partial_updates() in finish_screen_updates() instead of creating an extra timer for it. This prevents calling reset_partial_updates() after finishing the screen, causes issues when screens change their size to a size lower than the current screen. - Optimization: Support calling vblank_begin() directly at the start of a frame instead of using a timer.
* Moved eminline and related files into /src/osd since it's system related (nw) Miodrag Milanovic2014-04-161-7/+7
| | | | | | | | Moved delegates into /src/lib/util to enable usage of delegates in other project parts Moved mame_printf_* calls into /src/osd/osdcore.c and renamed them to osd_printf_* Changed mess.mak to display compilation of ymmu100.ppm nicely
* Cleanups and version bumpmame0153 Miodrag Milanovic2014-04-071-4/+4
|
* primary_screen -> first_screen() (nw) Miodrag Milanovic2014-03-151-2/+2
|
* Made palette settings for screen explicit and mandatory for ind16 mode (nw) Miodrag Milanovic2014-03-141-24/+8
|
* Video attributes are now per screen (nw) Miodrag Milanovic2014-03-061-6/+17
|
* some mess regression fixes (nw) Miodrag Milanovic2014-02-281-0/+2
|
* Huge update, palette is now device (nw) Miodrag Milanovic2014-02-271-2/+45
| | | note: Aaron please give more descriptive text for release log I have no more strength :)
* Revert changes committed by accident. Couriersud2014-02-261-983/+2
|
* Don't allocate gigs in -listxml please (nw) Olivier Galibert2014-02-261-1/+1
|
* Minor cosmetic changes for netlist Couriersud2014-02-261-2/+983
|
* Switched rgb_t to a class, replacing macros with methods. Mappings are Aaron Giles2014-02-191-4/+4
| | | | | | | | | | | | | | | | | | | as follows: MAKE_RGB(r,g,b) == rgb_t(r,g,b) MAKE_ARGB(a,r,g,b) == rgb_t(a,r,g,b) RGB_ALPHA(data) == data.a() RGB_RED(data) == data.r() RGB_GREEN(data) == data.g() RGB_BLUE(data) == data.b() RGB_BLACK == rgb_t::black RGB_WHITE == rgb_t::white Implicit conversions to/from UINT32 are built in as well as simple addition, subtraction, and scaling (with clamping). As a result of being a class, some stricter typing was needed in a few places but overall not too much.
* Converted palette_t and palette_client to classes. General palette.c Aaron Giles2014-02-181-1/+1
| | | | cleanup.
* Bulk convert files that already had standard BSD license in my name Aaron Giles2013-10-161-31/+2
| | | | to new license tagged form.
* Fix long-standing architectural wart: the priority bitmap is no longer owned Aaron Giles2013-07-261-0/+1
| | | | | | | | | | | | | | | | | | by the tilemap system, and no longer exists globally in the machine. Instead it is allocated per-screen for all systems. This has several side-effects: 1. Previously, the pdrawgfx* functions were already changed to take the priority bitmap as a parameter. Now all other hand-crafted functions that mess with the priority bitmap generally must do so as well, and have been updated. 2. Calls to the tilemap system now need to provide a screen_device. This is not just for the priority_bitmap, but also for screen flipping, which previously always assumed the "primary screen" when doing flipping calculations. 3. All devices that implemented tilemap-like functionality have been updated to follow the same pattern, since they largely tend to call through to the core tilemap system at some point.
* moved some legacy stuff from screen.h to scrlegcy.h (nw) Oliver Stöneberg2013-07-161-1/+1
|
* Move Atari drivers to using ioport callbacks for sound communication Aaron Giles2013-07-151-11/+0
| | | | | stuff. Added HBLANK to standard screen ports. Consolidated duplicate functions (will need another full rebuild, I think).
* removed unnecessary (and bogus) setting of a variable in ↵ Oliver Stöneberg2013-06-261-1/+0
| | | | screen_device::update_partial() (nw)
* changed rest of devices (except cpu cores) to have shortname and sourcefile (nw) Miodrag Milanovic2013-06-211-1/+1
|
* attempt to fix burnin (MT #05173). nw. Fabio Priuli2013-03-231-1/+1
|
* Cleanups and version bumpmame0148 Miodrag Milanovic2013-01-111-40/+40
|
* 01234567890123456789012345678901234567890123456789012345678901234567890123456789 Ryan Holtz2012-12-291-1/+5
| | | | | | | hlsl: Added bounds-checking on presets. [MooglyGuy] hlsl: Cleaned up render target management. May provide better behavior in games that use multiple resolutions, e.g. tekken3 and stv. [MooglyGuy]
* Revert some changes committed by accident. No WN. Couriersud2012-05-261-976/+2
|
* Fix compile again - omitted a file, no WN Couriersud2012-05-261-2/+976
|
* Fix for PORT_VBLANK multi bit (no whatsnew) Miodrag Milanovic2012-05-161-1/+1
|
* Clean-ups and version bumpmame0145u8 Miodrag Milanovic2012-05-071-1/+1
|
* ioport.c C++ conversion. Mostly internal changes, with no Aaron Giles2012-05-031-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | intended differences from previous behavior. For drivers, the main change is that input_port_read() no longer exists. Instead, the port must be fetched from the appropriate device, and then read() is called. For member functions, this is actually simpler/cleaner: value = ioport("tag")->read() For legacy functions which have a driver_data state, it goes: value = state->ioport("tag")->read() For other legacy functions, they need to fetch the root device: value = machine.root_device().ioport("tag")->read() The other big change for drivers is that IPT_VBLANK is gone. Instead, it has been replaced by a device line callback on the screen device. There's a new macro PORT_VBLANK("tag") which automatically points things to the right spot. Here's a set of imperfect search & replace strings to convert the input_port_read calls and fix up IPT_VBLANK: input_port_read( *\( *)(machine\(\)) *, *([^)]+ *\)) ioport\1\3->read\(\) input_port_read( *\( *)(.*machine[()]*) *, *([^)]+ *\)) \2\.root_device\(\)\.ioport\1\3->read\(\) (state = .*driver_data[^}]+)space->machine\(\)\.root_device\(\)\. \1state-> (state = .*driver_data[^}]+)device->machine\(\)\.root_device\(\)\. \1state-> input_port_read_safe( *\( *)(machine\(\)) *, *([^,]+), *([^)]+\)) ioport\1\3->read_safe\(\4\) IPT_VBLANK( *\)) IPT_CUSTOM\1 PORT_VBLANK("screen")
* Changed device->subregion to device->memregion. Moved Aaron Giles2012-04-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | memory_region management into the memory manager instead of directly in the machine. Hid the global region method; now all regions must be looked up relative to a device. If you're a member function, you can just use memregion("tag") directly. If you're a global function or a device referencing global regions, use machine().root_device().memregion("tag") to look up regions relative to the root. S&R to convert all references: machine([()]*)\.region machine\1\.root_device\(\).subregion Then remove redundant machine().root_device() within src/mame: ([ \t])machine\(\)\.root_device\(\)\. \1 And use state->memregion() if we have a state variable present: (state *= *[^;]+driver_data[^}]+)([^ \t]*)machine[()]*\.root_device\(\)\. \1state-> Finally some cleanup: screen.state-> state-> device->state-> state-> space->state-> state-> And a few hand-tweaks.
* Clean-ups and version bumpmame0144u7 Angelo Salese2012-01-291-3/+3
|
* MT04633 - permit visarea to exceed width/height, and allocate Aaron Giles2012-01-251-1/+8
| | | | screen bitmaps based on the larger of the two.
* Move screen update to happen prior to calling the vblank callbacks. Aaron Giles2012-01-251-4/+4
| | | | | | Solves MT04639 and probably a lot more issues. In fact, most of hap's recent changes to handling things on the falling edge are unnecessary now.
* Move devices into a proper hierarchy and handle naming Aaron Giles2012-01-241-21/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | and paths consistently for devices, I/O ports, memory regions, memory banks, and memory shares. [Aaron Giles] NOTE: there are likely regressions lurking here, mostly due to devices not being properly found. I have temporarily added more logging to -verbose to help understand what's going on. Please let me know ASAP if anything that is being actively worked on got broken. As before, the driver device is the root device and all other devices are owned by it. Previously all devices were kept in a single master list, and the hierarchy was purely logical. With this change, each device owns its own list of subdevices, and the hierarchy is explicitly manifest. This means when a device is removed, all of its subdevices are automatically removed as well. A side effect of this is that walking the device list is no longer simple. To address this, a new set of iterator classes is provided, which walks the device tree in a depth first manner. There is a general device_iterator class for walking all devices, plus templates for a device_type_iterator and a device_interface_iterator which are used to build iterators for identifying only devices of a given type or with a given interface. Typedefs for commonly-used cases (e.g., screen_device_iterator, memory_interface_iterator) are provided. Iterators can also provide counts, and can perform indexed lookups. All device name lookups are now done relative to another device. The maching_config and running_machine classes now have a root_device() method to get the root of the hierarchy. The existing machine->device("name") is now equivalent to machine->root_device().subdevice("name"). A proper and normalized device path structure is now supported. Device names that start with a colon are treated as absolute paths from the root device. Device names can also use a caret (^) to refer to the owning device. Querying the device's tag() returns the device's full path from the root. A new method basetag() returns just the final tag. The new pathing system is built on top of the device_t::subtag() method, so anyone using that will automatically support the new pathing rules. Each device has its own internal map to cache successful lookups so that subsequent lookups should be very fast. Updated every place I could find that referenced devices, memory regions, I/O ports, memory banks and memory shares to leverage subtag/subdevice (or siblingtag/siblingdevice which are built on top). Removed the device_list class, as it doesn't apply any more. Moved some of its methods into running_machine instead. Simplified the device callback system since the new pathing can describe all of the special-case devices that were previously handled manually. Changed the core output function callbacks to be delegates. Completely rewrote the validity checking mechanism. The validity checker is now a proper C++ class, and temporarily takes over the error and warning outputs. All errors and warnings are collected during a session, and then output in a consistent manner, with an explicit driver and source file listed for each one, as well as additional device and/or I/O port contexts where appropriate. Validity checkers should no longer explicitly output this information, just the error, assuming that the context is provided. Rewrote the software_list_device as a modern device, getting rid of the software_list_config abstraction and simplifying things. Changed the way FLAC compiles so that it works like other external libraries, and also compiles successfully for MSVC builds.
* Fix several rendering issues with artwork, introduced in the Aaron Giles2012-01-161-10/+4
| | | | | | | recent changes. Also, did a pass through the code to take advantage of new methods available on rectangles.
* Clean-ups and version bumpmame0144u6 Angelo Salese2012-01-151-10/+10
|
* Added new method screen_device::register_screen_bitmap which Aaron Giles2012-01-151-45/+32
| | | | | | | | | | | | | allocates a given bitmap to match the screen size and resizes it as appropriate when the screen size changes. Updated all the obvious spots in the code where this could be leveraged. Move allocate/resize methods in the bitmap classes down into bitmap_t because they no longer have any dependency on the bitmap format or type. Ensured that the bitmap's palette remains set across a resize call (it is lost doing an allocate).