mirror of
https://github.com/overte-org/overte.git
synced 2025-04-29 12:02:34 +02:00
149 lines
4.7 KiB
C++
149 lines
4.7 KiB
C++
//
|
|
// OctreeStatsProvider.h
|
|
// interface/src/ui
|
|
//
|
|
// Created by Vlad Stelmahovsky on 3/12/17.
|
|
// Copyright 2017 High Fidelity, Inc.
|
|
//
|
|
// Distributed under the Apache License, Version 2.0.
|
|
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
|
//
|
|
|
|
#ifndef hifi_OctreeStatsProvider_h
|
|
#define hifi_OctreeStatsProvider_h
|
|
|
|
#include <OctreeSceneStats.h>
|
|
#include <QTimer>
|
|
#include <QColor>
|
|
|
|
#include "DependencyManager.h"
|
|
|
|
class OctreeStatsProvider : public QObject, public Dependency {
|
|
Q_OBJECT
|
|
SINGLETON_DEPENDENCY
|
|
|
|
Q_PROPERTY(int serversNum READ serversNum NOTIFY serversNumChanged)
|
|
Q_PROPERTY(QString serverElements READ serverElements NOTIFY serverElementsChanged)
|
|
Q_PROPERTY(QString localElements READ localElements NOTIFY localElementsChanged)
|
|
Q_PROPERTY(QString localElementsMemory READ localElementsMemory NOTIFY localElementsMemoryChanged)
|
|
Q_PROPERTY(QString sendingMode READ sendingMode NOTIFY sendingModeChanged)
|
|
Q_PROPERTY(QString processedPackets READ processedPackets NOTIFY processedPacketsChanged)
|
|
Q_PROPERTY(QString processedPacketsElements READ processedPacketsElements NOTIFY processedPacketsElementsChanged)
|
|
Q_PROPERTY(QString processedPacketsEntities READ processedPacketsEntities NOTIFY processedPacketsEntitiesChanged)
|
|
Q_PROPERTY(QString processedPacketsTiming READ processedPacketsTiming NOTIFY processedPacketsTimingChanged)
|
|
Q_PROPERTY(QString outboundEditPackets READ outboundEditPackets NOTIFY outboundEditPacketsChanged)
|
|
Q_PROPERTY(QString entityUpdateTime READ entityUpdateTime NOTIFY entityUpdateTimeChanged)
|
|
Q_PROPERTY(QString entityUpdates READ entityUpdates NOTIFY entityUpdatesChanged)
|
|
|
|
Q_PROPERTY(QStringList servers READ servers NOTIFY serversChanged)
|
|
|
|
public:
|
|
OctreeStatsProvider(QObject* parent, NodeToOctreeSceneStats* model);
|
|
~OctreeStatsProvider();
|
|
|
|
int serversNum() const;
|
|
|
|
QString serverElements() const {
|
|
return m_serverElements;
|
|
}
|
|
|
|
QString localElements() const {
|
|
return m_localElements;
|
|
}
|
|
|
|
QString localElementsMemory() const {
|
|
return m_localElementsMemory;
|
|
}
|
|
|
|
QString sendingMode() const {
|
|
return m_sendingMode;
|
|
}
|
|
|
|
QString processedPackets() const {
|
|
return m_processedPackets;
|
|
}
|
|
|
|
QString processedPacketsElements() const {
|
|
return m_processedPacketsElements;
|
|
}
|
|
|
|
QString processedPacketsEntities() const {
|
|
return m_processedPacketsEntities;
|
|
}
|
|
|
|
QString processedPacketsTiming() const {
|
|
return m_processedPacketsTiming;
|
|
}
|
|
|
|
QString outboundEditPackets() const {
|
|
return m_outboundEditPackets;
|
|
}
|
|
|
|
QString entityUpdateTime() const {
|
|
return m_entityUpdateTime;
|
|
}
|
|
|
|
QString entityUpdates() const {
|
|
return m_entityUpdates;
|
|
}
|
|
|
|
QStringList servers() const {
|
|
return m_servers;
|
|
}
|
|
|
|
signals:
|
|
|
|
void serversNumChanged(int serversNum);
|
|
void serverElementsChanged(const QString &serverElements);
|
|
void localElementsChanged(const QString &localElements);
|
|
void sendingModeChanged(const QString &sendingMode);
|
|
void processedPacketsChanged(const QString &processedPackets);
|
|
void localElementsMemoryChanged(const QString &localElementsMemory);
|
|
void processedPacketsElementsChanged(const QString &processedPacketsElements);
|
|
void processedPacketsEntitiesChanged(const QString &processedPacketsEntities);
|
|
void processedPacketsTimingChanged(const QString &processedPacketsTiming);
|
|
void outboundEditPacketsChanged(const QString &outboundEditPackets);
|
|
void entityUpdateTimeChanged(const QString &entityUpdateTime);
|
|
void entityUpdatesChanged(const QString &entityUpdates);
|
|
|
|
void serversChanged(const QStringList &servers);
|
|
|
|
public slots:
|
|
void startUpdates();
|
|
void stopUpdates();
|
|
QColor getColor() const;
|
|
|
|
private slots:
|
|
void updateOctreeStatsData();
|
|
protected:
|
|
void updateOctreeServers();
|
|
void showOctreeServersOfType(NodeType_t serverType);
|
|
|
|
private:
|
|
NodeToOctreeSceneStats* _model;
|
|
int _statCount;
|
|
|
|
const int SAMPLES_PER_SECOND = 10;
|
|
SimpleMovingAverage _averageUpdatesPerSecond;
|
|
quint64 _lastWindowAt = usecTimestampNow();
|
|
quint64 _lastKnownTrackedEdits = 0;
|
|
|
|
quint64 _lastRefresh = 0;
|
|
|
|
QTimer _updateTimer;
|
|
int m_serversNum { 0 };
|
|
QString m_serverElements;
|
|
QString m_localElements;
|
|
QString m_localElementsMemory;
|
|
QString m_sendingMode;
|
|
QString m_processedPackets;
|
|
QString m_processedPacketsElements;
|
|
QString m_processedPacketsEntities;
|
|
QString m_processedPacketsTiming;
|
|
QString m_outboundEditPackets;
|
|
QString m_entityUpdateTime;
|
|
QString m_entityUpdates;
|
|
QStringList m_servers;
|
|
};
|
|
|
|
#endif // hifi_OctreeStatsProvider_h
|