mirror of
https://github.com/overte-org/overte.git
synced 2025-08-08 14:18:24 +02:00
split broadcast of avatar data for agent and downstream mixer
This commit is contained in:
parent
8ce6590f0b
commit
a8ea8724d3
2 changed files with 325 additions and 309 deletions
|
@ -81,6 +81,20 @@ static const int AVATAR_MIXER_BROADCAST_FRAMES_PER_SECOND = 45;
|
||||||
void AvatarMixerSlave::broadcastAvatarData(const SharedNodePointer& node) {
|
void AvatarMixerSlave::broadcastAvatarData(const SharedNodePointer& node) {
|
||||||
quint64 start = usecTimestampNow();
|
quint64 start = usecTimestampNow();
|
||||||
|
|
||||||
|
if (node->getLinkedData()) {
|
||||||
|
if (node->getType() == NodeType::Agent && node->getActiveSocket() && !node->isUpstream()) {
|
||||||
|
broadcastAvatarDataToAgent(node);
|
||||||
|
} else if (node->getType() == NodeType::DownstreamAvatarMixer) {
|
||||||
|
broadcastAvatarDataToDownstreamMixer(node);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
quint64 end = usecTimestampNow();
|
||||||
|
_stats.jobElapsedTime += (end - start);
|
||||||
|
}
|
||||||
|
|
||||||
|
void AvatarMixerSlave::broadcastAvatarDataToAgent(const SharedNodePointer& node) {
|
||||||
|
|
||||||
auto nodeList = DependencyManager::get<NodeList>();
|
auto nodeList = DependencyManager::get<NodeList>();
|
||||||
|
|
||||||
// setup for distributed random floating point values
|
// setup for distributed random floating point values
|
||||||
|
@ -88,7 +102,6 @@ void AvatarMixerSlave::broadcastAvatarData(const SharedNodePointer& node) {
|
||||||
std::mt19937 generator(randomDevice());
|
std::mt19937 generator(randomDevice());
|
||||||
std::uniform_real_distribution<float> distribution;
|
std::uniform_real_distribution<float> distribution;
|
||||||
|
|
||||||
if (node->getLinkedData() && (node->getType() == NodeType::Agent) && node->getActiveSocket()) {
|
|
||||||
_stats.nodesBroadcastedTo++;
|
_stats.nodesBroadcastedTo++;
|
||||||
|
|
||||||
AvatarMixerClientData* nodeData = reinterpret_cast<AvatarMixerClientData*>(node->getLinkedData());
|
AvatarMixerClientData* nodeData = reinterpret_cast<AvatarMixerClientData*>(node->getLinkedData());
|
||||||
|
@ -410,9 +423,9 @@ void AvatarMixerSlave::broadcastAvatarData(const SharedNodePointer& node) {
|
||||||
|
|
||||||
quint64 endPacketSending = usecTimestampNow();
|
quint64 endPacketSending = usecTimestampNow();
|
||||||
_stats.packetSendingElapsedTime += (endPacketSending - startPacketSending);
|
_stats.packetSendingElapsedTime += (endPacketSending - startPacketSending);
|
||||||
}
|
}
|
||||||
|
|
||||||
quint64 end = usecTimestampNow();
|
void AvatarMixerSlave::broadcastAvatarDataToDownstreamMixer(const SharedNodePointer& node) {
|
||||||
_stats.jobElapsedTime += (end - start);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -93,6 +93,9 @@ public:
|
||||||
private:
|
private:
|
||||||
int sendIdentityPacket(const AvatarMixerClientData* nodeData, const SharedNodePointer& destinationNode);
|
int sendIdentityPacket(const AvatarMixerClientData* nodeData, const SharedNodePointer& destinationNode);
|
||||||
|
|
||||||
|
void broadcastAvatarDataToAgent(const SharedNodePointer& node);
|
||||||
|
void broadcastAvatarDataToDownstreamMixer(const SharedNodePointer& node);
|
||||||
|
|
||||||
// frame state
|
// frame state
|
||||||
ConstIter _begin;
|
ConstIter _begin;
|
||||||
ConstIter _end;
|
ConstIter _end;
|
||||||
|
|
Loading…
Reference in a new issue