diff --git a/interface/src/ui/Stats.h b/interface/src/ui/Stats.h
index af3189f20b..f44d780d30 100644
--- a/interface/src/ui/Stats.h
+++ b/interface/src/ui/Stats.h
@@ -23,6 +23,149 @@ private: \
type _##name{ initialValue };
+/**jsdoc
+ * @namespace Stats
+ *
+ * @hifi-interface
+ * @hifi-client-entity
+ * @hifi-server-entity
+ * @hifi-assignment-client
+ *
+ * @property {boolean} expanded
+ * @property {boolean} timingExpanded - Read-only.
+ * @property {string} monospaceFont - Read-only.
+ *
+ * @property {number} serverCount - Read-only.
+ * @property {number} renderrate - How often the app is creating new gpu::Frames. Read-only.
+ * @property {number} presentrate - How often the display plugin is presenting to the device. Read-only.
+ * @property {number} stutterrate - How often the display device is reprojecting old frames. Read-only.
+ *
+ * @property {number} appdropped - Read-only.
+ * @property {number} longsubmits - Read-only.
+ * @property {number} longrenders - Read-only.
+ * @property {number} longframes - Read-only.
+ *
+ * @property {number} presentnewrate - Read-only.
+ * @property {number} presentdroprate - Read-only.
+ * @property {number} gameLoopRate - Read-only.
+ * @property {number} avatarCount - Read-only.
+ * @property {number} updatedAvatarCount - Read-only.
+ * @property {number} notUpdatedAvatarCount - Read-only.
+ * @property {number} packetInCount - Read-only.
+ * @property {number} packetOutCount - Read-only.
+ * @property {number} mbpsIn - Read-only.
+ * @property {number} mbpsOut - Read-only.
+ * @property {number} assetMbpsIn - Read-only.
+ * @property {number} assetMbpsOut - Read-only.
+ * @property {number} audioPing - Read-only.
+ * @property {number} avatarPing - Read-only.
+ * @property {number} entitiesPing - Read-only.
+ * @property {number} assetPing - Read-only.
+ * @property {number} messagePing - Read-only.
+ * @property {Vec3} position - Read-only.
+ * @property {number} speed - Read-only.
+ * @property {number} yaw - Read-only.
+ * @property {number} avatarMixerInKbps - Read-only.
+ * @property {number} avatarMixerInPps - Read-only.
+ * @property {number} avatarMixerOutKbps - Read-only.
+ * @property {number} avatarMixerOutPps - Read-only.
+ * @property {number} myAvatarSendRate - Read-only.
+ *
+ * @property {number} audioMixerInKbps - Read-only.
+ * @property {number} audioMixerInPps - Read-only.
+ * @property {number} audioMixerOutKbps - Read-only.
+ * @property {number} audioMixerOutPps - Read-only.
+ * @property {number} audioMixerKbps - Read-only.
+ * @property {number} audioMixerPps - Read-only.
+ * @property {number} audioOutboundPPS - Read-only.
+ * @property {number} audioSilentOutboundPPS - Read-only.
+ * @property {number} audioAudioInboundPPS - Read-only.
+ * @property {number} audioSilentInboundPPS - Read-only.
+ * @property {number} audioPacketLoss - Read-only.
+ * @property {string} audioCodec - Read-only.
+ * @property {string} audioNoiseGate - Read-only.
+ * @property {number} entityPacketsInKbps - Read-only.
+ *
+ * @property {number} downloads - Read-only.
+ * @property {number} downloadLimit - Read-only.
+ * @property {number} downloadsPending - Read-only.
+ * @property {string[]} downloadUrls - Read-only.
+ * @property {number} processing - Read-only.
+ * @property {number} processingPending - Read-only.
+ * @property {number} triangles - Read-only.
+ * @property {number} quads - Read-only.
+ * @property {number} materialSwitches - Read-only.
+ * @property {number} itemConsidered - Read-only.
+ * @property {number} itemOutOfView - Read-only.
+ * @property {number} itemTooSmall - Read-only.
+ * @property {number} itemRendered - Read-only.
+ * @property {number} shadowConsidered - Read-only.
+ * @property {number} shadowOutOfView - Read-only.
+ * @property {number} shadowTooSmall - Read-only.
+ * @property {number} shadowRendered - Read-only.
+ * @property {string} sendingMode - Read-only.
+ * @property {string} packetStats - Read-only.
+ * @property {string} lodStatus - Read-only.
+ * @property {string} timingStats - Read-only.
+ * @property {string} gameUpdateStats - Read-only.
+ * @property {number} serverElements - Read-only.
+ * @property {number} serverInternal - Read-only.
+ * @property {number} serverLeaves - Read-only.
+ * @property {number} localElements - Read-only.
+ * @property {number} localInternal - Read-only.
+ * @property {number} localLeaves - Read-only.
+ * @property {number} rectifiedTextureCount - Read-only.
+ * @property {number} decimatedTextureCount - Read-only.
+ * @property {number} gpuBuffers - Read-only.
+ * @property {number} gpuBufferMemory - Read-only.
+ * @property {number} gpuTextures - Read-only.
+ * @property {number} glContextSwapchainMemory - Read-only.
+ * @property {number} qmlTextureMemory - Read-only.
+ * @property {number} texturePendingTransfers - Read-only.
+ * @property {number} gpuTextureMemory - Read-only.
+ * @property {number} gpuTextureResidentMemory - Read-only.
+ * @property {number} gpuTextureFramebufferMemory - Read-only.
+ * @property {number} gpuTextureResourceMemory - Read-only.
+ * @property {number} gpuTextureResourcePopulatedMemory - Read-only.
+ * @property {number} gpuTextureExternalMemory - Read-only.
+ * @property {string} gpuTextureMemoryPressureState - Read-only.
+ * @property {number} gpuFreeMemory - Read-only.
+ * @property {number} gpuFrameTime - Read-only.
+ * @property {number} batchFrameTime - Read-only.
+ * @property {number} engineFrameTime - Read-only.
+ * @property {number} avatarSimulationTime - Read-only.
+ *
+ *
+ * @property {number} x
+ * @property {number} y
+ * @property {number} z
+ * @property {number} width
+ * @property {number} height
+ *
+ * @property {number} opacity
+ * @property {boolean} enabled
+ * @property {boolean} visible
+ *
+ * @property {string} state
+ * @property {number} baselineOffset
+ *
+ * @property {boolean} clip
+ *
+ * @property {boolean} focus
+ * @property {boolean} activeFocus - Read-only.
+ * @property {boolean} activeFocusOnTab
+ *
+ * @property {number} rotation
+ * @property {number} scale
+ * @property {number} transformOrigin
+ *
+ * @property {boolean} smooth
+ * @property {boolean} antialiasing
+ * @property {number} implicitWidth
+ * @property {number} implicitHeight
+ */
+// Properties from x onwards are QQuickItem properties.
+
class Stats : public QQuickItem {
Q_OBJECT
HIFI_QML_DECL
@@ -161,105 +304,950 @@ public slots:
void forceUpdateStats() { updateStats(true); }
signals:
+
+ /**jsdoc
+ * Triggered when the value of the longsubmits
property changes.
+ * @function Stats.longsubmitsChanged
+ * @returns {Signal}
+ */
void longsubmitsChanged();
+
+ /**jsdoc
+ * Triggered when the value of the longrenders
property changes.
+ * @function Stats.longrendersChanged
+ * @returns {Signal}
+ */
void longrendersChanged();
+
+ /**jsdoc
+ * Triggered when the value of the longframes
property changes.
+ * @function Stats.longframesChanged
+ * @returns {Signal}
+ */
void longframesChanged();
+
+ /**jsdoc
+ * Triggered when the value of the appdropped
property changes.
+ * @function Stats.appdroppedChanged
+ * @returns {Signal}
+ */
void appdroppedChanged();
+
+ /**jsdoc
+ * Triggered when the value of the expanded
property changes.
+ * @function Stats.expandedChanged
+ * @returns {Signal}
+ */
void expandedChanged();
+
+ /**jsdoc
+ * Triggered when the value of the timingExpanded
property changes.
+ * @function Stats.timingExpandedChanged
+ * @returns {Signal}
+ */
void timingExpandedChanged();
+
+ /**jsdoc
+ * Triggered when the value of the serverCount
property changes.
+ * @function Stats.serverCountChanged
+ * @returns {Signal}
+ */
void serverCountChanged();
+
+ /**jsdoc
+ * Triggered when the value of the renderrate
property changes.
+ * @function Stats.renderrateChanged
+ * @returns {Signal}
+ */
void renderrateChanged();
+
+ /**jsdoc
+ * Triggered when the value of the presentrate
property changes.
+ * @function Stats.presentrateChanged
+ * @returns {Signal}
+ */
void presentrateChanged();
+
+ /**jsdoc
+ * Triggered when the value of the presentnewrate
property changes.
+ * @function Stats.presentnewrateChanged
+ * @returns {Signal}
+ */
void presentnewrateChanged();
+
+ /**jsdoc
+ * Triggered when the value of the presentdroprate
property changes.
+ * @function Stats.presentdroprateChanged
+ * @returns {Signal}
+ */
void presentdroprateChanged();
+
+ /**jsdoc
+ * Triggered when the value of the stutterrate
property changes.
+ * @function Stats.stutterrateChanged
+ * @returns {Signal}
+ */
void stutterrateChanged();
+
+ /**jsdoc
+ * Triggered when the value of the gameLoopRate
property changes.
+ * @function Stats.gameLoopRateChanged
+ * @returns {Signal}
+ */
void gameLoopRateChanged();
+
+ /**jsdoc
+ * Triggered when the value of the avatarCount
property changes.
+ * @function Stats.avatarCountChanged
+ * @returns {Signal}
+ */
void avatarCountChanged();
+
+ /**jsdoc
+ * Triggered when the value of the updatedAvatarCount
property changes.
+ * @function Stats.updatedAvatarCountChanged
+ * @returns {Signal}
+ */
void updatedAvatarCountChanged();
+
+ /**jsdoc
+ * Triggered when the value of the notUpdatedAvatarCount
property changes.
+ * @function Stats.notUpdatedAvatarCountChanged
+ * @returns {Signal}
+ */
void notUpdatedAvatarCountChanged();
+
+ /**jsdoc
+ * Triggered when the value of the packetInCount
property changes.
+ * @function Stats.packetInCountChanged
+ * @returns {Signal}
+ */
void packetInCountChanged();
+
+ /**jsdoc
+ * Triggered when the value of the packetOutCount
property changes.
+ * @function Stats.packetOutCountChanged
+ * @returns {Signal}
+ */
void packetOutCountChanged();
+
+ /**jsdoc
+ * Triggered when the value of the mbpsIn
property changes.
+ * @function Stats.mbpsInChanged
+ * @returns {Signal}
+ */
void mbpsInChanged();
+
+ /**jsdoc
+ * Triggered when the value of the mbpsOut
property changes.
+ * @function Stats.mbpsOutChanged
+ * @returns {Signal}
+ */
void mbpsOutChanged();
+
+ /**jsdoc
+ * Triggered when the value of the assetMbpsIn
property changes.
+ * @function Stats.assetMbpsInChanged
+ * @returns {Signal}
+ */
void assetMbpsInChanged();
+
+ /**jsdoc
+ * Triggered when the value of the assetMbpsOut
property changes.
+ * @function Stats.assetMbpsOutChanged
+ * @returns {Signal}
+ */
void assetMbpsOutChanged();
+
+ /**jsdoc
+ * Triggered when the value of the audioPing
property changes.
+ * @function Stats.audioPingChanged
+ * @returns {Signal}
+ */
void audioPingChanged();
+
+ /**jsdoc
+ * Triggered when the value of the avatarPing
property changes.
+ * @function Stats.avatarPingChanged
+ * @returns {Signal}
+ */
void avatarPingChanged();
+
+ /**jsdoc
+ * Triggered when the value of the entitiesPing
property changes.
+ * @function Stats.entitiesPingChanged
+ * @returns {Signal}
+ */
void entitiesPingChanged();
+
+ /**jsdoc
+ * Triggered when the value of the assetPing
property changes.
+ * @function Stats.assetPingChanged
+ * @returns {Signal}
+ */
void assetPingChanged();
+
+ /**jsdoc
+ * Triggered when the value of the messagePing
property changes.
+ * @function Stats.messagePingChanged
+ * @returns {Signal}
+ */
void messagePingChanged();
+
+ /**jsdoc
+ * Triggered when the value of the position
property changes.
+ * @function Stats.positionChanged
+ * @returns {Signal}
+ */
void positionChanged();
+
+ /**jsdoc
+ * Triggered when the value of the speed
property changes.
+ * @function Stats.speedChanged
+ * @returns {Signal}
+ */
void speedChanged();
+
+ /**jsdoc
+ * Triggered when the value of the yaw
property changes.
+ * @function Stats.yawChanged
+ * @returns {Signal}
+ */
void yawChanged();
+
+ /**jsdoc
+ * Triggered when the value of the avatarMixerInKbps
property changes.
+ * @function Stats.avatarMixerInKbpsChanged
+ * @returns {Signal}
+ */
void avatarMixerInKbpsChanged();
+
+ /**jsdoc
+ * Triggered when the value of the avatarMixerInPps
property changes.
+ * @function Stats.avatarMixerInPpsChanged
+ * @returns {Signal}
+ */
void avatarMixerInPpsChanged();
+
+ /**jsdoc
+ * Triggered when the value of the avatarMixerOutKbps
property changes.
+ * @function Stats.avatarMixerOutKbpsChanged
+ * @returns {Signal}
+ */
void avatarMixerOutKbpsChanged();
+
+ /**jsdoc
+ * Triggered when the value of the avatarMixerOutPps
property changes.
+ * @function Stats.avatarMixerOutPpsChanged
+ * @returns {Signal}
+ */
void avatarMixerOutPpsChanged();
+
+ /**jsdoc
+ * Triggered when the value of the myAvatarSendRate
property changes.
+ * @function Stats.myAvatarSendRateChanged
+ * @returns {Signal}
+ */
void myAvatarSendRateChanged();
+
+ /**jsdoc
+ * Triggered when the value of the audioMixerInKbps
property changes.
+ * @function Stats.audioMixerInKbpsChanged
+ * @returns {Signal}
+ */
void audioMixerInKbpsChanged();
+
+ /**jsdoc
+ * Triggered when the value of the audioMixerInPps
property changes.
+ * @function Stats.audioMixerInPpsChanged
+ * @returns {Signal}
+ */
void audioMixerInPpsChanged();
+
+ /**jsdoc
+ * Triggered when the value of the audioMixerOutKbps
property changes.
+ * @function Stats.audioMixerOutKbpsChanged
+ * @returns {Signal}
+ */
void audioMixerOutKbpsChanged();
+
+ /**jsdoc
+ * Triggered when the value of the audioMixerOutPps
property changes.
+ * @function Stats.audioMixerOutPpsChanged
+ * @returns {Signal}
+ */
void audioMixerOutPpsChanged();
+
+ /**jsdoc
+ * Triggered when the value of the audioMixerKbps
property changes.
+ * @function Stats.audioMixerKbpsChanged
+ * @returns {Signal}
+ */
void audioMixerKbpsChanged();
+
+ /**jsdoc
+ * Triggered when the value of the audioMixerPps
property changes.
+ * @function Stats.audioMixerPpsChanged
+ * @returns {Signal}
+ */
void audioMixerPpsChanged();
+
+ /**jsdoc
+ * Triggered when the value of the audioOutboundPPS
property changes.
+ * @function Stats.audioOutboundPPSChanged
+ * @returns {Signal}
+ */
void audioOutboundPPSChanged();
+
+ /**jsdoc
+ * Triggered when the value of the audioSilentOutboundPPS
property changes.
+ * @function Stats.audioSilentOutboundPPSChanged
+ * @returns {Signal}
+ */
void audioSilentOutboundPPSChanged();
+
+ /**jsdoc
+ * Triggered when the value of the audioAudioInboundPPS
property changes.
+ * @function Stats.audioAudioInboundPPSChanged
+ * @returns {Signal}
+ */
void audioAudioInboundPPSChanged();
+
+ /**jsdoc
+ * Triggered when the value of the audioSilentInboundPPS
property changes.
+ * @function Stats.audioSilentInboundPPSChanged
+ * @returns {Signal}
+ */
void audioSilentInboundPPSChanged();
+
+ /**jsdoc
+ * Triggered when the value of the audioPacketLoss
property changes.
+ * @function Stats.audioPacketLossChanged
+ * @returns {Signal}
+ */
void audioPacketLossChanged();
+
+ /**jsdoc
+ * Triggered when the value of the audioCodec
property changes.
+ * @function Stats.audioCodecChanged
+ * @returns {Signal}
+ */
void audioCodecChanged();
+
+ /**jsdoc
+ * Triggered when the value of the audioNoiseGate
property changes.
+ * @function Stats.audioNoiseGateChanged
+ * @returns {Signal}
+ */
void audioNoiseGateChanged();
+
+ /**jsdoc
+ * Triggered when the value of the entityPacketsInKbps
property changes.
+ * @function Stats.entityPacketsInKbpsChanged
+ * @returns {Signal}
+ */
void entityPacketsInKbpsChanged();
+
+ /**jsdoc
+ * Triggered when the value of the downloads
property changes.
+ * @function Stats.downloadsChanged
+ * @returns {Signal}
+ */
void downloadsChanged();
+
+ /**jsdoc
+ * Triggered when the value of the downloadLimit
property changes.
+ * @function Stats.downloadLimitChanged
+ * @returns {Signal}
+ */
void downloadLimitChanged();
+
+ /**jsdoc
+ * Triggered when the value of the downloadsPending
property changes.
+ * @function Stats.downloadsPendingChanged
+ * @returns {Signal}
+ */
void downloadsPendingChanged();
+
+ /**jsdoc
+ * Triggered when the value of the downloadUrls
property changes.
+ * @function Stats.downloadUrlsChanged
+ * @returns {Signal}
+ */
void downloadUrlsChanged();
+
+ /**jsdoc
+ * Triggered when the value of the processing
property changes.
+ * @function Stats.processingChanged
+ * @returns {Signal}
+ */
void processingChanged();
+
+ /**jsdoc
+ * Triggered when the value of the processingPending
property changes.
+ * @function Stats.processingPendingChanged
+ * @returns {Signal}
+ */
void processingPendingChanged();
+
+ /**jsdoc
+ * Triggered when the value of the triangles
property changes.
+ * @function Stats.trianglesChanged
+ * @returns {Signal}
+ */
void trianglesChanged();
+
+ /**jsdoc
+ * Triggered when the value of the quads
property changes.
+ * @function Stats.quadsChanged
+ * @returns {Signal}
+ */
void quadsChanged();
+
+ /**jsdoc
+ * Triggered when the value of the materialSwitches
property changes.
+ * @function Stats.materialSwitchesChanged
+ * @returns {Signal}
+ */
void materialSwitchesChanged();
+
+ /**jsdoc
+ * Triggered when the value of the itemConsidered
property changes.
+ * @function Stats.itemConsideredChanged
+ * @returns {Signal}
+ */
void itemConsideredChanged();
+
+ /**jsdoc
+ * Triggered when the value of the itemOutOfView
property changes.
+ * @function Stats.itemOutOfViewChanged
+ * @returns {Signal}
+ */
void itemOutOfViewChanged();
+
+ /**jsdoc
+ * Triggered when the value of the itemTooSmall
property changes.
+ * @function Stats.itemTooSmallChanged
+ * @returns {Signal}
+ */
void itemTooSmallChanged();
+
+ /**jsdoc
+ * Triggered when the value of the itemRendered
property changes.
+ * @function Stats.itemRenderedChanged
+ * @returns {Signal}
+ */
void itemRenderedChanged();
+
+ /**jsdoc
+ * Triggered when the value of the shadowConsidered
property changes.
+ * @function Stats.shadowConsideredChanged
+ * @returns {Signal}
+ */
void shadowConsideredChanged();
+
+ /**jsdoc
+ * Triggered when the value of the shadowOutOfView
property changes.
+ * @function Stats.shadowOutOfViewChanged
+ * @returns {Signal}
+ */
void shadowOutOfViewChanged();
+
+ /**jsdoc
+ * Triggered when the value of the shadowTooSmall
property changes.
+ * @function Stats.shadowTooSmallChanged
+ * @returns {Signal}
+ */
void shadowTooSmallChanged();
+
+ /**jsdoc
+ * Triggered when the value of the shadowRendered
property changes.
+ * @function Stats.shadowRenderedChanged
+ * @returns {Signal}
+ */
void shadowRenderedChanged();
+
+ /**jsdoc
+ * Triggered when the value of the sendingMode
property changes.
+ * @function Stats.sendingModeChanged
+ * @returns {Signal}
+ */
void sendingModeChanged();
+
+ /**jsdoc
+ * Triggered when the value of the packetStats
property changes.
+ * @function Stats.packetStatsChanged
+ * @returns {Signal}
+ */
void packetStatsChanged();
+
+ /**jsdoc
+ * Triggered when the value of the lodStatus
property changes.
+ * @function Stats.lodStatusChanged
+ * @returns {Signal}
+ */
void lodStatusChanged();
+
+ /**jsdoc
+ * Triggered when the value of the serverElements
property changes.
+ * @function Stats.serverElementsChanged
+ * @returns {Signal}
+ */
void serverElementsChanged();
+
+ /**jsdoc
+ * Triggered when the value of the serverInternal
property changes.
+ * @function Stats.serverInternalChanged
+ * @returns {Signal}
+ */
void serverInternalChanged();
+
+ /**jsdoc
+ * Triggered when the value of the serverLeaves
property changes.
+ * @function Stats.serverLeavesChanged
+ * @returns {Signal}
+ */
void serverLeavesChanged();
+
+ /**jsdoc
+ * Triggered when the value of the localElements
property changes.
+ * @function Stats.localElementsChanged
+ * @returns {Signal}
+ */
void localElementsChanged();
+
+ /**jsdoc
+ * Triggered when the value of the localInternal
property changes.
+ * @function Stats.localInternalChanged
+ * @returns {Signal}
+ */
void localInternalChanged();
+
+ /**jsdoc
+ * Triggered when the value of the localLeaves
property changes.
+ * @function Stats.localLeavesChanged
+ * @returns {Signal}
+ */
void localLeavesChanged();
+
+ /**jsdoc
+ * Triggered when the value of the timingStats
property changes.
+ * @function Stats.timingStatsChanged
+ * @returns {Signal}
+ */
void timingStatsChanged();
+
+ /**jsdoc
+ * Triggered when the value of the gameUpdateStats
property changes.
+ * @function Stats.gameUpdateStatsChanged
+ * @returns {Signal}
+ */
void gameUpdateStatsChanged();
+
+ /**jsdoc
+ * Triggered when the value of the glContextSwapchainMemory
property changes.
+ * @function Stats.glContextSwapchainMemoryChanged
+ * @returns {Signal}
+ */
void glContextSwapchainMemoryChanged();
+
+ /**jsdoc
+ * Triggered when the value of the qmlTextureMemory
property changes.
+ * @function Stats.qmlTextureMemoryChanged
+ * @returns {Signal}
+ */
void qmlTextureMemoryChanged();
+
+ /**jsdoc
+ * Triggered when the value of the texturePendingTransfers
property changes.
+ * @function Stats.texturePendingTransfersChanged
+ * @returns {Signal}
+ */
void texturePendingTransfersChanged();
+
+ /**jsdoc
+ * Triggered when the value of the gpuBuffers
property changes.
+ * @function Stats.gpuBuffersChanged
+ * @returns {Signal}
+ */
void gpuBuffersChanged();
+
+ /**jsdoc
+ * Triggered when the value of the gpuBufferMemory
property changes.
+ * @function Stats.gpuBufferMemoryChanged
+ * @returns {Signal}
+ */
void gpuBufferMemoryChanged();
+
+ /**jsdoc
+ * Triggered when the value of the gpuTextures
property changes.
+ * @function Stats.gpuTexturesChanged
+ * @returns {Signal}
+ */
void gpuTexturesChanged();
+
+ /**jsdoc
+ * Triggered when the value of the gpuTextureMemory
property changes.
+ * @function Stats.gpuTextureMemoryChanged
+ * @returns {Signal}
+ */
void gpuTextureMemoryChanged();
+
+ /**jsdoc
+ * Triggered when the value of the gpuTextureResidentMemory
property changes.
+ * @function Stats.gpuTextureResidentMemoryChanged
+ * @returns {Signal}
+ */
void gpuTextureResidentMemoryChanged();
+
+ /**jsdoc
+ * Triggered when the value of the gpuTextureFramebufferMemory
property changes.
+ * @function Stats.gpuTextureFramebufferMemoryChanged
+ * @returns {Signal}
+ */
void gpuTextureFramebufferMemoryChanged();
+
+ /**jsdoc
+ * Triggered when the value of the gpuTextureResourceMemory
property changes.
+ * @function Stats.gpuTextureResourceMemoryChanged
+ * @returns {Signal}
+ */
void gpuTextureResourceMemoryChanged();
+
+ /**jsdoc
+ * Triggered when the value of the gpuTextureResourcePopulatedMemory
property changes.
+ * @function Stats.gpuTextureResourcePopulatedMemoryChanged
+ * @returns {Signal}
+ */
void gpuTextureResourcePopulatedMemoryChanged();
+
+ /**jsdoc
+ * Triggered when the value of the gpuTextureExternalMemory
property changes.
+ * @function Stats.gpuTextureExternalMemoryChanged
+ * @returns {Signal}
+ */
void gpuTextureExternalMemoryChanged();
+
+ /**jsdoc
+ * Triggered when the value of the gpuTextureMemoryPressureState
property changes.
+ * @function Stats.gpuTextureMemoryPressureStateChanged
+ * @returns {Signal}
+ */
void gpuTextureMemoryPressureStateChanged();
+
+ /**jsdoc
+ * Triggered when the value of the gpuFreeMemory
property changes.
+ * @function Stats.gpuFreeMemoryChanged
+ * @returns {Signal}
+ */
void gpuFreeMemoryChanged();
+
+ /**jsdoc
+ * Triggered when the value of the gpuFrameTime
property changes.
+ * @function Stats.gpuFrameTimeChanged
+ * @returns {Signal}
+ */
void gpuFrameTimeChanged();
+
+ /**jsdoc
+ * Triggered when the value of the batchFrameTime
property changes.
+ * @function Stats.batchFrameTimeChanged
+ * @returns {Signal}
+ */
void batchFrameTimeChanged();
+
+ /**jsdoc
+ * Triggered when the value of the engineFrameTime
property changes.
+ * @function Stats.engineFrameTimeChanged
+ * @returns {Signal}
+ */
void engineFrameTimeChanged();
+
+ /**jsdoc
+ * Triggered when the value of the avatarSimulationTime
property changes.
+ * @function Stats.avatarSimulationTimeChanged
+ * @returns {Signal}
+ */
void avatarSimulationTimeChanged();
+
+ /**jsdoc
+ * Triggered when the value of the rectifiedTextureCount
property changes.
+ * @function Stats.rectifiedTextureCountChanged
+ * @returns {Signal}
+ */
void rectifiedTextureCountChanged();
+
+ /**jsdoc
+ * Triggered when the value of the decimatedTextureCount
property changes.
+ * @function Stats.decimatedTextureCountChanged
+ * @returns {Signal}
+ */
void decimatedTextureCountChanged();
+
+ // QQuickItem signals.
+
+ /**jsdoc
+ * Triggered when the value of the TODO
property changes.
+ * @function Stats.TODO
+ * @param {Rect} childrenRect
+ * @returns {Signal}
+ */
+ void childrenRectChanged(const QRectF &);
+
+ /**jsdoc
+ * Triggered when the value of the TODO
property changes.
+ * @function Stats.TODO
+ * @param {number} baselineOffset
+ * @returns {Signal}
+ */
+ void baselineOffsetChanged(qreal);
+
+ /**jsdoc
+ * Triggered when the value of the TODO
property changes.
+ * @function Stats.TODO
+ * @param {string} state
+ * @returns {Signal}
+ */
+ void stateChanged(const QString &);
+
+ /**jsdoc
+ * Triggered when the value of the TODO
property changes.
+ * @function Stats.TODO
+ * @param {boolean} focus
+ * @returns {Signal}
+ */
+ void focusChanged(bool);
+
+ /**jsdoc
+ * Triggered when the value of the TODO
property changes.
+ * @function Stats.TODO
+ * @param {boolean} activeFocus
+ * @returns {Signal}
+ */
+ void activeFocusChanged(bool);
+
+ /**jsdoc
+ * Triggered when the value of the TODO
property changes.
+ * @function Stats.TODO
+ * @param {boolean} activeFocusOnTab
+ * @returns {Signal}
+ */
+ void activeFocusOnTabChanged(bool);
+
+ /**jsdoc
+ * Triggered when the value of the TODO
property changes.
+ * @function Stats.TODO
+ * @param {object} parent
+ * @returns {Signal}
+ */
+ void parentChanged(QQuickItem *);
+
+ /**jsdoc
+ * Triggered when the value of the TODO
property changes.
+ * @function Stats.TODO
+ * @param {number} transformOrigin
+ * @returns {Signal}
+ */
+ void transformOriginChanged(TransformOrigin);
+
+ /**jsdoc
+ * Triggered when the value of the TODO
property changes.
+ * @function Stats.TODO
+ * @param {boolean} smooth
+ * @returns {Signal}
+ */
+ void smoothChanged(bool);
+
+ /**jsdoc
+ * Triggered when the value of the TODO
property changes.
+ * @function Stats.TODO
+ * @param {boolean} antialiasing
+ * @returns {Signal}
+ */
+ void antialiasingChanged(bool);
+
+ /**jsdoc
+ * Triggered when the value of the TODO
property changes.
+ * @function Stats.TODO
+ * @param {boolean} clip
+ * @returns {Signal}
+ */
+ void clipChanged(bool);
+
+ /**jsdoc
+ * Triggered when the value of the TODO
property changes.
+ * @function Stats.TODO
+ * @param {object} window
+ * @returns {Signal}
+ */
+ void windowChanged(QQuickWindow* window);
+
+
+ /**jsdoc
+ * Triggered when the value of the TODO
property changes.
+ * @function Stats.TODO
+ * @returns {Signal}
+ */
+ void childrenChanged();
+
+ /**jsdoc
+ * Triggered when the value of the TODO
property changes.
+ * @function Stats.TODO
+ * @returns {Signal}
+ */
+ void opacityChanged();
+
+ /**jsdoc
+ * Triggered when the value of the TODO
property changes.
+ * @function Stats.TODO
+ * @returns {Signal}
+ */
+ void enabledChanged();
+
+ /**jsdoc
+ * Triggered when the value of the TODO
property changes.
+ * @function Stats.TODO
+ * @returns {Signal}
+ */
+ void visibleChanged();
+
+ /**jsdoc
+ * Triggered when the value of the TODO
property changes.
+ * @function Stats.TODO
+ * @returns {Signal}
+ */
+ void visibleChildrenChanged();
+
+ /**jsdoc
+ * Triggered when the value of the TODO
property changes.
+ * @function Stats.TODO
+ * @returns {Signal}
+ */
+ void rotationChanged();
+
+ /**jsdoc
+ * Triggered when the value of the TODO
property changes.
+ * @function Stats.TODO
+ * @returns {Signal}
+ */
+ void scaleChanged();
+
+
+ /**jsdoc
+ * Triggered when the value of the TODO
property changes.
+ * @function Stats.TODO
+ * @returns {Signal}
+ */
+ void xChanged();
+
+ /**jsdoc
+ * Triggered when the value of the TODO
property changes.
+ * @function Stats.TODO
+ * @returns {Signal}
+ */
+ void yChanged();
+
+ /**jsdoc
+ * Triggered when the value of the TODO
property changes.
+ * @function Stats.TODO
+ * @returns {Signal}
+ */
+ void widthChanged();
+
+ /**jsdoc
+ * Triggered when the value of the TODO
property changes.
+ * @function Stats.TODO
+ * @returns {Signal}
+ */
+ void heightChanged();
+
+ /**jsdoc
+ * Triggered when the value of the TODO
property changes.
+ * @function Stats.TODO
+ * @returns {Signal}
+ */
+ void zChanged();
+
+ /**jsdoc
+ * Triggered when the value of the TODO
property changes.
+ * @function Stats.TODO
+ * @returns {Signal}
+ */
+ void implicitWidthChanged();
+
+ /**jsdoc
+ * Triggered when the value of the TODO
property changes.
+ * @function Stats.TODO
+ * @returns {Signal}
+ */
+ void implicitHeightChanged();
+
+
+ // QQuickItem functions.
+
+ /**jsdoc
+ * @function Stats.grabToImage
+ * @param {object} callback
+ * @param {Size} [targetSize=0,0]
+ * @returns {boolean}
+ */
+ Q_INVOKABLE bool grabToImage(const QJSValue &callback, const QSize &targetSize = QSize());
+
+ /**jsdoc
+ * @function Stats.contains
+ * @param {Vec2} point
+ * @returns {boolean}
+ */
+ Q_INVOKABLE virtual bool contains(const QPointF &point) const;
+
+ /**jsdoc
+ * @function Stats.mapFromItem
+ * @param {object} item
+ */
+ Q_INVOKABLE void mapFromItem(QQmlV4Function*) const;
+
+ /**jsdoc
+ * @function Stats.mapToItem
+ * @param {object} item
+ */
+ Q_INVOKABLE void mapToItem(QQmlV4Function*) const;
+
+ /**jsdoc
+ * @function Stats.mapFromGlobal
+ * @param {object} global
+ */
+ Q_INVOKABLE void mapFromGlobal(QQmlV4Function*) const;
+
+ /**jsdoc
+ * @function Stats.mapToGlobal
+ * @param {object} global
+ */
+ Q_INVOKABLE void mapToGlobal(QQmlV4Function*) const;
+
+ /**jsdoc
+ * @function Stats.forceActiveFocus
+ * @param {number} [reason=7]
+ */
+ Q_INVOKABLE void forceActiveFocus();
+ Q_INVOKABLE void forceActiveFocus(Qt::FocusReason reason);
+
+ /**jsdoc
+ * @function Stats.nextItemInFocusChain
+ * @param {boolean} [forward=true]
+ * @returns {object}
+ */
+ Q_INVOKABLE QQuickItem *nextItemInFocusChain(bool forward = true);
+
+ /**jsdoc
+ * @function Stats.childAt
+ * @param {number} x
+ * @param {number} y
+ * @returns {object}
+ */
+ Q_INVOKABLE QQuickItem *childAt(qreal x, qreal y) const;
+
private:
int _recentMaxPackets{ 0 } ; // recent max incoming voxel packets to process
bool _resetRecentMaxPacketsSoon{ true };