1
0
Fork 0
Commit graph

2919 commits

Author SHA1 Message Date
James Turner
6caadf2450 Sentry: reduce reporting spam for shader/Metar
Tune the exception logic to avoid many spurious reports from manually
entered METAR, and from missing shaders being probed repeatedly.
2021-02-04 10:37:55 +00:00
James Turner
d10d9dfadd Ensure /sim/aircraft is only the leaf ID
Keep the (possibly) fully-qualified ID in /sim/aircraft-id property

This should fix aircraft which rely on /sim/aircraft to be the
variant name.

Ticket-Id: https://sourceforge.net/p/flightgear/codetickets/2502/
2021-01-24 15:01:45 +00:00
Julian Smith
c031abe8d2 Partial fix for reset when using --composite-viewer=1.
[Marked as 'Partial' because, for me, reset eventually runs out of memory with
both composite-viewer and non-composite-viewer.]

fgStartNewReset(): pass existing composite_viewer to FGRenderer constructor so
that it is used after reset instead of us creating a new instance. Also reuse
existing osgViewer::View.

In FGRenderer::init(), don't create new osgViewer::CompositeViewer if
this->composite_viewer is already set.
2021-01-23 16:27:12 +00:00
Julian Smith
42eacf6928 src/Main/fg_init.cxx: open popup message if going readonly because of existing fgfs process.
Should avoid confusion, e.g. because terrasync being disabled.
2021-01-23 16:27:12 +00:00
Julian Smith
25e56ceee7 src/Main/main.cxx: added diagnostic if initTerrasync() fails because /sim/fghome-readonly is true. 2021-01-23 16:27:12 +00:00
Erik Hofman
b4f0e43ccc Remove season selection 2021-01-22 11:00:21 +01:00
Stuart Buchanan
82356aefca Remove Rembrandt command-line options 2021-01-17 14:40:15 +00:00
James Turner
3b3e69e358 Quiet some noisy log messages 2021-01-08 19:33:10 +00:00
James Turner
9b25e25935 Remove an unnecessary SG_ALERT 2021-01-07 09:57:47 +00:00
James Turner
a8351bd544 Reset: avoid terraSync warning
Avoid the old value being set, which causes the ‘terrasync-dir not
saved’ warning to appear incorrectly on reset.
2021-01-07 09:57:30 +00:00
Julian Smith
8cead7e59b Improved error indication from FGIO::parse_port_config() and FGIO::add_channel().
E.g. for multiplay, we return (FGProtocol*) nullptr on success.
2021-01-01 17:54:10 +00:00
Automatic Release Builder
e7801a65b3 Sentry: add a bread-crumb when user overrides read-only lock 2020-12-22 10:34:58 +00:00
James Turner
0d0b8d01d2 Sentry: track reset status via a tag
Allow easy grouping of reports by ‘did we do a reset, ever’
2020-12-22 10:34:58 +00:00
James Turner
df34cb3cd9 Sentry: whitelist another XML error 2020-12-22 10:34:57 +00:00
Automatic Release Builder
5ad9eafca7 Sentry: improve how we report extra data 2020-12-22 10:34:57 +00:00
Julian Smith
cb258f3d36 src/Main/main.cxx: Allow dynamic control of sglogdeltas using a property.
We install listener for /sim/sg-log-deltas which calls logDeltaSet().
2020-12-21 23:42:44 +00:00
James Turner
bb2ef62b5a Sentry: whitelist another XML error 2020-12-18 15:11:33 +00:00
James Turner
0e545d711c Attempt to handle NaNs more elegantly
Check for NaNs after each FDM iteration, and freeze the sim if found.
Report this condition to the user and to the reporting backend, along
with the last valid position.

Probably needs some refinement, this is just a first guess.

Sentry-Id: FLIGHTGEAR-AM
2020-12-18 13:58:33 +00:00
Fernando García Liñán
ae41eba3da Support reloading Compositor instances at runtime via a fgcommand 2020-12-17 06:36:25 +01:00
Julian Smith
988e377ec9 Improved Sview system to allow specification of views from Nasal using properties.
SviewCreate() now takes a SGPropertyNode* config which contains all information
needed to specify the view, including window size and position.

By default views are defined using a series of <step>...</step> nodes which map
to SviewStep* classes internally.

Alternatively, existing extra-view functionality is supported using
type='current', 'last_pair' or 'last_pair_double', plus one can use old-style
<view>...<view> nodes with type='legacy'.

See src/Viewer/sview.hxx for details and examples.

The extra-view commands view-clone, view-last-pair and view-last-pair-double
now pass the supplied SGPropertyNode* through the underlying FGViewMgr to
SviewCreate().

Improved handling of +/- heading and pitch values. For example some legacy
views have inverse relationship between heading-offset-deg and the actual
heading offset, so we now only multiply by -1 early on when handling these
legacy views, and SviewStepRotate does not negate.

Fixed Helicopter view direction bug with multiplayer aircraft - need to use
global /sim/current-view/heading-offset-deg, even for multiplayer aircraft.

Fixed incorrect handling of roll in pilot view - when adding in extra changes
of heading, pitch and roll to things like Helicopter view, simply adding to
heading, pitch and roll doesn't work if aircraft roll is not zero. Instead we
need to do the calculation with SGQuatd, so have added optional rotation params
to SviewStepFinal.

Added support for legacy Tower view look from.

Details:

    src/Main/fg_commands.cxx
    src/Viewer/viewmgr.cxx
    src/Viewer/viewmgr.hxx

        Added 'view-new' command.

        All recently-added view commands now pass the SGPropertyNode* arg to
        globals->get_viewmgr() and from there to SviewCreate().

    src/Viewer/sview.cxx
    src/Viewer/sview.hxx

        SviewStepAircraft and SviewStepNearestTower uses new Callsign
        class for tracking multiplayer aircraft by callsign instead of
        /ai/models/multiplayer[] number, so we cope when multiplayer aircraft
        are renumbered by network outages.

        Double views are now implemented as a final view step, instead of
        in a separate class derived from SviewView. So all views are
        implemented using SviewViewEyeTarget, and there is arguably no
        need for the separate SviewView base class.

        SviewViewEyeTarget now has a single list of steps, instead of separate
        lists for eye and target, because the use of SviewStepCopyToTarget makes
        separate lists unnecessary.
2020-12-12 14:09:39 +00:00
James Turner
b61d189071 Add more bootstrap logging for Win7 weirdness 2020-12-07 17:11:17 +00:00
James Turner
b41e3694b6 Sentry: install new SimGear callback
Requires matching SG change to expose the callback. Allows SimGear 
to explicitly report an error (without any dependency on Sentry of
course)
2020-12-03 21:38:57 +00:00
Automatic Release Builder
8f9f0cbb19 Change default Windows download-dir to
$HOME/FlightGear/Downloads

Add a launcher warning about this, to request users to relocate existing
files, they already downloaded.
2020-12-02 17:36:12 +00:00
James Turner
602360cdeb Add graphics-presets logic (as a subsystem)
Gives the ability to define graphics settings via an XML file at
startup or later during runtime. Tracks if changes to graphics settings
required additional actions (eg, scenery reload or restart of the sim)

When a preset is active, and properties are modified, the system will
detect this and mark the preset as edited.
2020-11-30 15:45:13 +00:00
Julian Smith
f62e5b9ce3 CompositeViewer: Support for multiple view windows using osgViewer::CompositeViewer.
Overview:

    Previously Flightgear always used a single osgViewer::Viewer(), which
    inherits from both osgViewer::ViewerBase and osgViewer::View, giving a
    single view window.

    If CompositeViewer is enabled, we instead use a osgViewer::CompositeViewer
    which contains a list of osgViewer::View's. Each of these View's can have
    its own eye position, so we can have multiple different views of the same
    scene.

    Enable at runtime with: --composite-viewer=1

Changes to allow use of osgViewer::CompositeViewer:

    Previously FGRenderer had this method:

        osgViewer::Viewer* getViewer();

    This has been replaced by these two new methods:

        osgViewer::ViewerBase* getViewerBase();
        osgViewer::View* getView();

    If CompositeViewer is not enabled (the default), the actual runtime state
    is unchanged, and getViewerBase() and getView() both return a pointer to
    the singleton osgViewer::Viewer() object.

    If CompositeViewer is enabled, getViewerBase() returns a pointer to a
    singleton osgViewer::CompositeViewer object, and getView() returns a
    pointer to the first osgViewer::View in the osgViewer::CompositeViewer's
    list.

    The other significant change to FGRenderer() is the new method:

        osg::FrameStamp* getFrameStamp()

    If CompositeViewer is not enabled, this simply returns
    getView()->getFrameStamp(). If CompositeViewer is enabled it returns
    getViewerBase()->getFrameStamp(). It is important that code that previously
    called getView()->getFrameStamp() is changed to use the new method, because
    when CompositeViewer is enabled individual osgViewer::View's appear to
    return an osg::FrameStamp with zero frame number).

    All code that uses FGRenderer has been patched up to use the new methods so
    that things work as before regardless of whether CompositeViewer is enabled
    or not.

    We make FGRenderer::update() call SviewUpdate() which updates any extra
    views.

Extra view windows:

    If CompositeViewer is enabled, one can create top-level extra view windows
    by calling SviewCreate(). See src/Viewer/sview.hxx for details.

    Each extra view window has its own simgear::compositor::Compositor
    instance.

    Currently SviewCreate() can create extra view windows that clone the
    current view, or view from one point to another (e.g. from one multiplayer
    aircraft to the user's aircradt) or keep two aircraft in view, one at a
    fixed distance in the foreground.

    SviewCreate() can be called from nasal via new nasal commands "view-clone",
    "view-last-pair", "view-last-pair-double" and "view-push". Associated
    changes to fgdata gives access to these via the View menu. The "view-push"
    command tags the current view for later use by "view-last-pair" and
    "view-last-pair-double".

    Extra view windows created by SviewCreate() use a new view system called
    Sview, which allows views to be constructed at runtime instead of being
    hard-coded in *-set.xml files. This is work in progress and views aren't
    all fully implemented. For example Pilot view gets things slightly wrong
    with large roll values, Tower View AGL is not implemented, and we don't
    implement damping. See top of src/Viewer/sview.cxx for an overview.

OpenSceneGraph-3.4 issues:

    OSG-3.4's event handling seems to be incorrect with CompositeViewer -
    events get sent for the wrong window which causes issues with resize and
    closing. It doesn't seem to be possible to work around this, so closing
    extra view windows can end up closing the main window for example.

    OSG-3.6 seems to fix the problems.

    We warn if CompositeViewer is enabled and OpenSceneGraph is 3.4.
2020-11-21 13:27:02 +00:00
Fernando García Liñán
255d193bc8 Make Compositor default
- Removed the ENABLE_COMPOSITOR CMake flag.
- Removed /sim/version/compositor-support.
- Removed miscellaneous branching to check if the Compositor is enabled.
- Removed custom resource loader since Compositor Effects are now located in $FG_ROOT/Effects.
- Removed splash screen warning.
- Only use the Compositor versions of CameraGroup and FGRenderer.
- Fix redout/blackout not appearing under certain circumstances.
2020-11-16 13:25:29 +01:00
Automatic Release Builder
81150ff6a1 Sentry: don't report more XML errors
Don't report XML errors when parsing Nasal-loaded content,
or n the launcher when scanning aircraft information.
2020-11-12 09:34:18 +00:00
James Turner
6f8c786e1a Sentry: add another XML-error ignore rule 2020-11-12 09:33:35 +00:00
James Turner
685a44ed53 Sentry: combine repeated log messages
Should make the breadcrumbs easier to read.
2020-11-12 09:33:25 +00:00
Automatic Release Builder
87d2b03b71 Sentry: add another message ignore rule 2020-11-12 09:26:57 +00:00
Julian Smith
bf7d8bbbb3 src/Main/positioninit.cxx: don't open popup if unable to position on taxiway.
Have downgraded from SG_POPUP to SG_ALERT.
2020-11-02 10:53:38 +00:00
James Turner
3cbbbe3df4 Sentry: fix a merge error when enabled. 2020-11-01 11:18:55 +00:00
Julian Smith
d34f7dc451 src/Main/positioninit.cxx: open popup if we can't find taxiway to avoid starting on runway. 2020-11-01 09:29:20 +00:00
Julian Smith
1a4d3785c4 src/Main/fg_commands.cxx: incremented diagnostic if profiling not available. 2020-11-01 00:03:03 +00:00
Julian Smith
aa1e0e1d1d src/Main/main.cxx: fixed warning in OpenBSD-specific code. 2020-11-01 00:03:03 +00:00
Julian Smith
a6a7ce3e4b src/Main/bootstrap.cxx: avoid warning on openbsd. 2020-11-01 00:03:03 +00:00
Julian Smith
34e749bc15 src/Main/bootstrap.cxx: disable custom segfault handler on OpenBSD. 2020-11-01 00:03:03 +00:00
Julian Smith
43468727ad Added command 'dialog-toggle' - toggles display of dialogue.
E.g. useful for keyboard shortcuts.
2020-10-31 17:23:28 +00:00
Julian Smith
e2f2299286 src/Main/options.cxx:fgOptLoadTape(): call fgOSExit() if we fail to load tape.
If user specified --load-tape then failure to load it should be fatal to avoid
confusion. It also avoids needlessly overwriting a valid recovery tape if
/sim/replay/recovery-period is set.
2020-10-31 17:23:28 +00:00
James Turner
0dfdf63399 Clear atomic listeners too
This is part of trying to reduce possible causes of the property
crash on shutdown.
2020-10-29 17:28:05 +00:00
Automatic Release Builder
5b3f0e5cbb Sentry: generate a UUID for report tracking
Because we don’t have any user-identifier, generate a UUID so that
we can filter reports by it.
2020-10-29 16:24:41 +00:00
Automatic Release Builder
3e72fb230f Sentry: block XML parse errors from the launcher
Avoid filling up the logs when the launcher parses broken aircraft XML;
wait until the user actually pick one to fly with, before reporting
XML errors.
2020-10-29 16:23:26 +00:00
Automatic Release Builder
19aa0332f2 loadxml() command: add ‘quiet’ bool option
This is to avoid console/log spam from jetways.nas in particular,
which uses loadxml to probe for file existence, every 10 seconds. But
in general it seems useful to have this potentially be quiet, since
there is a result code.
2020-10-29 16:23:26 +00:00
Automatic Release Builder
4ac8523bed SetupRootDialog: avoid calling exit()
This causes QApplication to become unhappy and crash, so use a
graceful exit via a new return code and FG_OPTIONS_EXIT instead.

Sentry-Id: FLIGHTGEAR-6B
2020-10-29 16:22:35 +00:00
Automatic Release Builder
2b54078023 Additional Sentry message ignores: add AC3D
These make the reports very noisy for no value.
2020-10-29 16:22:35 +00:00
Automatic Release Builder
7597887e60 Fix Sentry issue: FGCom crash on exit
FGCom was added to the wrong group, leading it to be shutdown after
FGSoundManager, and hence, after OpenAL wad closed, which causes
crashes.

Sentry-Id: FLIGHTGEAR-66
2020-10-29 16:22:35 +00:00
Automatic Release Builder
c7b90a05d7 Silence a warning on exit. 2020-10-29 14:53:25 +00:00
Automatic Release Builder
c7f66ecf1c Fix some warnings from Xcode 12 2020-10-29 14:52:19 +00:00
Automatic Release Builder
c75388f4b7 Sentry: white-list another libPNG warning
These are not useful for tracing, so filter them out
2020-10-29 14:47:57 +00:00
Automatic Release Builder
6e947f59eb Change MP on-runway-start message to MANDATORY_INFO 2020-10-29 14:47:48 +00:00