mirror of
https://github.com/overte-org/overte.git
synced 2025-08-08 06:17:28 +02:00
Add periodic sending of avatar identity data to downstream nodes
This commit is contained in:
parent
01263d9435
commit
6c5947d319
1 changed files with 11 additions and 0 deletions
|
@ -425,9 +425,13 @@ void AvatarMixerSlave::broadcastAvatarDataToAgent(const SharedNodePointer& node)
|
||||||
_stats.packetSendingElapsedTime += (endPacketSending - startPacketSending);
|
_stats.packetSendingElapsedTime += (endPacketSending - startPacketSending);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint64_t REBROADCAST_IDENTITY_TO_DOWNSTREAM_EVERY_US = 5 * 1000 * 1000;
|
||||||
|
|
||||||
void AvatarMixerSlave::broadcastAvatarDataToDownstreamMixer(const SharedNodePointer& node) {
|
void AvatarMixerSlave::broadcastAvatarDataToDownstreamMixer(const SharedNodePointer& node) {
|
||||||
_stats.nodesBroadcastedTo++;
|
_stats.nodesBroadcastedTo++;
|
||||||
|
|
||||||
|
AvatarMixerClientData* nodeData = reinterpret_cast<AvatarMixerClientData*>(node->getLinkedData());
|
||||||
|
|
||||||
// setup a PacketList for the replicated bulk avatar data
|
// setup a PacketList for the replicated bulk avatar data
|
||||||
auto avatarPacketList = NLPacketList::create(PacketType::ReplicatedBulkAvatarData);
|
auto avatarPacketList = NLPacketList::create(PacketType::ReplicatedBulkAvatarData);
|
||||||
|
|
||||||
|
@ -438,6 +442,13 @@ void AvatarMixerSlave::broadcastAvatarDataToDownstreamMixer(const SharedNodePoin
|
||||||
if (agentNode->getType() == NodeType::Agent && agentNode->getLinkedData()) {
|
if (agentNode->getType() == NodeType::Agent && agentNode->getLinkedData()) {
|
||||||
const AvatarMixerClientData* agentNodeData = reinterpret_cast<const AvatarMixerClientData*>(agentNode->getLinkedData());
|
const AvatarMixerClientData* agentNodeData = reinterpret_cast<const AvatarMixerClientData*>(agentNode->getLinkedData());
|
||||||
|
|
||||||
|
auto now = usecTimestampNow();
|
||||||
|
auto lastBroadcastTime = nodeData->getLastBroadcastTime(agentNode->getUUID());
|
||||||
|
if (lastBroadcastTime <= agentNodeData->getIdentityChangeTimestamp()
|
||||||
|
|| (now - lastBroadcastTime) >= REBROADCAST_IDENTITY_TO_DOWNSTREAM_EVERY_US) {
|
||||||
|
sendIdentityPacket(agentNodeData, node);
|
||||||
|
}
|
||||||
|
|
||||||
AvatarSharedPointer otherAvatar = agentNodeData->getAvatarSharedPointer();
|
AvatarSharedPointer otherAvatar = agentNodeData->getAvatarSharedPointer();
|
||||||
|
|
||||||
quint64 startAvatarDataPacking = usecTimestampNow();
|
quint64 startAvatarDataPacking = usecTimestampNow();
|
||||||
|
|
Loading…
Reference in a new issue