1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-01-20 07:23:51 +00:00

Merged pull request #1887

This commit is contained in:
Marc Zinnschlag 2018-08-27 12:52:30 +02:00
commit 232ea4f793
2 changed files with 14 additions and 17 deletions

View file

@ -1,28 +1,15 @@
#include "unrefqueue.hpp" #include "unrefqueue.hpp"
#include <deque>
//#include <osg/Timer> //#include <osg/Timer>
//#include <components/debug/debuglog.hpp> //#include <components/debug/debuglog.hpp>
#include <components/sceneutil/workqueue.hpp>
namespace SceneUtil namespace SceneUtil
{ {
void UnrefWorkItem::doWork()
class UnrefWorkItem : public SceneUtil::WorkItem
{ {
public: mObjects.clear();
std::deque<osg::ref_ptr<const osg::Referenced> > mObjects; }
virtual void doWork()
{
//osg::Timer timer;
//size_t objcount = mObjects.size();
mObjects.clear();
//Log(Debug::Verbose) << "cleared " << objcount << " objects in " << timer.time_m();
}
};
UnrefQueue::UnrefQueue() UnrefQueue::UnrefQueue()
{ {

View file

@ -1,13 +1,23 @@
#ifndef OPENMW_COMPONENTS_UNREFQUEUE_H #ifndef OPENMW_COMPONENTS_UNREFQUEUE_H
#define OPENMW_COMPONENTS_UNREFQUEUE_H #define OPENMW_COMPONENTS_UNREFQUEUE_H
#include <deque>
#include <osg/ref_ptr> #include <osg/ref_ptr>
#include <osg/Referenced> #include <osg/Referenced>
#include <components/sceneutil/workqueue.hpp>
namespace SceneUtil namespace SceneUtil
{ {
class WorkQueue; class WorkQueue;
class UnrefWorkItem;
class UnrefWorkItem : public SceneUtil::WorkItem
{
public:
std::deque<osg::ref_ptr<const osg::Referenced> > mObjects;
virtual void doWork();
};
/// @brief Handles unreferencing of objects through the WorkQueue. Typical use scenario /// @brief Handles unreferencing of objects through the WorkQueue. Typical use scenario
/// would be the main thread pushing objects that are no longer needed, and the background thread deleting them. /// would be the main thread pushing objects that are no longer needed, and the background thread deleting them.