Commit e639c8ef authored by Pavel Rojtberg's avatar Pavel Rojtberg
Browse files

ovis: correctly destroy additional windows

parent 20dbe789
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -31,3 +31,5 @@ iwin.setCameraIntrinsics(K, imsize)
while cv.ovis.waitKey(1) != 27:
    R, t = iwin.getCameraPose()
    owin.setEntityPose("cam", t, R)

del iwin # must be destroyed in reverse creation order
 No newline at end of file
+18 −0
Original line number Diff line number Diff line
@@ -238,6 +238,20 @@ struct Application : public OgreBites::ApplicationContext, public OgreBites::Inp
        return ret;
    }

#if OGRE_VERSION < ((1 << 16) | (12 << 8) | 3)
    void destroyWindow(const Ogre::String& name)
    {
        for (auto it = mWindows.begin(); it != mWindows.end(); ++it)
        {
            if (it->render->getName() != name)
                continue;
            mRoot->destroyRenderTarget(it->render);
            mWindows.erase(it);
            return;
        }
    }
#endif

    size_t numWindows() const { return mWindows.size(); }

    void locateResources() CV_OVERRIDE
@@ -371,6 +385,10 @@ public:
            _app->closeApp();
            _app.release();
        }
        else
        {
            _app->destroyWindow(title);
        }
    }

    void setBackground(InputArray image) CV_OVERRIDE