mirror of
https://github.com/overte-org/overte.git
synced 2025-08-10 01:00:44 +02:00
Merge pull request #3672 from ey6es/metavoxels
Fix for metavoxel stream crash/crash on exit.
This commit is contained in:
commit
9e086a8d08
4 changed files with 16 additions and 2 deletions
|
@ -48,6 +48,13 @@ MetavoxelSystem::NetworkSimulation::NetworkSimulation(float dropRate, float repe
|
||||||
bandwidthLimit(bandwidthLimit) {
|
bandwidthLimit(bandwidthLimit) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MetavoxelSystem::~MetavoxelSystem() {
|
||||||
|
// kill the updater before we delete our network simulation objects
|
||||||
|
_updater->thread()->quit();
|
||||||
|
_updater->thread()->wait();
|
||||||
|
_updater = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
void MetavoxelSystem::init() {
|
void MetavoxelSystem::init() {
|
||||||
MetavoxelClientManager::init();
|
MetavoxelClientManager::init();
|
||||||
DefaultMetavoxelRendererImplementation::init();
|
DefaultMetavoxelRendererImplementation::init();
|
||||||
|
|
|
@ -43,6 +43,8 @@ public:
|
||||||
int maximumDelay = 0, int bandwidthLimit = 0);
|
int maximumDelay = 0, int bandwidthLimit = 0);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
virtual ~MetavoxelSystem();
|
||||||
|
|
||||||
virtual void init();
|
virtual void init();
|
||||||
|
|
||||||
virtual MetavoxelLOD getLOD();
|
virtual MetavoxelLOD getLOD();
|
||||||
|
|
|
@ -27,8 +27,10 @@ MetavoxelClientManager::MetavoxelClientManager() :
|
||||||
}
|
}
|
||||||
|
|
||||||
MetavoxelClientManager::~MetavoxelClientManager() {
|
MetavoxelClientManager::~MetavoxelClientManager() {
|
||||||
_updater->thread()->quit();
|
if (_updater) {
|
||||||
_updater->thread()->wait();
|
_updater->thread()->quit();
|
||||||
|
_updater->thread()->wait();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MetavoxelClientManager::init() {
|
void MetavoxelClientManager::init() {
|
||||||
|
|
|
@ -1040,6 +1040,9 @@ MetavoxelNode* MetavoxelNode::readSubdivision(MetavoxelStreamState& state) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void MetavoxelNode::writeSubdivision(MetavoxelStreamState& state) const {
|
void MetavoxelNode::writeSubdivision(MetavoxelStreamState& state) const {
|
||||||
|
if (!state.shouldSubdivide()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
bool leaf = isLeaf();
|
bool leaf = isLeaf();
|
||||||
if (!state.shouldSubdivideReference()) {
|
if (!state.shouldSubdivideReference()) {
|
||||||
state.base.stream << leaf;
|
state.base.stream << leaf;
|
||||||
|
|
Loading…
Reference in a new issue