BGFX renderer requires some effects also when post-processing is disabled. If they are not available, MAME complains about missing effect files, but then goes on and crashes soon after printing the backtrace. This fix just exits gracefully when effect files are incomplete and falls back to a different renderer if the bgfx folder is missing at all, warning the user in advance.
* fixed copy of texture data to bitmap in BGFX
* changed AVI dimension to a lowest integral multiple of 4
(2 was still to low for most video players, e.g. VLC)
* added audio to AVI record in HLSL
* HLSL AVI record now uses window dimension instead of snap dimension
- Keyboard mapping adjusted to fit current MAME
- Fixed screen raw parameters
- Fixed disp.dex Test 20 (Video SYNC Gen. Add. Test) for color displays
3c505: The Ethernet frame check sequence is now appended to transmit data [Hans Ostermeyer]
input_common: fixed 0.172 regression for non-US keyboards [Hans Ostermeyer]
problem is caused by <SDL2/SDL_cpuinfo.h> puling in <altivec.h> which #defines vector, pixel and bool
however when the compiler is in Apple Altivec mode, these are context-sensitive keywords and don't need to be #defined
we never need the #defines in our own code because we use the GCC-specific __vector instead of vector
so we trick the header to think the compiler is in Apple Altivec mode to suppress the #defines
Now the filenames for movies recorded by HLSL and BGFX renderers are automatically generated just like the ones for movies and snapshots recorded by the video core. They are generated according to the "snapname" template (eg. by default <snap_folder>/<device_name>/<numeric_index.avi>, so you can revert to the old behavior (why?) just setting "snapname bgfx.avi" or "snapname hlsl.avi".
The main advantage is that now you can record as many movies as you want during a single gaming session without much hassle (previously you had to move or rename the old movie file by hand before recording a new one).
Use common infrastructure in aviwrite.c instead of equivalent local code.
In addition:
- the target textures used by the HLSL movie recorder are now allocated only when recording is ongoing
- removed shaders->begin_frame() and shaders->end_frame() hooks from the main Direct3D rendering loop
- set default HLSL movie name to hlsl.avi to match bgfx.avi setting
This includes several aperture grille / shadow mask patterns. Note that these are all designed to be used on a display with RGB subpixel order, and may thus suffer if rotated or used with a BGR display.
- input modules exit() is called twice. Remove the unnecessary input_exit() method
- removed unnecessary pointer init in handle_input_event and should_hide_mouse
- When registering event callbacks in SDL, don't assume the SDL enum values are int-sized
Revision: 58dc78b6eb
Author: Giuseppe Gorgoglione <gorgogsp@gmail.com>
Date: 28/05/2016 03:14:15
Message:
Introduce dynamic_module
This is a central cross-platform facility to dynamically bind functions from shared libraries.
Updated all OSD modules to use it.
Three patches with code cleanups to the OSD layer [
Giuseppe Gorgoglione]
* Fix debugging code in font_dwrite.cpp
* Introduce dynamic_module
* Remove Direct3D abstraction layer
It was introduced to support Direct3D 8 and 9 with the same code base. They had a very similar programming model and the abstraction layer was taking advantage of that. Now, Direct3D 8 support in MAME was removed long time ago, an Direct3D 11 and 12 have very different programming models, so the layer is not useful anymore and can be safely removed to simplify the code.
* Win32 previously recognised Ctrl+N but menu incorrectly showed Ctrl+M
* Qt showed Ctrl+C but it was swallowed by text editing and didn't work
* Ctrl+N is now shown/used by Win32 and Qt (matches Cmd-N on OS X)
* Eliminate globals/file statics
* Remove lots of stuff from global scope
* Use std::function for custom command registration
* Eliminate some trampolines
* Build fixes from Vas Crabb and balr0g
* added simple procedural texture for vectors with rounded line ends and beam smoothness
* added optional -vector_beam_smooth option
* removed -antialias option, antialiasing is now always applied, except for plain D3D