summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/rendlay.c
Commit message (Collapse)AuthorAgeFilesLines
* Rename *.c -> *.cpp in our source (nw) Miodrag Milanovic2015-11-081-2493/+0
|
* reduce tagmap lookups (nw) Wilbert Pol2015-07-311-4/+40
|
* blame balrog for this :) (NW) Cowering2015-07-081-2/+3
|
* Another round of -Wextra -Wdouble-promotion fixes. (nw) couriersud2015-05-201-25/+27
|
* moved all to std::string (nw) Miodrag Milanovic2015-04-221-9/+9
|
* removed bool conversion and implicit empty check (nw) Miodrag Milanovic2015-04-191-2/+2
|
* There is no implicit conversion to char* in std::string (nw) Miodrag Milanovic2015-04-121-12/+12
|
* cstr() - > c_str() as preparation for move to std::string (nw) Miodrag Milanovic2015-04-111-2/+2
|
* Cleanups and version bumpmame0157 Miodrag Milanovic2014-12-311-1787/+1787
|
* Rename led8seg to led8seg{,_gts1} and CTYPE_LED8SEG{,_GTS1} as per hap's ↵ jbu2014-12-091-1789/+1789
| | | | request. (nw)
* Add CTYPE_LED8SEG to m_maxstate default setup (nw) jbu2014-12-091-1/+1
|
* bottom new segment was too short hap2014-12-061-5/+6
|
* Add led8seg (Futaba) and use in gts1.lay jbu2014-12-061-0/+64
|
* only normalize component bounds in layout_element::layout_element() when ↵ Oliver Stöneberg2014-10-231-12/+15
| | | | | | components exist (nw) avoids division by zero for sets using src/emu/layout/vertical.lay
* only calculate m_aspect and m_srcaspect in layout_view::recompute() when ↵ Oliver Stöneberg2014-10-211-4/+6
| | | | they are actually used (nw)
* Moved eminline and related files into /src/osd since it's system related (nw) Miodrag Milanovic2014-04-161-2/+2
| | | | | | | | 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-7/+7
|
* Added support for horizontal 'belt' reels which may be needed for future AWP ↵ James Wallace2014-04-021-27/+185
| | | | titles. To invoke, add an attribute "beltreel" to the reel element in the layout, and set it to 1. [J. Wallace]
* made MAME and MESS compile under VS2013, 32bit only for now (nw) Miodrag Milanovic2014-03-311-0/+10
| | | OG: please check things in H8 core, thing in timer16 can caused some issues in past
* Fixed OSX debugger and clang compile fix (nw) Wilbert Pol2014-03-111-1/+1
|
* Moved core template container classes up from emutempl.h to coretmpl.h: Aaron Giles2014-03-111-33/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [Aaron Giles] * these classes now no longer take a resource_pool; everything is managed globally -- this means that objects added to lists must be allocated with global_alloc * added new auto_pointer<> template which wraps a pointer and auto-frees it upon destruction; it also defaults to NULL so it doesn't need to be explicitly initialized * moved tagged_list template to tagmap.h Redo of the low-level memory tracking system: [Aaron Giles] * moved low-level tracking out of emu\emualloc into lib\util\corealloc so it can be shared among all components and used by core libraries * global_alloc and friends no longer use a resource pool to track allocations; turns out this was a wholly redundant system that wasted a lot of memory * removed global_resource_pool entirely * added global_free_array to delete arrays allocated with global_alloc_array * added tracking of object versus array allocation; we will now error if you use global_free on an array, or global_free_array on an object Added new utility helper const_string_pool which can be used to efficiently accumulate strings that are not intended to be modified. Used by updated makelist and software list code. [Aaron Giles] Updated png2bdc and makelist tools to not leak memory and use more modern techniques (no more MAX_DRIVERS in makelist, for example). [Aaron Giles] Deprecated auto_strdup and removed all uses by way of caller-managed astrings and the software list rewrite. [Aaron Giles] Rewrote software list management: [Aaron Giles] * removed the notion of a software_list that is separate from a software_list_device; they are one and the same now * moved several functions into device_image_interface since they really didn't belong in the core software list class * lots of simplification as a result of the above changes Additional notes (no whatsnew): Moved definition of FPTR to osdcomm.h. Some changes happened in the OSD code to fix issues, especially regarding freeing arrays. SDL folks may need to fix up some of these. The following devices still are using tokens and should be modernized (I found them because they kept their token as void * and tried to delete it, which you can't): namco_52xx_device (mame/audio/namco52.c) namco_54xx_device (mame/audio/namco54.c) namco_06xx_device (mame/machine/namco06.c) namco_50xx_device (mame/machine/namco50.c) namco_51xx_device (mame/machine/namco51.c) namco_53xx_device (mame/machine/namco53.c) voodoo_device (emu/video/voodoo.c) mos6581_device (emu/sound/mos6581.c) aica_device (emu/sound/aica.c) scsp_device (emu/sound/scsp.c) dmadac_sound_device (emu/sound/dmadac.c) s3c2440_device (emu/machine/s3c2440.c) wd1770_device (emu/machine/wd17xx.c) latch8_device (emu/machine/latch8.c) duart68681_device (emu/machine/68681.c) s3c2400_device (emu/machine/s3c2400.c) s3c2410_device (emu/machine/s3c2410.c) strataflash_device (mess/machine/strata.c) hd63450_device (mess/machine/hd63450.c) tap_990_device (mess/machine/ti99/990_tap.c) omti8621_device (mess/machine/omti8621.c) vdt911_device (mess/video/911_vdt.c) apollo_graphics_15i (mess/video/apollo.c) asr733_device (mess/video/733_asr.c)
* added a few more missing \n in logging / cleanups (nw) Oliver Stöneberg2014-03-101-2/+2
|
* Another round of auto_alloc_array conversions. Aaron Giles2014-02-201-5/+2
| | | | | Some minor enhancements to dynamic_array, including clearing to specific values and expanding and clearing newly allocated values.
* Switched rgb_t to a class, replacing macros with methods. Mappings are Aaron Giles2014-02-191-42/+42
| | | | | | | | | | | | | | | | | | | 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.
* Moved src/emu/ui.? ==> src/emu/ui/ui.?, changed to follow MAME OOP ↵ Nathan Woods2014-01-291-1/+1
| | | | conventions; we now have a ui_manager class
* Bulk convert files that already had standard BSD license in my name Aaron Giles2013-10-161-31/+2
| | | | to new license tagged form.
* output of new srcclean changes that are relatively small [smf] smf-2013-01-111-4/+0
|
* Cleanups and version bumpmame0148 Miodrag Milanovic2013-01-111-42/+42
|
* removed unreachable code detected by cppcheck (nw) Oliver Stöneberg2012-12-251-1/+1
|
* got rid of generic color overlays, almost all of them were used by only 1 ↵ Michaël Banaan Ananas2012-10-141-11/+0
| | | | game each
* nevermind: yes, should make a triangle/poly primitive instead Michaël Banaan Ananas2012-10-101-10/+1
|
* better use yes/no instead of 1/0 Michaël Banaan Ananas2012-10-101-1/+1
|
* rendlay: added support for folding rects diagonally, allowing you to draw ↵ Michaël Banaan Ananas2012-10-101-1/+11
| | | | right-angled triangles (use <orientation> to flip/rotate them)
* so generic color overlays are supposed to go to emu/layout(?) Michaël Banaan Ananas2012-10-091-0/+1
|
* Since there is no clear way to determine if mouse should be shown or not, I ↵ Miodrag Milanovic2012-08-191-2/+0
| | | | am putting a new flag (no whatsnew)
* Added internal mouse cursor visible in menus and when clickable artwork is ↵ Miodrag Milanovic2012-08-151-0/+3
| | | | used [Miodrag Milanovic]
* added simple artwork for dendego games Michaël Banaan Ananas2012-07-111-11/+5
|
* Allow image loading outside of layout zip (no whatsnew) Miodrag Milanovic2012-05-221-1/+2
|
* Clean-ups and version bump Miodrag Milanovic2012-05-211-1/+1
|
* Finally done the last part of the dotmatrix changes, which is to create a ↵ Scott Stone2012-05-171-1/+11
| | | | dot by dot display mode. This makes the BFMDM01 emulation far more straightforward, and should mean that anyone wanting a matrix can call some combination of functions and make it work. [James Wallace]
* This is phase 2 of the DMD changes, creating a new '5 dot' element to make ↵ Scott Stone2012-05-131-9/+19
| | | | it more like the actual DM01 (which uses 5 by 7 blocks, but wires them up row wise to a buffer, giving an unusual '65 dot row') [James Wallace].
* Clean-ups and version bumpmame0145u8 Miodrag Milanovic2012-05-071-10/+10
|
* ioport.c C++ conversion. Mostly internal changes, with no Aaron Giles2012-05-031-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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")
* Added ability to add the graphics in the external drwho art file to the new ↵ Scott Stone2012-04-251-49/+150
| | | | reel structure. [David Haywood]
* Started adding support for scrolling reel displays, currently text Scott Stone2012-04-231-0/+148
| | | | | | | only, but should be pretty easy to get graphics in there and add different direction scrolling - updating sc4 code to use these new types. [David Haywood] Stepper display output fix [James Wallace]
* Refactored a few things related to reels and use of layouts allowing for ↵ Scott Stone2012-04-201-0/+26
| | | | | more function with less work [David Haywood] Comment: I need to check a few more things, see how bad performance gets if we force some elements to render each update rather than using cached bitmaps, the idea of ending up with up to 200,000 temporary bitmaps for each 16 segment LED with the existing code is quite frankly horrendous, but from what I understand it's entirely possible it could happen.
* add support for simple text alignment in layout files, defaulting to center Michaël Banaan Ananas2012-02-111-1/+21
| | | | | eg. align to the left of the textbox like this: <text string="hello there" align="1">
* Some cleanup of some observed #include redundancy from source files which ↵ Scott Stone2012-02-061-1/+0
| | | | use emu.h (nw)
* Guess at a fix for clickable artwork. Aaron Giles2012-02-051-1/+1
|
* Move devices into a proper hierarchy and handle naming Aaron Giles2012-01-241-4/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.