have animation server set an appropriate PPS based on it's voxel edit messages

This commit is contained in:
ZappoMan 2013-10-07 17:32:55 -07:00
parent 825d397e21
commit c6981d1912

View file

@ -594,8 +594,12 @@ void* animateVoxels(void* args) {
timeval lastSendTime; timeval lastSendTime;
bool firstTime = true;
while (true) { while (true) {
gettimeofday(&lastSendTime, NULL); gettimeofday(&lastSendTime, NULL);
int packetsStarting = ::voxelEditPacketSender->packetsToSendCount();
// some animations // some animations
//sendVoxelBlinkMessage(); //sendVoxelBlinkMessage();
@ -619,12 +623,22 @@ void* animateVoxels(void* args) {
if (::buildStreet) { if (::buildStreet) {
doBuildStreet(); doBuildStreet();
} }
::voxelEditPacketSender->releaseQueuedMessages();
int packetsEnding = ::voxelEditPacketSender->packetsToSendCount();
if (::voxelEditPacketSender) { if (firstTime) {
::voxelEditPacketSender->releaseQueuedMessages(); int packetsPerSecond = (packetsEnding - packetsStarting) * (ACTUAL_FPS);
if (::nonThreadedPacketSender) {
::voxelEditPacketSender->process(); std::cout << "Setting PPS to " << packetsPerSecond << "\n";
}
::voxelEditPacketSender->setPacketsPerSecond(packetsPerSecond);
firstTime = false;
}
if (::nonThreadedPacketSender) {
::voxelEditPacketSender->process();
} }
uint64_t end = usecTimestampNow(); uint64_t end = usecTimestampNow();
@ -715,14 +729,13 @@ int main(int argc, const char * argv[])
// Create out VoxelEditPacketSender // Create out VoxelEditPacketSender
::voxelEditPacketSender = new VoxelEditPacketSender; ::voxelEditPacketSender = new VoxelEditPacketSender;
if (::voxelEditPacketSender) { ::voxelEditPacketSender->initialize(!::nonThreadedPacketSender);
::voxelEditPacketSender->initialize(!::nonThreadedPacketSender);
if (::jurisdictionListener) { if (::jurisdictionListener) {
::voxelEditPacketSender->setVoxelServerJurisdictions(::jurisdictionListener->getJurisdictions()); ::voxelEditPacketSender->setVoxelServerJurisdictions(::jurisdictionListener->getJurisdictions());
} }
if (::nonThreadedPacketSender) { if (::nonThreadedPacketSender) {
::voxelEditPacketSender->setProcessCallIntervalHint(ANIMATE_VOXELS_INTERVAL_USECS); ::voxelEditPacketSender->setProcessCallIntervalHint(ANIMATE_VOXELS_INTERVAL_USECS);
}
} }
srand((unsigned)time(0)); srand((unsigned)time(0));