1
0
Fork 0
Commit graph

15822 commits

Author SHA1 Message Date
Florent Rougon
3ee54cbd72 Revert "Call fgInitAllowedPaths() also in fgInitConfig()"
This reverts commit e7594f4687.
2022-08-28 11:49:37 +02:00
Florent Rougon
896be707ae Revert "Call fgInitAllowedPaths() between updates of aircraft paths and -set.xml parsing"
This reverts commit 9fc5f30a93.
2022-08-28 11:49:30 +02:00
Florent Rougon
9fc5f30a93 Call fgInitAllowedPaths() between updates of aircraft paths and -set.xml parsing
fgInitAircraft() loads the aircraft -set.xml file, which calls
ResourceManager::findPath() for each 'include=...' directive. In order
to prevent such includes from triggering the new warning printed by
ResourceManager::findPath(), call fgInitAllowedPaths() after the
aircraft paths have been updated and before the -set.xml file is loaded.
Thanks to Alan Teeder for reporting the problem.

We can now probably remove the call to fgInitAllowedPaths() after
processOptions() in fgStartNewReset() (I believe the newly-added call
comes “soon enough”). Not doing so in this commit, though: let's fix
problems before optimizing.
2022-08-27 20:01:55 +02:00
Florent Rougon
563bc4775f Minor changes
Fix a typo and a warning about an unused variable.
2022-08-24 15:14:57 +02:00
Florent Rougon
e7594f4687 Call fgInitAllowedPaths() also in fgInitConfig()
This is an additional call to fgInitAllowedPaths(), earlier than the
normal one. It doesn't know the paths given to --allow-nasal-read, but
can already authorize read access for all of $FG_ROOT. This allows one
to add SGPath::validate() checks for paths given to
ResourceManager::findPath() with a non-null second argument (without
this change, the validation would fail for files included from
defaults.xml, read by fgSetDefaults() before the definitive
fgInitAllowedPaths() call has been performed).
2022-08-24 01:31:39 +02:00
Florent Rougon
36dd57f6f4 Don't look for the splash screen font in the aircraft dir
The previous way only worked because after trying
SGPath(aContext, aResource), ResourceManager::findPath() tries all
providers, among which there is a BasePathProvider with $FG_ROOT as its
base... provider which doesn't use the 'aContext' argument at all.
2022-08-24 01:31:04 +02:00
James Hogan
c24065fdce
osgXR: Update to 0.5.1
Update 3rdparty/osgXR to version 0.5.1, which fixes a windows build
error on Microsoft Visual Studio Community 2019 version 16.11.18.
2022-08-23 16:57:03 +01:00
Florent Rougon
ee12883eb6 Replace fgValidatePath() with SGPath::validate()
Move the fgValidatePath() code and the two associated static variables
'read_allowed_paths' and 'write_allowed_paths' to SimGear.
fgValidatePath() is now known as SGPath::validate(). This requires
SimGear commit e002a481f481709263a.
2022-08-22 13:35:15 +02:00
James Hogan
199adf90df
VRManager: Update to osgXR 0.5.0
osgXR 0.5.0 broke the API slightly, so update VRManager to use the new
enumeration names and update the required osgXR version for when using a
system version of osgXR.

Signed-off-by: James Hogan <james@albanarts.com>
2022-08-21 17:55:18 +01:00
James Hogan
6c812a3dfd
osgXR: Update to 0.5.0
Update 3rdparty/osgXR to version 0.5.0, which primarily gets us build
fixes for Windows. Unfortunately one of them requires an API breakage to
avoid some apparent preprocessor namespace pollution on Windows, which
will require minor source modification in FlightGear (left to the next
commit). The ABI is unchanged so binary compatibility is unaffected.
2022-08-21 17:54:54 +01:00
Florent Rougon
60ff405efc FGSoundManager: fix path handling in playAudioSampleCommand()
- Use the complete path when performing the existence check (previously,
  only the directory part was used: bug in commit
  8853fded29).

- Use the resolved path (SGPath instance) obtained from
  FGGlobals::resolve_maybe_aircraft_path() when constructing the
  SGSoundSample instance; this makes it possible to use paths starting
  with the '[addon=...]' special prefix (handled by the
  AddonResourceProvider) with FGSoundManager::playAudioSampleCommand(),
  and therefore with the 'play-audio-sample' FGCommand.

This requires SimGear commit 8febf6b9f58e9a1919ff3 ("SGSoundSample
constructor changes").
2022-08-20 08:27:45 +02:00
Florent Rougon
a502de9e81 FGPUIMenuBar: small optimization (requires C++17) 2022-08-18 17:39:08 +02:00
Florent Rougon
afe7d996af FGPUIMenuBar: fix bug when several menu entries have the same label
Before this commit, if several menu entries (possibly in different
menus) had the same label after translation and latin1-ization by
FGLocale::utf8toLatin1(), selecting one of them used to fire the
bindings associated to all such entries. This is because the bindings
used to be stored in an std::map whose keys were the
translated-and-latin1-ized labels.

This commit fixes the problem in the following way:
  - the std::map (_bindings) is turned into an std::forward_list;
  - each element of this std::forward_list references the bindings
    assigned to a menu entry;
  - in order to allow FGPUIMenuBar::fireItem() to find the bindings
    assigned to the menu entry that triggered it,
    FGPUIMenuBar::make_menu() calls puMenuBar::add_submenu() with an
    additional argument ("user data") that attaches to the puObject for
    each menu entry a pointer to the relevant element of _bindings.

Note: given how the menubar is created, an std::vector wouldn't be
appropriate for _bindings, because we need the pointers to its elements
to be stable when new elements are added to _bindings.

Reported by Wayne Bragg: https://sourceforge.net/p/flightgear/mailman/message/37682605/
2022-07-27 00:30:12 +02:00
Michael Filhol
6aff646cfa Mach number added to mode-S XPDR properties, exposed to MP (for ATC). 2022-07-26 10:30:14 +01:00
James Hogan
dc5404a3c2
FGButton: Make init()'s "module" parameter const
FGButton::init() passes the module parameter (a non-const string
reference) straight through to FGCommonInput::read_bindings() as a const
reference.

Change the FGButton::init() signature so that module is const there too,
so that callers can pass it const string references returned by
accessors without having to make copies.
2022-07-13 23:46:23 +01:00
James Hogan
b9efba55e7
src/Viewer/splash: VR splash screen
Use a quad composition layer object from osgXR 0.3.9 to make the splash
screen VR friendly. This allows the OpenXR compositor to redraw the quad
without any updates from flightgear, which is particularly helpful as
flightgear makes no attempt at a reasonable VR frame rate during
initialisation.

The quad is positioned 2 meters from the user, with an aspect ratio
matching the desktop window. The quad is blended using an
unpremultiplied alpha channel which is forced to a given alpha value by
osgXR.

The splash is effectively already rendered to an FBO as non-linear SRGB,
so this is made explicit in the internal texture format, with the
rendering to the desktop window using GL_FRAMEBUFFER_SRGB to ensure it
is properly re-encoded.
2022-07-12 22:38:53 +01:00
James Hogan
bb0d7fc0a7
src/Viewer: Move splash to cam group camera
Move the splash screen from the scene root to a camera group camera,
just below the GUI camera. This has a number of advantages, mainly VR
related:
 - The splash FBO will only be rendered once per frame. Currently it
   appears to be rendered for both near & far cameras, and with
   stereoscopic rendering for both left & right (even though it splats
   right across both views at the moment), so 2 or 4 times.
 - It makes it possible to render the splash fullscreen on the desktop
   window, while presenting it on a 3d quad in VR (possibly via an
   OpenXR composition layer so the runtime can keep rendering it
   smoothly while FlightGear framerate drops during loading.
2022-07-12 22:38:53 +01:00
James Hogan
5bf9a32437
osgXR: Update to 0.3.9
Update 3rdparty/osgXR to version 0.3.9, which gets us better handling of
quirks and window closure, and the ability to create quad composition
layers which will be particularly useful for the loading screen when
flightgear isn't so good at timely frame updates.
2022-07-12 19:26:41 +01:00
portree_kid
ce7b5eb094 AI Aircraft not taking off because TowerController signOff was not called. 2022-06-20 21:32:52 +02:00
portree_kid
5a3528f782 Fix segfaults in AI code 2022-06-19 10:28:54 +02:00
Roman Ludwicki
0942cb0b7f Use the correct GUI members for the Data Distribution Service example 2022-06-12 13:42:26 +01:00
James Turner
a46d71930a Launcher: add settings for TerraSync DNS
Add advanced settings to speciofy the TerraSync DNS server.
This shoud allow some work-around of problems with some
ISP DNS.
2022-06-07 23:17:13 +01:00
Julian Smith
28d7308985 src/Viewer/viewmgr.*: fixed bug when /sim/aircraft contains '.' chars.
We were not appending the video container suffix if there was already a '.' in
the name.

Part of this fix is also to simplify the code - if name_in is not "" we don't
attempt to create softlink or append /sim/video/container.
2022-06-05 19:43:46 +01:00
James Turner
55c9c61fc3 Launcher: add logging around aircraft installs
Trying to understand ‘aircraft not found’ errors around packaged
aircraft
2022-06-01 11:50:38 +01:00
James Turner
8517eda0c9 Ground-cache: throw on NaN inputs
Attempt to provoke FDM NAN issues more directly (eg in Sentry reports),
rather than waiting on SGCardToGeod, etc to blow up inside the
ground cache.

SF-Id: https://sourceforge.net/p/flightgear/codetickets/2743/
2022-06-01 11:50:38 +01:00
James Turner
8ae98ea543 IAXClient OpenAL: clean up our buffers
Avoid a console warning from OpenAL-soft about leaked buffers on
shutdown, by ensuring IAXClient backend does matching cleanup 
for the buffers it allocates.
2022-06-01 11:50:38 +01:00
portree_kid
d571bc6f76 AI Improvements
* Parking with point beyond parking so aircraft don't stop early
* Better approach routes (wait pattern)
* Extracting vector math from AIFlightplan
* More use of SGPositioned in ATC
2022-05-31 21:23:34 +02:00
Lars Toenning
1a364684e9 Adjust unittest to new SGCallback 2022-05-31 10:18:50 +01:00
James Turner
dbe2734e2c Launcher and startup support for TACANs
The launcher diagram and navaid-search now include TACANs, using
the current NavCache encoding (DME whose name ends in TACAN). A new
‘—tacan’ option works similar to —vor etc to set position (with 
optional offset). 

Tuning the Tacan instrument from the command line is not yet supported,
but could be easily added.
2022-05-31 10:18:16 +01:00
James Turner
43e0b3be48 CMake: fix missing header
Original fix by Mariusz Matuszek, adapted by me.
2022-05-25 11:16:44 +01:00
Lars Toenning
71c92c754d Remove FGMakeUpperCase listener
After discussing the problems, it was decided to remove this feature (https://sourceforge.net/p/flightgear/flightgear/merge-requests/295/).
2022-05-25 11:03:52 +01:00
James Turner
7d78c40086 Remove upper-casing of route-manager input
upper_case_property causes valueChanged to fire twice, since
SGPropertyNode string storage is now immutable (std::string). This
caused double-processing of for example adding a waypoint in
the route-manager dialog. Since the InputListener already upper-cases
the string, we can simply remove the upper-case property logic.
2022-05-25 10:43:08 +01:00
Lars Toenning
5051d90487 Use std::function for callbacks 2022-05-25 10:38:20 +01:00
Erik Hofman
83694eabde Turn OpenVSP CSV forces and moments data into tables 2022-05-23 08:19:10 +02:00
James Turner
fb36cea04c Skip NasalClipboard on test-suite builds
Ticket: https://sourceforge.net/p/flightgear/codetickets/2740/
2022-05-17 14:33:35 +01:00
Jonathan Redpath
c3162c0233 Add failing test for SWIFT8 at YBCS 2022-05-16 14:58:53 +01:00
Jonathan Redpath
564884d27c Test suite: restore cross-platform compatibility by removing unix-specific headers and explicitly casting unsigned ints / unsigned longs 2022-05-16 14:02:11 +01:00
James Turner
3f670c84b1 VSCode applied formatting. 2022-05-16 12:15:05 +01:00
James Turner
15cb5ab075 Fix Windows: include needed for getpid() 2022-05-16 12:14:13 +01:00
James Turner
0df1109d93 Fix warnings / breakage from previous change. 2022-05-11 21:24:37 +01:00
Lars Toenning
961c57b576 Add missing include
Fixes compilation for GCC 12.1
2022-05-11 13:04:11 +01:00
PlayeRom
446299ddaf Fix using SI units like speed in km/h and altitude in meters for flight plan in Launcher. 2022-05-10 16:40:06 +01:00
Julian Smith
6edf68107e src/FDM/YASim/Gear.cpp: use SG_LOG instead of assert fail if contact is incorrect.
Have seen the assert fail when resetting location.
2022-05-08 12:58:58 +01:00
PlayeRom
e72beb3b81 Add Polish translation to org.flightgear.FlightGear.desktop file 2022-05-02 18:19:44 +02:00
Serkan ÖNDER
0dab12281a Add Turkish translations to org.flightgear.FlightGear.desktop 2022-05-02 00:04:50 +02:00
Julian Smith
b40cc51611 src/Viewer/viewmgr.cxx: log video encoding sws_scale() timing info with /sim/video/log_sws_scale_stats. 2022-05-01 15:28:01 +01:00
Julian Smith
d2d3bd5edc src/Viewer/: crude control over thread-cpu affinities on linux.
Detects /sim/affinity-control being set to 'clear' and 'revert' and modifies
all thread affinities accordingly. Only active on Linux.

Also modified meaning of /sim/thread-cpu-affinity. Instead of true/false, we now
expect these values:

    '': do nothing.

    'none': tell OSG to not set up any thread affinities (same as prev
    'false').

    'osg': allow OSG to set up thread affinities but attempt to cancel affinity
    of main thread afterwards.
2022-05-01 15:24:38 +01:00
Julian Smith
a59c94f8be src/Viewer/renderer.cxx: use /sim/thread-cpu-affinity to control thread-cpu affinity.
This is for investigating bug 2734.

If /sim/thread-cpu-affinity is true or unset on startup, we use default
behaviour where we tell OSG to set up thread-cpu affinities.

Setting /sim/thread-cpu-affinity to false on start up results in all/most
threads being free to run on any cpu core. For example in .fgfsrc or on
command, use:

    --prop:bool:/sim/thread-cpu-affinity=false
2022-04-30 00:14:00 +01:00
Erik Hofman
0923400e35 Expose the machwave active and offset properties 2022-04-29 15:08:10 +02:00
Erik Hofman
06530a325b Add a utility to recenter all models within a configuration file 2022-04-25 11:59:35 +02:00