mirror of
https://github.com/OpenMW/openmw.git
synced 2025-03-03 16:39:41 +00:00
Do not store Viewer reference in the ViewData
This commit is contained in:
parent
886c77bced
commit
c8d2107b80
2 changed files with 1 additions and 7 deletions
|
@ -118,7 +118,6 @@ ViewData *ViewDataMap::getViewData(osg::Object *viewer)
|
||||||
if (found == mViews.end())
|
if (found == mViews.end())
|
||||||
{
|
{
|
||||||
ViewData* vd = createOrReuseView();
|
ViewData* vd = createOrReuseView();
|
||||||
vd->setViewer(viewer);
|
|
||||||
mViews[viewer] = vd;
|
mViews[viewer] = vd;
|
||||||
return vd;
|
return vd;
|
||||||
}
|
}
|
||||||
|
@ -148,7 +147,6 @@ void ViewDataMap::clearUnusedViews(unsigned int frame)
|
||||||
ViewData* vd = it->second;
|
ViewData* vd = it->second;
|
||||||
if (vd->getFrameLastUsed() + 2 < frame)
|
if (vd->getFrameLastUsed() + 2 < frame)
|
||||||
{
|
{
|
||||||
vd->setViewer(nullptr);
|
|
||||||
vd->clear();
|
vd->clear();
|
||||||
mUnusedViews.push_back(vd);
|
mUnusedViews.push_back(vd);
|
||||||
mViews.erase(it++);
|
mViews.erase(it++);
|
||||||
|
|
|
@ -44,9 +44,6 @@ namespace Terrain
|
||||||
|
|
||||||
Entry& getEntry(unsigned int i);
|
Entry& getEntry(unsigned int i);
|
||||||
|
|
||||||
osg::Object* getViewer() const { return mViewer.get(); }
|
|
||||||
void setViewer(osg::Object* viewer) { mViewer = viewer; }
|
|
||||||
|
|
||||||
unsigned int getFrameLastUsed() const { return mFrameLastUsed; }
|
unsigned int getFrameLastUsed() const { return mFrameLastUsed; }
|
||||||
|
|
||||||
/// @return Have any nodes changed since the last frame
|
/// @return Have any nodes changed since the last frame
|
||||||
|
@ -62,7 +59,6 @@ namespace Terrain
|
||||||
unsigned int mNumEntries;
|
unsigned int mNumEntries;
|
||||||
unsigned int mFrameLastUsed;
|
unsigned int mFrameLastUsed;
|
||||||
bool mChanged;
|
bool mChanged;
|
||||||
osg::ref_ptr<osg::Object> mViewer;
|
|
||||||
osg::Vec3f mEyePoint;
|
osg::Vec3f mEyePoint;
|
||||||
bool mHasEyePoint;
|
bool mHasEyePoint;
|
||||||
};
|
};
|
||||||
|
@ -85,7 +81,7 @@ namespace Terrain
|
||||||
private:
|
private:
|
||||||
std::list<ViewData> mViewVector;
|
std::list<ViewData> mViewVector;
|
||||||
|
|
||||||
typedef std::map<osg::Object*, ViewData*> Map;
|
typedef std::map<osg::ref_ptr<osg::Object>, ViewData*> Map;
|
||||||
Map mViews;
|
Map mViews;
|
||||||
|
|
||||||
std::deque<ViewData*> mUnusedViews;
|
std::deque<ViewData*> mUnusedViews;
|
||||||
|
|
Loading…
Reference in a new issue