mirror of
https://github.com/lubosz/overte.git
synced 2025-04-24 03:13:51 +02:00
additional stats items
This commit is contained in:
parent
4e8ce1b193
commit
e0f115298d
4 changed files with 101 additions and 5 deletions
|
@ -3382,7 +3382,6 @@ void* Application::networkReceive(void* args) {
|
|||
// then process any remaining bytes as if it was another packet
|
||||
if (messageData[0] == PACKET_TYPE_VOXEL_STATS) {
|
||||
int statsMessageLength = app->_voxelSceneStats.unpackFromMessage(messageData, messageLength);
|
||||
app->_voxelSceneStats.printDebugDetails();
|
||||
if (messageLength > statsMessageLength) {
|
||||
messageData += statsMessageLength;
|
||||
messageLength -= statsMessageLength;
|
||||
|
|
|
@ -41,7 +41,9 @@ VoxelStatsDialog::VoxelStatsDialog(QWidget* parent, VoxelSceneStats* model) :
|
|||
rgb = ((rgb & 0xfefefeu) >> 1) + ((rgb & 0xf8f8f8) >> 3);
|
||||
palette.setColor(QPalette::WindowText, QColor::fromRgb(rgb));
|
||||
label->setPalette(palette);
|
||||
label->setText(" ");
|
||||
|
||||
// This is my hackery attempt at making QDialog auto-size to a width that will hold our info. It kinda works.
|
||||
label->setText("123456789012345678901234567890123456789012345678901234567890");
|
||||
|
||||
snprintf(strBuf, sizeof(strBuf), " %s:", itemInfo.caption);
|
||||
form->addRow(strBuf, label);
|
||||
|
|
|
@ -390,9 +390,21 @@ void VoxelSceneStats::printDebugDetails() {
|
|||
|
||||
|
||||
VoxelSceneStats::ItemInfo VoxelSceneStats::_ITEMS[] = {
|
||||
{ "Elapsed" , 0x40ff40d0 },
|
||||
{ "Encode" , 0xffef40c0 },
|
||||
{ "Network" , 0xd0d0d0a0 }
|
||||
{ "Elapsed" , 0x40ff40d0 },
|
||||
{ "Encode" , 0xffef40c0 },
|
||||
{ "Network" , 0xd0d0d0a0 },
|
||||
{ "Voxels Sent" , 0x40ff40d0 },
|
||||
{ "Colors Sent" , 0xffef40c0 },
|
||||
{ "Bitmasks Sent" , 0xd0d0d0a0 },
|
||||
{ "Traversed" , 0x40ff40d0 },
|
||||
{ "Skipped - Total" , 0xffef40c0 },
|
||||
{ "Skipped - Distance" , 0xd0d0d0a0 },
|
||||
{ "Skipped - Out of View", 0x40ff40d0 },
|
||||
{ "Skipped - Was in View", 0xffef40c0 },
|
||||
{ "Skipped - No Change" , 0xd0d0d0a0 },
|
||||
{ "Skipped - Occluded" , 0x40ff40d0 },
|
||||
{ "Didn't fit in packet" , 0xffef40c0 },
|
||||
{ "Mode" , 0xd0d0d0a0 },
|
||||
};
|
||||
|
||||
char* VoxelSceneStats::getItemValue(int item) {
|
||||
|
@ -414,6 +426,77 @@ char* VoxelSceneStats::getItemValue(int item) {
|
|||
sprintf(_itemValueBuffer, "%d packets %lu bytes (%d kbps)", _packets, _bytes, calculatedKBPS);
|
||||
break;
|
||||
}
|
||||
case ITEM_VOXELS: {
|
||||
unsigned long total = _existsInPacketBitsWritten + _colorSent;
|
||||
float calculatedBPV = total == 0 ? 0 : (_bytes * 8) / total;
|
||||
sprintf(_itemValueBuffer, "%lu total (%.2f bits/voxel) %lu internal %lu leaves",
|
||||
total, calculatedBPV, _existsInPacketBitsWritten, _colorSent);
|
||||
break;
|
||||
}
|
||||
case ITEM_TRAVERSED: {
|
||||
sprintf(_itemValueBuffer, "%lu total %lu internal %lu leaves",
|
||||
_traversed, _internal, _leaves);
|
||||
break;
|
||||
}
|
||||
case ITEM_SKIPPED: {
|
||||
unsigned long total = _skippedDistance + _skippedOutOfView +
|
||||
_skippedWasInView + _skippedNoChange + _skippedOccluded;
|
||||
|
||||
unsigned long internal = _internalSkippedDistance + _internalSkippedOutOfView +
|
||||
_internalSkippedWasInView + _internalSkippedNoChange + _internalSkippedOccluded;
|
||||
|
||||
unsigned long leaves = _leavesSkippedDistance + _leavesSkippedOutOfView +
|
||||
_leavesSkippedWasInView + _leavesSkippedNoChange + _leavesSkippedOccluded;
|
||||
|
||||
sprintf(_itemValueBuffer, "%lu total %lu internal %lu leaves",
|
||||
total, internal, leaves);
|
||||
break;
|
||||
}
|
||||
case ITEM_SKIPPED_DISTANCE: {
|
||||
sprintf(_itemValueBuffer, "%lu total %lu internal %lu leaves",
|
||||
_skippedDistance, _internalSkippedDistance, _leavesSkippedDistance);
|
||||
break;
|
||||
}
|
||||
case ITEM_SKIPPED_OUT_OF_VIEW: {
|
||||
sprintf(_itemValueBuffer, "%lu total %lu internal %lu leaves",
|
||||
_skippedOutOfView, _internalSkippedOutOfView, _leavesSkippedOutOfView);
|
||||
break;
|
||||
}
|
||||
case ITEM_SKIPPED_WAS_IN_VIEW: {
|
||||
sprintf(_itemValueBuffer, "%lu total %lu internal %lu leaves",
|
||||
_skippedWasInView, _internalSkippedWasInView, _leavesSkippedWasInView);
|
||||
break;
|
||||
}
|
||||
case ITEM_SKIPPED_NO_CHANGE: {
|
||||
sprintf(_itemValueBuffer, "%lu total %lu internal %lu leaves",
|
||||
_skippedNoChange, _internalSkippedNoChange, _leavesSkippedNoChange);
|
||||
break;
|
||||
}
|
||||
case ITEM_SKIPPED_OCCLUDED: {
|
||||
sprintf(_itemValueBuffer, "%lu total %lu internal %lu leaves",
|
||||
_skippedOccluded, _internalSkippedOccluded, _leavesSkippedOccluded);
|
||||
break;
|
||||
}
|
||||
case ITEM_COLORS: {
|
||||
sprintf(_itemValueBuffer, "%lu total %lu internal %lu leaves",
|
||||
_colorSent, _internalColorSent, _leavesColorSent);
|
||||
break;
|
||||
}
|
||||
case ITEM_DIDNT_FIT: {
|
||||
sprintf(_itemValueBuffer, "%lu total %lu internal %lu leaves (removed: %lu)",
|
||||
_didntFit, _internalDidntFit, _leavesDidntFit, _treesRemoved);
|
||||
break;
|
||||
}
|
||||
case ITEM_BITS: {
|
||||
sprintf(_itemValueBuffer, "colors: %lu, exists: %lu, in packets: %lu",
|
||||
_colorBitsWritten, _existsBitsWritten, _existsInPacketBitsWritten);
|
||||
break;
|
||||
}
|
||||
case ITEM_MODE: {
|
||||
sprintf(_itemValueBuffer, "%s - %s", (_fullSceneDraw ? "Full Scene" : "Partial Scene"),
|
||||
(_moving ? "Moving" : "Stationary"));
|
||||
break;
|
||||
}
|
||||
default:
|
||||
sprintf(_itemValueBuffer, "");
|
||||
break;
|
||||
|
|
|
@ -53,6 +53,18 @@ public:
|
|||
ITEM_ELAPSED,
|
||||
ITEM_ENCODE,
|
||||
ITEM_PACKETS,
|
||||
ITEM_VOXELS,
|
||||
ITEM_COLORS,
|
||||
ITEM_BITS,
|
||||
ITEM_TRAVERSED,
|
||||
ITEM_SKIPPED,
|
||||
ITEM_SKIPPED_DISTANCE,
|
||||
ITEM_SKIPPED_OUT_OF_VIEW,
|
||||
ITEM_SKIPPED_WAS_IN_VIEW,
|
||||
ITEM_SKIPPED_NO_CHANGE,
|
||||
ITEM_SKIPPED_OCCLUDED,
|
||||
ITEM_DIDNT_FIT,
|
||||
ITEM_MODE,
|
||||
ITEM_COUNT
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue