1
0
Fork 0
Commit graph

735 commits

Author SHA1 Message Date
James Turner
d2962ffb2d Reset: refactor static CameraGroup ownership 2013-11-16 13:02:47 +00:00
James Turner
0cda3cbfb2 Multiple-instance support.
Write PID file to FG_HOME, use this to detect multiple launches.
When this situation is detected, set a marker property and place various
objects into read-only mode, such as the NavCache and TerraSync.

PID file is created using open+unlink semantics on POSIX, and 
DELETE_ON_CLOSE on Windows, so it will be removed when fgfs exits,
even if killed or crashes.
2013-11-15 21:04:15 +00:00
James Turner
e25aa4f004 Fix some static property references.
(These cause problems when replacing the property tree during reset)
2013-11-14 16:37:46 +00:00
James Turner
44246d7708 Reset: adjust for tweaked TerraSync API 2013-11-12 23:10:19 +00:00
James Turner
af40bcb60e Reset: explicit close-window function.
Allow orderly shutdown of OSG before cxa_finalize
2013-11-12 22:57:13 +00:00
James Turner
e93dc27153 Tweaks to startup configuration handling
- restore-defaults kills the nav cache, terra-sync cache
- new ignore-autosave option bypasses autosave.xml and leaves it
  untouched (does not over-write on exit)
2013-10-26 18:29:31 +01:00
Thomas Geymayer
771586854b Make build information readonly and clean up debug output. 2013-10-20 12:59:44 +02:00
Thomas Geymayer
6b88302037 Provide debug information on thread safety of osg::Referenced. 2013-10-19 01:20:28 +02:00
James Turner
f6fafffeb5 Initial hacking on terra-sync of traffic files. 2013-10-17 17:33:30 +01:00
James Turner
386d87e098 Cleanup exit handling.
Replace many lingering calls to exit() from the code,
replacing most with exception throws, which can be
caught by the existing mechanisms.

Update the option-parsing code to return an explicit
value indicating what to do (e.g., exit status to return
to the shell).
2013-10-15 22:16:50 +01:00
James Turner
52e5a9abe8 Reduce amount of log output at level=debug. 2013-09-28 14:47:20 +01:00
James Turner
1a9e479e2a Terrasync tweaks.
- Enable the terrasync persistent cache
- Ensure terraysync scenery dirs exist before NavCache init, so the paths are stable
- Notify TerraSync on reposition, so we sync the full 3x3 set of tiles.
2013-09-28 14:07:45 +01:00
Gijs de Rooy
78507bf22e Suggest NVIDIA Optimus to use the high-end GPU. 2013-07-18 08:51:43 +01:00
James Turner
b1b6d2f6e2 Namespace fixes for std::string 2013-06-27 09:53:12 +01:00
James Turner
e08eb7457e Dump more config state at startup.
Ensure that log files capture enough config state to debug path/search issues. Easy to expand this mechanism now to record anything similar.
2013-02-08 13:15:20 +00:00
James Turner
9ccf159f81 Refactor FG_HOME init, so we can log sooner.
Logging to file now happens earlier, so some useful early output is captured.
2013-02-08 12:57:17 +00:00
James Turner
0ced6a24a0 Log to file inside FG_HOME. 2013-02-07 12:02:52 +00:00
James Turner
4ca85f2653 Bug #385 - enable the Ati viewport hack on next.
Enabling this hack by default, to assess the impact for everyone. Should fix the issue for Ati Catalyst 11.5 users, and hopefully no impact for everyone else. All feedback appreciated. Set /sim/ati-viewport-hack to false if you think this option might be causing issues for you (and then tell James, ASAP)
2013-01-28 23:35:44 +00:00
James Turner
487638be7f Restructure positional finalisation for sim-reset.
Make position finalisation happen in the same phase as scenery load, i.e as a task during the main loop, instead of during the init loop. This is compatible with the existing reset logic. Unfortunately more work is needed; the environment code doesn't update the local station quickly enough on reset. (Fixing that is next!)
2012-12-15 15:25:45 +00:00
James Turner
dc132ab475 Issue #809, restructure position init code.
Modify startup sequence, so position can be modified late in the startup process, right before the scenery load starts. This allows two ugly hacks to move to a permanent, less hacky location. If other position init modes required similar late evaluation in the future, this can be accommodated now.

This is a somewhat high-risk change - I've tested both carrier starts and runway-selection based on realwx METAR, but please look out for other position-init issues and test before / after this patch.
2012-12-09 19:41:31 +00:00
ThorstenB
be3f94f63a Remove static subsystem dependencies
preventing us from recreating subsystems on reset/reinit.
2012-11-18 17:29:29 +01:00
ThorstenB
a784443a24 Remove static property dependencies
preventing us from wiping properties on reset/reinit/subsystem recreate.
(more work required for "native_gui" and "ATC-Outputs" protocols)
2012-11-18 16:35:54 +01:00
Thomas Geymayer
71eeb62c1b Simplify canvas OpenVG initialization and fix sometimes rendering too lazy 2012-10-31 01:44:25 +01:00
James Turner
8608a48073 Initial work on dynamic subsystem creation.
Make subsystems create-able and removable from commands. Only some subsystems are supported so far, since many have non-default constructors or other complexities.

With this, change, it's possible to dynamically add and remove the traffic-manager at runtime, for example: fgcommand("add-subsystem", props.Node.new({ "subsystem": "traffic-manager", "name":"traffic-manager", "do-bind-init":1}));
2012-09-30 16:34:51 +01:00
James Turner
a67d8e1983 All FPU control happens in bootstrap.cxx
Remove some platform includes which don't belong in main.cxx
2012-09-26 16:25:18 +01:00
James Turner
b5820a4e90 Fix string-id for message translation. 2012-09-26 13:38:26 +01:00
ThorstenB
dac8706e2e Move GUI init code to gui module. 2012-09-25 22:39:13 +02:00
James Turner
a10638c6b4 Use a helper thread to rebuild the navcache.
Avoid the application becoming unresponsive during nav-cache rebuilds. We still have to wait for the rebuild, but perform it on a helper thread so the main GUI thread stays responsive and hence doesn't trigger a beach-ball / 'not responding' alert. Also ensures there's some feedback (the spinner) during the rebuild operation, so users don't think we've hung.
2012-09-25 17:24:12 +01:00
James Turner
2f6172687e Make FGControls behave like a standard subsystem. 2012-09-25 00:48:48 +01:00
ThorstenB
a2cfef95fb Minor tile manager clean-up.
The tilemgr schedules scenery, so it should also trigger the
"sceneryloaded" signals once it's done.
2012-09-24 23:42:25 +02:00
ThorstenB
88592bfe71 splash screen: use language resource for translation
Also pimp the progress spinner.
2012-09-21 19:36:25 +02:00
James Turner
9b900e9430 Implement a persistent cache for navigation data.
Cache the parsed navigation and airport data in a binary file to reduce
startup times and memory consumption (since only referenced FGPositioned
elements are held in memory).

Data will be reimported when the mod-time of any input file is changed.
If a global file is changed (nav.dat, awy.dat, apt.dat, etc), the cache
will be completely rebuilt, which takes approximately 30 seconds on
moderate hardware. (Future work may reduce this).
2012-09-19 11:38:19 +01:00
James Turner
ffbb0a0e5d Sink position-init code into its own file.
Separate other init functions from position init, since they are unrelated, and made fg_init.cxx very complex. Next step will be brining some sanity to the position init logic :)
2012-09-18 20:50:28 +01:00
James Turner
e2eea405a3 Make subsystem init incremental.
(Requires latest SimGear!)

Break fgInitSubsystems into several phases - subsystem creation, then binding and then init. Run init over multiple main-loop iterations so the application stays responsive to GUI/OS events during init. 

There should be no behaviour changes due to this, except that during init Windows and OS-X should no longer show the beach ball / 'application not responding feedback', hopefully.
2012-09-18 20:29:36 +01:00
Stuart Buchanan
9d30d622ae Expose the shader language version, to help diagnostics. 2012-09-18 15:48:06 +01:00
James Turner
505796e349 Make magavr a regular subsystem.
Remove various hacks and make magvar work like a normal subsystem, as part of the environment manager. Fix the remaining users of the globals->get_mag accessor, and hence kill off the global pointer.
2012-09-18 00:58:27 +01:00
ThorstenB
01376eec31 Minor main loop/init clean-up 2012-09-17 13:45:31 +02:00
ThorstenB
06170ddaae Handle scenery-override in a single place only. 2012-09-17 13:45:31 +02:00
ThorstenB
7415696492 Create FGSoundManager as a wrapper for SGSoundMgr_OpenAl
and sink all sound related code from main.cxx in there.
2012-09-17 13:45:31 +02:00
ThorstenB
a2922e2e23 ATCDCL cleanup, part II.
Remove/comment out obsolete code.
Refactor ATCmgr(-old) into ATISmgr(-new), only keeping the COM radio / ATIS
support.
2012-05-12 23:53:30 +02:00
ThorstenB
89b41395d8 Move viewer-related sources to separate folder.
Simple source directory clean-up, so "Main" folder contains fewer stuff
and the list of files in the editors a lot shorter.
2012-04-25 23:28:00 +02:00
ThorstenB
470552fab1 Move locale code to separate module.
Introduce convenience methods to handle localized string resources
and obtain strings.
2012-04-21 20:17:42 +02:00
James Turner
8c187164fe Work on making 2D panels act like standard scene-graph elements for picking and drawing.
(This includes 2.5D panels in the 3D scene)
2012-03-16 17:22:18 +00:00
Torsten Dreyer
72483d565b initialize the heading-indicator/offset-deg in it's class
Don't initialize the offset in the main loop but in
the init method of the implementing class. This ensures
it gets initialized if you instantiate more than one
heading-indicator and does not initialize the property for
unsused heading-indicators (no more stray heading-indicator-fg
property anymore).
2012-02-01 22:24:06 +01:00
ThorstenB
0b6579e0e4 Fix a minor warning.
System complains about "system" call's result being ignored.
2012-01-12 22:14:17 +01:00
ThorstenB
e1c1a28288 Introduce some structure in fgMainLoop.
- Move some code to sub functions.
- Make sound manager a subsystem-manager member (and make sure it's
still processed last).
2011-11-20 16:21:15 +01:00
James Turner
a05ea36acb Restructure GUI code, isolate PLIB in source files, to ease future refactoring and alternative GUI layers. 2011-11-19 20:25:51 +00:00
ThorstenB
4b2506d709 Add new performance monitoring subsystem.
Rename some subsystems for naming consistency.
2011-11-19 15:37:49 +01:00
James Turner
c1eca1ff6b Refactor SGSky handling and ownership - sink into Renderer, remove global variable 'the sky', and hence clean up main loop and subsystem creation a little more. 2011-11-05 17:11:52 +00:00
James Turner
daf644d600 Revert my code-cleanup, causing startup crashes, bah. 2011-11-04 12:02:43 +00:00