diff --git a/src/scene/ui/BackGroundWidget.cpp b/src/scene/ui/BackGroundWidget.cpp index efd56fa3..450a51b2 100644 --- a/src/scene/ui/BackGroundWidget.cpp +++ b/src/scene/ui/BackGroundWidget.cpp @@ -6,6 +6,7 @@ #include #include "utils/ImageUtils.h" +#include "common/SpdLogger.h" BackGroundWidget::BackGroundWidget(const std::string& name, float w, @@ -15,7 +16,8 @@ BackGroundWidget::BackGroundWidget(const std::string& name, { //osg::Image *image = ImageUtils::readImage(fileName); - setImage(fileName, true, true); + LOG_INFO("setimage, {}", fileName); + setImage(fileName, true); setTexCoord(0.0f, 0.0f, osgWidget::Widget::LOWER_LEFT); setTexCoord(1.0f, 0.0f, osgWidget::Widget::LOWER_RIGHT); diff --git a/src/scene/ui/CompositeWidget.cpp b/src/scene/ui/CompositeWidget.cpp index 13461f56..081f5ab9 100644 --- a/src/scene/ui/CompositeWidget.cpp +++ b/src/scene/ui/CompositeWidget.cpp @@ -2,6 +2,7 @@ #include "utils/ImageUtils.h" #include "CompositeWidgetManager.h" +#include "common/SpdLogger.h" CompositeWidget::CompositeWidget(std::string name, @@ -13,7 +14,7 @@ CompositeWidget::CompositeWidget(std::string name, CompositeWidgetManager *wm) :osgWidget::Widget(name, w, h) { //osg::Image *image = ImageUtils::readImage(fileName); - + LOG_INFO("setimage, {}", fileName); setImage(fileName, true, true); setTexCoord(0.0f, 0.0f, osgWidget::Widget::LOWER_LEFT); diff --git a/src/scene/ui/ZoomWidget.cpp b/src/scene/ui/ZoomWidget.cpp index 0dee7f36..0b8cbb27 100644 --- a/src/scene/ui/ZoomWidget.cpp +++ b/src/scene/ui/ZoomWidget.cpp @@ -2,6 +2,7 @@ #include "ZoomWidget.h" #include "utils/ImageUtils.h" +#include "common/SpdLogger.h" ZoomWidget::ZoomWidget(std::string name, float w, @@ -13,14 +14,15 @@ ZoomWidget::ZoomWidget(std::string name, :osgWidget::Widget(name, w, h) { //osg::Image *image = ImageUtils::readImage(fileName); - setImage(fileName, true, true); + LOG_INFO("setimage, {}", fileName); + setImage(fileName, true); setTexCoord(0.0f, 0.0f, osgWidget::Widget::LOWER_LEFT); setTexCoord(1.0f, 0.0f, osgWidget::Widget::LOWER_RIGHT); setTexCoord(1.0f, 1.0f, osgWidget::Widget::UPPER_RIGHT); setTexCoord(0.0f, 1.0f, osgWidget::Widget::UPPER_LEFT); setLayer(layer); setEventMask(osgWidget::EVENT_MOUSE_PUSH | osgWidget::EVENT_MOUSE_RELEASE | osgWidget::EVENT_MOUSE_DRAG); - setColor(1, 1, 1, 0); + setColor(1, 1, 1, 1); _pointX = _pointY = 0.0; diff --git a/src/viewer/GraphicsWindowEx.h b/src/viewer/GraphicsWindowEx.h index 7e97c84c..268b2c7c 100644 --- a/src/viewer/GraphicsWindowEx.h +++ b/src/viewer/GraphicsWindowEx.h @@ -6,7 +6,7 @@ /// Needed for mixing osg rendering with Qt 2D drawing using QPainter... /// See http://forum.openscenegraph.org/viewtopic.php?t=15627&view=previous -class GraphicsWindowEx : public osgViewer::GraphicsWindow +class GraphicsWindowEx : public osgViewer::GraphicsWindowEmbedded { public: GraphicsWindowEx(osg::GraphicsContext::Traits* traits); diff --git a/src/viewer/OsgViewer.cpp b/src/viewer/OsgViewer.cpp index 165c0656..72227684 100644 --- a/src/viewer/OsgViewer.cpp +++ b/src/viewer/OsgViewer.cpp @@ -5,6 +5,7 @@ #include #include #include +#include #include "common/SpdLogger.h" #include "viewer/OsgView.h" @@ -20,7 +21,9 @@ OsgViewer::OsgViewer(QObject* parent) noexcept , compositeViewer_(new osgViewer::CompositeViewer) { LOG_INFO("actor, self={}", fmt::ptr(this)); compositeViewer_->setKeyEventSetsDone(0); + compositeViewer_->getDatabasePager()->setUnrefImageDataAfterApplyPolicy(true, false); osgEarth::initialize(); + osgDB::Registry::instance()->getObjectWrapperManager()->findWrapper("osg::Image"); compositeViewer_->setThreadingModel(osgViewer::ViewerBase::ThreadingModel::SingleThreaded); }