summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/digfx.h
Commit message (Collapse)AuthorAgeFilesLines
* (nw) Clean up the mess on master Vas Crabb2019-03-261-22/+0
| | | | | | | | | | | | | 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-0/+22
| | | | | This reverts commit c24473ddff715ecec2e258a6eb38960cf8c8e98e, reversing changes made to 009cba4fb8102102168ef32870892438327f3705.
* get rid of the rest of the digfx MCFG as well (nw) Vas Crabb2019-01-071-22/+0
|
* More cleanup/streamlining of machine configuration and macros: Vas Crabb2018-05-151-15/+8
| | | | | | | | | | | | | * Get rid of implicit prefix for GFX decode names and prefix them all * Get rid of special macro for adding GFXDECODE in favour of constructor * Make empty GFX decode a static member of interface * Allow palette to be specified to GFXDECODE as a device finder * Removed diserial.h from emu.h as it's used relatively infrequently Also fix darkseal and vaportra propely. The palette device automatically attaches itself to a share with matching tag. The correct solution here is to rename one or the other out of the way, since it was never attached to a share before.
* Streamline machine configuration macros - everyone's a device edition. Vas Crabb2018-05-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Start replacing special device macros with additional constructors, starting with ISA, INTELLEC 4 and RS-232 buses. Allow an object finder to take on the target of another object finder. (For a combination of the previous two things in action, see either the INTELLEC 4 driver, or the Apple 2 PC Exporter card. Also check out looping over a device finder array to instantiate devices in some places. Lots of things no longer need to pass tags around.) Start supplying default clocks for things that have a standard clock or have all clocks internal. Eliminate the separate DEV versions of the DEVCB_ macros. Previously, the plain versions were a shortcut for DEVICE_SELF as the target. You can now supply a string tag (relative to current device being configured), an object finder (takes on the base and relative tag), or a reference to a device/interface (only do this if you know the device won't be replaced out from under it, but that's a safe assumption for your subdevices). In almost all cases, you can get the effect you want by supplying *this as the target. Eliminate sound and CPU versions of macros. They serve no useful purpose, provide no extra checks, make error messages longer, add indirection, and mislead newbies into thinking there's a difference. Remove a lot of now-unnecessary ":" prefixes binding things relative to machine root. Clean up some miscellaneous rot. Examples of new functionality in use in (some more subtle than others): * src/mame/drivers/intellec4.cpp * src/mame/drivers/tranz330.cpp * src/mame/drivers/osboren1.cpp * src/mame/drivers/zorba.cpp * src/mame/devices/smioc.cpp * src/devices/bus/a2bus/pc_xporter.cpp * src/devices/bus/isa/isa.h * src/devices/bus/isa/isa.h * src/devices/bus/intellec4/intellec4.h
* destaticify initializations (nw) (#3289) wilbertpol2018-03-041-5/+5
| | | | | | * destaticify initializations (nw) * fix this->set_screen (nw)
* drawgfx: Make the palette optional [O. Galibert] Olivier Galibert2017-05-281-0/+3
| | | | | | | | | | | | | | | | | | | | device_gfx_interface does two things: - go from a possibly weird rom layout to a one-byte-per-pixel tiled layout - draw the tiles so created The second part requires a palette, but the first doesn't. And low-level emulations of individual graphic chips (konami tilemap or sprite generators for instance) are not supposed to care about the palette. They just output bits which are partly indexes into palettes, and partly not, and in any case become pen ids only much further in the rendering chain. But they need access to the decoding step, because one-byte-per-pixel is real nice.. So now such a device, which inherits from device_gfx_interface, can call set_palette_disable(true) and no palette tag will be required. Calling the draw functions will segfault though. As a side effect, the gfx_element constructor now takes a palette pointer instead of a reference, since it's now optional.
* general cleanup: Vas Crabb2017-05-231-4/+0
| | | | | | | | | | | * 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.
* New device interface for palettes AJR2017-04-061-3/+3
| | | | | | - 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.
* Introduce u8/u16/u32/u64/s8/s16/s32/s64 Vas Crabb2016-11-191-25/+25
| | | | | | | | | | | | * 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
* NOTICE (TYPE NAME CONSOLIDATION) Miodrag Milanovic2016-10-221-22/+22
| | | | | 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
* More consistent use of integer types in tilemap_t and other graphics-related ↵ AJR2016-09-031-5/+5
| | | | | | classes (nw) - Define indirect_pen_t, requiring a slight reordering of emu.h due to an unsurprising dependency
* Misc. fixes (nw) AJR2016-08-281-1/+1
| | | | | | | - Correct address space number for audiocpu_map in barni.cpp - Add missing_dependencies check to airraid_dev (fixes segfault in tilemap viewer; yes, I know these tiles are 100% garbage) - Add assert to device_gfx_interface::palette() to help catch dependency mistakes like the above - Add MACHINE_IMPERFECT_SOUND to cshootert (music desyncs a lot)
* Cleanups and version bumpmame0174 Miodrag Milanovic2016-05-251-2/+2
|
* Added base sprites. Also added STEP2_INV / STEP4_INV, nw angelosa2016-05-191-1/+2
|
* Various cleanups suggested by static analyzer (nw) Miodrag Milanovic2016-04-241-1/+1
|
* Pass and return palette devices by reference, not as pointers AJR2016-01-231-2/+2
| | | | | | - Add screen_device::has_palette() - Require device_gfx_interface::gfx() and palette() to access members - Getters for atari_vad_device return devices as references, not pointers
* reverting: Miodrag Milanovic2016-01-201-2/+2
| | | | | | | SHA-1: 1f90ceab075c4869298e963bf0a14a0aac2f1caa * tags are now strings (nw) fix start project for custom builds in Visual Studio (nw)
* tags are now strings (nw) Miodrag Milanovic2016-01-161-2/+2
| | | | fix start project for custom builds in Visual Studio (nw)
* global_alloc for m_gfxdecode->set_gfx changed to work with unique_ptr (nw) Miodrag Milanovic2015-12-191-1/+1
|
* clang-modernize part 1 (nw) Miodrag Milanovic2015-12-031-6/+6
|
* Initial conversion of core to C++14. Note that compilers are now limited to ↵ Miodrag Milanovic2015-12-031-2/+2
| | | | GCC 4.9.0 and up, Clang 3.4.0 and up, and VS2013 and up [Miodrag Milanovic]
* More license (nw) Alex W. Jackson2015-05-221-1/+1
|
* Added some for Nathan and some more for Nicola (nw) Miodrag Milanovic2015-05-111-2/+2
|
* Added dummy license headers for EMU section (nw) Miodrag Milanovic2015-05-071-0/+2
|
* Implemented the Namco Custom 116 palette and raster IRQ controller as a device, Alex W. Jackson2014-08-141-2/+3
| | | | | | | and hooked it up to the namcos1, namconb1 and namcofl drivers [Alex Jackson] digfx.c: Make some members protected instead of private to be less fascistic and more consistent with other device_interfaces.
* More cleanups, there is issue with srcclean that needs to be taken care as ↵ Miodrag Milanovic2014-07-221-2/+0
| | | | well, just doing now what we can
* digfx.c, drawgfx.c: don't do unneeded processing or allocate unneeded memory ↵ Alex W. Jackson2014-05-111-1/+0
| | | | for RAW gfx layouts; add -valid check that extxoffs/extyoffs info are present when the layout size demands them [Alex Jackson]
* device_gfx_interface and memory system improvements: [Alex Jackson] Alex W. Jackson2014-04-081-0/+5
| | | | | | | | | | | Added macros to facilitate declaring gfxdecode info arrays as members of a device class. AM_SHAREs in a device's internal address map or its default address map are now tagmapped as children of that device rather than siblings (analogous to how handlers in internal/default address maps are scoped). Converted the Namco C45 to device_gfx_interface.
* Cleanups and version bumpmame0153 Miodrag Milanovic2014-04-071-6/+6
|
* device_gfx_interface [Alex Jackson] Alex W. Jackson2014-04-051-0/+229
Moved graphics decoding to a new device interface class: device_gfx_interface. The gfxdecode device is now a device that simply inherits this interface and does nothing else. Devices that draw tilemaps or sprites using gfx_elements should in time be updated to use this interface rather than connect to a machine-global gfxdecode device. Updated toaplan_scu.c as an example (also fixed off-by-one sprite alignment in twincobr and rallybik while I was at it). gfx_elements are normally created in interface_post_start(), making it possible to dynamically create or modify the graphics decoding info during device_start() if you need to. On the other hand, if you need the gfx_elements during device_start(), you can directly call decode_gfx() to create them early. This interface also provides a standard and init-order-safe way to connect to a palette device (similarly to how device_video_interface helps devices connect to a screen), so it's handy for any device that does palettized drawing even if it doesn't use gfx_elements. Updated k053250.c as an example of this usage. gfxdecode info entries can now reference shared RAM regions by tag as well as ROM regions, automatically handle endianness, and have some other new capabilities. Updated nemesis.c and pgm.c to showcase the new features. Removed validate_display() (it was just a commented out stub already) since its only function, checking that drivers don't have an ind16 screen without a palette, is now done by screen_device::device_validity_check(). Updated obsolete comments about GFXLAYOUT_RAW (cps1.c hasn't used raw gfx for years, and "to save memory" is no longer a good reason to use it)