diff --git a/test_suite/helpers/CMakeLists.txt b/test_suite/helpers/CMakeLists.txt
index 45096948f..20d434eae 100644
--- a/test_suite/helpers/CMakeLists.txt
+++ b/test_suite/helpers/CMakeLists.txt
@@ -1,6 +1,7 @@
set(TESTSUITE_SOURCES
${TESTSUITE_SOURCES}
${CMAKE_CURRENT_SOURCE_DIR}/globals.cxx
+ ${CMAKE_CURRENT_SOURCE_DIR}/scene_graph.cxx
PARENT_SCOPE
)
@@ -8,5 +9,6 @@ set(TESTSUITE_SOURCES
set(TESTSUITE_HEADERS
${TESTSUITE_HEADERS}
${CMAKE_CURRENT_SOURCE_DIR}/globals.hxx
+ ${CMAKE_CURRENT_SOURCE_DIR}/scene_graph.hxx
PARENT_SCOPE
)
diff --git a/test_suite/helpers/scene_graph.cxx b/test_suite/helpers/scene_graph.cxx
new file mode 100644
index 000000000..b7afdf8f9
--- /dev/null
+++ b/test_suite/helpers/scene_graph.cxx
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2018 Edward d'Auvergne
+ *
+ * This file is part of the program FlightGear.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "scene_graph.hxx"
+
+#include
+#include
+#include
+#include
+#include
+
+
+namespace fgtest
+{
+
+void initScenery()
+{
+ // Read the global defaults from $FG_ROOT/defaults.xml (needed by the renderer).
+ SGPath defaultsXML = globals->get_fg_root() / "defaults.xml";
+ if (!defaultsXML.exists())
+ SG_LOG(SG_GENERAL, SG_ALERT, "Cannot read the global defaults from \"" << defaultsXML.utf8Str() << "\".");
+ fgLoadProps("defaults.xml", globals->get_props());
+
+ // Set up the renderer.
+ osg::ref_ptr viewer = new osgViewer::Viewer;
+ FGRenderer* render = globals->get_renderer();
+ render->init();
+ render->setViewer(viewer.get());
+
+ // Start up the scenery subsystem.
+ globals->add_new_subsystem(SGSubsystemMgr::DISPLAY);
+ globals->get_scenery()->init();
+ globals->get_scenery()->bind();
+}
+
+} // of namespace fgtest
diff --git a/test_suite/helpers/scene_graph.hxx b/test_suite/helpers/scene_graph.hxx
new file mode 100644
index 000000000..d96b31767
--- /dev/null
+++ b/test_suite/helpers/scene_graph.hxx
@@ -0,0 +1,28 @@
+/*
+ * Copyright (C) 2018 Edward d'Auvergne
+ *
+ * This file is part of the program FlightGear.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#ifndef FG_TEST_SCENE_GRAPH_HXX
+#define FG_TEST_SCENE_GRAPH_HXX
+
+namespace fgtest
+{
+void initScenery();
+}
+
+#endif // FG_TEST_SCENE_GRAPH_HXX