mirror of
https://github.com/overte-org/overte.git
synced 2025-04-24 03:33:35 +02:00
fix to crash on deleteNotify
This commit is contained in:
parent
ce4e99836b
commit
4da70cf3c8
2 changed files with 13 additions and 1 deletions
|
@ -1413,25 +1413,32 @@ float VoxelNode::distanceToPoint(const glm::vec3& point) const {
|
|||
return distance;
|
||||
}
|
||||
|
||||
QReadWriteLock VoxelNode::_deleteHooksLock;
|
||||
std::vector<VoxelNodeDeleteHook*> VoxelNode::_deleteHooks;
|
||||
|
||||
void VoxelNode::addDeleteHook(VoxelNodeDeleteHook* hook) {
|
||||
_deleteHooksLock.lockForWrite();
|
||||
_deleteHooks.push_back(hook);
|
||||
_deleteHooksLock.unlock();
|
||||
}
|
||||
|
||||
void VoxelNode::removeDeleteHook(VoxelNodeDeleteHook* hook) {
|
||||
_deleteHooksLock.lockForWrite();
|
||||
for (int i = 0; i < _deleteHooks.size(); i++) {
|
||||
if (_deleteHooks[i] == hook) {
|
||||
_deleteHooks.erase(_deleteHooks.begin() + i);
|
||||
return;
|
||||
break;
|
||||
}
|
||||
}
|
||||
_deleteHooksLock.unlock();
|
||||
}
|
||||
|
||||
void VoxelNode::notifyDeleteHooks() {
|
||||
_deleteHooksLock.lockForRead();
|
||||
for (int i = 0; i < _deleteHooks.size(); i++) {
|
||||
_deleteHooks[i]->voxelDeleted(this);
|
||||
}
|
||||
_deleteHooksLock.unlock();
|
||||
}
|
||||
|
||||
std::vector<VoxelNodeUpdateHook*> VoxelNode::_updateHooks;
|
||||
|
|
|
@ -13,6 +13,8 @@
|
|||
//#define SIMPLE_CHILD_ARRAY
|
||||
#define SIMPLE_EXTERNAL_CHILDREN
|
||||
|
||||
#include <QReadWriteLock>
|
||||
|
||||
#include <SharedUtil.h>
|
||||
#include "AABox.h"
|
||||
#include "ViewFrustum.h"
|
||||
|
@ -239,7 +241,10 @@ private:
|
|||
_unknownBufferIndex : 1,
|
||||
_childrenExternal : 1; /// Client only, is this voxel's VBO buffer the unknown buffer index, 1 bit
|
||||
|
||||
static QReadWriteLock _deleteHooksLock;
|
||||
static std::vector<VoxelNodeDeleteHook*> _deleteHooks;
|
||||
|
||||
//static QReadWriteLock _updateHooksLock;
|
||||
static std::vector<VoxelNodeUpdateHook*> _updateHooks;
|
||||
|
||||
static uint64_t _voxelNodeCount;
|
||||
|
|
Loading…
Reference in a new issue