From 2d145d3251497f8ddd67848179435ef83177731b Mon Sep 17 00:00:00 2001 From: Frederic Bouvier Date: Sun, 7 Nov 2010 20:03:05 +0100 Subject: [PATCH 01/35] Update VS2010 projects : use Boost 1.44.0 --- projects/VC100/FlightGear/FlightGear.vcxproj | 16 +- projects/VC100/UGsmooth/UGsmooth.vcxproj | 430 +++++++-------- projects/VC100/fgjs/fgjs.vcxproj | 428 +++++++-------- projects/VC100/fgviewer/fgviewer.vcxproj | 16 +- projects/VC100/yasim/yasim.vcxproj | 520 +++++++++---------- 5 files changed, 705 insertions(+), 705 deletions(-) diff --git a/projects/VC100/FlightGear/FlightGear.vcxproj b/projects/VC100/FlightGear/FlightGear.vcxproj index b8ebf96b9..9d1ed5797 100644 --- a/projects/VC100/FlightGear/FlightGear.vcxproj +++ b/projects/VC100/FlightGear/FlightGear.vcxproj @@ -100,7 +100,7 @@ Disabled - ..\..\..\src;..\..\..\src\include;..\..\..\..\SimGear;..\..\..\src\FDM\JSBSim;..\..\..\..\install\msvc100\OpenSceneGraph\include;..\..\..\..\3rdParty\include;..\..\..\..\boost_1_43_0;%(AdditionalIncludeDirectories) + ..\..\..\src;..\..\..\src\include;..\..\..\..\SimGear;..\..\..\src\FDM\JSBSim;..\..\..\..\install\msvc100\OpenSceneGraph\include;..\..\..\..\3rdParty\include;..\..\..\..\boost_1_44_0;%(AdditionalIncludeDirectories) _DEBUG;WIN32;_CONSOLE;HAVE_CONFIG_H;FGFS;ENABLE_AUDIO_SUPPORT;_FG_NDEBUG;ENABLE_THREADS=1;FG_ENABLE_MULTIPASS_CLOUDS;ENABLE_SP_FMDS;_USE_MATH_DEFINES;FG_JPEG_SERVER;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions) true Default @@ -121,7 +121,7 @@ opengl32.lib;glu32.lib;winmm.lib;wsock32.lib;sg_d.lib;net_d.lib;pui_d.lib;puaux_d.lib;fnt_d.lib;js_d.lib;ul_d.lib;zlibd.lib;OpenAL32.lib;ALut.lib;osgd.lib;osgDBd.lib;osgUtild.lib;osgViewerd.lib;osgGAd.lib;osgTextd.lib;osgParticled.lib;OpenThreadsd.lib;libjpegd.lib;%(AdditionalDependencies) $(OutDir)fgfs.exe true - ..\..\..\..\install\msvc100\OpenSceneGraph\lib;..\..\..\..\3rdParty\lib;%(AdditionalLibraryDirectories) + ..\..\..\..\install\msvc100\OpenSceneGraph\lib;..\..\..\..\3rdParty\lib;..\..\..\..\boost_1_44_0\lib;%(AdditionalLibraryDirectories) %(IgnoreSpecificDefaultLibraries) true Console @@ -138,7 +138,7 @@ Disabled - ..\..\..\src;..\..\..\src\include;..\..\..\..\SimGear;..\..\..\src\FDM\JSBSim;..\..\..\..\install\msvc100-64\OpenSceneGraph\include;..\..\..\..\3rdParty.x64\include;..\..\..\..\boost_1_43_0;%(AdditionalIncludeDirectories) + ..\..\..\src;..\..\..\src\include;..\..\..\..\SimGear;..\..\..\src\FDM\JSBSim;..\..\..\..\install\msvc100-64\OpenSceneGraph\include;..\..\..\..\3rdParty.x64\include;..\..\..\..\boost_1_44_0;%(AdditionalIncludeDirectories) _DEBUG;WIN32;_CONSOLE;HAVE_CONFIG_H;FGFS;ENABLE_AUDIO_SUPPORT;_FG_NDEBUG;ENABLE_THREADS=1;FG_ENABLE_MULTIPASS_CLOUDS;ENABLE_SP_FMDS;_USE_MATH_DEFINES;FG_JPEG_SERVER;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;PU_USE_NATIVE;%(PreprocessorDefinitions) true Default @@ -158,7 +158,7 @@ opengl32.lib;glu32.lib;winmm.lib;wsock32.lib;sg_d.lib;net_d.lib;pui_d.lib;puaux_d.lib;fnt_d.lib;js_d.lib;ul_d.lib;zlibd.lib;OpenAL32.lib;ALut.lib;osgd.lib;osgDBd.lib;osgUtild.lib;osgViewerd.lib;osgGAd.lib;osgTextd.lib;osgParticled.lib;OpenThreadsd.lib;libjpegd.lib;%(AdditionalDependencies) $(OutDir)fgfs.exe true - ..\..\..\..\install\msvc100-64\OpenSceneGraph\lib;..\..\..\..\3rdParty.x64\lib;%(AdditionalLibraryDirectories) + ..\..\..\..\install\msvc100-64\OpenSceneGraph\lib;..\..\..\..\3rdParty.x64\lib;..\..\..\..\boost_1_44_0\lib64;%(AdditionalLibraryDirectories) %(IgnoreSpecificDefaultLibraries) true Console @@ -175,7 +175,7 @@ AnySuitable - ..\..\..\src;..\..\..\src\include;..\..\..\src\FDM\JSBSim;..\..\..\..\SimGear;..\..\..\..\install\msvc100\OpenSceneGraph\include;..\..\..\..\3rdParty\include;..\..\..\..\boost_1_43_0;%(AdditionalIncludeDirectories) + ..\..\..\src;..\..\..\src\include;..\..\..\src\FDM\JSBSim;..\..\..\..\SimGear;..\..\..\..\install\msvc100\OpenSceneGraph\include;..\..\..\..\3rdParty\include;..\..\..\..\boost_1_44_0;%(AdditionalIncludeDirectories) NDEBUG;WIN32;_CONSOLE;HAVE_CONFIG_H;FGFS;ENABLE_AUDIO_SUPPORT;_FG_NDEBUG;ENABLE_THREADS=1;FG_ENABLE_MULTIPASS_CLOUDS;ENABLE_SP_FMDS;_USE_MATH_DEFINES;FG_JPEG_SERVER;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -195,7 +195,7 @@ opengl32.lib;glu32.lib;winmm.lib;wsock32.lib;sg.lib;net.lib;pui.lib;puAux.lib;fnt.lib;js.lib;ul.lib;zlib.lib;OpenAL32.lib;ALut.lib;osg.lib;osgDB.lib;osgUtil.lib;osgViewer.lib;osgGA.lib;osgText.lib;osgParticle.lib;OpenThreads.lib;libjpeg.lib;%(AdditionalDependencies) $(OutDir)fgfs.exe true - ..\..\..\..\install\msvc100\OpenSceneGraph\lib;..\..\..\..\3rdParty\lib;%(AdditionalLibraryDirectories) + ..\..\..\..\install\msvc100\OpenSceneGraph\lib;..\..\..\..\3rdParty\lib;..\..\..\..\boost_1_44_0\lib;%(AdditionalLibraryDirectories) %(IgnoreSpecificDefaultLibraries) true Console @@ -212,7 +212,7 @@ OnlyExplicitInline - ..\..\..\src;..\..\..\src\include;..\..\..\src\FDM\JSBSim;..\..\..\..\SimGear;..\..\..\..\install\msvc100-64\OpenSceneGraph\include;..\..\..\..\3rdParty.x64\include;..\..\..\..\boost_1_43_0;%(AdditionalIncludeDirectories) + ..\..\..\src;..\..\..\src\include;..\..\..\src\FDM\JSBSim;..\..\..\..\SimGear;..\..\..\..\install\msvc100-64\OpenSceneGraph\include;..\..\..\..\3rdParty.x64\include;..\..\..\..\boost_1_44_0;%(AdditionalIncludeDirectories) NDEBUG;WIN32;_CONSOLE;HAVE_CONFIG_H;FGFS;ENABLE_AUDIO_SUPPORT;_FG_NDEBUG;ENABLE_THREADS=1;FG_ENABLE_MULTIPASS_CLOUDS;ENABLE_SP_FMDS;_USE_MATH_DEFINES;FG_JPEG_SERVER;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;PU_USE_NATIVE;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -231,7 +231,7 @@ opengl32.lib;glu32.lib;winmm.lib;wsock32.lib;sg.lib;net.lib;pui.lib;puAux.lib;fnt.lib;js.lib;ul.lib;zlib.lib;OpenAL32.lib;ALut.lib;osg.lib;osgDB.lib;osgUtil.lib;osgViewer.lib;osgGA.lib;osgText.lib;osgParticle.lib;OpenThreads.lib;libjpeg.lib;%(AdditionalDependencies) $(OutDir)fgfs.exe true - ..\..\..\..\install\msvc100-64\OpenSceneGraph\lib;..\..\..\..\3rdParty.x64\lib;%(AdditionalLibraryDirectories) + ..\..\..\..\install\msvc100-64\OpenSceneGraph\lib;..\..\..\..\3rdParty.x64\lib;..\..\..\..\boost_1_44_0\lib64;%(AdditionalLibraryDirectories) %(IgnoreSpecificDefaultLibraries) true Console diff --git a/projects/VC100/UGsmooth/UGsmooth.vcxproj b/projects/VC100/UGsmooth/UGsmooth.vcxproj index 44d5a52d7..c956eb164 100644 --- a/projects/VC100/UGsmooth/UGsmooth.vcxproj +++ b/projects/VC100/UGsmooth/UGsmooth.vcxproj @@ -1,216 +1,216 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - {EEEEB798-BFFD-425F-86F9-03C6FE6B8B99} - Win32Proj - - - - Application - MultiByte - - - Application - MultiByte - - - Application - MultiByte - - - Application - MultiByte - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>10.0.30319.1 - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - true - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - true - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - false - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - false - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - - - - Disabled - ..\..\..\src;..\..\..\..\SimGear;..\..\..\..\install\msvc100\OpenSceneGraph\include;..\..\..\..\3rdParty\include;..\..\..\..\boost_1_43_0;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_CONSOLE;NOMINMAX;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - - - Level3 - EditAndContinue - - - sg_d.lib;net_d.lib;ul_d.lib;ws2_32.lib;winmm.lib;zlibd.lib;%(AdditionalDependencies) - ..\..\..\..\3rdParty\lib;%(AdditionalLibraryDirectories) - true - $(OutDir)UGsmooth.pdb - Console - false - - - MachineX86 - - - - - X64 - - - Disabled - ..\..\..\src;..\..\..\..\SimGear;..\..\..\..\install\msvc100-64\OpenSceneGraph\include;..\..\..\..\3rdParty.x64\include;..\..\..\..\boost_1_43_0;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_CONSOLE;NOMINMAX;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - - - Level3 - EditAndContinue - - - sg_d.lib;net_d.lib;ul_d.lib;ws2_32.lib;winmm.lib;zlibd.lib;%(AdditionalDependencies) - ..\..\..\..\3rdParty.x64\lib;%(AdditionalLibraryDirectories) - true - $(OutDir)UGsmooth.pdb - Console - false - - - MachineX64 - - - - - ..\..\..\src;..\..\..\..\SimGear;..\..\..\..\install\msvc100\OpenSceneGraph\include;..\..\..\..\3rdParty\include;..\..\..\..\boost_1_43_0;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_CONSOLE;NOMINMAX;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions) - MultiThreadedDLL - true - - - Level3 - ProgramDatabase - AnySuitable - - - sg.lib;net.lib;ul.lib;ws2_32.lib;winmm.lib;zlib.lib;%(AdditionalDependencies) - ..\..\..\..\3rdParty\lib;%(AdditionalLibraryDirectories) - true - Console - true - true - false - - - MachineX86 - - - - - X64 - - - ..\..\..\src;..\..\..\..\SimGear;..\..\..\..\install\msvc100-64\OpenSceneGraph\include;..\..\..\..\3rdParty.x64\include;..\..\..\..\boost_1_43_0;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_CONSOLE;NOMINMAX;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions) - MultiThreadedDLL - true - - - Level3 - ProgramDatabase - - - sg.lib;net.lib;ul.lib;ws2_32.lib;winmm.lib;zlib.lib;%(AdditionalDependencies) - ..\..\..\..\3rdParty.x64\lib;%(AdditionalLibraryDirectories) - true - Console - true - true - false - - - MachineX64 - - - - - - - - - - - - - - - - - {22540cd3-d3ca-4c86-a773-80aeee3acded} - - - - - + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {EEEEB798-BFFD-425F-86F9-03C6FE6B8B99} + Win32Proj + + + + Application + MultiByte + + + Application + MultiByte + + + Application + MultiByte + + + Application + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + true + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + true + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + false + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + false + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + + + + Disabled + ..\..\..\src;..\..\..\..\SimGear;..\..\..\..\install\msvc100\OpenSceneGraph\include;..\..\..\..\3rdParty\include;..\..\..\..\boost_1_44_0;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_CONSOLE;NOMINMAX;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + + Level3 + EditAndContinue + + + sg_d.lib;net_d.lib;ul_d.lib;ws2_32.lib;winmm.lib;zlibd.lib;%(AdditionalDependencies) + ..\..\..\..\3rdParty\lib;%(AdditionalLibraryDirectories) + true + $(OutDir)UGsmooth.pdb + Console + false + + + MachineX86 + + + + + X64 + + + Disabled + ..\..\..\src;..\..\..\..\SimGear;..\..\..\..\install\msvc100-64\OpenSceneGraph\include;..\..\..\..\3rdParty.x64\include;..\..\..\..\boost_1_44_0;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_CONSOLE;NOMINMAX;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + + Level3 + EditAndContinue + + + sg_d.lib;net_d.lib;ul_d.lib;ws2_32.lib;winmm.lib;zlibd.lib;%(AdditionalDependencies) + ..\..\..\..\3rdParty.x64\lib;%(AdditionalLibraryDirectories) + true + $(OutDir)UGsmooth.pdb + Console + false + + + MachineX64 + + + + + ..\..\..\src;..\..\..\..\SimGear;..\..\..\..\install\msvc100\OpenSceneGraph\include;..\..\..\..\3rdParty\include;..\..\..\..\boost_1_44_0;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_CONSOLE;NOMINMAX;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions) + MultiThreadedDLL + true + + + Level3 + ProgramDatabase + AnySuitable + + + sg.lib;net.lib;ul.lib;ws2_32.lib;winmm.lib;zlib.lib;%(AdditionalDependencies) + ..\..\..\..\3rdParty\lib;%(AdditionalLibraryDirectories) + true + Console + true + true + false + + + MachineX86 + + + + + X64 + + + ..\..\..\src;..\..\..\..\SimGear;..\..\..\..\install\msvc100-64\OpenSceneGraph\include;..\..\..\..\3rdParty.x64\include;..\..\..\..\boost_1_44_0;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_CONSOLE;NOMINMAX;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions) + MultiThreadedDLL + true + + + Level3 + ProgramDatabase + + + sg.lib;net.lib;ul.lib;ws2_32.lib;winmm.lib;zlib.lib;%(AdditionalDependencies) + ..\..\..\..\3rdParty.x64\lib;%(AdditionalLibraryDirectories) + true + Console + true + true + false + + + MachineX64 + + + + + + + + + + + + + + + + + {22540cd3-d3ca-4c86-a773-80aeee3acded} + + + + + \ No newline at end of file diff --git a/projects/VC100/fgjs/fgjs.vcxproj b/projects/VC100/fgjs/fgjs.vcxproj index f9b1b2e4f..894ec6eaa 100644 --- a/projects/VC100/fgjs/fgjs.vcxproj +++ b/projects/VC100/fgjs/fgjs.vcxproj @@ -1,215 +1,215 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - {6749547A-6493-4754-8E0E-49FB3137C4CA} - fgjs - Win32Proj - - - - Application - MultiByte - - - Application - MultiByte - - - Application - MultiByte - - - Application - MultiByte - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>10.0.30319.1 - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - true - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - true - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - false - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - false - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - - - - Disabled - ..\..\..\src;..\..\..\..\SimGear;..\..\..\..\install\msvc100\OpenSceneGraph\include;..\..\..\..\3rdParty\include;..\..\..\..\boost_1_43_0;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_CONSOLE;NOMINMAX;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - - - Level3 - EditAndContinue - - - sg_d.lib;js_d.lib;ul_d.lib;zlibd.lib;winmm.lib;ws2_32.lib;OpenThreadsd.lib;%(AdditionalDependencies) - ..\..\..\..\install\msvc100\OpenSceneGraph\lib;..\..\..\..\3rdParty\lib;%(AdditionalLibraryDirectories) - true - $(OutDir)fgjs.pdb - Console - false - - - MachineX86 - - - - - X64 - - - Disabled - ..\..\..\src;..\..\..\..\SimGear;..\..\..\..\install\msvc100-64\OpenSceneGraph\include;..\..\..\..\3rdParty.x64\include;..\..\..\..\boost_1_43_0;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_CONSOLE;NOMINMAX;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions) - EnableFastChecks - MultiThreadedDebugDLL - true - - - Level3 - EditAndContinue - - - sg_d.lib;js_d.lib;ul_d.lib;zlibd.lib;winmm.lib;ws2_32.lib;OpenThreadsd.lib;%(AdditionalDependencies) - ..\..\..\..\install\msvc100-64\OpenSceneGraph\lib;..\..\..\..\3rdParty.x64\lib;%(AdditionalLibraryDirectories) - true - $(OutDir)fgjs.pdb - Console - false - - - MachineX64 - - - - - ..\..\..\src;..\..\..\..\SimGear;..\..\..\..\install\msvc100\OpenSceneGraph\include;..\..\..\..\3rdParty\include;..\..\..\..\boost_1_43_0;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_CONSOLE;NOMINMAX;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions) - MultiThreadedDLL - true - - - Level3 - ProgramDatabase - AnySuitable - - - sg.lib;js.lib;ul.lib;zlib.lib;winmm.lib;ws2_32.lib;OpenThreads.lib;%(AdditionalDependencies) - ..\..\..\..\install\msvc100\OpenSceneGraph\lib;..\..\..\..\3rdParty\lib;%(AdditionalLibraryDirectories) - true - Console - true - true - false - - - MachineX86 - - - - - - - X64 - - - ..\..\..\src;..\..\..\..\SimGear;..\..\..\..\install\msvc100-64\OpenSceneGraph\include;..\..\..\..\3rdParty.x64\include;..\..\..\..\boost_1_43_0;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_CONSOLE;NOMINMAX;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions) - MultiThreadedDLL - true - - - Level3 - ProgramDatabase - - - sg.lib;js.lib;ul.lib;zlib.lib;winmm.lib;ws2_32.lib;OpenThreads.lib;%(AdditionalDependencies) - ..\..\..\..\install\msvc100-64\OpenSceneGraph\lib;..\..\..\..\3rdParty.x64\lib;%(AdditionalLibraryDirectories) - true - Console - true - true - false - - - MachineX64 - - - - - - - - - - - - - - {22540cd3-d3ca-4c86-a773-80aeee3acded} - - - - - + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {6749547A-6493-4754-8E0E-49FB3137C4CA} + fgjs + Win32Proj + + + + Application + MultiByte + + + Application + MultiByte + + + Application + MultiByte + + + Application + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + true + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + true + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + false + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + false + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + + + + Disabled + ..\..\..\src;..\..\..\..\SimGear;..\..\..\..\install\msvc100\OpenSceneGraph\include;..\..\..\..\3rdParty\include;..\..\..\..\boost_1_44_0;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_CONSOLE;NOMINMAX;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + + Level3 + EditAndContinue + + + sg_d.lib;js_d.lib;ul_d.lib;zlibd.lib;winmm.lib;ws2_32.lib;OpenThreadsd.lib;%(AdditionalDependencies) + ..\..\..\..\install\msvc100\OpenSceneGraph\lib;..\..\..\..\3rdParty\lib;%(AdditionalLibraryDirectories) + true + $(OutDir)fgjs.pdb + Console + false + + + MachineX86 + + + + + X64 + + + Disabled + ..\..\..\src;..\..\..\..\SimGear;..\..\..\..\install\msvc100-64\OpenSceneGraph\include;..\..\..\..\3rdParty.x64\include;..\..\..\..\boost_1_44_0;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_CONSOLE;NOMINMAX;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions) + EnableFastChecks + MultiThreadedDebugDLL + true + + + Level3 + EditAndContinue + + + sg_d.lib;js_d.lib;ul_d.lib;zlibd.lib;winmm.lib;ws2_32.lib;OpenThreadsd.lib;%(AdditionalDependencies) + ..\..\..\..\install\msvc100-64\OpenSceneGraph\lib;..\..\..\..\3rdParty.x64\lib;%(AdditionalLibraryDirectories) + true + $(OutDir)fgjs.pdb + Console + false + + + MachineX64 + + + + + ..\..\..\src;..\..\..\..\SimGear;..\..\..\..\install\msvc100\OpenSceneGraph\include;..\..\..\..\3rdParty\include;..\..\..\..\boost_1_44_0;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_CONSOLE;NOMINMAX;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions) + MultiThreadedDLL + true + + + Level3 + ProgramDatabase + AnySuitable + + + sg.lib;js.lib;ul.lib;zlib.lib;winmm.lib;ws2_32.lib;OpenThreads.lib;%(AdditionalDependencies) + ..\..\..\..\install\msvc100\OpenSceneGraph\lib;..\..\..\..\3rdParty\lib;%(AdditionalLibraryDirectories) + true + Console + true + true + false + + + MachineX86 + + + + + + + X64 + + + ..\..\..\src;..\..\..\..\SimGear;..\..\..\..\install\msvc100-64\OpenSceneGraph\include;..\..\..\..\3rdParty.x64\include;..\..\..\..\boost_1_44_0;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_CONSOLE;NOMINMAX;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions) + MultiThreadedDLL + true + + + Level3 + ProgramDatabase + + + sg.lib;js.lib;ul.lib;zlib.lib;winmm.lib;ws2_32.lib;OpenThreads.lib;%(AdditionalDependencies) + ..\..\..\..\install\msvc100-64\OpenSceneGraph\lib;..\..\..\..\3rdParty.x64\lib;%(AdditionalLibraryDirectories) + true + Console + true + true + false + + + MachineX64 + + + + + + + + + + + + + + {22540cd3-d3ca-4c86-a773-80aeee3acded} + + + + + \ No newline at end of file diff --git a/projects/VC100/fgviewer/fgviewer.vcxproj b/projects/VC100/fgviewer/fgviewer.vcxproj index 50652682a..957fa08d3 100644 --- a/projects/VC100/fgviewer/fgviewer.vcxproj +++ b/projects/VC100/fgviewer/fgviewer.vcxproj @@ -89,7 +89,7 @@ Disabled - ..\..\..\..\SimGear;..\..\..\..\install\msvc100\OpenSceneGraph\include;..\..\..\..\boost_1_43_0;..\..\..\..\3rdParty\include;%(AdditionalIncludeDirectories) + ..\..\..\..\SimGear;..\..\..\..\install\msvc100\OpenSceneGraph\include;..\..\..\..\boost_1_44_0;..\..\..\..\3rdParty\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_CONSOLE;NOMINMAX;%(PreprocessorDefinitions) true EnableFastChecks @@ -102,7 +102,7 @@ opengl32.lib;osgd.lib;osgDBd.lib;osgViewerd.lib;osgGAd.lib;openthreadsd.lib;osgParticled.lib;osgUtild.lib;osgTextd.lib;ul_d.lib;sg_d.lib;zlibd.lib;%(AdditionalDependencies) - ..\..\..\..\install\msvc100\OpenSceneGraph\lib;..\..\..\..\3rdParty\lib;%(AdditionalLibraryDirectories) + ..\..\..\..\install\msvc100\OpenSceneGraph\lib;..\..\..\..\3rdParty\lib;..\..\..\..\boost_1_44_0\lib;%(AdditionalLibraryDirectories) true $(OutDir)fgviewer.pdb Console @@ -119,7 +119,7 @@ Disabled - ..\..\..\..\SimGear;..\..\..\..\install\msvc100-64\OpenSceneGraph\include;..\..\..\..\boost_1_43_0;..\..\..\..\3rdParty.x64\include;%(AdditionalIncludeDirectories) + ..\..\..\..\SimGear;..\..\..\..\install\msvc100-64\OpenSceneGraph\include;..\..\..\..\boost_1_44_0;..\..\..\..\3rdParty.x64\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_CONSOLE;NOMINMAX;%(PreprocessorDefinitions) true EnableFastChecks @@ -132,7 +132,7 @@ opengl32.lib;osgd.lib;osgDBd.lib;osgViewerd.lib;osgGAd.lib;openthreadsd.lib;osgParticled.lib;osgUtild.lib;osgTextd.lib;ul_d.lib;sg_d.lib;zlibd.lib;%(AdditionalDependencies) - ..\..\..\..\install\msvc100-64\OpenSceneGraph\lib;..\..\..\..\3rdParty.x64\lib;%(AdditionalLibraryDirectories) + ..\..\..\..\install\msvc100-64\OpenSceneGraph\lib;..\..\..\..\3rdParty.x64\lib;..\..\..\..\boost_1_44_0\lib64;%(AdditionalLibraryDirectories) true $(OutDir)fgviewer.pdb Console @@ -145,7 +145,7 @@ - ..\..\..\..\SimGear;..\..\..\..\install\msvc100\OpenSceneGraph\include;..\..\..\..\boost_1_43_0;..\..\..\..\3rdParty\include;%(AdditionalIncludeDirectories) + ..\..\..\..\SimGear;..\..\..\..\install\msvc100\OpenSceneGraph\include;..\..\..\..\boost_1_44_0;..\..\..\..\3rdParty\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_CONSOLE;NOMINMAX;%(PreprocessorDefinitions) MultiThreadedDLL true @@ -157,7 +157,7 @@ opengl32.lib;osg.lib;osgDB.lib;osgViewer.lib;osgGA.lib;openthreads.lib;osgParticle.lib;osgUtil.lib;osgText.lib;ul.lib;sg.lib;zlib.lib;%(AdditionalDependencies) - ..\..\..\..\install\msvc100\OpenSceneGraph\lib;..\..\..\..\3rdParty\lib;%(AdditionalLibraryDirectories) + ..\..\..\..\install\msvc100\OpenSceneGraph\lib;..\..\..\..\3rdParty\lib;..\..\..\..\boost_1_44_0\lib;%(AdditionalLibraryDirectories) true Console true @@ -174,7 +174,7 @@ X64 - ..\..\..\..\SimGear;..\..\..\..\install\msvc100-64\OpenSceneGraph\include;..\..\..\..\boost_1_43_0;..\..\..\..\3rdParty.x64\include;%(AdditionalIncludeDirectories) + ..\..\..\..\SimGear;..\..\..\..\install\msvc100-64\OpenSceneGraph\include;..\..\..\..\boost_1_44_0;..\..\..\..\3rdParty.x64\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_CONSOLE;NOMINMAX;%(PreprocessorDefinitions) MultiThreadedDLL true @@ -185,7 +185,7 @@ opengl32.lib;osg.lib;osgDB.lib;osgViewer.lib;osgGA.lib;openthreads.lib;osgParticle.lib;osgUtil.lib;osgText.lib;ul.lib;sg.lib;zlib.lib;%(AdditionalDependencies) - ..\..\..\..\install\msvc100-64\OpenSceneGraph\lib;..\..\..\..\3rdParty.x64\lib;%(AdditionalLibraryDirectories) + ..\..\..\..\install\msvc100-64\OpenSceneGraph\lib;..\..\..\..\3rdParty.x64\lib;..\..\..\..\boost_1_44_0\lib64;%(AdditionalLibraryDirectories) true Console true diff --git a/projects/VC100/yasim/yasim.vcxproj b/projects/VC100/yasim/yasim.vcxproj index cb3477d7b..689910c80 100644 --- a/projects/VC100/yasim/yasim.vcxproj +++ b/projects/VC100/yasim/yasim.vcxproj @@ -1,261 +1,261 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - {800CB1FF-C398-4B81-B3D6-8BBD9E0897D2} - Win32Proj - - - - Application - MultiByte - - - Application - MultiByte - - - Application - MultiByte - - - Application - MultiByte - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>10.0.30319.1 - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - true - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - true - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - false - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - false - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - - - - Disabled - ..\..\..\src;..\..\..\..\SimGear;..\..\..\..\install\msvc100\OpenSceneGraph\include;..\..\..\..\3rdParty\include;..\..\..\..\boost_1_43_0;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_CONSOLE;NOMINMAX;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - - - Level3 - EditAndContinue - - - sg_d.lib;ul_d.lib;OpenThreadsd.lib;%(AdditionalDependencies) - ..\..\..\..\install\msvc100\OpenSceneGraph\lib;..\..\..\..\3rdParty\lib;%(AdditionalLibraryDirectories) - true - $(OutDir)yasim.pdb - Console - false - - - MachineX86 - - - - - X64 - - - Disabled - ..\..\..\src;..\..\..\..\SimGear;..\..\..\..\install\msvc100-64\OpenSceneGraph\include;..\..\..\..\3rdParty.x64\include;..\..\..\..\boost_1_43_0;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_CONSOLE;NOMINMAX;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - - - Level3 - EditAndContinue - - - sg_d.lib;ul_d.lib;OpenThreadsd.lib;%(AdditionalDependencies) - ..\..\..\..\install\msvc100-64\OpenSceneGraph\lib;..\..\..\..\3rdParty.x64\lib;%(AdditionalLibraryDirectories) - true - $(OutDir)yasim.pdb - Console - false - - - MachineX64 - - - - - ..\..\..\src;..\..\..\..\SimGear;..\..\..\..\install\msvc100\OpenSceneGraph\include;..\..\..\..\3rdParty\include;..\..\..\..\boost_1_43_0;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_CONSOLE;NOMINMAX;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions) - MultiThreadedDLL - true - - - Level3 - ProgramDatabase - AnySuitable - - - sg.lib;ul.lib;OpenThreads.lib;%(AdditionalDependencies) - ..\..\..\..\install\msvc100\OpenSceneGraph\lib;..\..\..\..\3rdParty\lib;%(AdditionalLibraryDirectories) - true - Console - true - true - false - - - MachineX86 - - - - - X64 - - - ..\..\..\src;..\..\..\..\SimGear;..\..\..\..\install\msvc100-64\OpenSceneGraph\include;..\..\..\..\3rdParty.x64\include;..\..\..\..\boost_1_43_0;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_CONSOLE;NOMINMAX;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions) - MultiThreadedDLL - true - - - Level3 - ProgramDatabase - - - sg.lib;ul.lib;OpenThreads.lib;%(AdditionalDependencies) - ..\..\..\..\install\msvc100-64\OpenSceneGraph\lib;..\..\..\..\3rdParty.x64\lib;%(AdditionalLibraryDirectories) - true - Console - true - true - false - - - MachineX64 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {22540cd3-d3ca-4c86-a773-80aeee3acded} - - - - - + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {800CB1FF-C398-4B81-B3D6-8BBD9E0897D2} + Win32Proj + + + + Application + MultiByte + + + Application + MultiByte + + + Application + MultiByte + + + Application + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + true + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + true + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + false + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + false + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + + + + Disabled + ..\..\..\src;..\..\..\..\SimGear;..\..\..\..\install\msvc100\OpenSceneGraph\include;..\..\..\..\3rdParty\include;..\..\..\..\boost_1_44_0;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_CONSOLE;NOMINMAX;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + + Level3 + EditAndContinue + + + sg_d.lib;ul_d.lib;OpenThreadsd.lib;%(AdditionalDependencies) + ..\..\..\..\install\msvc100\OpenSceneGraph\lib;..\..\..\..\3rdParty\lib;%(AdditionalLibraryDirectories) + true + $(OutDir)yasim.pdb + Console + false + + + MachineX86 + + + + + X64 + + + Disabled + ..\..\..\src;..\..\..\..\SimGear;..\..\..\..\install\msvc100-64\OpenSceneGraph\include;..\..\..\..\3rdParty.x64\include;..\..\..\..\boost_1_44_0;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_CONSOLE;NOMINMAX;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + + + Level3 + EditAndContinue + + + sg_d.lib;ul_d.lib;OpenThreadsd.lib;%(AdditionalDependencies) + ..\..\..\..\install\msvc100-64\OpenSceneGraph\lib;..\..\..\..\3rdParty.x64\lib;%(AdditionalLibraryDirectories) + true + $(OutDir)yasim.pdb + Console + false + + + MachineX64 + + + + + ..\..\..\src;..\..\..\..\SimGear;..\..\..\..\install\msvc100\OpenSceneGraph\include;..\..\..\..\3rdParty\include;..\..\..\..\boost_1_44_0;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_CONSOLE;NOMINMAX;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions) + MultiThreadedDLL + true + + + Level3 + ProgramDatabase + AnySuitable + + + sg.lib;ul.lib;OpenThreads.lib;%(AdditionalDependencies) + ..\..\..\..\install\msvc100\OpenSceneGraph\lib;..\..\..\..\3rdParty\lib;%(AdditionalLibraryDirectories) + true + Console + true + true + false + + + MachineX86 + + + + + X64 + + + ..\..\..\src;..\..\..\..\SimGear;..\..\..\..\install\msvc100-64\OpenSceneGraph\include;..\..\..\..\3rdParty.x64\include;..\..\..\..\boost_1_44_0;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_CONSOLE;NOMINMAX;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions) + MultiThreadedDLL + true + + + Level3 + ProgramDatabase + + + sg.lib;ul.lib;OpenThreads.lib;%(AdditionalDependencies) + ..\..\..\..\install\msvc100-64\OpenSceneGraph\lib;..\..\..\..\3rdParty.x64\lib;%(AdditionalLibraryDirectories) + true + Console + true + true + false + + + MachineX64 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {22540cd3-d3ca-4c86-a773-80aeee3acded} + + + + + \ No newline at end of file From 85185b56c5cb3873b7978fb910ab1740f822fd68 Mon Sep 17 00:00:00 2001 From: ThorstenB Date: Mon, 8 Nov 2010 00:24:41 +0100 Subject: [PATCH 02/35] Fixed hot-spot display for 3d modes Also set left/right culling masks (standard mask no effect when 3d rendering is enabled). --- src/Main/CameraGroup.cxx | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/Main/CameraGroup.cxx b/src/Main/CameraGroup.cxx index 954a591e5..0fb2f2e56 100644 --- a/src/Main/CameraGroup.cxx +++ b/src/Main/CameraGroup.cxx @@ -477,9 +477,15 @@ void CameraGroup::setCameraCullMasks(Node::NodeMask nm) continue; if (info->farCamera.valid() && info->farCamera->getNodeMask() != 0) { info->camera->setCullMask(nm & ~simgear::BACKGROUND_BIT); + info->camera->setCullMaskLeft(nm & ~simgear::BACKGROUND_BIT); + info->camera->setCullMaskRight(nm & ~simgear::BACKGROUND_BIT); info->farCamera->setCullMask(nm); + info->farCamera->setCullMaskLeft(nm); + info->farCamera->setCullMaskRight(nm); } else { info->camera->setCullMask(nm); + info->camera->setCullMaskLeft(nm); + info->camera->setCullMaskRight(nm); } } } From 4fead0185465c199cd924cea6b5e2ac1ef5283e3 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 8 Nov 2010 10:38:59 +0000 Subject: [PATCH 03/35] Initial work on NSIS install script --- package/Win-NSIS/flightgear-nightly.nsi | 115 ++++++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 package/Win-NSIS/flightgear-nightly.nsi diff --git a/package/Win-NSIS/flightgear-nightly.nsi b/package/Win-NSIS/flightgear-nightly.nsi new file mode 100644 index 000000000..08155b3d7 --- /dev/null +++ b/package/Win-NSIS/flightgear-nightly.nsi @@ -0,0 +1,115 @@ +!include "MUI.nsh" + +!system 'osgversion --so-number > %TEMP%\osg-so-number.txt' +!system 'osgversion --version-number > %TEMP%\osg-version.txt' + +!define /file OSGSoNumber $%TEMP%\osg-so-number.txt +!define /file OSGVersion $%TEMP%\osg-version.txt + +!echo "osg-so is ${OSGSoNumber}" + +Name "FlightGear Nightly" +OutFile fgfs_win32_nightly.exe + +InstallDir $PROGRAMFILES\FlightGear-nightly + +; Request admin privileges for Windows Vista +RequestExecutionLevel highest + +; don't hang around +AutoCloseWindow true + +!define UninstallKey "Software\Microsoft\Windows\CurrentVersion\Uninstall\FlightGear-nightly" +!define FGBinDir "flightgear\projects\VC90\Win32\Release" +!define FGRunBinDir "fgrun\msvc\9.0\Win32\Release" +!define OSGInstallDir "install\msvc90\OpenSceneGraph" +!define OSGPluginsDir "${OSGInstallDir}\bin\osgPlugins-${OSGVersion}" + +!define ThirdPartyBinDir "3rdParty\bin" + +!define MUI_HEADERIMAGE +!define MUI_HEADERIMAGE_RIGHT +;!define MUI_HEADERIMAGE_BITMAP "logo.bmp" ; optional +!define MUI_ABORTWARNING +;!define MUI_WELCOMEFINISHPAGE_BITMAP "welcome.bmp" +;!define MUI_UNWELCOMEFINISHPAGE_BITMAP "welcome.bmp" + +!insertmacro MUI_PAGE_WELCOME +;!insertmacro MUI_PAGE_LICENSE "License.txt" +!insertmacro MUI_PAGE_DIRECTORY +!insertmacro MUI_PAGE_INSTFILES + +!insertmacro MUI_UNPAGE_CONFIRM +!insertmacro MUI_UNPAGE_INSTFILES + +!insertmacro MUI_LANGUAGE "English" + +; The stuff to install +Section "" ;No components page, name is not important + + SetShellVarContext all + ; Set output path to the installation directory. + SetOutPath $INSTDIR + + File ${FGBinDir}\fgfs.exe + File ${FGBinDir}\fgjs.exe + File ${FGBinDir}\terrasync.exe + File ${FGRunBinDir}\fgrun.exe + + File ${OSGInstallDir}\bin\osg${OSGSoNumber}-osg.dll + File ${OSGInstallDir}\bin\osg${OSGSoNumber}-osgDB.dll + File ${OSGInstallDir}\bin\osg${OSGSoNumber}-osgGA.dll + File ${OSGInstallDir}\bin\osg${OSGSoNumber}-osgParticle.dll + File ${OSGInstallDir}\bin\osg${OSGSoNumber}-osgText.dll + File ${OSGInstallDir}\bin\osg${OSGSoNumber}-osgUtil.dll + File ${OSGInstallDir}\bin\osg${OSGSoNumber}-osgViewer.dll + File ${OSGInstallDir}\bin\osg${OSGSoNumber}-osgSim.dll + File ${OSGInstallDir}\bin\osg${OSGSoNumber}-osgFX.dll + + File ${OSGInstallDir}\bin\ot12-OpenThreads.dll + + File ${ThirdPartyBinDir}\*.dll + + ; VC runtime redistributables + File "$%VCINSTALLDIR%\redist\x86\Microsoft.VC90.CRT\*.dll" + + File /r ${FGRunBinDir}\locale + + SetOutPath $INSTDIR\osgPlugins-${OSGVersion} + File ${OSGPluginsDir}\osgdb_ac.dll + File ${OSGPluginsDir}\osgdb_jpeg.dll + File ${OSGPluginsDir}\osgdb_rgb.dll + File ${OSGPluginsDir}\osgdb_png.dll + File ${OSGPluginsDir}\osgdb_txf.dll + + + + + CreateShortCut "$SMPROGRAMS\FlightGear-nightly.lnk" "$INSTDIR\fgrun.exe" + WriteUninstaller "$INSTDIR\FlightGear_Uninstall.exe" + + WriteRegStr HKLM ${UninstallKey} "DisplayName" "FlightGear Nightly" + WriteRegStr HKLM ${UninstallKey} "DisplayVersion" "2.1" + WriteRegStr HKLM ${UninstallKey} "UninstallString" "$INSTDIR\FlightGear_Uninstall.exe" + WriteRegStr HKLM ${UninstallKey} "UninstallPath" "$INSTDIR\FlightGear_Uninstall.exe" + WriteRegDWORD HKLM ${UninstallKey} "NoModify" 1 + WriteRegDWORD HKLM ${UninstallKey} "NoRepair" 1 + WriteRegStr HKLM ${UninstallKey} "URLInfoAbout" "http://www.flightgear.org/" + +SectionEnd + + + +Section "Uninstall" + + SetShellVarContext all + + + Delete "$SMPROGRAMS\FlightGear-nightly.lnk" + + RMDir /r "$INSTDIR" + + DeleteRegKey HKLM ${UninstallKey} + +SectionEnd + \ No newline at end of file From 89591fe4ed480cb1da1ea162951d53e53b7bc039 Mon Sep 17 00:00:00 2001 From: James Turner Date: Mon, 8 Nov 2010 22:57:56 +0000 Subject: [PATCH 04/35] Improving the Win32 installer. --- package/Win-NSIS/fg-install-header.bmp | Bin 0 -> 332134 bytes package/Win-NSIS/flightgear-nightly.nsi | 21 ++++++++++++++++----- 2 files changed, 16 insertions(+), 5 deletions(-) create mode 100644 package/Win-NSIS/fg-install-header.bmp diff --git a/package/Win-NSIS/fg-install-header.bmp b/package/Win-NSIS/fg-install-header.bmp new file mode 100644 index 0000000000000000000000000000000000000000..42c2cbf26e5e23cca692288c091d4ab0c220e190 GIT binary patch literal 332134 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

G4EMqA!=Cm!ukM_`09o=!o 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 Date: Tue, 9 Nov 2010 18:57:47 +0000 Subject: [PATCH 05/35] Including missing OSG plugins, use LZMA compression --- package/Win-NSIS/flightgear-nightly.nsi | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/package/Win-NSIS/flightgear-nightly.nsi b/package/Win-NSIS/flightgear-nightly.nsi index 77a5f9753..55e5c151f 100644 --- a/package/Win-NSIS/flightgear-nightly.nsi +++ b/package/Win-NSIS/flightgear-nightly.nsi @@ -11,6 +11,10 @@ Name "FlightGear Nightly" OutFile fgfs_win32_nightly.exe +; use LZMA for best compression +SetCompressor /FINAL /SOLID lzma +SetCompressorDictSize 64 + InstallDir $PROGRAMFILES\FlightGear-nightly ; Request admin privileges for Windows Vista @@ -88,6 +92,9 @@ Section "" ;No components page, name is not important SetOutPath $INSTDIR\osgPlugins-${OSGVersion} File ${OSGPluginsDir}\osgdb_ac.dll + File ${OSGPluginsDir}\osgdb_osg.dll + File ${OSGPluginsDir}\osgdb_3ds.dll + File ${OSGPluginsDir}\osgdb_mdl.dll File ${OSGPluginsDir}\osgdb_jpeg.dll File ${OSGPluginsDir}\osgdb_rgb.dll File ${OSGPluginsDir}\osgdb_png.dll @@ -96,7 +103,8 @@ Section "" ;No components page, name is not important Exec '"$INSTDIR\fgrun.exe" --silent --fg-exe="$INSTDIR\fgfs.exe" --ts-exe="$INSTDIR\terrasync.exe" ' - CreateShortCut "$SMPROGRAMS\FlightGear-nightly.lnk" "$INSTDIR\fgrun.exe" + CreateDirectory "$SMPROGRAMS\FlightGear" + CreateShortCut "$SMPROGRAMS\FlightGear\FlightGear-nightly.lnk" "$INSTDIR\fgrun.exe" WriteUninstaller "$INSTDIR\FlightGear_Uninstall.exe" WriteRegStr HKLM ${UninstallKey} "DisplayName" "FlightGear Nightly" @@ -116,7 +124,9 @@ Section "Uninstall" SetShellVarContext all - Delete "$SMPROGRAMS\FlightGear-nightly.lnk" + Delete "$SMPROGRAMS\FlightGear\FlightGear-nightly.lnk" + ; only delete the FlightGear group if it's empty + RMDir "$SMPROGRAMS\FlightGear" RMDir /r "$INSTDIR" From d6dfecc927af06a45a8ede440853b7e9dfee6188 Mon Sep 17 00:00:00 2001 From: James Turner Date: Tue, 9 Nov 2010 19:09:05 +0000 Subject: [PATCH 06/35] Include some missed osg plugins, thanks Fred. --- package/mac/build-mac-nightly-dmg.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/mac/build-mac-nightly-dmg.rb b/package/mac/build-mac-nightly-dmg.rb index 04fb5568f..e3517ef12 100755 --- a/package/mac/build-mac-nightly-dmg.rb +++ b/package/mac/build-mac-nightly-dmg.rb @@ -3,7 +3,7 @@ require 'ERB' $osgLibs = ['osgFX', 'osgParticle', 'osg', 'osgGA', 'osgText', 'osgUtil', 'osgSim', 'osgViewer', 'osgDB'] -$osgPlugins = ['ac', 'osg', 'freetype', 'qt', 'imageio', 'rgb', 'txf'] +$osgPlugins = ['ac', 'osg', 'freetype', 'qt', 'imageio', 'rgb', 'txf', 'mdl', '3ds'] def runOsgVersion(option) env = "export DYLD_LIBRARY_PATH=#{Dir.pwd}/dist/lib" From e782471c15576d33c3cd488e808e35ba6fb61b85 Mon Sep 17 00:00:00 2001 From: Frederic Bouvier Date: Tue, 9 Nov 2010 22:13:26 +0100 Subject: [PATCH 07/35] Fix a typo --- docs-mini/README.MSVC | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs-mini/README.MSVC b/docs-mini/README.MSVC index 6d523315c..4e3e835b6 100644 --- a/docs-mini/README.MSVC +++ b/docs-mini/README.MSVC @@ -93,8 +93,8 @@ Typical setup should decompose into the following steps : It is also possible to compile a Debug version. This is only useful when hacking the code because a Debug version is way slower than the Release one. -The 64bit build is only available to people having the Professional edition of Visual Studio 2008. In that case, 14. above should be : - 14. Add /install/msvc90-64/OpenSceneGraph/bin and /3rdParty.x64/bin to your PATH environment variable +The 64bit build is only available to people having the Professional edition of Visual Studio 2008. In that case, 15. above should be : + 15. Add /install/msvc90-64/OpenSceneGraph/bin and /3rdParty.x64/bin to your PATH environment variable When the manual build works, it is possible to start it from the command line. This is useful when setting up a build server or automating the process of retrieving the code and building From 9242f3a083ac53486053cb41fe36f08c3370e02b Mon Sep 17 00:00:00 2001 From: Torsten Dreyer Date: Wed, 10 Nov 2010 22:19:25 +0100 Subject: [PATCH 08/35] Make startup.nas obsolete This is an ugly hack for automatic runway selection on startup based on metar data. It's main intention is to make startup.nas obsolete and to guarantee the same runway selection logic as used for AI traffic. Calling presets-commit from startup.nas during the initialization sequence caused occasional trouble and sometimes, the AI traffic operated on the opposite runway. --- src/Main/fg_init.cxx | 2 +- src/Main/main.cxx | 25 +++++++++++++++++++++++-- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/src/Main/fg_init.cxx b/src/Main/fg_init.cxx index 65be585e4..e9592c14e 100644 --- a/src/Main/fg_init.cxx +++ b/src/Main/fg_init.cxx @@ -820,7 +820,7 @@ static void fgApplyStartOffset(const SGGeod& aStartPos, double aHeading, double } // Set current_options lon/lat given an airport id and heading (degrees) -static bool fgSetPosFromAirportIDandHdg( const string& id, double tgt_hdg ) { +bool fgSetPosFromAirportIDandHdg( const string& id, double tgt_hdg ) { if ( id.empty() ) return false; diff --git a/src/Main/main.cxx b/src/Main/main.cxx index 0113c1b18..9372f9cc9 100644 --- a/src/Main/main.cxx +++ b/src/Main/main.cxx @@ -46,7 +46,7 @@ #include #include #include -#include +//#include #include #include @@ -469,8 +469,29 @@ static void fgIdleFunction ( void ) { "Subsystem initialization failed ..." ); exit(-1); } - fgSplashProgress("setting up time & renderer"); + // Torsten Dreyer: + // ugly hack for automatic runway selection on startup based on + // metar data. Makes startup.nas obsolete and guarantees the same + // runway selection as for AI traffic. However, this code belongs to + // somewhere(?) else - if I only new where... + if( true == fgGetBool( "/environment/metar/valid" ) ) { + // the realwx_ctrl fetches metar in the foreground on init, + // If it was able to fetch a metar or one was given on the commandline, + // the valid flag is set here, otherwise it is false + double hdg = fgGetDouble( "/environment/metar/base-wind-dir-deg", 9999.0 ); + string apt = fgGetString( "/sim/startup/options/airport" ); + string rwy = fgGetString( "/sim/startup/options/runway" ); + double strthdg = fgGetDouble( "/sim/startup/options/heading-deg", 9999.0 ); + bool onground = fgGetBool( "/sim/presets/onground", false ); + // don't check for wind-speed < 1kt, this belongs to the runway-selection code + // the other logic is taken from former startup.nas + if( hdg < 360.0 && apt.length() > 0 && strthdg > 360.0 && rwy.length() == 0 && onground ) { + extern bool fgSetPosFromAirportIDandHdg( const string& id, double tgt_hdg ); + fgSetPosFromAirportIDandHdg( apt, hdg ); + } + } + fgSplashProgress("setting up time & renderer"); } else if ( idle_state == 8 ) { idle_state = 1000; From 0917a5e062b531963f9f3d16bb0f95f769d34f61 Mon Sep 17 00:00:00 2001 From: Torsten Dreyer Date: Wed, 10 Nov 2010 23:28:07 +0100 Subject: [PATCH 09/35] Bugfix: no automatic runway selection with --parkpos= --- src/Main/main.cxx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Main/main.cxx b/src/Main/main.cxx index 9372f9cc9..8dbd12642 100644 --- a/src/Main/main.cxx +++ b/src/Main/main.cxx @@ -483,10 +483,11 @@ static void fgIdleFunction ( void ) { string apt = fgGetString( "/sim/startup/options/airport" ); string rwy = fgGetString( "/sim/startup/options/runway" ); double strthdg = fgGetDouble( "/sim/startup/options/heading-deg", 9999.0 ); + string parkpos = fgGetString( "/sim/presets/parkpos" ); bool onground = fgGetBool( "/sim/presets/onground", false ); // don't check for wind-speed < 1kt, this belongs to the runway-selection code // the other logic is taken from former startup.nas - if( hdg < 360.0 && apt.length() > 0 && strthdg > 360.0 && rwy.length() == 0 && onground ) { + if( hdg < 360.0 && apt.length() > 0 && strthdg > 360.0 && rwy.length() == 0 && onground && parkpos.length() == 0 ) { extern bool fgSetPosFromAirportIDandHdg( const string& id, double tgt_hdg ); fgSetPosFromAirportIDandHdg( apt, hdg ); } From 0a5e86f4e61a80ff19b78de011852a7b60250b7a Mon Sep 17 00:00:00 2001 From: Christian Schmitt Date: Thu, 11 Nov 2010 00:55:42 +0100 Subject: [PATCH 10/35] remove old .cvsignore files --- .cvsignore | 24 ------------------- man/.cvsignore | 8 ------- projects/VC90/.cvsignore | 5 ---- projects/VC90/FlightGear/.cvsignore | 3 --- projects/VC90/GPSsmooth/.cvsignore | 3 --- projects/VC90/MIDGsmooth/.cvsignore | 3 --- projects/VC90/UGsmooth/.cvsignore | 3 --- projects/VC90/fgadmin/.cvsignore | 3 --- projects/VC90/fgjs/.cvsignore | 3 --- projects/VC90/fgviewer/.cvsignore | 3 --- projects/VC90/metar/.cvsignore | 3 --- projects/VC90/terrasync/.cvsignore | 3 --- projects/VC90/xmlgrep/.cvsignore | 3 --- projects/VC90/yasim/.cvsignore | 3 --- scripts/.cvsignore | 2 -- scripts/debug/.cvsignore | 5 ---- scripts/example/.cvsignore | 2 -- scripts/java/.cvsignore | 2 -- scripts/java/FGClient/.cvsignore | 2 -- scripts/java/FGClient/docs/.cvsignore | 2 -- scripts/java/FGClient/docs/javadoc/.cvsignore | 2 -- scripts/java/FGClient/src/.cvsignore | 2 -- scripts/perl/.cvsignore | 2 -- scripts/perl/dafif/.cvsignore | 2 -- scripts/perl/examples/.cvsignore | 2 -- scripts/perl/scenery/.cvsignore | 2 -- scripts/python/.cvsignore | 2 -- src/.cvsignore | 2 -- src/AIModel/.cvsignore | 3 --- src/ATC/.cvsignore | 3 --- src/ATCDCL/.cvsignore | 2 -- src/Aircraft/.cvsignore | 3 --- src/Airports/.cvsignore | 6 ----- src/Autopilot/.cvsignore | 3 --- src/Cockpit/.cvsignore | 3 --- src/Cockpit/built_in/.cvsignore | 3 --- src/Environment/.cvsignore | 3 --- src/FDM/.cvsignore | 5 ---- src/FDM/ExternalNet/.cvsignore | 3 --- src/FDM/ExternalPipe/.cvsignore | 3 --- src/FDM/JSBSim/.cvsignore | 5 ---- src/FDM/JSBSim/initialization/.cvsignore | 3 --- src/FDM/JSBSim/input_output/.cvsignore | 3 --- src/FDM/JSBSim/math/.cvsignore | 3 --- src/FDM/JSBSim/models/.cvsignore | 3 --- src/FDM/JSBSim/models/atmosphere/.cvsignore | 3 --- .../JSBSim/models/flight_control/.cvsignore | 3 --- src/FDM/JSBSim/models/propulsion/.cvsignore | 3 --- src/FDM/LaRCsim/.cvsignore | 3 --- src/FDM/SP/.cvsignore | 3 --- src/FDM/UIUCModel/.cvsignore | 3 --- src/FDM/YASim/.cvsignore | 5 ---- src/GUI/.cvsignore | 4 ---- src/Include/.cvsignore | 9 ------- src/Input/.cvsignore | 5 ---- src/Instrumentation/.cvsignore | 3 --- src/Instrumentation/HUD/.cvsignore | 3 --- src/Instrumentation/KLN89/.cvsignore | 3 --- src/Main/.cvsignore | 7 ------ src/Model/.cvsignore | 3 --- src/MultiPlayer/.cvsignore | 3 --- src/Navaids/.cvsignore | 4 ---- src/Network/.cvsignore | 3 --- src/Scenery/.cvsignore | 3 --- src/Scripting/.cvsignore | 3 --- src/Sound/.cvsignore | 3 --- src/Systems/.cvsignore | 3 --- src/Time/.cvsignore | 3 --- src/Traffic/.cvsignore | 3 --- tests/.cvsignore | 11 --------- utils/.cvsignore | 2 -- utils/GPSsmooth/.cvsignore | 6 ----- utils/Modeller/.cvsignore | 7 ------ utils/TerraSync/.cvsignore | 4 ---- utils/fgadmin/.cvsignore | 8 ------- utils/fgadmin/src/.cvsignore | 6 ----- utils/fgviewer/.cvsignore | 4 ---- utils/gui/.cvsignore | 4 ---- utils/js_server/.cvsignore | 4 ---- utils/xmlgrep/.cvsignore | 4 ---- 80 files changed, 306 deletions(-) delete mode 100644 .cvsignore delete mode 100644 man/.cvsignore delete mode 100644 projects/VC90/.cvsignore delete mode 100644 projects/VC90/FlightGear/.cvsignore delete mode 100644 projects/VC90/GPSsmooth/.cvsignore delete mode 100644 projects/VC90/MIDGsmooth/.cvsignore delete mode 100644 projects/VC90/UGsmooth/.cvsignore delete mode 100644 projects/VC90/fgadmin/.cvsignore delete mode 100644 projects/VC90/fgjs/.cvsignore delete mode 100644 projects/VC90/fgviewer/.cvsignore delete mode 100644 projects/VC90/metar/.cvsignore delete mode 100644 projects/VC90/terrasync/.cvsignore delete mode 100644 projects/VC90/xmlgrep/.cvsignore delete mode 100644 projects/VC90/yasim/.cvsignore delete mode 100644 scripts/.cvsignore delete mode 100644 scripts/debug/.cvsignore delete mode 100644 scripts/example/.cvsignore delete mode 100644 scripts/java/.cvsignore delete mode 100644 scripts/java/FGClient/.cvsignore delete mode 100644 scripts/java/FGClient/docs/.cvsignore delete mode 100644 scripts/java/FGClient/docs/javadoc/.cvsignore delete mode 100644 scripts/java/FGClient/src/.cvsignore delete mode 100644 scripts/perl/.cvsignore delete mode 100644 scripts/perl/dafif/.cvsignore delete mode 100644 scripts/perl/examples/.cvsignore delete mode 100644 scripts/perl/scenery/.cvsignore delete mode 100644 scripts/python/.cvsignore delete mode 100644 src/.cvsignore delete mode 100644 src/AIModel/.cvsignore delete mode 100644 src/ATC/.cvsignore delete mode 100644 src/ATCDCL/.cvsignore delete mode 100644 src/Aircraft/.cvsignore delete mode 100644 src/Airports/.cvsignore delete mode 100644 src/Autopilot/.cvsignore delete mode 100644 src/Cockpit/.cvsignore delete mode 100644 src/Cockpit/built_in/.cvsignore delete mode 100644 src/Environment/.cvsignore delete mode 100644 src/FDM/.cvsignore delete mode 100644 src/FDM/ExternalNet/.cvsignore delete mode 100644 src/FDM/ExternalPipe/.cvsignore delete mode 100644 src/FDM/JSBSim/.cvsignore delete mode 100644 src/FDM/JSBSim/initialization/.cvsignore delete mode 100644 src/FDM/JSBSim/input_output/.cvsignore delete mode 100644 src/FDM/JSBSim/math/.cvsignore delete mode 100644 src/FDM/JSBSim/models/.cvsignore delete mode 100644 src/FDM/JSBSim/models/atmosphere/.cvsignore delete mode 100644 src/FDM/JSBSim/models/flight_control/.cvsignore delete mode 100644 src/FDM/JSBSim/models/propulsion/.cvsignore delete mode 100644 src/FDM/LaRCsim/.cvsignore delete mode 100644 src/FDM/SP/.cvsignore delete mode 100644 src/FDM/UIUCModel/.cvsignore delete mode 100644 src/FDM/YASim/.cvsignore delete mode 100644 src/GUI/.cvsignore delete mode 100644 src/Include/.cvsignore delete mode 100644 src/Input/.cvsignore delete mode 100644 src/Instrumentation/.cvsignore delete mode 100644 src/Instrumentation/HUD/.cvsignore delete mode 100644 src/Instrumentation/KLN89/.cvsignore delete mode 100644 src/Main/.cvsignore delete mode 100644 src/Model/.cvsignore delete mode 100644 src/MultiPlayer/.cvsignore delete mode 100644 src/Navaids/.cvsignore delete mode 100644 src/Network/.cvsignore delete mode 100644 src/Scenery/.cvsignore delete mode 100644 src/Scripting/.cvsignore delete mode 100644 src/Sound/.cvsignore delete mode 100644 src/Systems/.cvsignore delete mode 100644 src/Time/.cvsignore delete mode 100644 src/Traffic/.cvsignore delete mode 100644 tests/.cvsignore delete mode 100644 utils/.cvsignore delete mode 100644 utils/GPSsmooth/.cvsignore delete mode 100644 utils/Modeller/.cvsignore delete mode 100644 utils/TerraSync/.cvsignore delete mode 100644 utils/fgadmin/.cvsignore delete mode 100644 utils/fgadmin/src/.cvsignore delete mode 100644 utils/fgviewer/.cvsignore delete mode 100644 utils/gui/.cvsignore delete mode 100644 utils/js_server/.cvsignore delete mode 100644 utils/xmlgrep/.cvsignore diff --git a/.cvsignore b/.cvsignore deleted file mode 100644 index 9cc99648f..000000000 --- a/.cvsignore +++ /dev/null @@ -1,24 +0,0 @@ -Makefile -Makefile.in -TODO -TODO.gui -aclocal.m4 -autom4te.cache -confdefs.h -config.cache -config.log -config.status -configure -confstatKYCAXU -do-config.sh -gmon.out -www -.cdtproject -.project -config.guess -config.sub -depcomp -INSTALL -install-sh -missing -mkinstalldirs diff --git a/man/.cvsignore b/man/.cvsignore deleted file mode 100644 index 3432b1931..000000000 --- a/man/.cvsignore +++ /dev/null @@ -1,8 +0,0 @@ -Makefile -Makefile.in -est-epsilon.1 -fgfs.1 -fgjs.1 -gl-info.1 -js_demo.1 -pstest.1 diff --git a/projects/VC90/.cvsignore b/projects/VC90/.cvsignore deleted file mode 100644 index 56ad71b90..000000000 --- a/projects/VC90/.cvsignore +++ /dev/null @@ -1,5 +0,0 @@ -FlightGear.ncb -FlightGear.suo -Win32 -x64 -publish \ No newline at end of file diff --git a/projects/VC90/FlightGear/.cvsignore b/projects/VC90/FlightGear/.cvsignore deleted file mode 100644 index 12b337888..000000000 --- a/projects/VC90/FlightGear/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -*.user -x64 -Win32 \ No newline at end of file diff --git a/projects/VC90/GPSsmooth/.cvsignore b/projects/VC90/GPSsmooth/.cvsignore deleted file mode 100644 index 12b337888..000000000 --- a/projects/VC90/GPSsmooth/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -*.user -x64 -Win32 \ No newline at end of file diff --git a/projects/VC90/MIDGsmooth/.cvsignore b/projects/VC90/MIDGsmooth/.cvsignore deleted file mode 100644 index 12b337888..000000000 --- a/projects/VC90/MIDGsmooth/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -*.user -x64 -Win32 \ No newline at end of file diff --git a/projects/VC90/UGsmooth/.cvsignore b/projects/VC90/UGsmooth/.cvsignore deleted file mode 100644 index 12b337888..000000000 --- a/projects/VC90/UGsmooth/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -*.user -x64 -Win32 \ No newline at end of file diff --git a/projects/VC90/fgadmin/.cvsignore b/projects/VC90/fgadmin/.cvsignore deleted file mode 100644 index faf5c5a36..000000000 --- a/projects/VC90/fgadmin/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -*.user -Win32 -x64 \ No newline at end of file diff --git a/projects/VC90/fgjs/.cvsignore b/projects/VC90/fgjs/.cvsignore deleted file mode 100644 index 12b337888..000000000 --- a/projects/VC90/fgjs/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -*.user -x64 -Win32 \ No newline at end of file diff --git a/projects/VC90/fgviewer/.cvsignore b/projects/VC90/fgviewer/.cvsignore deleted file mode 100644 index 12b337888..000000000 --- a/projects/VC90/fgviewer/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -*.user -x64 -Win32 \ No newline at end of file diff --git a/projects/VC90/metar/.cvsignore b/projects/VC90/metar/.cvsignore deleted file mode 100644 index 12b337888..000000000 --- a/projects/VC90/metar/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -*.user -x64 -Win32 \ No newline at end of file diff --git a/projects/VC90/terrasync/.cvsignore b/projects/VC90/terrasync/.cvsignore deleted file mode 100644 index 12b337888..000000000 --- a/projects/VC90/terrasync/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -*.user -x64 -Win32 \ No newline at end of file diff --git a/projects/VC90/xmlgrep/.cvsignore b/projects/VC90/xmlgrep/.cvsignore deleted file mode 100644 index 12b337888..000000000 --- a/projects/VC90/xmlgrep/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -*.user -x64 -Win32 \ No newline at end of file diff --git a/projects/VC90/yasim/.cvsignore b/projects/VC90/yasim/.cvsignore deleted file mode 100644 index 12b337888..000000000 --- a/projects/VC90/yasim/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -*.user -x64 -Win32 \ No newline at end of file diff --git a/scripts/.cvsignore b/scripts/.cvsignore deleted file mode 100644 index 282522db0..000000000 --- a/scripts/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile -Makefile.in diff --git a/scripts/debug/.cvsignore b/scripts/debug/.cvsignore deleted file mode 100644 index ea97d080c..000000000 --- a/scripts/debug/.cvsignore +++ /dev/null @@ -1,5 +0,0 @@ -Makefile -Makefile.in -core* -fgfs.supp -.gdbinit diff --git a/scripts/example/.cvsignore b/scripts/example/.cvsignore deleted file mode 100644 index 282522db0..000000000 --- a/scripts/example/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile -Makefile.in diff --git a/scripts/java/.cvsignore b/scripts/java/.cvsignore deleted file mode 100644 index 282522db0..000000000 --- a/scripts/java/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile -Makefile.in diff --git a/scripts/java/FGClient/.cvsignore b/scripts/java/FGClient/.cvsignore deleted file mode 100644 index 282522db0..000000000 --- a/scripts/java/FGClient/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile -Makefile.in diff --git a/scripts/java/FGClient/docs/.cvsignore b/scripts/java/FGClient/docs/.cvsignore deleted file mode 100644 index 282522db0..000000000 --- a/scripts/java/FGClient/docs/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile -Makefile.in diff --git a/scripts/java/FGClient/docs/javadoc/.cvsignore b/scripts/java/FGClient/docs/javadoc/.cvsignore deleted file mode 100644 index 282522db0..000000000 --- a/scripts/java/FGClient/docs/javadoc/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile -Makefile.in diff --git a/scripts/java/FGClient/src/.cvsignore b/scripts/java/FGClient/src/.cvsignore deleted file mode 100644 index 282522db0..000000000 --- a/scripts/java/FGClient/src/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile -Makefile.in diff --git a/scripts/perl/.cvsignore b/scripts/perl/.cvsignore deleted file mode 100644 index 282522db0..000000000 --- a/scripts/perl/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile -Makefile.in diff --git a/scripts/perl/dafif/.cvsignore b/scripts/perl/dafif/.cvsignore deleted file mode 100644 index 282522db0..000000000 --- a/scripts/perl/dafif/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile -Makefile.in diff --git a/scripts/perl/examples/.cvsignore b/scripts/perl/examples/.cvsignore deleted file mode 100644 index 282522db0..000000000 --- a/scripts/perl/examples/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile -Makefile.in diff --git a/scripts/perl/scenery/.cvsignore b/scripts/perl/scenery/.cvsignore deleted file mode 100644 index 282522db0..000000000 --- a/scripts/perl/scenery/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile -Makefile.in diff --git a/scripts/python/.cvsignore b/scripts/python/.cvsignore deleted file mode 100644 index 282522db0..000000000 --- a/scripts/python/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile -Makefile.in diff --git a/src/.cvsignore b/src/.cvsignore deleted file mode 100644 index 282522db0..000000000 --- a/src/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile -Makefile.in diff --git a/src/AIModel/.cvsignore b/src/AIModel/.cvsignore deleted file mode 100644 index e99558847..000000000 --- a/src/AIModel/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile -Makefile.in diff --git a/src/ATC/.cvsignore b/src/ATC/.cvsignore deleted file mode 100644 index 4620540ae..000000000 --- a/src/ATC/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile.in -Makefile \ No newline at end of file diff --git a/src/ATCDCL/.cvsignore b/src/ATCDCL/.cvsignore deleted file mode 100644 index 282522db0..000000000 --- a/src/ATCDCL/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile -Makefile.in diff --git a/src/Aircraft/.cvsignore b/src/Aircraft/.cvsignore deleted file mode 100644 index e99558847..000000000 --- a/src/Aircraft/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile -Makefile.in diff --git a/src/Airports/.cvsignore b/src/Airports/.cvsignore deleted file mode 100644 index e43cffa22..000000000 --- a/src/Airports/.cvsignore +++ /dev/null @@ -1,6 +0,0 @@ -.deps -Makefile -Makefile.in -calc_loc -genrunways -gensimple diff --git a/src/Autopilot/.cvsignore b/src/Autopilot/.cvsignore deleted file mode 100644 index e99558847..000000000 --- a/src/Autopilot/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile -Makefile.in diff --git a/src/Cockpit/.cvsignore b/src/Cockpit/.cvsignore deleted file mode 100644 index e99558847..000000000 --- a/src/Cockpit/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile -Makefile.in diff --git a/src/Cockpit/built_in/.cvsignore b/src/Cockpit/built_in/.cvsignore deleted file mode 100644 index e99558847..000000000 --- a/src/Cockpit/built_in/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile -Makefile.in diff --git a/src/Environment/.cvsignore b/src/Environment/.cvsignore deleted file mode 100644 index e99558847..000000000 --- a/src/Environment/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile -Makefile.in diff --git a/src/FDM/.cvsignore b/src/FDM/.cvsignore deleted file mode 100644 index b7054359f..000000000 --- a/src/FDM/.cvsignore +++ /dev/null @@ -1,5 +0,0 @@ -.deps -Makefile -Makefile.in -engine -pstest diff --git a/src/FDM/ExternalNet/.cvsignore b/src/FDM/ExternalNet/.cvsignore deleted file mode 100644 index e99558847..000000000 --- a/src/FDM/ExternalNet/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile -Makefile.in diff --git a/src/FDM/ExternalPipe/.cvsignore b/src/FDM/ExternalPipe/.cvsignore deleted file mode 100644 index e99558847..000000000 --- a/src/FDM/ExternalPipe/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile -Makefile.in diff --git a/src/FDM/JSBSim/.cvsignore b/src/FDM/JSBSim/.cvsignore deleted file mode 100644 index 22ca305bc..000000000 --- a/src/FDM/JSBSim/.cvsignore +++ /dev/null @@ -1,5 +0,0 @@ -.deps -Makefile -Makefile.in -config.h -testJSBsim \ No newline at end of file diff --git a/src/FDM/JSBSim/initialization/.cvsignore b/src/FDM/JSBSim/initialization/.cvsignore deleted file mode 100644 index e99558847..000000000 --- a/src/FDM/JSBSim/initialization/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile -Makefile.in diff --git a/src/FDM/JSBSim/input_output/.cvsignore b/src/FDM/JSBSim/input_output/.cvsignore deleted file mode 100644 index e99558847..000000000 --- a/src/FDM/JSBSim/input_output/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile -Makefile.in diff --git a/src/FDM/JSBSim/math/.cvsignore b/src/FDM/JSBSim/math/.cvsignore deleted file mode 100644 index e99558847..000000000 --- a/src/FDM/JSBSim/math/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile -Makefile.in diff --git a/src/FDM/JSBSim/models/.cvsignore b/src/FDM/JSBSim/models/.cvsignore deleted file mode 100644 index e99558847..000000000 --- a/src/FDM/JSBSim/models/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile -Makefile.in diff --git a/src/FDM/JSBSim/models/atmosphere/.cvsignore b/src/FDM/JSBSim/models/atmosphere/.cvsignore deleted file mode 100644 index e99558847..000000000 --- a/src/FDM/JSBSim/models/atmosphere/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile -Makefile.in diff --git a/src/FDM/JSBSim/models/flight_control/.cvsignore b/src/FDM/JSBSim/models/flight_control/.cvsignore deleted file mode 100644 index e99558847..000000000 --- a/src/FDM/JSBSim/models/flight_control/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile -Makefile.in diff --git a/src/FDM/JSBSim/models/propulsion/.cvsignore b/src/FDM/JSBSim/models/propulsion/.cvsignore deleted file mode 100644 index e99558847..000000000 --- a/src/FDM/JSBSim/models/propulsion/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile -Makefile.in diff --git a/src/FDM/LaRCsim/.cvsignore b/src/FDM/LaRCsim/.cvsignore deleted file mode 100644 index e99558847..000000000 --- a/src/FDM/LaRCsim/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile -Makefile.in diff --git a/src/FDM/SP/.cvsignore b/src/FDM/SP/.cvsignore deleted file mode 100644 index e99558847..000000000 --- a/src/FDM/SP/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile -Makefile.in diff --git a/src/FDM/UIUCModel/.cvsignore b/src/FDM/UIUCModel/.cvsignore deleted file mode 100644 index e99558847..000000000 --- a/src/FDM/UIUCModel/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile -Makefile.in diff --git a/src/FDM/YASim/.cvsignore b/src/FDM/YASim/.cvsignore deleted file mode 100644 index 77eabd7e5..000000000 --- a/src/FDM/YASim/.cvsignore +++ /dev/null @@ -1,5 +0,0 @@ -.deps -Makefile -Makefile.in -proptest -yasim diff --git a/src/GUI/.cvsignore b/src/GUI/.cvsignore deleted file mode 100644 index bc52d6aa9..000000000 --- a/src/GUI/.cvsignore +++ /dev/null @@ -1,4 +0,0 @@ -.deps -Makefile -Makefile.in -layout-test diff --git a/src/Include/.cvsignore b/src/Include/.cvsignore deleted file mode 100644 index f67623aed..000000000 --- a/src/Include/.cvsignore +++ /dev/null @@ -1,9 +0,0 @@ -.deps -Makefile -Makefile.in -config.h -config.h.in -stamp-h -stamp-h.in -stamp-h1 -version.h diff --git a/src/Input/.cvsignore b/src/Input/.cvsignore deleted file mode 100644 index 4bada08cf..000000000 --- a/src/Input/.cvsignore +++ /dev/null @@ -1,5 +0,0 @@ -.deps -Makefile -Makefile.in -fgjs -js_demo \ No newline at end of file diff --git a/src/Instrumentation/.cvsignore b/src/Instrumentation/.cvsignore deleted file mode 100644 index e99558847..000000000 --- a/src/Instrumentation/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile -Makefile.in diff --git a/src/Instrumentation/HUD/.cvsignore b/src/Instrumentation/HUD/.cvsignore deleted file mode 100644 index e99558847..000000000 --- a/src/Instrumentation/HUD/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile -Makefile.in diff --git a/src/Instrumentation/KLN89/.cvsignore b/src/Instrumentation/KLN89/.cvsignore deleted file mode 100644 index e99558847..000000000 --- a/src/Instrumentation/KLN89/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile -Makefile.in diff --git a/src/Main/.cvsignore b/src/Main/.cvsignore deleted file mode 100644 index 184773b7b..000000000 --- a/src/Main/.cvsignore +++ /dev/null @@ -1,7 +0,0 @@ -.deps -Makefile -Makefile.in -fgfs -metar -runfgfs -runfgfs.bat diff --git a/src/Model/.cvsignore b/src/Model/.cvsignore deleted file mode 100644 index e99558847..000000000 --- a/src/Model/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile -Makefile.in diff --git a/src/MultiPlayer/.cvsignore b/src/MultiPlayer/.cvsignore deleted file mode 100644 index 4620540ae..000000000 --- a/src/MultiPlayer/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile.in -Makefile \ No newline at end of file diff --git a/src/Navaids/.cvsignore b/src/Navaids/.cvsignore deleted file mode 100644 index bff55b074..000000000 --- a/src/Navaids/.cvsignore +++ /dev/null @@ -1,4 +0,0 @@ -.deps -Makefile -Makefile.in -testnavs diff --git a/src/Network/.cvsignore b/src/Network/.cvsignore deleted file mode 100644 index e99558847..000000000 --- a/src/Network/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile -Makefile.in diff --git a/src/Scenery/.cvsignore b/src/Scenery/.cvsignore deleted file mode 100644 index e99558847..000000000 --- a/src/Scenery/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile -Makefile.in diff --git a/src/Scripting/.cvsignore b/src/Scripting/.cvsignore deleted file mode 100644 index e99558847..000000000 --- a/src/Scripting/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile -Makefile.in diff --git a/src/Sound/.cvsignore b/src/Sound/.cvsignore deleted file mode 100644 index e99558847..000000000 --- a/src/Sound/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile -Makefile.in diff --git a/src/Systems/.cvsignore b/src/Systems/.cvsignore deleted file mode 100644 index e99558847..000000000 --- a/src/Systems/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile -Makefile.in diff --git a/src/Time/.cvsignore b/src/Time/.cvsignore deleted file mode 100644 index e99558847..000000000 --- a/src/Time/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile -Makefile.in diff --git a/src/Traffic/.cvsignore b/src/Traffic/.cvsignore deleted file mode 100644 index e99558847..000000000 --- a/src/Traffic/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.deps -Makefile -Makefile.in diff --git a/tests/.cvsignore b/tests/.cvsignore deleted file mode 100644 index dd179f754..000000000 --- a/tests/.cvsignore +++ /dev/null @@ -1,11 +0,0 @@ -.deps -Makefile -Makefile.in -est-epsilon -al-info -gl-info -test-env-map -test-gethostname -test-mktime -test-text -test-up diff --git a/utils/.cvsignore b/utils/.cvsignore deleted file mode 100644 index 282522db0..000000000 --- a/utils/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile -Makefile.in diff --git a/utils/GPSsmooth/.cvsignore b/utils/GPSsmooth/.cvsignore deleted file mode 100644 index 39d505c2d..000000000 --- a/utils/GPSsmooth/.cvsignore +++ /dev/null @@ -1,6 +0,0 @@ -Makefile -Makefile.in -.deps -GPSsmooth -MIDGsmooth -UGsmooth diff --git a/utils/Modeller/.cvsignore b/utils/Modeller/.cvsignore deleted file mode 100644 index 2e2ddde8d..000000000 --- a/utils/Modeller/.cvsignore +++ /dev/null @@ -1,7 +0,0 @@ -.deps -3dconvert -Makefile -Makefile.in -animassist -threedconvert -normalmap diff --git a/utils/TerraSync/.cvsignore b/utils/TerraSync/.cvsignore deleted file mode 100644 index 739737bd9..000000000 --- a/utils/TerraSync/.cvsignore +++ /dev/null @@ -1,4 +0,0 @@ -.deps -Makefile -Makefile.in -terrasync diff --git a/utils/fgadmin/.cvsignore b/utils/fgadmin/.cvsignore deleted file mode 100644 index d0a8de4d1..000000000 --- a/utils/fgadmin/.cvsignore +++ /dev/null @@ -1,8 +0,0 @@ -Makefile -Makefile.in -aclocal.m4 -autom4te.cache -build -configure -config.log -config.status diff --git a/utils/fgadmin/src/.cvsignore b/utils/fgadmin/src/.cvsignore deleted file mode 100644 index 37145536e..000000000 --- a/utils/fgadmin/src/.cvsignore +++ /dev/null @@ -1,6 +0,0 @@ -.deps -Makefile -Makefile.in -config.h.in -fgadmin -stamp-h1 diff --git a/utils/fgviewer/.cvsignore b/utils/fgviewer/.cvsignore deleted file mode 100644 index d14287d53..000000000 --- a/utils/fgviewer/.cvsignore +++ /dev/null @@ -1,4 +0,0 @@ -.deps -Makefile -Makefile.in -fgviewer diff --git a/utils/gui/.cvsignore b/utils/gui/.cvsignore deleted file mode 100644 index b390a2f04..000000000 --- a/utils/gui/.cvsignore +++ /dev/null @@ -1,4 +0,0 @@ -genfonts -Makefile.in -Makefile -.deps diff --git a/utils/js_server/.cvsignore b/utils/js_server/.cvsignore deleted file mode 100644 index 39c9a08ff..000000000 --- a/utils/js_server/.cvsignore +++ /dev/null @@ -1,4 +0,0 @@ -.deps -Makefile -Makefile.in -js_server diff --git a/utils/xmlgrep/.cvsignore b/utils/xmlgrep/.cvsignore deleted file mode 100644 index 608791a0c..000000000 --- a/utils/xmlgrep/.cvsignore +++ /dev/null @@ -1,4 +0,0 @@ -.deps -Makefile -Makefile.in -xmlgrep From e5348b67a50d456f315897471818ab758d6931e2 Mon Sep 17 00:00:00 2001 From: ThorstenB Date: Sat, 13 Nov 2010 16:29:34 +0100 Subject: [PATCH 11/35] New property identifying missing MP planes Provide "model-installed" property at MP planes for pilot list. Avoid direct directory access in Nasal (aircraft installed check). --- src/AIModel/AIBase.cxx | 7 ++++++- src/AIModel/AIBase.hxx | 1 + src/AIModel/AIMultiplayer.cxx | 7 ++++++- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/AIModel/AIBase.cxx b/src/AIModel/AIBase.cxx index 514c6abb0..c206691a8 100644 --- a/src/AIModel/AIBase.cxx +++ b/src/AIModel/AIBase.cxx @@ -60,6 +60,7 @@ FGAIBase::FGAIBase(object_type ot) : model_removed( fgGetNode("/ai/models/model-removed", true) ), manager( NULL ), fp( NULL ), + _installed(false), _impact_lat(0), _impact_lon(0), _impact_elev(0), @@ -198,7 +199,7 @@ bool FGAIBase::init(bool search_in_AI_path) { string f; if(search_in_AI_path) { - // setup a modified Options strucutre, with only the $fg-root/AI defined; + // setup a modified Options structure, with only the $fg-root/AI defined; // we'll check that first, then give the normal search logic a chance. // this ensures that models in AI/ are preferred to normal models, where // both exist. @@ -217,6 +218,8 @@ bool FGAIBase::init(bool search_in_AI_path) { if(f.empty()) f = fgGetString("/sim/multiplay/default-model", default_model); + else + _installed = true; model = load3DModel(f, props); @@ -229,6 +232,8 @@ bool FGAIBase::init(bool search_in_AI_path) { } else if (!model_path.empty()) { SG_LOG(SG_INPUT, SG_WARN, "AIBase: Could not load model " << model_path); + // not properly installed... + _installed = false; } setDie(false); diff --git a/src/AIModel/AIBase.hxx b/src/AIModel/AIBase.hxx index 80a93c206..2f8362331 100644 --- a/src/AIModel/AIBase.hxx +++ b/src/AIModel/AIBase.hxx @@ -193,6 +193,7 @@ protected: bool invisible; bool no_roll; bool serviceable; + bool _installed; int _subID; double life; diff --git a/src/AIModel/AIMultiplayer.cxx b/src/AIModel/AIMultiplayer.cxx index b2fe6b841..476ddf205 100644 --- a/src/AIModel/AIMultiplayer.cxx +++ b/src/AIModel/AIMultiplayer.cxx @@ -63,7 +63,12 @@ bool FGAIMultiplayer::init(bool search_in_AI_path) { isTanker = true; // cout << "isTanker " << isTanker << " " << mCallSign <setBoolValue("model-installed", _installed); + return result; } void FGAIMultiplayer::bind() { From a6458c2ed64757b1f416b0035df142d29359239e Mon Sep 17 00:00:00 2001 From: James Turner Date: Sat, 13 Nov 2010 10:40:29 -0800 Subject: [PATCH 12/35] Autoconf changes for more flexible versioning. --- configure.ac | 32 ++++++++++++++++++++++++++++++-- src/Include/version.h.in | 3 +++ version | 1 + 3 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 version diff --git a/configure.ac b/configure.ac index 8285ffce2..c109ffd8e 100644 --- a/configure.ac +++ b/configure.ac @@ -1,7 +1,11 @@ dnl Process this file with autogen.sh to produce a working configure dnl script. -AC_INIT +AC_INIT(FlightGear, m4_esyscmd([cat ./version]), [http://www.flightgear.org/]) + +dnl Ensure touching the version causes autoconf to re-run +AC_SUBST([CONFIGURE_DEPENDENCIES], ['$(top_srcdir)/version']) + AC_CONFIG_SRCDIR([src/Airports/simple.cxx]) dnl Require at least automake 2.52 @@ -10,7 +14,31 @@ AC_PREREQ(2.52) dnl Initialize the automake stuff dnl set the $host variable based on local machine/os AC_CANONICAL_TARGET -AM_INIT_AUTOMAKE(FlightGear, 2.0.0) +AM_INIT_AUTOMAKE([dist-bzip2]) + +# variables for version.h +AC_DEFINE([HAVE_VERSION_H], 1, [Set if version.h is generated]) + +# are we running under Hudson? (defines BUILD_ID, BUILD_NUMBER in the environment) +if test "x$BUILD_ID" != "x" ; then + AC_SUBST([HUDSON_BUILD_ID], $BUILD_ID) + AC_SUBST([HUDSON_BUILD_NUMBER], $BUILD_NUMBER) +else + AC_SUBST([HUDSON_BUILD_ID], [none]) + AC_SUBST([HUDSON_BUILD_NUMBER], [none]) +fi + +AC_CHECK_PROG([HAVE_GIT], git, 1) +if test "x$HAVE_GIT" != "x" ; then + # git might be installed, but we might be building from a tarball + if git rev-parse ; then + AC_SUBST([REVISION], `git rev-parse HEAD`) + else + AC_SUBST([REVISION], [none]) + fi +else + AC_SUBST([REVISION], [none]) +fi dnl Checks for programs. AC_PROG_MAKE_SET diff --git a/src/Include/version.h.in b/src/Include/version.h.in index 3f43698fd..f8524a3c6 100644 --- a/src/Include/version.h.in +++ b/src/Include/version.h.in @@ -28,5 +28,8 @@ #define FLIGHTGEAR_VERSION "@VERSION@" +#define HUDSON_BUILD_NUMBER "@HUDSON_BUILD_NUMBER@" +#define HUDSON_BUILD_ID "@HUDSON_BUILD_ID@" +#define REVISION "@REVISION@" #endif // _FLIGHTGEAR_VERSION_H diff --git a/version b/version new file mode 100644 index 000000000..ccbccc3dc --- /dev/null +++ b/version @@ -0,0 +1 @@ +2.2.0 From 1dbe8335799ace31ff49ad51edc6e36571c475f0 Mon Sep 17 00:00:00 2001 From: James Turner Date: Sat, 13 Nov 2010 18:58:55 +0000 Subject: [PATCH 13/35] Use updated version.h if available. Add single fallback header if version.h is missing. --- src/Include/no_version.h | 16 ++++++++++++++++ src/Include/version.h.in | 2 +- src/Instrumentation/mk_viii.cxx | 6 +++++- src/Main/options.cxx | 16 +++++++++++++--- 4 files changed, 35 insertions(+), 5 deletions(-) create mode 100644 src/Include/no_version.h diff --git a/src/Include/no_version.h b/src/Include/no_version.h new file mode 100644 index 000000000..4e33838b8 --- /dev/null +++ b/src/Include/no_version.h @@ -0,0 +1,16 @@ +#ifndef FG_NO_VERSION_H +#define FG_NO_VERSION_H + +// version.h is generated by the build system for official builds of +// FlightGear. To avoid complicating the life of regular developers, +// especially on Windows, we set HAVE_VERSION_H if version.h is generated. +// If that define is not set, we include this file instead, which provides +// placeholder values instead. + +#define FLIGHTGEAR_VERSION "development " __DATE__ + +#define HUDSON_BUILD_NUMBER 0 +#define HUDSON_BUILD_ID "none" +#define REVISION "unknown" + +#endif \ No newline at end of file diff --git a/src/Include/version.h.in b/src/Include/version.h.in index f8524a3c6..4d1f692ef 100644 --- a/src/Include/version.h.in +++ b/src/Include/version.h.in @@ -28,7 +28,7 @@ #define FLIGHTGEAR_VERSION "@VERSION@" -#define HUDSON_BUILD_NUMBER "@HUDSON_BUILD_NUMBER@" +#define HUDSON_BUILD_NUMBER @HUDSON_BUILD_NUMBER@ #define HUDSON_BUILD_ID "@HUDSON_BUILD_ID@" #define REVISION "@REVISION@" diff --git a/src/Instrumentation/mk_viii.cxx b/src/Instrumentation/mk_viii.cxx index d69cc96ad..223ab6136 100755 --- a/src/Instrumentation/mk_viii.cxx +++ b/src/Instrumentation/mk_viii.cxx @@ -76,9 +76,13 @@ using std::string; #include #include -#ifndef _MSC_VER + +#ifdef HAVE_VERSION_H # include +#else +# include #endif + #include

#include
#include "instrument_mgr.hxx" diff --git a/src/Main/options.cxx b/src/Main/options.cxx index 4eebeead5..cf8317a79 100644 --- a/src/Main/options.cxx +++ b/src/Main/options.cxx @@ -64,8 +64,10 @@ using std::cout; using std::cerr; using std::endl; -#ifndef VERSION -#define VERSION "CVS "__DATE__ +#ifdef HAVE_VERSION_H +# include +#else +# include #endif #define NEW_DEFAULT_MODEL_HZ 120 @@ -233,6 +235,12 @@ fgSetDefaults () fgSetString("/sim/multiplay/txhost", "0"); fgSetInt("/sim/multiplay/rxport", 0); fgSetInt("/sim/multiplay/txport", 0); + + fgSetString("/sim/version/flightgear", FLIGHTGEAR_VERSION); + //fgSetString("/sim/version/simgear", FLIGHTGEAR_VERSION); + fgSetString("/sim/version/revision", REVISION); + fgSetInt("/sim/version/build-number", HUDSON_BUILD_NUMBER); + fgSetString("/sim/version/build-id", HUDSON_BUILD_ID); } static bool @@ -1208,7 +1216,9 @@ fgOptParking( const char *arg ) static int fgOptVersion( const char *arg ) { - cerr << "FlightGear version: " << VERSION << endl; + cerr << "FlightGear version: " << FLIGHTGEAR_VERSION << endl; + cerr << "Revision: " << REVISION << endl; + cerr << "Build-Id: " << HUDSON_BUILD_ID << endl; cerr << "FG_ROOT=" << globals->get_fg_root() << endl; cerr << "FG_HOME=" << fgGetString("/sim/fg-home") << endl; cerr << "FG_SCENERY="; From b3c6f94b89f265cabcd0ae35cd66286fdcf0184e Mon Sep 17 00:00:00 2001 From: James Turner Date: Sat, 13 Nov 2010 11:18:19 -0800 Subject: [PATCH 14/35] What sucks? Autoconf sucks. --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index c109ffd8e..1320db791 100644 --- a/configure.ac +++ b/configure.ac @@ -1,7 +1,7 @@ dnl Process this file with autogen.sh to produce a working configure dnl script. -AC_INIT(FlightGear, m4_esyscmd([cat ./version]), [http://www.flightgear.org/]) +AC_INIT(FlightGear, m4_esyscmd([cat version]), [http://www.flightgear.org]) dnl Ensure touching the version causes autoconf to re-run AC_SUBST([CONFIGURE_DEPENDENCIES], ['$(top_srcdir)/version']) From ff97931250a8a43ddb4634868ddfa7c6db9762fb Mon Sep 17 00:00:00 2001 From: James Turner Date: Sat, 13 Nov 2010 12:29:38 -0800 Subject: [PATCH 15/35] Another attempt at placating the shell. Everything sucks. --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 1320db791..82d017f2d 100644 --- a/configure.ac +++ b/configure.ac @@ -1,7 +1,7 @@ dnl Process this file with autogen.sh to produce a working configure dnl script. -AC_INIT(FlightGear, m4_esyscmd([cat version]), [http://www.flightgear.org]) +AC_INIT(FlightGear, m4_esyscmd([cat ./version | tr -d '\n']), [http://www.flightgear.org]) dnl Ensure touching the version causes autoconf to re-run AC_SUBST([CONFIGURE_DEPENDENCIES], ['$(top_srcdir)/version']) From 30407911d51a65c2b2446f3e74a6e2f0f30e5703 Mon Sep 17 00:00:00 2001 From: James Turner Date: Sat, 13 Nov 2010 12:51:43 -0800 Subject: [PATCH 16/35] Ensure non-Hudson BUILD_NUMBER is actually an int, not a string --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 82d017f2d..cd12966c0 100644 --- a/configure.ac +++ b/configure.ac @@ -25,7 +25,7 @@ if test "x$BUILD_ID" != "x" ; then AC_SUBST([HUDSON_BUILD_NUMBER], $BUILD_NUMBER) else AC_SUBST([HUDSON_BUILD_ID], [none]) - AC_SUBST([HUDSON_BUILD_NUMBER], [none]) + AC_SUBST([HUDSON_BUILD_NUMBER], 0) fi AC_CHECK_PROG([HAVE_GIT], git, 1) From 3d54541cad957167d2e339ff3493bbb92324c3a5 Mon Sep 17 00:00:00 2001 From: Mathias Froehlich Date: Sun, 14 Nov 2010 11:07:46 +0100 Subject: [PATCH 17/35] Make out of source builds again work. --- src/Main/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Main/Makefile.am b/src/Main/Makefile.am index 60df638c1..cf7a4e3f1 100644 --- a/src/Main/Makefile.am +++ b/src/Main/Makefile.am @@ -135,4 +135,4 @@ metar_LDADD = \ -lz $(base_LIBS) -INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/src +INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/src -I$(top_builddir)/src From 79ece1c22c762bca44bdde85b106deebb59fa0f0 Mon Sep 17 00:00:00 2001 From: Frederic Bouvier Date: Sun, 14 Nov 2010 13:28:17 +0100 Subject: [PATCH 18/35] MSVC: compile with version.h if environment variable HAVE_VERSION_H is set to 1 --- projects/VC90/FlightGear/FlightGear.vcproj | 8 ++++---- src/Main/options.cxx | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/projects/VC90/FlightGear/FlightGear.vcproj b/projects/VC90/FlightGear/FlightGear.vcproj index 662dc168e..d2e5e9291 100644 --- a/projects/VC90/FlightGear/FlightGear.vcproj +++ b/projects/VC90/FlightGear/FlightGear.vcproj @@ -48,7 +48,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="..\..\..\src;..\..\..\src\include;..\..\..\..\SimGear;..\..\..\src\FDM\JSBSim;..\..\..\..\install\msvc90\OpenSceneGraph\include;..\..\..\..\3rdParty\include;..\..\..\..\boost_1_44_0" - PreprocessorDefinitions="_DEBUG;WIN32;_CONSOLE;HAVE_CONFIG_H;FGFS;ENABLE_AUDIO_SUPPORT;_FG_NDEBUG;ENABLE_THREADS=1;FG_ENABLE_MULTIPASS_CLOUDS;ENABLE_SP_FMDS;_USE_MATH_DEFINES;FG_JPEG_SERVER;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS" + PreprocessorDefinitions="_DEBUG;WIN32;_CONSOLE;HAVE_CONFIG_H;FGFS;ENABLE_AUDIO_SUPPORT;_FG_NDEBUG;ENABLE_THREADS=1;FG_ENABLE_MULTIPASS_CLOUDS;ENABLE_SP_FMDS;_USE_MATH_DEFINES;FG_JPEG_SERVER;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;HAVE_VERSION_H=$(HAVE_VERSION_H)" StringPooling="true" BasicRuntimeChecks="0" RuntimeLibrary="3" @@ -137,7 +137,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="..\..\..\src;..\..\..\src\include;..\..\..\..\SimGear;..\..\..\src\FDM\JSBSim;..\..\..\..\install\msvc90-64\OpenSceneGraph\include;..\..\..\..\3rdParty.x64\include;..\..\..\..\boost_1_44_0" - PreprocessorDefinitions="_DEBUG;WIN32;_CONSOLE;HAVE_CONFIG_H;FGFS;ENABLE_AUDIO_SUPPORT;_FG_NDEBUG;ENABLE_THREADS=1;FG_ENABLE_MULTIPASS_CLOUDS;ENABLE_SP_FMDS;_USE_MATH_DEFINES;FG_JPEG_SERVER;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;PU_USE_NATIVE" + PreprocessorDefinitions="_DEBUG;WIN32;_CONSOLE;HAVE_CONFIG_H;FGFS;ENABLE_AUDIO_SUPPORT;_FG_NDEBUG;ENABLE_THREADS=1;FG_ENABLE_MULTIPASS_CLOUDS;ENABLE_SP_FMDS;_USE_MATH_DEFINES;FG_JPEG_SERVER;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;PU_USE_NATIVE;HAVE_VERSION_H=$(HAVE_VERSION_H)" StringPooling="true" BasicRuntimeChecks="0" RuntimeLibrary="3" @@ -225,7 +225,7 @@ Name="VCCLCompilerTool" InlineFunctionExpansion="1" AdditionalIncludeDirectories="..\..\..\src;..\..\..\src\include;..\..\..\src\FDM\JSBSim;..\..\..\..\SimGear;..\..\..\..\install\msvc90\OpenSceneGraph\include;..\..\..\..\3rdParty\include;..\..\..\..\boost_1_44_0" - PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE;HAVE_CONFIG_H;FGFS;ENABLE_AUDIO_SUPPORT;_FG_NDEBUG;ENABLE_THREADS=1;FG_ENABLE_MULTIPASS_CLOUDS;ENABLE_SP_FMDS;_USE_MATH_DEFINES;FG_JPEG_SERVER;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS" + PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE;HAVE_CONFIG_H;FGFS;ENABLE_AUDIO_SUPPORT;_FG_NDEBUG;ENABLE_THREADS=1;FG_ENABLE_MULTIPASS_CLOUDS;ENABLE_SP_FMDS;_USE_MATH_DEFINES;FG_JPEG_SERVER;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;HAVE_VERSION_H=$(HAVE_VERSION_H)" StringPooling="true" RuntimeLibrary="2" EnableFunctionLevelLinking="true" @@ -313,7 +313,7 @@ Name="VCCLCompilerTool" InlineFunctionExpansion="1" AdditionalIncludeDirectories="..\..\..\src;..\..\..\src\include;..\..\..\src\FDM\JSBSim;..\..\..\..\SimGear;..\..\..\..\install\msvc90-64\OpenSceneGraph\include;..\..\..\..\3rdParty.x64\include;..\..\..\..\boost_1_44_0" - PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE;HAVE_CONFIG_H;FGFS;ENABLE_AUDIO_SUPPORT;_FG_NDEBUG;ENABLE_THREADS=1;FG_ENABLE_MULTIPASS_CLOUDS;ENABLE_SP_FMDS;_USE_MATH_DEFINES;FG_JPEG_SERVER;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;PU_USE_NATIVE" + PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE;HAVE_CONFIG_H;FGFS;ENABLE_AUDIO_SUPPORT;_FG_NDEBUG;ENABLE_THREADS=1;FG_ENABLE_MULTIPASS_CLOUDS;ENABLE_SP_FMDS;_USE_MATH_DEFINES;FG_JPEG_SERVER;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;PU_USE_NATIVE;HAVE_VERSION_H=$(HAVE_VERSION_H)" StringPooling="true" RuntimeLibrary="2" EnableFunctionLevelLinking="true" diff --git a/src/Main/options.cxx b/src/Main/options.cxx index cf8317a79..06b2b7f89 100644 --- a/src/Main/options.cxx +++ b/src/Main/options.cxx @@ -64,7 +64,7 @@ using std::cout; using std::cerr; using std::endl; -#ifdef HAVE_VERSION_H +#if defined( HAVE_VERSION_H ) && HAVE_VERSION_H # include #else # include From f97295f00401910316ecf9c4570a03fcc4232970 Mon Sep 17 00:00:00 2001 From: Torsten Dreyer Date: Sun, 14 Nov 2010 13:53:45 +0100 Subject: [PATCH 19/35] fix inconsitent property name fuel[-_]pump --- src/Aircraft/controls.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Aircraft/controls.cxx b/src/Aircraft/controls.cxx index 5eeadc1a1..a37150c44 100644 --- a/src/Aircraft/controls.cxx +++ b/src/Aircraft/controls.cxx @@ -877,7 +877,7 @@ void FGControls::unbind () "/controls/engines/engine[%d]/starter", index); fgUntie(name); snprintf(name, MAX_NAME_LEN, - "/controls/engines/engine[%d]/fuel_pump", index); + "/controls/engines/engine[%d]/fuel-pump", index); fgUntie(name); snprintf(name, MAX_NAME_LEN, "/controls/engines/engine[%d]/fire-switch", index); From 3209a4db097f3f45836cc1297dcd93964df562b4 Mon Sep 17 00:00:00 2001 From: Frederic Bouvier Date: Sun, 14 Nov 2010 15:33:08 +0100 Subject: [PATCH 20/35] MSVC: ensure that HAVE_VERSION_H always has a value --- projects/VC90/FlightGear/FlightGear.vcproj | 8 ++++---- src/Instrumentation/mk_viii.cxx | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/projects/VC90/FlightGear/FlightGear.vcproj b/projects/VC90/FlightGear/FlightGear.vcproj index d2e5e9291..80577f579 100644 --- a/projects/VC90/FlightGear/FlightGear.vcproj +++ b/projects/VC90/FlightGear/FlightGear.vcproj @@ -48,7 +48,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="..\..\..\src;..\..\..\src\include;..\..\..\..\SimGear;..\..\..\src\FDM\JSBSim;..\..\..\..\install\msvc90\OpenSceneGraph\include;..\..\..\..\3rdParty\include;..\..\..\..\boost_1_44_0" - PreprocessorDefinitions="_DEBUG;WIN32;_CONSOLE;HAVE_CONFIG_H;FGFS;ENABLE_AUDIO_SUPPORT;_FG_NDEBUG;ENABLE_THREADS=1;FG_ENABLE_MULTIPASS_CLOUDS;ENABLE_SP_FMDS;_USE_MATH_DEFINES;FG_JPEG_SERVER;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;HAVE_VERSION_H=$(HAVE_VERSION_H)" + PreprocessorDefinitions="_DEBUG;WIN32;_CONSOLE;HAVE_CONFIG_H;FGFS;ENABLE_AUDIO_SUPPORT;_FG_NDEBUG;ENABLE_THREADS=1;FG_ENABLE_MULTIPASS_CLOUDS;ENABLE_SP_FMDS;_USE_MATH_DEFINES;FG_JPEG_SERVER;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;HAVE_VERSION_H=$(HAVE_VERSION_H)0" StringPooling="true" BasicRuntimeChecks="0" RuntimeLibrary="3" @@ -137,7 +137,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="..\..\..\src;..\..\..\src\include;..\..\..\..\SimGear;..\..\..\src\FDM\JSBSim;..\..\..\..\install\msvc90-64\OpenSceneGraph\include;..\..\..\..\3rdParty.x64\include;..\..\..\..\boost_1_44_0" - PreprocessorDefinitions="_DEBUG;WIN32;_CONSOLE;HAVE_CONFIG_H;FGFS;ENABLE_AUDIO_SUPPORT;_FG_NDEBUG;ENABLE_THREADS=1;FG_ENABLE_MULTIPASS_CLOUDS;ENABLE_SP_FMDS;_USE_MATH_DEFINES;FG_JPEG_SERVER;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;PU_USE_NATIVE;HAVE_VERSION_H=$(HAVE_VERSION_H)" + PreprocessorDefinitions="_DEBUG;WIN32;_CONSOLE;HAVE_CONFIG_H;FGFS;ENABLE_AUDIO_SUPPORT;_FG_NDEBUG;ENABLE_THREADS=1;FG_ENABLE_MULTIPASS_CLOUDS;ENABLE_SP_FMDS;_USE_MATH_DEFINES;FG_JPEG_SERVER;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;PU_USE_NATIVE;HAVE_VERSION_H=$(HAVE_VERSION_H)0" StringPooling="true" BasicRuntimeChecks="0" RuntimeLibrary="3" @@ -225,7 +225,7 @@ Name="VCCLCompilerTool" InlineFunctionExpansion="1" AdditionalIncludeDirectories="..\..\..\src;..\..\..\src\include;..\..\..\src\FDM\JSBSim;..\..\..\..\SimGear;..\..\..\..\install\msvc90\OpenSceneGraph\include;..\..\..\..\3rdParty\include;..\..\..\..\boost_1_44_0" - PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE;HAVE_CONFIG_H;FGFS;ENABLE_AUDIO_SUPPORT;_FG_NDEBUG;ENABLE_THREADS=1;FG_ENABLE_MULTIPASS_CLOUDS;ENABLE_SP_FMDS;_USE_MATH_DEFINES;FG_JPEG_SERVER;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;HAVE_VERSION_H=$(HAVE_VERSION_H)" + PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE;HAVE_CONFIG_H;FGFS;ENABLE_AUDIO_SUPPORT;_FG_NDEBUG;ENABLE_THREADS=1;FG_ENABLE_MULTIPASS_CLOUDS;ENABLE_SP_FMDS;_USE_MATH_DEFINES;FG_JPEG_SERVER;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;HAVE_VERSION_H=$(HAVE_VERSION_H)0" StringPooling="true" RuntimeLibrary="2" EnableFunctionLevelLinking="true" @@ -313,7 +313,7 @@ Name="VCCLCompilerTool" InlineFunctionExpansion="1" AdditionalIncludeDirectories="..\..\..\src;..\..\..\src\include;..\..\..\src\FDM\JSBSim;..\..\..\..\SimGear;..\..\..\..\install\msvc90-64\OpenSceneGraph\include;..\..\..\..\3rdParty.x64\include;..\..\..\..\boost_1_44_0" - PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE;HAVE_CONFIG_H;FGFS;ENABLE_AUDIO_SUPPORT;_FG_NDEBUG;ENABLE_THREADS=1;FG_ENABLE_MULTIPASS_CLOUDS;ENABLE_SP_FMDS;_USE_MATH_DEFINES;FG_JPEG_SERVER;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;PU_USE_NATIVE;HAVE_VERSION_H=$(HAVE_VERSION_H)" + PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE;HAVE_CONFIG_H;FGFS;ENABLE_AUDIO_SUPPORT;_FG_NDEBUG;ENABLE_THREADS=1;FG_ENABLE_MULTIPASS_CLOUDS;ENABLE_SP_FMDS;_USE_MATH_DEFINES;FG_JPEG_SERVER;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;PU_USE_NATIVE;HAVE_VERSION_H=$(HAVE_VERSION_H)0" StringPooling="true" RuntimeLibrary="2" EnableFunctionLevelLinking="true" diff --git a/src/Instrumentation/mk_viii.cxx b/src/Instrumentation/mk_viii.cxx index 223ab6136..11846db5e 100755 --- a/src/Instrumentation/mk_viii.cxx +++ b/src/Instrumentation/mk_viii.cxx @@ -77,7 +77,7 @@ using std::string; #include #include -#ifdef HAVE_VERSION_H +#if defined( HAVE_VERSION_H ) && HAVE_VERSION_H # include #else # include From d0706915317043ed7b5c3f3118371def5675b52b Mon Sep 17 00:00:00 2001 From: James Turner Date: Sun, 14 Nov 2010 17:49:55 +0000 Subject: [PATCH 21/35] Use version file to populate bundle plist. --- package/mac/build-mac-nightly-dmg.rb | 2 ++ package/mac/nightly.plist.in | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/package/mac/build-mac-nightly-dmg.rb b/package/mac/build-mac-nightly-dmg.rb index e3517ef12..cd839acaa 100755 --- a/package/mac/build-mac-nightly-dmg.rb +++ b/package/mac/build-mac-nightly-dmg.rb @@ -15,6 +15,8 @@ osgVersion = runOsgVersion('version-number') $osgSoVersion=runOsgVersion('so-number') $openThreadsSoVersion=runOsgVersion('openthreads-soversion-number') +VERSION = File.read("#{srcDir}/version").strip + puts "osgVersion=#{osgVersion}, so-number=#{$osgSoVersion}" $alutSourcePath='/Library/Frameworks/ALUT.framework' diff --git a/package/mac/nightly.plist.in b/package/mac/nightly.plist.in index f8b2c562a..0565abe93 100644 --- a/package/mac/nightly.plist.in +++ b/package/mac/nightly.plist.in @@ -15,7 +15,7 @@ CFBundleIdentifier org.flightgear.FlightGear CFBundleVersion - 2.0 + <%= VERSION %> CFBundleShortVersionString unstable nightly build LSMinimumSystemVersion From e9d406323808a958f691e991142727c42ed61ee1 Mon Sep 17 00:00:00 2001 From: James Turner Date: Sun, 14 Nov 2010 18:14:23 +0000 Subject: [PATCH 22/35] Fix ordering in DMG buuilding. --- package/mac/build-mac-nightly-dmg.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package/mac/build-mac-nightly-dmg.rb b/package/mac/build-mac-nightly-dmg.rb index cd839acaa..43667a44c 100755 --- a/package/mac/build-mac-nightly-dmg.rb +++ b/package/mac/build-mac-nightly-dmg.rb @@ -15,8 +15,6 @@ osgVersion = runOsgVersion('version-number') $osgSoVersion=runOsgVersion('so-number') $openThreadsSoVersion=runOsgVersion('openthreads-soversion-number') -VERSION = File.read("#{srcDir}/version").strip - puts "osgVersion=#{osgVersion}, so-number=#{$osgSoVersion}" $alutSourcePath='/Library/Frameworks/ALUT.framework' @@ -55,6 +53,8 @@ resourcesDir=contents+"/Resources" osgPluginsDir=contents+"/PlugIns/osgPlugins-#{osgVersion}" volName="\"FlightGear Nightly Build\"" +VERSION = File.read("#{srcDir}/version").strip + puts "Creating directory structure" `mkdir -p #{macosDir}` `mkdir -p #{frameworksDir}` From 91f2c853a6fad91f5b6df0a02e72442144a091aa Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 14 Nov 2010 18:16:01 +0000 Subject: [PATCH 23/35] Use version file in NSIS script --- package/Win-NSIS/flightgear-nightly.nsi | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/package/Win-NSIS/flightgear-nightly.nsi b/package/Win-NSIS/flightgear-nightly.nsi index 55e5c151f..78e421f11 100644 --- a/package/Win-NSIS/flightgear-nightly.nsi +++ b/package/Win-NSIS/flightgear-nightly.nsi @@ -5,11 +5,12 @@ !define /file OSGSoNumber $%TEMP%\osg-so-number.txt !define /file OSGVersion $%TEMP%\osg-version.txt +!define /file FGVersion flightgear\version !echo "osg-so is ${OSGSoNumber}" Name "FlightGear Nightly" -OutFile fgfs_win32_nightly.exe +OutFile fgfs_win32_nightly_${FGVersion}.exe ; use LZMA for best compression SetCompressor /FINAL /SOLID lzma @@ -105,10 +106,12 @@ Section "" ;No components page, name is not important CreateDirectory "$SMPROGRAMS\FlightGear" CreateShortCut "$SMPROGRAMS\FlightGear\FlightGear-nightly.lnk" "$INSTDIR\fgrun.exe" + + WriteUninstaller "$INSTDIR\FlightGear_Uninstall.exe" WriteRegStr HKLM ${UninstallKey} "DisplayName" "FlightGear Nightly" - WriteRegStr HKLM ${UninstallKey} "DisplayVersion" "2.1" + WriteRegStr HKLM ${UninstallKey} "DisplayVersion" "${FGVersion}" WriteRegStr HKLM ${UninstallKey} "UninstallString" "$INSTDIR\FlightGear_Uninstall.exe" WriteRegStr HKLM ${UninstallKey} "UninstallPath" "$INSTDIR\FlightGear_Uninstall.exe" WriteRegDWORD HKLM ${UninstallKey} "NoModify" 1 From 1d8913b53ed2a4d72db463bc32ebffba38ae5f3d Mon Sep 17 00:00:00 2001 From: ThorstenB Date: Sun, 14 Nov 2010 21:06:19 +0100 Subject: [PATCH 24/35] Fixed path resolution (search --fg-aircraft dirs) Do not abort early when resource doesn't match /sim/aircraft-dir. --- src/Main/globals.cxx | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/src/Main/globals.cxx b/src/Main/globals.cxx index 29b791fe5..aa34a9660 100644 --- a/src/Main/globals.cxx +++ b/src/Main/globals.cxx @@ -56,7 +56,7 @@ #include "fg_props.hxx" #include "fg_io.hxx" - class AircraftResourceProvider : public simgear::ResourceProvider +class AircraftResourceProvider : public simgear::ResourceProvider { public: AircraftResourceProvider() : @@ -74,28 +74,27 @@ public: // test against the aircraft-dir property const char* aircraftDir = fgGetString("/sim/aircraft-dir"); string_list aircraftDirPieces(sgPathBranchSplit(aircraftDir)); - if (aircraftDirPieces.empty() || (aircraftDirPieces.back() != pieces[1])) { - return SGPath(); // current aircraft-dir does not match resource aircraft - } - - SGPath r(aircraftDir); - for (unsigned int i=2; iget_aircraft_paths()); string_list::const_iterator it = dirs.begin(); for (; it != dirs.end(); ++it) { SGPath p(*it, res); if (p.exists()) { - SG_LOG(SG_IO, SG_INFO, "found path:" << aResource << " in aircraft dir: " << r.str()); + SG_LOG(SG_IO, SG_INFO, "found path:" << aResource << " in aircraft dir: " << *it); return p; } } // of aircraft path iteration From 86b906e84e54e286321e46a2e8c1ea51bd341a4d Mon Sep 17 00:00:00 2001 From: James Turner Date: Sun, 14 Nov 2010 22:55:55 +0000 Subject: [PATCH 25/35] Expose SimGear and OSG versions via properties too. --- src/Main/options.cxx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Main/options.cxx b/src/Main/options.cxx index 06b2b7f89..b46dc6e4a 100644 --- a/src/Main/options.cxx +++ b/src/Main/options.cxx @@ -56,7 +56,9 @@ #include "util.hxx" #include "viewmgr.hxx" #include
+ #include +#include using std::string; using std::sort; @@ -237,7 +239,8 @@ fgSetDefaults () fgSetInt("/sim/multiplay/txport", 0); fgSetString("/sim/version/flightgear", FLIGHTGEAR_VERSION); - //fgSetString("/sim/version/simgear", FLIGHTGEAR_VERSION); + fgSetString("/sim/version/simgear", SG_STRINGIZE(SIMGEAR_VERSION)); + fgSetString("/sim/version/openscenegraph", osgGetVersion()); fgSetString("/sim/version/revision", REVISION); fgSetInt("/sim/version/build-number", HUDSON_BUILD_NUMBER); fgSetString("/sim/version/build-id", HUDSON_BUILD_ID); From 4d2ce8bcdf5e4459b4ec5bfb9cac821d092cd445 Mon Sep 17 00:00:00 2001 From: James Turner Date: Sun, 14 Nov 2010 22:58:21 +0000 Subject: [PATCH 26/35] Include version number in DMG name --- package/mac/build-mac-nightly-dmg.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/package/mac/build-mac-nightly-dmg.rb b/package/mac/build-mac-nightly-dmg.rb index 43667a44c..2930ab305 100755 --- a/package/mac/build-mac-nightly-dmg.rb +++ b/package/mac/build-mac-nightly-dmg.rb @@ -40,7 +40,7 @@ end prefixDir=Dir.pwd + "/dist" dmgDir=Dir.pwd + "/image" srcDir=Dir.pwd + "/flightgear" -dmgPath = Dir.pwd + "/fg_mac_nightly.dmg" + puts "Erasing previous image dir" `rm -rf #{dmgDir}` @@ -55,6 +55,8 @@ volName="\"FlightGear Nightly Build\"" VERSION = File.read("#{srcDir}/version").strip +dmgPath = Dir.pwd + "/fg_mac_nightly_#{VERSION}.dmg" + puts "Creating directory structure" `mkdir -p #{macosDir}` `mkdir -p #{frameworksDir}` From 38e1600bed2982cd6074c0bd56347c4323aba785 Mon Sep 17 00:00:00 2001 From: Tim Moore Date: Sun, 14 Nov 2010 15:12:58 +0100 Subject: [PATCH 27/35] add a command to print information about visible objects in the scene --- src/GUI/gui.h | 1 + src/GUI/gui_funcs.cxx | 17 ++++ src/Main/fg_commands.cxx | 8 ++ src/Main/renderer.cxx | 209 +++++++++++++++++++++++++++++++++++++++ src/Main/renderer.hxx | 5 + 5 files changed, 240 insertions(+) diff --git a/src/GUI/gui.h b/src/GUI/gui.h index 4ea7b588d..d6570c7e4 100644 --- a/src/GUI/gui.h +++ b/src/GUI/gui.h @@ -49,6 +49,7 @@ extern void guiErrorMessage(const char *txt, const sg_throwable &throwable); extern bool fgDumpSnapShot(); extern void fgDumpSceneGraph(); extern void fgDumpTerrainBranch(); +extern void fgPrintVisibleSceneInfoCommand(); extern puFont guiFnt; extern fntTexFont *guiFntHandle; diff --git a/src/GUI/gui_funcs.cxx b/src/GUI/gui_funcs.cxx index ff6971549..ccbd0a550 100644 --- a/src/GUI/gui_funcs.cxx +++ b/src/GUI/gui_funcs.cxx @@ -555,5 +555,22 @@ void fgDumpTerrainBranch() } } +void fgPrintVisibleSceneInfoCommand() +{ + static const SGPropertyNode *master_freeze + = fgGetNode("/sim/freeze/master"); + + bool freeze = master_freeze->getBoolValue(); + if ( !freeze ) { + fgSetBool("/sim/freeze/master", true); + } + + flightgear::printVisibleSceneInfo(globals->get_renderer()); + + if ( !freeze ) { + fgSetBool("/sim/freeze/master", false); + } +} + diff --git a/src/Main/fg_commands.cxx b/src/Main/fg_commands.cxx index e3b6be0c0..c3c60fbec 100644 --- a/src/Main/fg_commands.cxx +++ b/src/Main/fg_commands.cxx @@ -518,6 +518,13 @@ do_dump_terrain_branch (const SGPropertyNode*) return true; } +static bool +do_print_visible_scene_info(const SGPropertyNode*) +{ + fgPrintVisibleSceneInfoCommand(); + return true; +} + /** * Built-in command: hires capture screen. */ @@ -1488,6 +1495,7 @@ static struct { { "release-cockpit-button", do_release_cockpit_button }, { "dump-scenegraph", do_dump_scene_graph }, { "dump-terrainbranch", do_dump_terrain_branch }, + { "print-visible-scene", do_print_visible_scene_info }, { "reload-shaders", do_reload_shaders }, { 0, 0 } // zero-terminated }; diff --git a/src/Main/renderer.cxx b/src/Main/renderer.cxx index e16fb3d55..6eb3d3f68 100644 --- a/src/Main/renderer.cxx +++ b/src/Main/renderer.cxx @@ -29,11 +29,18 @@ #include +#include +#include +#include +#include +#include + #include #include #include #include #include +#include #include #include #include @@ -823,5 +830,207 @@ fgDumpNodeToFile(osg::Node* node, const char* filename) { return osgDB::writeNodeFile(*node, filename); } + +namespace flightgear +{ +using namespace osg; + +class VisibleSceneInfoVistor : public NodeVisitor, CullStack +{ +public: + VisibleSceneInfoVistor() + : NodeVisitor(CULL_VISITOR, TRAVERSE_ACTIVE_CHILDREN) + { + setCullingMode(CullSettings::SMALL_FEATURE_CULLING + | CullSettings::VIEW_FRUSTUM_CULLING); + setComputeNearFarMode(CullSettings::DO_NOT_COMPUTE_NEAR_FAR); + } + + VisibleSceneInfoVistor(const VisibleSceneInfoVistor& rhs) + { + } + + META_NodeVisitor("flightgear","VisibleSceneInfoVistor") + + typedef std::map InfoMap; + + void getNodeInfo(Node* node) + { + const char* typeName = typeid(*node).name(); + classInfo[typeName]++; + const std::string& nodeName = node->getName(); + if (!nodeName.empty()) + nodeInfo[nodeName]++; + } + + void dumpInfo() + { + using namespace std; + typedef vector FreqVector; + cout << "class info:\n"; + FreqVector classes; + for (InfoMap::iterator itr = classInfo.begin(), end = classInfo.end(); + itr != end; + ++itr) + classes.push_back(itr); + sort(classes.begin(), classes.end(), freqComp); + for (FreqVector::iterator itr = classes.begin(), end = classes.end(); + itr != end; + ++itr) { + cout << (*itr)->first << " " << (*itr)->second << "\n"; + } + cout << "\nnode info:\n"; + FreqVector nodes; + for (InfoMap::iterator itr = nodeInfo.begin(), end = nodeInfo.end(); + itr != end; + ++itr) + nodes.push_back(itr); + + sort (nodes.begin(), nodes.end(), freqComp); + for (FreqVector::iterator itr = nodes.begin(), end = nodes.end(); + itr != end; + ++itr) { + cout << (*itr)->first << " " << (*itr)->second << "\n"; + } + cout << endl; + } + + void doTraversal(Camera* camera, Node* root, Viewport* viewport) + { + ref_ptr projection + = createOrReuseMatrix(camera->getProjectionMatrix()); + ref_ptr mv = createOrReuseMatrix(camera->getViewMatrix()); + if (!viewport) + viewport = camera->getViewport(); + if (viewport) + pushViewport(viewport); + pushProjectionMatrix(projection.get()); + pushModelViewMatrix(mv.get(), Transform::ABSOLUTE_RF); + root->accept(*this); + popModelViewMatrix(); + popProjectionMatrix(); + if (viewport) + popViewport(); + dumpInfo(); + } + + void apply(Node& node) + { + if (isCulled(node)) + return; + pushCurrentMask(); + getNodeInfo(&node); + traverse(node); + popCurrentMask(); + } + void apply(Group& node) + { + if (isCulled(node)) + return; + pushCurrentMask(); + getNodeInfo(&node); + traverse(node); + popCurrentMask(); + } + + void apply(Transform& node) + { + if (isCulled(node)) + return; + pushCurrentMask(); + ref_ptr matrix = createOrReuseMatrix(*getModelViewMatrix()); + node.computeLocalToWorldMatrix(*matrix,this); + pushModelViewMatrix(matrix.get(), node.getReferenceFrame()); + getNodeInfo(&node); + traverse(node); + popModelViewMatrix(); + popCurrentMask(); + } + + void apply(Camera& camera) + { + // Save current cull settings + CullSettings saved_cull_settings(*this); + + // set cull settings from this Camera + setCullSettings(camera); + // inherit the settings from above + inheritCullSettings(saved_cull_settings, camera.getInheritanceMask()); + + // set the cull mask. + unsigned int savedTraversalMask = getTraversalMask(); + bool mustSetCullMask = (camera.getInheritanceMask() + & osg::CullSettings::CULL_MASK) == 0; + if (mustSetCullMask) + setTraversalMask(camera.getCullMask()); + + osg::RefMatrix* projection = 0; + osg::RefMatrix* modelview = 0; + + if (camera.getReferenceFrame()==osg::Transform::RELATIVE_RF) { + if (camera.getTransformOrder()==osg::Camera::POST_MULTIPLY) { + projection = createOrReuseMatrix(*getProjectionMatrix() + *camera.getProjectionMatrix()); + modelview = createOrReuseMatrix(*getModelViewMatrix() + * camera.getViewMatrix()); + } + else { // pre multiply + projection = createOrReuseMatrix(camera.getProjectionMatrix() + * (*getProjectionMatrix())); + modelview = createOrReuseMatrix(camera.getViewMatrix() + * (*getModelViewMatrix())); + } + } else { + // an absolute reference frame + projection = createOrReuseMatrix(camera.getProjectionMatrix()); + modelview = createOrReuseMatrix(camera.getViewMatrix()); + } + if (camera.getViewport()) + pushViewport(camera.getViewport()); + + pushProjectionMatrix(projection); + pushModelViewMatrix(modelview, camera.getReferenceFrame()); + + traverse(camera); + + // restore the previous model view matrix. + popModelViewMatrix(); + + // restore the previous model view matrix. + popProjectionMatrix(); + + if (camera.getViewport()) popViewport(); + + // restore the previous traversal mask settings + if (mustSetCullMask) + setTraversalMask(savedTraversalMask); + + // restore the previous cull settings + setCullSettings(saved_cull_settings); + } + +protected: + // sort in reverse + static bool freqComp(const InfoMap::iterator& lhs, const InfoMap::iterator& rhs) + { + return lhs->second > rhs->second; + } + InfoMap classInfo; + InfoMap nodeInfo; +}; + +bool printVisibleSceneInfo(FGRenderer* renderer) +{ + osgViewer::Viewer* viewer = renderer->getViewer(); + VisibleSceneInfoVistor vsv; + Viewport* vp = 0; + if (!viewer->getCamera()->getViewport() && viewer->getNumSlaves() > 0) { + const View::Slave& slave = viewer->getSlave(0); + vp = slave._camera->getViewport(); + } + vsv.doTraversal(viewer->getCamera(), viewer->getSceneData(), vp); + return true; +} +} // end of renderer.cxx diff --git a/src/Main/renderer.hxx b/src/Main/renderer.hxx index 5fd8e9b36..2ed51be1a 100644 --- a/src/Main/renderer.hxx +++ b/src/Main/renderer.hxx @@ -81,4 +81,9 @@ protected: bool fgDumpSceneGraphToFile(const char* filename); bool fgDumpTerrainBranchToFile(const char* filename); +namespace flightgear +{ +bool printVisibleSceneInfo(FGRenderer* renderer); +} + #endif From 9bf4c887d4f51d2d52e90667b9a6eda064fe5c62 Mon Sep 17 00:00:00 2001 From: James Turner Date: Sun, 14 Nov 2010 23:25:06 +0000 Subject: [PATCH 28/35] Windows version.h generation script. --- scripts/tools/version.bat | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 scripts/tools/version.bat diff --git a/scripts/tools/version.bat b/scripts/tools/version.bat new file mode 100644 index 000000000..433192b90 --- /dev/null +++ b/scripts/tools/version.bat @@ -0,0 +1,25 @@ + +REM + +ECHO OFF + +SET /P FLIGHTGEAR_VERSION= %Header% + +ECHO #define FLIGHTGEAR_VERSION "%FLIGHTGEAR_VERSION%" >> %Header% +ECHO #define HUDSON_BUILD_ID "%HUDSON_BUILD_ID%" >> %Header% +ECHO #define HUDSON_BUILD_NUMBER %HUDSON_BUILD_NUMBER% >> %Header% +ECHO #define REVISION "%REVISION%" >> %Header% + + + From 5bb247d40a162930e47eb6f54cc0bd3a77201cbc Mon Sep 17 00:00:00 2001 From: James Turner Date: Sun, 14 Nov 2010 23:32:37 +0000 Subject: [PATCH 29/35] Fix syntax for IF DEFINED conditionals --- scripts/tools/version.bat | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/tools/version.bat b/scripts/tools/version.bat index 433192b90..153a6734d 100644 --- a/scripts/tools/version.bat +++ b/scripts/tools/version.bat @@ -9,8 +9,8 @@ SET HUDSON_BUILD_NUMBER=0 SET HUDSON_BUILD_ID=none SET REVISION=none -IF DEFINED %BUILD_ID% SET HUDSON_BUILD_ID=%BUILD_ID% -IF DEFINED %BUILD_NUMBER% SET HUDSON_BUILD_NUMBER=%BUILD_NUMBER% +IF DEFINED BUILD_ID SET HUDSON_BUILD_ID=%BUILD_ID% +IF DEFINED BUILD_NUMBER SET HUDSON_BUILD_NUMBER=%BUILD_NUMBER% SET Header=src\Include\version.h From da32e9332ca5cac4d0d11ea180df599795b58f13 Mon Sep 17 00:00:00 2001 From: ThorstenB Date: Mon, 15 Nov 2010 23:28:51 +0100 Subject: [PATCH 30/35] Freeze MP position during replay. Now you can replay and watch your favourite landing 101 times without pi**ing off everyone else playing MP. :) --- src/MultiPlayer/multiplaymgr.cxx | 249 +++++++++++++++++-------------- 1 file changed, 133 insertions(+), 116 deletions(-) diff --git a/src/MultiPlayer/multiplaymgr.cxx b/src/MultiPlayer/multiplaymgr.cxx index 27c455c25..1d36ec257 100644 --- a/src/MultiPlayer/multiplaymgr.cxx +++ b/src/MultiPlayer/multiplaymgr.cxx @@ -536,127 +536,144 @@ FGMultiplayMgr::SendMyPosition(const FGExternalMotionData& motionInfo) return; } - MsgBuf msgBuf; + static MsgBuf msgBuf; + static unsigned msgLen = 0; T_PositionMsg* PosMsg = msgBuf.posMsg(); strncpy(PosMsg->Model, fgGetString("/sim/model/path"), MAX_MODEL_NAME_LEN); PosMsg->Model[MAX_MODEL_NAME_LEN - 1] = '\0'; - - PosMsg->time = XDR_encode_double (motionInfo.time); - PosMsg->lag = XDR_encode_double (motionInfo.lag); - for (unsigned i = 0 ; i < 3; ++i) - PosMsg->position[i] = XDR_encode_double (motionInfo.position(i)); - SGVec3f angleAxis; - motionInfo.orientation.getAngleAxis(angleAxis); - for (unsigned i = 0 ; i < 3; ++i) - PosMsg->orientation[i] = XDR_encode_float (angleAxis(i)); - for (unsigned i = 0 ; i < 3; ++i) - PosMsg->linearVel[i] = XDR_encode_float (motionInfo.linearVel(i)); - for (unsigned i = 0 ; i < 3; ++i) - PosMsg->angularVel[i] = XDR_encode_float (motionInfo.angularVel(i)); - for (unsigned i = 0 ; i < 3; ++i) - PosMsg->linearAccel[i] = XDR_encode_float (motionInfo.linearAccel(i)); - for (unsigned i = 0 ; i < 3; ++i) - PosMsg->angularAccel[i] = XDR_encode_float (motionInfo.angularAccel(i)); - - xdr_data_t* ptr = msgBuf.properties(); - std::vector::const_iterator it; - it = motionInfo.properties.begin(); - //cout << "OUTPUT PROPERTIES\n"; - xdr_data_t* msgEnd = msgBuf.propsEnd(); - while (it != motionInfo.properties.end() && ptr + 2 < msgEnd) { - - // First element is the ID. Write it out when we know we have room for - // the whole property. - xdr_data_t id = XDR_encode_uint32((*it)->id); - // The actual data representation depends on the type - switch ((*it)->type) { - case simgear::props::INT: - case simgear::props::BOOL: - case simgear::props::LONG: - *ptr++ = id; - *ptr++ = XDR_encode_uint32((*it)->int_value); - //cout << "Prop:" << (*it)->id << " " << (*it)->type << " "<< (*it)->int_value << "\n"; - break; - case simgear::props::FLOAT: - case simgear::props::DOUBLE: - *ptr++ = id; - *ptr++ = XDR_encode_float((*it)->float_value); - //cout << "Prop:" << (*it)->id << " " << (*it)->type << " "<< (*it)->float_value << "\n"; - break; - case simgear::props::STRING: - case simgear::props::UNSPECIFIED: - { - // String is complicated. It consists of - // The length of the string - // The string itself - // Padding to the nearest 4-bytes. - const char* lcharptr = (*it)->string_value; - - if (lcharptr != 0) - { - // Add the length - ////cout << "String length: " << strlen(lcharptr) << "\n"; - uint32_t len = strlen(lcharptr); - if (len > MAX_TEXT_SIZE) - len = MAX_TEXT_SIZE; - // XXX This should not be using 4 bytes per character! - // If there's not enough room for this property, drop it - // on the floor. - if (ptr + 2 + ((len + 3) & ~3) > msgEnd) - goto escape; - //cout << "String length unint32: " << len << "\n"; - *ptr++ = id; - *ptr++ = XDR_encode_uint32(len); - if (len != 0) - { - // Now the text itself - // XXX This should not be using 4 bytes per character! - int lcount = 0; - while ((*lcharptr != '\0') && (lcount < MAX_TEXT_SIZE)) - { - *ptr++ = XDR_encode_int8(*lcharptr); - lcharptr++; - lcount++; - } - - //cout << "Prop:" << (*it)->id << " " << (*it)->type << " " << len << " " << (*it)->string_value; - - // Now pad if required - while ((lcount % 4) != 0) - { - *ptr++ = XDR_encode_int8(0); - lcount++; - //cout << "0"; - } - - //cout << "\n"; - } - } - else - { - // Nothing to encode - *ptr++ = id; - *ptr++ = XDR_encode_uint32(0); - //cout << "Prop:" << (*it)->id << " " << (*it)->type << " 0\n"; - } - } - break; - - default: - //cout << " Unknown Type: " << (*it)->type << "\n"; - *ptr++ = id; - *ptr++ = XDR_encode_float((*it)->float_value);; - //cout << "Prop:" << (*it)->id << " " << (*it)->type << " "<< (*it)->float_value << "\n"; - break; - } - - ++it; + if (fgGetBool("/sim/freeze/replay-state", true)) + { + // do not send position updates during replay + for (unsigned i = 0 ; i < 3; ++i) + { + // no movement during replay + PosMsg->linearVel[i] = XDR_encode_float (0.0); + PosMsg->angularVel[i] = XDR_encode_float (0.0); + PosMsg->linearAccel[i] = XDR_encode_float (0.0); + PosMsg->angularAccel[i] = XDR_encode_float (0.0); + } + // all other data remains unchanged (resend last state) } -escape: - unsigned msgLen = reinterpret_cast(ptr) - msgBuf.Msg; - FillMsgHdr(msgBuf.msgHdr(), POS_DATA_ID, msgLen); - mSocket->sendto(msgBuf.Msg, msgLen, 0, &mServer); + else + { + PosMsg->time = XDR_encode_double (motionInfo.time); + PosMsg->lag = XDR_encode_double (motionInfo.lag); + for (unsigned i = 0 ; i < 3; ++i) + PosMsg->position[i] = XDR_encode_double (motionInfo.position(i)); + SGVec3f angleAxis; + motionInfo.orientation.getAngleAxis(angleAxis); + for (unsigned i = 0 ; i < 3; ++i) + PosMsg->orientation[i] = XDR_encode_float (angleAxis(i)); + for (unsigned i = 0 ; i < 3; ++i) + PosMsg->linearVel[i] = XDR_encode_float (motionInfo.linearVel(i)); + for (unsigned i = 0 ; i < 3; ++i) + PosMsg->angularVel[i] = XDR_encode_float (motionInfo.angularVel(i)); + for (unsigned i = 0 ; i < 3; ++i) + PosMsg->linearAccel[i] = XDR_encode_float (motionInfo.linearAccel(i)); + for (unsigned i = 0 ; i < 3; ++i) + PosMsg->angularAccel[i] = XDR_encode_float (motionInfo.angularAccel(i)); + + xdr_data_t* ptr = msgBuf.properties(); + std::vector::const_iterator it; + it = motionInfo.properties.begin(); + //cout << "OUTPUT PROPERTIES\n"; + xdr_data_t* msgEnd = msgBuf.propsEnd(); + while (it != motionInfo.properties.end() && ptr + 2 < msgEnd) { + + // First element is the ID. Write it out when we know we have room for + // the whole property. + xdr_data_t id = XDR_encode_uint32((*it)->id); + // The actual data representation depends on the type + switch ((*it)->type) { + case simgear::props::INT: + case simgear::props::BOOL: + case simgear::props::LONG: + *ptr++ = id; + *ptr++ = XDR_encode_uint32((*it)->int_value); + //cout << "Prop:" << (*it)->id << " " << (*it)->type << " "<< (*it)->int_value << "\n"; + break; + case simgear::props::FLOAT: + case simgear::props::DOUBLE: + *ptr++ = id; + *ptr++ = XDR_encode_float((*it)->float_value); + //cout << "Prop:" << (*it)->id << " " << (*it)->type << " "<< (*it)->float_value << "\n"; + break; + case simgear::props::STRING: + case simgear::props::UNSPECIFIED: + { + // String is complicated. It consists of + // The length of the string + // The string itself + // Padding to the nearest 4-bytes. + const char* lcharptr = (*it)->string_value; + + if (lcharptr != 0) + { + // Add the length + ////cout << "String length: " << strlen(lcharptr) << "\n"; + uint32_t len = strlen(lcharptr); + if (len > MAX_TEXT_SIZE) + len = MAX_TEXT_SIZE; + // XXX This should not be using 4 bytes per character! + // If there's not enough room for this property, drop it + // on the floor. + if (ptr + 2 + ((len + 3) & ~3) > msgEnd) + goto escape; + //cout << "String length unint32: " << len << "\n"; + *ptr++ = id; + *ptr++ = XDR_encode_uint32(len); + if (len != 0) + { + // Now the text itself + // XXX This should not be using 4 bytes per character! + int lcount = 0; + while ((*lcharptr != '\0') && (lcount < MAX_TEXT_SIZE)) + { + *ptr++ = XDR_encode_int8(*lcharptr); + lcharptr++; + lcount++; + } + + //cout << "Prop:" << (*it)->id << " " << (*it)->type << " " << len << " " << (*it)->string_value; + + // Now pad if required + while ((lcount % 4) != 0) + { + *ptr++ = XDR_encode_int8(0); + lcount++; + //cout << "0"; + } + + //cout << "\n"; + } + } + else + { + // Nothing to encode + *ptr++ = id; + *ptr++ = XDR_encode_uint32(0); + //cout << "Prop:" << (*it)->id << " " << (*it)->type << " 0\n"; + } + } + break; + + default: + //cout << " Unknown Type: " << (*it)->type << "\n"; + *ptr++ = id; + *ptr++ = XDR_encode_float((*it)->float_value);; + //cout << "Prop:" << (*it)->id << " " << (*it)->type << " "<< (*it)->float_value << "\n"; + break; + } + + ++it; + } + escape: + msgLen = reinterpret_cast(ptr) - msgBuf.Msg; + FillMsgHdr(msgBuf.msgHdr(), POS_DATA_ID, msgLen); + } + if (msgLen>0) + mSocket->sendto(msgBuf.Msg, msgLen, 0, &mServer); SG_LOG(SG_NETWORK, SG_DEBUG, "FGMultiplayMgr::SendMyPosition"); } // FGMultiplayMgr::SendMyPosition() From f33882d299ea6642a2d22c4a557b13890732a290 Mon Sep 17 00:00:00 2001 From: Frederic Bouvier Date: Wed, 17 Nov 2010 20:07:00 +0100 Subject: [PATCH 31/35] Update README.MSVC for 64-bit build --- docs-mini/README.MSVC | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs-mini/README.MSVC b/docs-mini/README.MSVC index 4e3e835b6..83f208a46 100644 --- a/docs-mini/README.MSVC +++ b/docs-mini/README.MSVC @@ -106,6 +106,9 @@ it in a scheduled task. To do that : 64bit environment (Vista 64-bit or Windows7 64-bit) You should see : "Setting environment for using Microsoft Visual Studio 2008 x86 tools." printed in the console + ( To start 64-bit build, the right environment is set with : + "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" amd64 + ) 3. cd to the FlightGear project directory : D: cd \FGFSDevel\FlightGear\projects\VC90 (for example) From ca3cabc60ab6bd0f787332bb78f4f90ea4877f0b Mon Sep 17 00:00:00 2001 From: ThorstenB Date: Fri, 19 Nov 2010 13:44:52 +0100 Subject: [PATCH 32/35] Kill some unnecessary include dependencies. Speed-up compilation when working on tilemanager. --- src/AIModel/AIEscort.cxx | 1 - src/AIModel/AIGroundVehicle.cxx | 1 - src/Main/fg_commands.cxx | 1 - src/Main/renderer.cxx | 1 - 4 files changed, 4 deletions(-) diff --git a/src/AIModel/AIEscort.cxx b/src/AIModel/AIEscort.cxx index 927e62655..2125b6ac4 100644 --- a/src/AIModel/AIEscort.cxx +++ b/src/AIModel/AIEscort.cxx @@ -35,7 +35,6 @@ #include
#include -#include #include "AIEscort.hxx" diff --git a/src/AIModel/AIGroundVehicle.cxx b/src/AIModel/AIGroundVehicle.cxx index 257a73517..08a47489b 100644 --- a/src/AIModel/AIGroundVehicle.cxx +++ b/src/AIModel/AIGroundVehicle.cxx @@ -26,7 +26,6 @@ #include
#include -#include #include #include "AIGroundVehicle.hxx" diff --git a/src/Main/fg_commands.cxx b/src/Main/fg_commands.cxx index c3c60fbec..28bf42770 100644 --- a/src/Main/fg_commands.cxx +++ b/src/Main/fg_commands.cxx @@ -31,7 +31,6 @@ #include #include #include -#include #include #include #include diff --git a/src/Main/renderer.cxx b/src/Main/renderer.cxx index 6eb3d3f68..d1fa367cf 100644 --- a/src/Main/renderer.cxx +++ b/src/Main/renderer.cxx @@ -92,7 +92,6 @@ #include #include #include -#include #include #include #include From 20b58fd9ab33329fa31216207253d32688e65f02 Mon Sep 17 00:00:00 2001 From: ThorstenB Date: Fri, 19 Nov 2010 13:47:13 +0100 Subject: [PATCH 33/35] Set initial environment visibility (thanks to kantoon) --- src/Main/options.cxx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Main/options.cxx b/src/Main/options.cxx index b46dc6e4a..1b5d7325b 100644 --- a/src/Main/options.cxx +++ b/src/Main/options.cxx @@ -996,6 +996,7 @@ fgOptVisibilityMeters( const char *arg ) { double visibility = atof( arg ); fgDefaultWeatherValue("visibility-m", visibility); + fgSetDouble("/environment/visibility-m", visibility); return FG_OPTIONS_OK; } @@ -1004,6 +1005,7 @@ fgOptVisibilityMiles( const char *arg ) { double visibility = atof( arg ) * 5280.0 * SG_FEET_TO_METER; fgDefaultWeatherValue("visibility-m", visibility); + fgSetDouble("/environment/visibility-m", visibility); return FG_OPTIONS_OK; } From 44901ae86f44825423ed1737e4219243cca942c3 Mon Sep 17 00:00:00 2001 From: ThorstenB Date: Fri, 19 Nov 2010 13:59:43 +0100 Subject: [PATCH 34/35] Tile manager improvements Priority scheme for tile loading/removing Cleaner tile manager interface for AI/groundcache/... Reduce start-up delay. Drop splash screen when inner scenery is available. Be nice to osg loader: slow-down main loop while initial scenery is still loading. --- src/AIModel/AIAircraft.cxx | 12 +- src/FDM/fdm_shell.cxx | 2 +- src/FDM/groundcache.cxx | 2 +- src/Main/main.cxx | 24 ++- src/Scenery/SceneryPager.cxx | 2 +- src/Scenery/scenery.cxx | 8 +- src/Scenery/tilemgr.cxx | 394 +++++++++++++++++------------------ src/Scenery/tilemgr.hxx | 17 +- 8 files changed, 224 insertions(+), 237 deletions(-) diff --git a/src/AIModel/AIAircraft.cxx b/src/AIModel/AIAircraft.cxx index a525d7ef1..52459a9cf 100644 --- a/src/AIModel/AIAircraft.cxx +++ b/src/AIModel/AIAircraft.cxx @@ -420,14 +420,12 @@ void FGAIAircraft::getGroundElev(double dt) { } double range = 500.0; - if (!globals->get_tile_mgr()->scenery_available(pos, range)) { - // Try to shedule tiles for that position. - globals->get_tile_mgr()->schedule_tiles_at( pos, range ); + if (globals->get_tile_mgr()->schedule_scenery(pos, range, 5.0)) + { + double alt; + if (getGroundElevationM(SGGeod::fromGeodM(pos, 20000), alt, 0)) + tgt_altitude_ft = alt * SG_METER_TO_FEET; } - - double alt; - if (getGroundElevationM(SGGeod::fromGeodM(pos, 20000), alt, 0)) - tgt_altitude_ft = alt * SG_METER_TO_FEET; } } diff --git a/src/FDM/fdm_shell.cxx b/src/FDM/fdm_shell.cxx index aaf94a6e7..705776b1f 100644 --- a/src/FDM/fdm_shell.cxx +++ b/src/FDM/fdm_shell.cxx @@ -113,7 +113,7 @@ void FDMShell::update(double dt) double lon = fgGetDouble("/sim/presets/longitude-deg"); double lat = fgGetDouble("/sim/presets/latitude-deg"); - double range = 1000.0; // in metres + double range = 100.0; // in meters SGGeod geod = SGGeod::fromDeg(lon, lat); if (globals->get_scenery()->scenery_available(geod, range)) { SG_LOG(SG_FLIGHT, SG_INFO, "Scenery loaded, will init FDM"); diff --git a/src/FDM/groundcache.cxx b/src/FDM/groundcache.cxx index 69cd3f187..9d83e283e 100644 --- a/src/FDM/groundcache.cxx +++ b/src/FDM/groundcache.cxx @@ -328,7 +328,7 @@ FGGroundCache::prepare_ground_cache(double startSimTime, double endSimTime, SGGeod geodPt = SGGeod::fromCart(pt); // Don't blow away the cache ground_radius and stuff if there's no // scenery - if (!globals->get_tile_mgr()->scenery_available(geodPt, rad)) { + if (!globals->get_tile_mgr()->schedule_scenery(geodPt, rad, 1.0)) { SG_LOG(SG_FLIGHT, SG_WARN, "prepare_ground_cache(): scenery_available " "returns false at " << geodPt << " " << pt << " " << rad); return false; diff --git a/src/Main/main.cxx b/src/Main/main.cxx index 8dbd12642..d015ad803 100644 --- a/src/Main/main.cxx +++ b/src/Main/main.cxx @@ -187,16 +187,24 @@ static void fgMainLoop( void ) { } #endif - // END Tile Manager udpates + // END Tile Manager updates bool scenery_loaded = fgGetBool("sim/sceneryloaded"); - if (!scenery_loaded && globals->get_tile_mgr()->isSceneryLoaded() - && fgGetBool("sim/fdm-initialized")) { - fgSetBool("sim/sceneryloaded",true); - if (fgGetBool("/sim/sound/working")) { - globals->get_soundmgr()->activate(); + if (!scenery_loaded) + { + if (globals->get_tile_mgr()->isSceneryLoaded() + && fgGetBool("sim/fdm-initialized")) { + fgSetBool("sim/sceneryloaded",true); + if (fgGetBool("/sim/sound/working")) { + globals->get_soundmgr()->activate(); + } + globals->get_props()->tie("/sim/sound/devices/name", + SGRawValueFunctions(0, fgSetNewSoundDevice), false); + } + else + { + // be nice to loader threads while waiting for initial scenery, reduce to 2fps + usleep(500000); } - globals->get_props()->tie("/sim/sound/devices/name", - SGRawValueFunctions(0, fgSetNewSoundDevice), false); } simgear::AtomicChangeListener::fireChangeListeners(); diff --git a/src/Scenery/SceneryPager.cxx b/src/Scenery/SceneryPager.cxx index 6f79a56ee..e23a71d26 100644 --- a/src/Scenery/SceneryPager.cxx +++ b/src/Scenery/SceneryPager.cxx @@ -1,4 +1,4 @@ -// SceneryPager.hxx -- Interface to OSG database pager +// SceneryPager.cxx -- Interface to OSG database pager // // Copyright (C) 2007 Tim Moore timoore@redhat.com // diff --git a/src/Scenery/scenery.cxx b/src/Scenery/scenery.cxx index cfa0eb72a..58bd4db56 100644 --- a/src/Scenery/scenery.cxx +++ b/src/Scenery/scenery.cxx @@ -28,6 +28,7 @@ #include #include +#include #include #include @@ -38,6 +39,7 @@ #include #include +#include
#include
#include "tilemgr.hxx" @@ -226,13 +228,15 @@ FGScenery::get_cart_ground_intersection(const SGVec3d& pos, const SGVec3d& dir, bool FGScenery::scenery_available(const SGGeod& position, double range_m) { - if(globals->get_tile_mgr()->scenery_available(position, range_m)) + if(globals->get_tile_mgr()->schedule_scenery(position, range_m, 0.0)) { double elev; if (!get_elevation_m(SGGeod::fromGeodM(position, SG_MAX_ELEVATION_M), elev, 0, 0)) return false; SGVec3f p = SGVec3f::fromGeod(SGGeod::fromGeodM(position, elev)); - simgear::CheckSceneryVisitor csnv(getPagerSingleton(), toOsg(p), range_m); + osg::FrameStamp* framestamp + = globals->get_renderer()->getViewer()->getFrameStamp(); + simgear::CheckSceneryVisitor csnv(getPagerSingleton(), toOsg(p), range_m, framestamp); // currently the PagedLODs will not be loaded by the DatabasePager // while the splashscreen is there, so CheckSceneryVisitor force-loads // missing objects in the main thread diff --git a/src/Scenery/tilemgr.cxx b/src/Scenery/tilemgr.cxx index 6e9c43812..81e84bfe6 100644 --- a/src/Scenery/tilemgr.cxx +++ b/src/Scenery/tilemgr.cxx @@ -82,7 +82,6 @@ void FGTileMgr::init() { TileEntry::setModelLoadHelper(this); _visibilityMeters = fgGetNode("/environment/visibility-m", true); - reinit(); } @@ -90,68 +89,55 @@ void FGTileMgr::init() { void FGTileMgr::reinit() { - tile_cache.init(); - - state = Inited; - - previous_bucket.make_bad(); - current_bucket.make_bad(); - longitude = latitude = -1000.0; - - // force an update now - update(0.0); + tile_cache.init(); + + state = Inited; + + previous_bucket.make_bad(); + current_bucket.make_bad(); + longitude = latitude = -1000.0; + + // force an update now + update(0.0); } -// schedule a tile for loading -void FGTileMgr::sched_tile( const SGBucket& b, const bool is_inner_ring, const bool is_cache_locked ) { + +/* schedule a tile for loading, keep request for given amount of time. + * Returns true if tile is already loaded. */ +bool FGTileMgr::sched_tile( const SGBucket& b, double priority, bool current_view, double duration) +{ // see if tile already exists in the cache TileEntry *t = tile_cache.get_tile( b ); - if (t) { - t->set_timestamp(tile_cache.get_current_time()); - t->set_inner_ring( is_inner_ring ); - t->set_cache_lock( is_cache_locked ); - return; - } - - // make space in the cache - SceneryPager* pager = FGScenery::getPagerSingleton(); - while ( (int)tile_cache.get_size() >= tile_cache.get_max_cache_size() ) { - long index = tile_cache.get_oldest_tile(); - if ( index >= 0 ) { - TileEntry *old = tile_cache.get_tile( index ); - tile_cache.clear_entry( index ); - osg::ref_ptr subgraph = old->getNode(); - old->removeFromSceneGraph(); - delete old; - // zeros out subgraph ref_ptr, so subgraph is owned by - // the pager and will be deleted in the pager thread. - pager->queueDeleteRequest(subgraph); - } else { - // nothing to free ?!? forge ahead - break; + if (!t) + { + // create a new entry + t = new TileEntry( b ); + // insert the tile into the cache, update will generate load request + if ( tile_cache.insert_tile( t ) ) + { + // Attach to scene graph + t->addToSceneGraph(globals->get_scenery()->get_terrain_branch()); + } else + { + // insert failed (cache full with no available entries to + // delete.) Try again later + delete t; + return false; } + + SG_LOG( SG_TERRAIN, SG_DEBUG, " New tile cache size " << (int)tile_cache.get_size() ); } - // create a new entry - TileEntry *e = new TileEntry( b ); - - // insert the tile into the cache - if ( tile_cache.insert_tile( e ) ) { - e->set_inner_ring( is_inner_ring ); - e->set_cache_lock( is_cache_locked ); - // update_queues will generate load request - // Attach to scene graph - e->addToSceneGraph(globals->get_scenery()->get_terrain_branch()); - } else { - // insert failed (cache full with no available entries to - // delete.) Try again later - delete e; - } + // update tile's properties + tile_cache.request_tile(t,priority,current_view,duration); + + return t->is_loaded(); } -// schedule a needed buckets for loading -void FGTileMgr::schedule_needed(const SGBucket& curr_bucket, double vis) { - +/* schedule needed buckets for the current view position for loading, + * keep request for given amount of time */ +void FGTileMgr::schedule_needed(const SGBucket& curr_bucket, double vis) +{ // sanity check (unfortunately needed!) if ( longitude < -180.0 || longitude > 180.0 || latitude < -90.0 || latitude > 90.0 ) @@ -185,15 +171,8 @@ void FGTileMgr::schedule_needed(const SGBucket& curr_bucket, double vis) { // cout << "max cache size = " << tile_cache.get_max_cache_size() // << " current cache size = " << tile_cache.get_size() << endl; - // clear the inner ring flags so we can set them below. This - // prevents us from having "true" entries we aren't able to find - // to get rid of if we teleport a long ways away from the current - // location. - tile_cache.clear_inner_ring_flags(); - - // clear the cache lock flags which prevented tiles of the previous position to be dropped - // from the cache. - tile_cache.clear_cache_lock_flags(); + // clear flags of all tiles belonging to the previous view set + tile_cache.clear_current_view(); // update timestamps, so all tiles scheduled now are *newer* than any tile previously loaded osg::FrameStamp* framestamp @@ -202,29 +181,17 @@ void FGTileMgr::schedule_needed(const SGBucket& curr_bucket, double vis) { SGBucket b; - // schedule center tile first so it can be loaded first - b = sgBucketOffset( longitude, latitude, 0, 0 ); - sched_tile( b, true, true ); - int x, y; - // schedule next ring of 8 tiles - for ( x = -1; x <= 1; ++x ) { - for ( y = -1; y <= 1; ++y ) { - if ( x != 0 || y != 0 ) { - b = sgBucketOffset( longitude, latitude, x, y ); - sched_tile( b, true, true); - } - } - } - - // schedule remaining tiles - for ( x = -xrange; x <= xrange; ++x ) { - for ( y = -yrange; y <= yrange; ++y ) { - if ( x < -1 || x > 1 || y < -1 || y > 1 ) { - SGBucket b = sgBucketOffset( longitude, latitude, x, y ); - sched_tile( b, false, true); - } + /* schedule all tiles, use distance-based loading priority, + * so tiles are loaded in innermost-to-outermost sequence. */ + for ( x = -xrange; x <= xrange; ++x ) + { + for ( y = -yrange; y <= yrange; ++y ) + { + SGBucket b = sgBucketOffset( longitude, latitude, x, y ); + float priority = (-1.0) * (x*x+y*y); + sched_tile( b, priority, true, 0.0 ); } } } @@ -268,37 +235,6 @@ FGTileMgr::loadTileModel(const string& modelPath, bool cacheModel) return result; } -// Helper class for STL fun -class TileLoad : public std::unary_function -{ -public: - TileLoad(SceneryPager *pager, osg::FrameStamp* framestamp, - osg::Group* terrainBranch, osgDB::ReaderWriter::Options* options) : - _pager(pager), _framestamp(framestamp), _options(options) {} - - TileLoad(const TileLoad& rhs) : - _pager(rhs._pager), _framestamp(rhs._framestamp), - _options(rhs._options) {} - - void operator()(TileCache::tile_map::value_type& tilePair) - { - TileEntry* entry = tilePair.second; - if (entry->getNode()->getNumChildren() == 0) { - _pager->queueRequest(entry->tileFileName, - entry->getNode(), - entry->get_inner_ring() ? 10.0f : 1.0f, - _framestamp, - entry->getDatabaseRequest(), - _options); - } - } -private: - SceneryPager* _pager; - osg::FrameStamp* _framestamp; - osgDB::ReaderWriter::Options* _options; -}; - /** * Update the various queues maintained by the tilemagr (private * internal function, do not call directly.) @@ -308,13 +244,71 @@ void FGTileMgr::update_queues() SceneryPager* pager = FGScenery::getPagerSingleton(); osg::FrameStamp* framestamp = globals->get_renderer()->getViewer()->getFrameStamp(); - tile_cache.set_current_time(framestamp->getReferenceTime()); - for_each(tile_cache.begin(), tile_cache.end(), - TileLoad(pager, - framestamp, - globals->get_scenery()->get_terrain_branch(), _options.get())); -} + double current_time = framestamp->getReferenceTime(); + double vis = _visibilityMeters->getDoubleValue(); + TileEntry *e; + int loading=0; + int sz=0; + tile_cache.set_current_time( current_time ); + tile_cache.reset_traversal(); + + while ( ! tile_cache.at_end() ) + { + e = tile_cache.get_current(); + // cout << "processing a tile" << endl; + if ( e ) + { + // Prepare the ssg nodes corresponding to each tile. + // Set the ssg transform and update it's range selector + // based on current visibilty + e->prep_ssg_node(vis); + + if (( !e->is_loaded() )&& + ( !e->is_expired(current_time) )) + { + // schedule tile for loading with osg pager + pager->queueRequest(e->tileFileName, + e->getNode(), + e->get_priority(), + framestamp, + e->getDatabaseRequest(), + _options.get()); + loading++; + } + } else + { + SG_LOG(SG_INPUT, SG_ALERT, "warning ... empty tile in cache"); + } + tile_cache.next(); + sz++; + } + + int drop_count = sz - tile_cache.get_max_cache_size(); + if (( drop_count > 0 )&& + ((loading==0)||(drop_count > 10))) + { + long drop_index = tile_cache.get_drop_tile(); + while ( drop_index > -1 ) + { + // schedule tile for deletion with osg pager + TileEntry* old = tile_cache.get_tile(drop_index); + tile_cache.clear_entry(drop_index); + + osg::ref_ptr subgraph = old->getNode(); + old->removeFromSceneGraph(); + delete old; + // zeros out subgraph ref_ptr, so subgraph is owned by + // the pager and will be deleted in the pager thread. + pager->queueDeleteRequest(subgraph); + + if (--drop_count > 0) + drop_index = tile_cache.get_drop_tile(); + else + drop_index = -1; + } + } +} // given the current lon/lat (in degrees), fill in the array of local // chunks. If the chunk isn't already in the cache, then read it from @@ -323,12 +317,15 @@ void FGTileMgr::update(double) { SG_LOG( SG_TERRAIN, SG_DEBUG, "FGTileMgr::update()" ); SGVec3d viewPos = globals->get_current_view()->get_view_pos(); - prep_ssg_nodes(); double vis = _visibilityMeters->getDoubleValue(); schedule_tiles_at(SGGeod::fromCart(viewPos), vis); + + update_queues(); } -int FGTileMgr::schedule_tiles_at(const SGGeod& location, double rangeM) +// schedule tiles for the viewer bucket (FDM/AI/groundcache/... use +// "schedule_scenery" instead +int FGTileMgr::schedule_tiles_at(const SGGeod& location, double range_m) { longitude = location.getLongitudeDeg(); latitude = location.getLatitudeDeg(); @@ -337,6 +334,12 @@ int FGTileMgr::schedule_tiles_at(const SGGeod& location, double rangeM) // << longitude << " " << latatitude ); current_bucket.set_bucket( location ); + + // schedule more tiles when visibility increased considerably + // TODO Calculate tile size - instead of using fixed value (5000m) + if (range_m-scheduled_visibility > 5000.0) + previous_bucket.make_bad(); + // SG_LOG( SG_TERRAIN, SG_DEBUG, "Updating tile list for " // << current_bucket ); fgSetInt( "/environment/current-tile-id", current_bucket.gen_index() ); @@ -349,107 +352,86 @@ int FGTileMgr::schedule_tiles_at(const SGGeod& location, double rangeM) // We've moved to a new bucket, we need to schedule any // needed tiles for loading. SG_LOG( SG_TERRAIN, SG_INFO, "FGTileMgr::update()" ); - schedule_needed(current_bucket, rangeM); + scheduled_visibility = range_m; + schedule_needed(current_bucket, range_m); } + // save bucket + previous_bucket = current_bucket; } else if ( state == Start || state == Inited ) { SG_LOG( SG_TERRAIN, SG_INFO, "State == Start || Inited" ); - + // do not update bucket yet (position not valid in initial loop) state = Running; - if (current_bucket != previous_bucket - && current_bucket.get_chunk_lon() != -1000) { - SG_LOG( SG_TERRAIN, SG_INFO, "FGTileMgr::update()" ); - schedule_needed(current_bucket, rangeM); - } + previous_bucket.make_bad(); } - update_queues(); - - // save bucket... - previous_bucket = current_bucket; - return 1; } -void FGTileMgr::prep_ssg_nodes() { - - // traverse the potentially viewable tile list and update range - // selector and transform - - double vis = _visibilityMeters->getDoubleValue(); - TileEntry *e; - tile_cache.reset_traversal(); - - while ( ! tile_cache.at_end() ) { - // cout << "processing a tile" << endl; - if ( (e = tile_cache.get_current()) ) { - e->prep_ssg_node(vis); - } else { - SG_LOG(SG_INPUT, SG_ALERT, "warning ... empty tile in cache"); - } - tile_cache.next(); - } -} - -bool FGTileMgr::scenery_available(const SGGeod& position, double range_m) +/** Schedules scenery for given position. Load request remains valid for given duration + * (duration=0.0 => nothing is loaded). + * Used for FDM/AI/groundcache/... requests. Viewer uses "schedule_tiles_at" instead. + * Returns true when all tiles for the given position are already loaded, false otherwise. + */ +bool FGTileMgr::schedule_scenery(const SGGeod& position, double range_m, double duration) { - // sanity check (unfortunately needed!) - if (position.getLongitudeDeg() < -180 || position.getLongitudeDeg() > 180 || - position.getLatitudeDeg() < -90 || position.getLatitudeDeg() > 90) - return false; + const float priority = 0.0; + double current_longitude = position.getLongitudeDeg(); + double current_latitude = position.getLatitudeDeg(); + bool available = true; + + // sanity check (unfortunately needed!) + if (current_longitude < -180 || current_longitude > 180 || + current_latitude < -90 || current_latitude > 90) + return false; - SGBucket bucket(position); - TileEntry *te = tile_cache.get_tile(bucket); - if (!te || !te->is_loaded()) - return false; - - SGVec3d cartPos = SGVec3d::fromGeod(position); - - // Traverse all tiles required to be there for the given visibility. - // This uses exactly the same algorithm like the tile scheduler. - double tile_width = bucket.get_width_m(); - double tile_height = bucket.get_height_m(); - double tile_r = 0.5*sqrt(tile_width*tile_width + tile_height*tile_height); - double max_dist = tile_r + range_m; - double max_dist2 = max_dist*max_dist; + SGBucket bucket(position); + available = sched_tile( bucket, priority, false, duration ); - int xrange = (int)fabs(range_m / tile_width) + 1; - int yrange = (int)fabs(range_m / tile_height) + 1; - - for ( int x = -xrange; x <= xrange; ++x ) { - for ( int y = -yrange; y <= yrange; ++y ) { - // We have already checked for the center tile. - if ( x != 0 || y != 0 ) { - SGBucket b = sgBucketOffset( position.getLongitudeDeg(), - position.getLatitudeDeg(), x, y ); - // Do not ask if it is just the next tile but way out of range. - if (max_dist2 < distSqr(cartPos, SGVec3d::fromGeod(b.get_center()))) - continue; - TileEntry *te = tile_cache.get_tile(b); - if (!te || !te->is_loaded()) - return false; - } - } - } + if ((!available)&&(duration==0.0)) + return false; - // Survived all tests. - return true; -} + SGVec3d cartPos = SGVec3d::fromGeod(position); -namespace -{ -struct IsTileLoaded : - public std::unary_function -{ - bool operator()(const TileCache::tile_map::value_type& tilePair) const + // Traverse all tiles required to be there for the given visibility. + double tile_width = bucket.get_width_m(); + double tile_height = bucket.get_height_m(); + double tile_r = 0.5*sqrt(tile_width*tile_width + tile_height*tile_height); + double max_dist = tile_r + range_m; + double max_dist2 = max_dist*max_dist; + + int xrange = (int)fabs(range_m / tile_width) + 1; + int yrange = (int)fabs(range_m / tile_height) + 1; + + for ( int x = -xrange; x <= xrange; ++x ) { - return tilePair.second->is_loaded(); + for ( int y = -yrange; y <= yrange; ++y ) + { + // We have already checked for the center tile. + if ( x != 0 || y != 0 ) + { + SGBucket b = sgBucketOffset( current_longitude, + current_latitude, x, y ); + double distance2 = distSqr(cartPos, SGVec3d::fromGeod(b.get_center())); + // Do not ask if it is just the next tile but way out of range. + if (distance2 <= max_dist2) + { + available &= sched_tile( b, priority, false, duration ); + if ((!available)&&(duration==0.0)) + return false; + } + } + } } -}; + + return available; } +// Returns true if tiles around current view position have been loaded bool FGTileMgr::isSceneryLoaded() { - return (std::find_if(tile_cache.begin(), tile_cache.end(), - std::not1(IsTileLoaded())) - == tile_cache.end()); + double range_m = 100.0; + if (scheduled_visibility < range_m) + range_m = scheduled_visibility; + + return schedule_scenery(SGGeod::fromDeg(longitude, latitude), range_m, 0.0); } diff --git a/src/Scenery/tilemgr.hxx b/src/Scenery/tilemgr.hxx index 98dcc3d18..048fe7692 100644 --- a/src/Scenery/tilemgr.hxx +++ b/src/Scenery/tilemgr.hxx @@ -51,8 +51,8 @@ private: load_state state; - // schedule a tile for loading - void sched_tile( const SGBucket& b, const bool is_inner_ring, const bool is_cache_locked ); + // schedule a tile for loading, returns true when tile is already loaded + bool sched_tile( const SGBucket& b, double priority,bool current_view, double request_time); // schedule a needed buckets for loading void schedule_needed(const SGBucket& curr_bucket, double rangeM); @@ -69,6 +69,7 @@ private: // current longitude latitude double longitude; double latitude; + double scheduled_visibility; /** * tile cache @@ -79,12 +80,6 @@ private: // internal function, do not call directly.) void update_queues(); - // Prepare the ssg nodes corresponding to each tile. For each - // tile, set the ssg transform and update it's range selector - // based on current visibilty void prep_ssg_nodes( float - // visibility_meters ); - void prep_ssg_nodes(); - SGPropertyNode* _visibilityMeters; public: @@ -103,15 +98,15 @@ public: const SGBucket& get_current_bucket () const { return current_bucket; } - /// Returns true if scenery is avaliable for the given lat, lon position + /// Returns true if scenery is available for the given lat, lon position /// within a range of range_m. /// lat and lon are expected to be in degrees. - bool scenery_available(const SGGeod& position, double range_m); + bool schedule_scenery(const SGGeod& position, double range_m, double duration=0.0); // Load a model for a tile osg::Node* loadTileModel(const string& modelPath, bool cacheModel); - // Returns true if all the tiles in the tile cache have been loaded + // Returns true if tiles around current view position have been loaded bool isSceneryLoaded(); }; From fabf45bfd538500b5188222a007d71e39822f53d Mon Sep 17 00:00:00 2001 From: ThorstenB Date: Fri, 19 Nov 2010 15:05:12 +0100 Subject: [PATCH 35/35] Use simgear abstraction for sleeping. Fix required for Bill's OS... --- src/Main/main.cxx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Main/main.cxx b/src/Main/main.cxx index d015ad803..5fec795ef 100644 --- a/src/Main/main.cxx +++ b/src/Main/main.cxx @@ -49,6 +49,7 @@ //#include #include #include +#include #include