mirror of
https://github.com/overte-org/overte.git
synced 2025-08-04 04:23:33 +02:00
delete a function accidentally added on merge
This commit is contained in:
parent
ca0f6a4d10
commit
dc264c98ec
1 changed files with 0 additions and 126 deletions
|
@ -110,132 +110,6 @@ void eraseVoxelTreeAndCleanupNodeVisitData() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Version of voxel distributor that sends each LOD level at a time
|
|
||||||
void resInVoxelDistributor(NodeList* nodeList,
|
|
||||||
NodeList::iterator& node,
|
|
||||||
VoxelNodeData* nodeData) {
|
|
||||||
ViewFrustum viewFrustum = nodeData->getCurrentViewFrustum();
|
|
||||||
bool searchReset = false;
|
|
||||||
int searchLoops = 0;
|
|
||||||
int searchLevelWas = nodeData->getMaxSearchLevel();
|
|
||||||
uint64_t start = usecTimestampNow();
|
|
||||||
while (!searchReset && nodeData->nodeBag.isEmpty()) {
|
|
||||||
searchLoops++;
|
|
||||||
|
|
||||||
searchLevelWas = nodeData->getMaxSearchLevel();
|
|
||||||
int maxLevelReached = serverTree.searchForColoredNodes(nodeData->getMaxSearchLevel(), serverTree.rootNode,
|
|
||||||
viewFrustum, nodeData->nodeBag);
|
|
||||||
nodeData->setMaxLevelReached(maxLevelReached);
|
|
||||||
|
|
||||||
// If nothing got added, then we bump our levels.
|
|
||||||
if (nodeData->nodeBag.isEmpty()) {
|
|
||||||
if (nodeData->getMaxLevelReached() < nodeData->getMaxSearchLevel()) {
|
|
||||||
nodeData->resetMaxSearchLevel();
|
|
||||||
searchReset = true;
|
|
||||||
} else {
|
|
||||||
nodeData->incrementMaxSearchLevel();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
uint64_t end = usecTimestampNow();
|
|
||||||
int elapsedmsec = (end - start)/1000;
|
|
||||||
if (elapsedmsec > 100) {
|
|
||||||
if (elapsedmsec > 1000) {
|
|
||||||
int elapsedsec = (end - start)/1000000;
|
|
||||||
printf("WARNING! searchForColoredNodes() took %d seconds to identify %d nodes at level %d in %d loops\n",
|
|
||||||
elapsedsec, nodeData->nodeBag.count(), searchLevelWas, searchLoops);
|
|
||||||
} else {
|
|
||||||
printf("WARNING! searchForColoredNodes() took %d milliseconds to identify %d nodes at level %d in %d loops\n",
|
|
||||||
elapsedmsec, nodeData->nodeBag.count(), searchLevelWas, searchLoops);
|
|
||||||
}
|
|
||||||
} else if (::debugVoxelSending) {
|
|
||||||
printf("searchForColoredNodes() took %d milliseconds to identify %d nodes at level %d in %d loops\n",
|
|
||||||
elapsedmsec, nodeData->nodeBag.count(), searchLevelWas, searchLoops);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// If we have something in our nodeBag, then turn them into packets and send them out...
|
|
||||||
if (!nodeData->nodeBag.isEmpty()) {
|
|
||||||
static unsigned char tempOutputBuffer[MAX_VOXEL_PACKET_SIZE - 1]; // save on allocs by making this static
|
|
||||||
int bytesWritten = 0;
|
|
||||||
int packetsSentThisInterval = 0;
|
|
||||||
int truePacketsSent = 0;
|
|
||||||
int trueBytesSent = 0;
|
|
||||||
uint64_t start = usecTimestampNow();
|
|
||||||
|
|
||||||
bool shouldSendEnvironments = shouldDo(ENVIRONMENT_SEND_INTERVAL_USECS, VOXEL_SEND_INTERVAL_USECS);
|
|
||||||
while (packetsSentThisInterval < PACKETS_PER_CLIENT_PER_INTERVAL - (shouldSendEnvironments ? 1 : 0)) {
|
|
||||||
if (!nodeData->nodeBag.isEmpty()) {
|
|
||||||
VoxelNode* subTree = nodeData->nodeBag.extract();
|
|
||||||
|
|
||||||
EncodeBitstreamParams params(nodeData->getMaxSearchLevel(), &viewFrustum,
|
|
||||||
nodeData->getWantColor(), WANT_EXISTS_BITS);
|
|
||||||
|
|
||||||
bytesWritten = serverTree.encodeTreeBitstream(subTree, &tempOutputBuffer[0], MAX_VOXEL_PACKET_SIZE - 1,
|
|
||||||
nodeData->nodeBag, params);
|
|
||||||
|
|
||||||
if (nodeData->getAvailable() >= bytesWritten) {
|
|
||||||
nodeData->writeToPacket(&tempOutputBuffer[0], bytesWritten);
|
|
||||||
} else {
|
|
||||||
nodeList->getNodeSocket()->send(node->getActiveSocket(),
|
|
||||||
nodeData->getPacket(), nodeData->getPacketLength());
|
|
||||||
trueBytesSent += nodeData->getPacketLength();
|
|
||||||
truePacketsSent++;
|
|
||||||
packetsSentThisInterval++;
|
|
||||||
nodeData->resetVoxelPacket();
|
|
||||||
nodeData->writeToPacket(&tempOutputBuffer[0], bytesWritten);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (nodeData->isPacketWaiting()) {
|
|
||||||
nodeList->getNodeSocket()->send(node->getActiveSocket(),
|
|
||||||
nodeData->getPacket(), nodeData->getPacketLength());
|
|
||||||
trueBytesSent += nodeData->getPacketLength();
|
|
||||||
truePacketsSent++;
|
|
||||||
nodeData->resetVoxelPacket();
|
|
||||||
|
|
||||||
}
|
|
||||||
packetsSentThisInterval = PACKETS_PER_CLIENT_PER_INTERVAL; // done for now, no nodes left
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// send the environment packets
|
|
||||||
if (shouldSendEnvironments) {
|
|
||||||
int envPacketLength = 1;
|
|
||||||
*tempOutputBuffer = PACKET_HEADER_ENVIRONMENT_DATA;
|
|
||||||
for (int i = 0; i < sizeof(environmentData) / sizeof(environmentData[0]); i++) {
|
|
||||||
envPacketLength += environmentData[i].getBroadcastData(tempOutputBuffer + envPacketLength);
|
|
||||||
}
|
|
||||||
nodeList->getNodeSocket()->send(node->getActiveSocket(), tempOutputBuffer, envPacketLength);
|
|
||||||
trueBytesSent += envPacketLength;
|
|
||||||
truePacketsSent++;
|
|
||||||
}
|
|
||||||
uint64_t end = usecTimestampNow();
|
|
||||||
int elapsedmsec = (end - start)/1000;
|
|
||||||
if (elapsedmsec > 100) {
|
|
||||||
if (elapsedmsec > 1000) {
|
|
||||||
int elapsedsec = (end - start)/1000000;
|
|
||||||
printf("WARNING! packetLoop() took %d seconds to generate %d bytes in %d packets at level %d, %d nodes still to send\n",
|
|
||||||
elapsedsec, trueBytesSent, truePacketsSent, searchLevelWas, nodeData->nodeBag.count());
|
|
||||||
} else {
|
|
||||||
printf("WARNING! packetLoop() took %d milliseconds to generate %d bytes in %d packets at level %d, %d nodes still to send\n",
|
|
||||||
elapsedmsec, trueBytesSent, truePacketsSent, searchLevelWas, nodeData->nodeBag.count());
|
|
||||||
}
|
|
||||||
} else if (::debugVoxelSending) {
|
|
||||||
printf("packetLoop() took %d milliseconds to generate %d bytes in %d packets at level %d, %d nodes still to send\n",
|
|
||||||
elapsedmsec, trueBytesSent, truePacketsSent, searchLevelWas, nodeData->nodeBag.count());
|
|
||||||
}
|
|
||||||
|
|
||||||
// if during this last pass, we emptied our bag, then we want to move to the next level.
|
|
||||||
if (nodeData->nodeBag.isEmpty()) {
|
|
||||||
if (nodeData->getMaxLevelReached() < nodeData->getMaxSearchLevel()) {
|
|
||||||
nodeData->resetMaxSearchLevel();
|
|
||||||
} else {
|
|
||||||
nodeData->incrementMaxSearchLevel();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pthread_mutex_t treeLock;
|
pthread_mutex_t treeLock;
|
||||||
|
|
||||||
// Version of voxel distributor that sends the deepest LOD level at once
|
// Version of voxel distributor that sends the deepest LOD level at once
|
||||||
|
|
Loading…
Reference in a new issue