plugins: chose Radiant IQM plugin, iqmmodel for macOS, picomodel for everything else The picomodel IQM code makes NetRadiant crash on macOS. No one has found time to investigate this in month. We need a working NetRadiant IQM plugin to load Unvanquished game entity models on macOS, the plugin from AAradiant (AlienArena project) is known to work. Q3map2 uses picomodel to load IQM on all platforms because iqmmodel plugin is radiant-only, so there may be a remaining bug when baking IQM models in BSP with q3map2 on macOS (not tested), but editing a map with IQM entity models and misc_animated_models will not crash NetRadiant. This patch makes possible to release a macOS NetRadiant build that don't crash when rendering IQM models. We should fix picomodel crash with IQM on macOS in any way, because it is believed q3map2 may need it, but waiting for a picomodel fix will not delay any NetRadiant release. One can force NetRadiant to be built against a given IQM plugin (for example to debug it) whatever the platform by setting the RADIANT_IQM_PLUGIN CMake variable to either `iqmmodel` or `picomodel`. Any other value, including empty string, will set the default plugin for the platform.
cmake: force Release build if CMAKE_BUILD_TYPE is unset
cmake: use elseif for some system-specific code
tools: remove daemonmap
radiant: rework the configuration of FHS and absolute FHS installation
use /usr/lib/x86_64-linux-gnu/netradiant path
Make git dependency optional if GIT_VERSION is set
mime: fix mimetype and file type association
cmake: fix gtkglex build configuration issues
gtkglext: some fixes and improvements
cmake: reuse already defined variables
cmake/gtkglext: do not override CC This bring many issues we don't have man power for at this time.
cmake: OBJC is not passed to gtkglext build tools
cmake: pass C compiler option to gtkglext build tools
macos: workaround the laggy XY/Camera window mouse pointer recentering On macOS, a huge lag occurs when the pointer is recentered. This happens when calling GTK functions to set the pointer at the center of the widget so it looks to be a lag in GTK or in underlayer macOS technology GTK relies on. When that mouse pointer recenter is disabled, one can drag infinitely without lag BUT then comes weird bugs because the “released right mouse button” event is only read when the mouse is over the widget, so if one releases over another widget, the mouse pointer is not released and if one do another right mouse click on another XY widget, the internal state becomes corrupted and a crash is expected to happen soon. So the idea of that workaround is to only reposition the pointer when an edge of the XY/Camera window is reached, so the user does not experience lag for the whole size of the XY window, experiencing the lag only when a whole dimension is moved. To optimize the distance the user can move without lag, when an edge is reached the pointer is repositioned on the opposite edge. It was noticed the pointer is not hidden on macOS when moving the map, so the pointer being visible during all the move operation is not restored to the initial position when it is released, but keep the position currently seen by the user at right mouse button release time. Note: It was noticed it is possible to esscape the capturing widnow when the render is slow and framerate is low, it may also occurs with touch screens (like virtual machines has) to move the pointer out of the XY/Camera widget and get the internal state corruption problem.
cmake/gtkglext: rewrite the way it is built
macos: properly set GL_SILENCE_DEPRECATION when building gtkglext
macos: set GL_SILENCE_DEPRECATION when building radiant
freebsd: enable bundling Also always prevent cmake to patch rpath when bundling, this is done by library-bundler instead.
cmake: fix whitespace