mirror of
https://github.com/TES3MP/openmw-tes3mp.git
synced 2025-01-15 16:49:55 +00:00
4dd9386c4f
Fixes compile error encountered on OSX 10.9 with g++ sophie:build pineapple$ g++ --version Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 Apple LLVM version 6.0 (clang-600.0.56) (based on LLVM 3.5svn) Target: x86_64-apple-darwin13.4.0 Thread model: posix The compilation error: [ 24%] Building CXX object apps/openmw/CMakeFiles/openmw.dir/mwrender/renderingmanager.cpp.o In file included from /Users/pineapple/git/openmw/apps/openmw/mwrender/renderingmanager.cpp:1: In file included from /Users/pineapple/git/openmw/apps/openmw/mwrender/renderingmanager.hpp:4: /Users/pineapple/git/openmw/openmw-deps/include/osg/ref_ptr:35:36: error: member access into incomplete type 'SceneUtil::UnrefWorkItem' ~ref_ptr() { if (_ptr) _ptr->unref(); _ptr = 0; } ^ /Users/pineapple/git/openmw/./components/sceneutil/unrefqueue.hpp:14:11: note: in instantiation of member function 'osg::ref_ptr<SceneUtil::UnrefWorkItem>::~ref_ptr' requested here class UnrefQueue : public osg::Referenced ^ /Users/pineapple/git/openmw/./components/sceneutil/unrefqueue.hpp:10:11: note: forward declaration of 'SceneUtil::UnrefWorkItem' class UnrefWorkItem;
42 lines
878 B
C++
42 lines
878 B
C++
#include "unrefqueue.hpp"
|
|
|
|
//#include <osg/Timer>
|
|
|
|
//#include <components/debug/debuglog.hpp>
|
|
|
|
namespace SceneUtil
|
|
{
|
|
void UnrefWorkItem::doWork()
|
|
{
|
|
//osg::Timer timer;
|
|
//size_t objcount = mObjects.size();
|
|
mObjects.clear();
|
|
//Log(Debug::Verbose) << "cleared " << objcount << " objects in " << timer.time_m();
|
|
}
|
|
|
|
UnrefQueue::UnrefQueue()
|
|
{
|
|
mWorkItem = new UnrefWorkItem;
|
|
}
|
|
|
|
void UnrefQueue::push(const osg::Referenced *obj)
|
|
{
|
|
mWorkItem->mObjects.push_back(obj);
|
|
}
|
|
|
|
void UnrefQueue::flush(SceneUtil::WorkQueue *workQueue)
|
|
{
|
|
if (mWorkItem->mObjects.empty())
|
|
return;
|
|
|
|
workQueue->addWorkItem(mWorkItem, true);
|
|
|
|
mWorkItem = new UnrefWorkItem;
|
|
}
|
|
|
|
unsigned int UnrefQueue::getNumItems() const
|
|
{
|
|
return mWorkItem->mObjects.size();
|
|
}
|
|
|
|
}
|