1
0
Fork 0

Raise minimum OSG version to 3.4.1

This commit is contained in:
James Turner 2020-06-18 17:25:01 +01:00
parent 06e0924bfc
commit bd666f952e
16 changed files with 8 additions and 114 deletions

View file

@ -297,7 +297,7 @@ endif()
# check required dependencies
find_package(Boost REQUIRED)
find_package(OpenGL REQUIRED)
find_package(OpenSceneGraph 3.2.0 REQUIRED
find_package(OpenSceneGraph 3.4.1 REQUIRED
osgText
osgSim
osgDB

View file

@ -85,11 +85,7 @@ namespace canvas
{
SGPath valid_path = fgValidatePath(p, false);
if( !valid_path.isNull() )
#if OSG_VERSION_LESS_THAN(3,4,0)
return osgDB::readRefImageFile(valid_path.utf8Str());
#else
return osgDB::readRefImageFile(valid_path.utf8Str());
#endif
SG_LOG(SG_IO, SG_ALERT, "canvas::Image: reading '" << path << "' denied");
}
@ -97,11 +93,7 @@ namespace canvas
{
SGPath tpath = globals->resolve_resource_path(path);
if( !tpath.isNull() )
#if OSG_VERSION_LESS_THAN(3,4,0)
return osgDB::readImageFile(tpath.utf8Str());
#else
return osgDB::readRefImageFile(tpath.utf8Str());
#endif
SG_LOG(SG_IO, SG_ALERT, "canvas::Image: No such image: '" << path << "'");
}

View file

@ -577,10 +577,6 @@ int fgMainInit( int argc, char **argv )
SG_LOG( SG_GENERAL, SG_INFO, "Jenkins number/ID " << JENKINS_BUILD_NUMBER << ":"
<< JENKINS_BUILD_ID);
#if OSG_VERSION_LESS_THAN(3,4,1)
SG_LOG(SG_GENERAL, SG_ALERT, "Minimum supported OpenScenegraph is V3.4.1 - currently using " << osgGetVersion() << " This can cause fatal OSG 'final reference count' errors at runtime");
#endif
flightgear::addSentryTag("jenkins-build-number", std::to_string(JENKINS_BUILD_NUMBER));
flightgear::addSentryTag("osg-version", osgGetVersion());

View file

@ -314,13 +314,7 @@ FGPanelNode::drawImplementation(osg::State& state) const
_panel->draw(state);
}
osg::BoundingBox
#if OSG_VERSION_LESS_THAN(3,3,2)
FGPanelNode::computeBound()
#else
FGPanelNode::computeBoundingBox()
#endif
const
osg::BoundingBox FGPanelNode::computeBoundingBox() const
{
osg::Vec3 coords[3];

View file

@ -32,13 +32,7 @@ public:
void drawImplementation(osg::State& state) const;
virtual osg::BoundingBox
#if OSG_VERSION_LESS_THAN(3,3,2)
computeBound()
#else
computeBoundingBox()
#endif
const;
osg::BoundingBox computeBoundingBox() const override;
/** Return true, FGPanelNode does support accept(PrimitiveFunctor&). */

View file

@ -27,8 +27,6 @@
#include <osg/Group>
#include <osgDB/DatabasePager>
#include <simgear/structure/OSGVersion.hxx>
namespace flightgear
{
class SceneryPager : public osgDB::DatabasePager

View file

@ -121,11 +121,8 @@ void FGPgtTerrain::init( osg::Group* terrain ) {
options->setDem(_dem);
SG_LOG(SG_TERRAIN, SG_INFO, "Terrain init - Load w180s90-360x180.pgt" );
#if OSG_VERSION_LESS_THAN(3,4,0)
osg::ref_ptr<osg::Node> loadedModel = osgDB::readNodeFile("w180s90-360x180.pgt", options.get());
#else
osg::ref_ptr<osg::Node> loadedModel = osgDB::readRefNodeFile("w180s90-360x180.pgt", options.get());
#endif
if ( loadedModel ) {
terrain_branch->addChild( loadedModel.get() );

View file

@ -29,7 +29,6 @@
#include <simgear/props/props_io.hxx> // for copyProperties
#include <simgear/structure/exception.hxx>
#include <simgear/structure/OSGUtils.hxx>
#include <simgear/structure/OSGVersion.hxx>
#include <simgear/scene/material/EffectCullVisitor.hxx>
#include <simgear/scene/util/RenderConstants.hxx>
#include <simgear/scene/util/SGReaderWriterOptions.hxx>

View file

@ -32,7 +32,6 @@
#include <simgear/props/props.hxx>
#include <simgear/props/props_io.hxx> // for copyProperties
#include <simgear/structure/OSGUtils.hxx>
#include <simgear/structure/OSGVersion.hxx>
#include <simgear/scene/material/EffectCullVisitor.hxx>
#include <simgear/scene/util/RenderConstants.hxx>

View file

@ -5,7 +5,6 @@
#include <osg/Quat>
#include <osgGA/GUIEventHandler>
#include <osgViewer/ViewerEventHandlers>
#include <simgear/structure/OSGVersion.hxx>
#include <Main/fg_os.hxx>
@ -34,8 +33,8 @@ public:
virtual void init(const osgGA::GUIEventAdapter& ea,
osgGA::GUIActionAdapter& us);
#endif
virtual bool handle(const osgGA::GUIEventAdapter& ea,
osgGA::GUIActionAdapter& us);
bool handle(const osgGA::GUIEventAdapter& ea,
osgGA::GUIActionAdapter& us) override;
void setIdleHandler(fgIdleHandler idleHandler)
{

View file

@ -421,10 +421,8 @@ bool GraphicsWindowQt5::init( Qt::WindowFlags f )
getState()->setGraphicsContext(this);
getState()->setContextID( osg::GraphicsContext::createNewContextID() );
#if OSG_VERSION_GREATER_OR_EQUAL(3, 4, 0)
// make sure the event queue has the correct window rectangle size and input range
getEventQueue()->syncWindowRectangleWithGraphicsContext();
#endif
return true;
}
@ -632,10 +630,8 @@ bool GraphicsWindowQt5::realizeImplementation()
_window->show();
}
#if OSG_VERSION_GREATER_OR_EQUAL(3, 4, 0)
// make sure the event queue has the correct window rectangle size and input range
getEventQueue()->syncWindowRectangleWithGraphicsContext();
#endif
getEventQueue()->getCurrentEventState()->setMouseYOrientation(osgGA::GUIEventAdapter::Y_INCREASING_DOWNWARDS);

View file

@ -57,40 +57,6 @@
using namespace flightgear;
#if OSG_VERSION_LESS_THAN(3,4,0)
// this class kindly provided by Wojtek Lewandowsk on ths OpenSceneGraph-users
// mailing list from his code-archive, it's needed to poke the camera setup
// after resizing the FBO backing storage, on OSG 3.2.x
class PUICamera::UpdateViewportAndFBOAfterTextureResizeCallback : public osg::NodeCallback
{
public:
UpdateViewportAndFBOAfterTextureResizeCallback(bool dirty = false) : _dirty(dirty) {}
void setDirty(bool dirty) { _dirty = dirty; }
bool getDirty() { return _dirty; }
void operator()(osg::Node *node, osg::NodeVisitor *nv)
{
if (_dirty)
{
osgUtil::CullVisitor *cv = static_cast<osgUtil::CullVisitor *>(nv);
if (cv && node == cv->getCurrentRenderStage()->getCamera())
{
cv->getCurrentRenderStage()->setCameraRequiresSetUp(true);
_dirty = false;
}
}
traverse(node, nv);
}
protected:
bool _dirty;
};
#endif
double static_pixelRatio = 1.0;
class PUIDrawable : public osg::Drawable
@ -326,11 +292,6 @@ void PUICamera::init(osg::Group* parent, osgViewer::Viewer* viewer)
// set the camera's node mask, ensure the pick bit is clear
setNodeMask(SG_NODEMASK_GUI_BIT);
#if OSG_VERSION_LESS_THAN(3,4,0)
_resizeCullCallback = new UpdateViewportAndFBOAfterTextureResizeCallback;
setCullCallback(_resizeCullCallback);
#endif
// geode+drawable to call puDisplay, as a child of this FBO-camera
osg::Geode* geode = new osg::Geode;
geode->setName("PUIDrawableGeode");
@ -393,13 +354,9 @@ void PUICamera::resizeUi(int width, int height)
const int scaledHeight = static_cast<int>(height / static_pixelRatio);
setViewport(0, 0, scaledWidth, scaledHeight);
#if OSG_VERSION_LESS_THAN(3,4,0)
manuallyResizeFBO(scaledWidth, scaledHeight);
_resizeCullCallback->setDirty(true);
#else
osg::Camera::resize(scaledWidth, scaledHeight);
resizeAttachments(scaledWidth, scaledHeight);
#endif
const float puiZ = 1.0;
// resize the full-screen quad

View file

@ -49,10 +49,6 @@ public:
void init(osg::Group* parent, osgViewer::Viewer* viewer);
private:
#if OSG_VERSION_LESS_THAN(3,4,0)
class UpdateViewportAndFBOAfterTextureResizeCallback;
UpdateViewportAndFBOAfterTextureResizeCallback* _resizeCullCallback = nullptr;
#endif
void manuallyResizeFBO(int width, int height);
osg::Texture2D* _fboTexture = nullptr;

View file

@ -86,13 +86,10 @@ SplashScreen::~SplashScreen()
void SplashScreen::createNodes()
{
std::string splashImage = selectSplashImage();
#if OSG_VERSION_LESS_THAN(3,4,0)
_splashImage = osgDB::readImageFile(splashImage);
#else
osg::ref_ptr<SGReaderWriterOptions> staticOptions = SGReaderWriterOptions::copyOrCreate(osgDB::Registry::instance()->getOptions());
staticOptions->setLoadOriginHint(SGReaderWriterOptions::LoadOriginHint::ORIGIN_SPLASH_SCREEN);
_splashImage = osgDB::readRefImageFile(splashImage, staticOptions);
#endif
if (!_splashImage){
SG_LOG(SG_VIEW, SG_INFO, "Splash Image " << splashImage << " failed to load");
@ -307,11 +304,7 @@ void SplashScreen::setupLogoImage()
osg::ref_ptr<simgear::SGReaderWriterOptions> staticOptions = simgear::SGReaderWriterOptions::copyOrCreate(osgDB::Registry::instance()->getOptions());
staticOptions->setLoadOriginHint(simgear::SGReaderWriterOptions::LoadOriginHint::ORIGIN_SPLASH_SCREEN);
#if OSG_VERSION_LESS_THAN(3, 4, 0)
_logoImage = osgDB::readImageFile(logoPath.utf8Str(), staticOptions);
#else
_logoImage = osgDB::readRefImageFile(logoPath.utf8Str(), staticOptions);
#endif
if (!_logoImage) {
SG_LOG(SG_VIEW, SG_INFO, "Splash logo image " << logoPath << " failed to load");
return;
@ -590,11 +583,7 @@ void SplashScreen::resize( int width, int height )
_height = height;
_splashQuadCamera->setViewport(0, 0, width, height);
#if OSG_VERSION_LESS_THAN(3,4,0)
manuallyResizeFBO(width, height);
#else
_splashFBOCamera->resizeAttachments(width, height);
#endif
_splashFBOCamera->setViewport(0, 0, width, height);
_splashFBOCamera->setProjectionMatrixAsOrtho2D(-width * 0.5, width * 0.5,
-height * 0.5, height * 0.5);

View file

@ -553,12 +553,8 @@ Viewer::insertSceneData(const std::string& fileName, const osgDB::Options* optio
proxyNode->setFileName(0, fileName);
insertSceneData(proxyNode);
return true;
#else
#if OSG_VERSION_LESS_THAN(3,4,0)
osg::ref_ptr<osg::Node> node = osgDB::readNodeFile(fileName, options);
#else
osg::ref_ptr<osg::Node> node = osgDB::readRefNodeFile(fileName, options);
#endif
if (!node.valid())
return false;
insertSceneData(node.get());

View file

@ -254,19 +254,11 @@ main(int argc, char** argv)
osg::ref_ptr<osg::Node> loadedModel;
if (1 < arguments.argc()) {
// read the scene from the list of file specified command line args.
#if OSG_VERSION_LESS_THAN(3,4,1)
loadedModel = osgDB::readNodeFiles(arguments, options.get());
#else
loadedModel = osgDB::readRefNodeFiles(arguments, options.get());
#endif
} else {
// if no arguments given resort to the whole world scenery
options->setPluginStringData("SimGear::FG_EARTH", "ON");
#if OSG_VERSION_LESS_THAN(3,4,0)
loadedModel = osgDB::readNodeFile("w180s90-360x180.spt", options.get());
#else
loadedModel = osgDB::readRefNodeFile("w180s90-360x180.spt", options.get());
#endif
}
// if no model has been successfully loaded report failure.