Changeset 9565 for OpenSceneGraph/trunk/src/osgViewer/StatsHandler.cpp
- Timestamp:
- 01/28/09 10:31:43 (4 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
OpenSceneGraph/trunk/src/osgViewer/StatsHandler.cpp
r9563 r9565 367 367 viewStr.setf(std::ios::left, std::ios::adjustfield); 368 368 viewStr.width(14); 369 370 viewStr << std::setw(1) << _cameraNumber << ": "; 369 // Used fixed formatting, as scientific will switch to "...e+.." notation for 370 // large numbers of vertices/drawables/etc. 371 viewStr.setf(std::ios::fixed); 372 viewStr.precision(0); 373 374 viewStr << std::setw(1) << "#" << _cameraNumber << std::endl; 371 375 372 376 // Camera name 373 if (_camera->getName().empty()) 374 viewStr << std::endl; 375 else 376 viewStr << _camera->getName() << std::endl; 377 377 if (!_camera->getName().empty()) 378 viewStr << _camera->getName(); 379 viewStr << std::endl; 380 378 381 int frameNumber = renderInfo.getState()->getFrameStamp()->getFrameNumber(); 379 382 if (!(renderer->getGraphicsThreadDoesCull())) … … 381 384 --frameNumber; 382 385 } 383 386 384 387 #define STATS_ATTRIBUTE(str) \ 385 388 if (stats->getAttribute(frameNumber, str, value)) \ 386 viewStr << std::setw( 7) << value << std::endl; \389 viewStr << std::setw(8) << value << std::endl; \ 387 390 else \ 388 viewStr << std::setw( 7) << "." << std::endl; \391 viewStr << std::setw(8) << "." << std::endl; \ 389 392 390 393 double value = 0.0; … … 448 451 std::ostringstream viewStr; 449 452 viewStr.clear(); 450 viewStr.setf(std::ios::left, std::ios::adjustfield);453 viewStr.setf(std::ios::left, std::ios::adjustfield); 451 454 viewStr.width(20); 452 453 viewStr << std::setw(1) << _viewNumber << ": "; 455 viewStr.setf(std::ios::fixed); 456 viewStr.precision(0); 457 458 viewStr << std::setw(1) << "#" << _viewNumber; 459 454 460 // View name 455 if (_view->getName().empty()) 456 viewStr << std::endl; 457 else 458 viewStr << _view->getName() << std::endl; 459 461 if (!_view->getName().empty()) 462 viewStr << ": " << _view->getName(); 460 463 viewStr << std::endl; 461 464 … … 477 480 478 481 double value = 0.0; 482 483 // header 484 viewStr << std::setw(10) << "Unique" << std::setw(10) << "Instanced" << std::endl; 479 485 480 486 STATS_ATTRIBUTE_PAIR("Number of unique StateSet","Number of instanced Stateset") … … 1088 1094 float topOfViewerStats = pos.y() + characterSize; 1089 1095 1090 geode->addDrawable(createBackgroundRectangle( pos + osg::Vec3(-backgroundMargin, characterSize + backgroundMargin, 0), 1091 _camera->getViewport()->width() - 2 * backgroundMargin, 1096 geode->addDrawable(createBackgroundRectangle( pos + osg::Vec3(-backgroundMargin, characterSize + backgroundMargin, 0), 1097 _camera->getViewport()->width() - 2 * backgroundMargin, 1092 1098 (3 + 4.5 * cameras.size()) * characterSize + 2 * backgroundMargin, 1093 1099 backgroundColor) ); … … 1235 1241 pos.y() -= (characterSize + backgroundSpacing); 1236 1242 1237 geode->addDrawable(createBackgroundRectangle( pos + osg::Vec3(-backgroundMargin, characterSize + backgroundMargin, 0), 1238 _camera->getViewport()->width() - 2 * backgroundMargin, 1243 geode->addDrawable(createBackgroundRectangle( pos + osg::Vec3(-backgroundMargin, characterSize + backgroundMargin, 0), 1244 _camera->getViewport()->width() - 2 * backgroundMargin, 1239 1245 characterSize + 2 * backgroundMargin, 1240 1246 backgroundColor)); … … 1369 1375 geode->setCullingActive(false); 1370 1376 group->addChild(geode); 1371 geode->addDrawable(createBackgroundRectangle( pos + osg::Vec3(-backgroundMargin, characterSize + backgroundMargin, 0),1372 7 * characterSize + 2 * backgroundMargin, 1373 1 8* characterSize + 2 * backgroundMargin,1377 geode->addDrawable(createBackgroundRectangle(pos + osg::Vec3(-backgroundMargin, characterSize + backgroundMargin, 0), 1378 7 * characterSize + 2 * backgroundMargin, 1379 19 * characterSize + 2 * backgroundMargin, 1374 1380 backgroundColor)); 1375 1381 1376 1382 // Camera scene & primitive stats static text 1377 1383 osg::ref_ptr<osgText::Text> camStaticText = new osgText::Text; 1378 geode->addDrawable( camStaticText.get() ); 1384 geode->addDrawable( camStaticText.get() ); 1379 1385 camStaticText->setColor(staticTextColor); 1380 1386 camStaticText->setFont(font); … … 1384 1390 std::ostringstream viewStr; 1385 1391 viewStr.clear(); 1386 viewStr.setf(std::ios::left, std::ios::adjustfield);1392 viewStr.setf(std::ios::left, std::ios::adjustfield); 1387 1393 viewStr.width(14); 1388 1394 viewStr << "Camera" << std::endl; 1395 viewStr << "" << std::endl; // placeholder for Camera name 1389 1396 viewStr << "Vertices" << std::endl; 1390 1397 viewStr << "Drawables" << std::endl; … … 1408 1415 1409 1416 // Move camera block to the right 1410 pos.x() += 7 * characterSize + 2 * backgroundMargin + backgroundSpacing; 1411 1412 // add camera scene stats1417 pos.x() += 7 * characterSize + 2 * backgroundMargin + backgroundSpacing; 1418 1419 // Add camera scene stats, one block per camera 1413 1420 int cameraCounter = 0; 1414 1421 for(ViewerBase::Cameras::iterator citr = cameras.begin(); citr != cameras.end(); ++citr) 1415 1422 { 1416 geode->addDrawable(createBackgroundRectangle( pos + osg::Vec3(-backgroundMargin, characterSize + backgroundMargin, 0),1417 5 * characterSize + 2 * backgroundMargin, 1418 1 8* characterSize + 2 * backgroundMargin,1423 geode->addDrawable(createBackgroundRectangle(pos + osg::Vec3(-backgroundMargin, characterSize + backgroundMargin, 0), 1424 5 * characterSize + 2 * backgroundMargin, 1425 19 * characterSize + 2 * backgroundMargin, 1419 1426 backgroundColor)); 1420 1427 … … 1431 1438 1432 1439 // Move camera block to the right 1433 pos.x() += 5 * characterSize + 2 * backgroundMargin + backgroundSpacing; 1440 pos.x() += 5 * characterSize + 2 * backgroundMargin + backgroundSpacing; 1434 1441 cameraCounter++; 1435 1442 } … … 1446 1453 group->addChild(geode); 1447 1454 1448 geode->addDrawable(createBackgroundRectangle( pos + osg::Vec3(-backgroundMargin, characterSize + backgroundMargin, 0),1449 5 * characterSize + 2 * backgroundMargin,1455 geode->addDrawable(createBackgroundRectangle(pos + osg::Vec3(-backgroundMargin, characterSize + backgroundMargin, 0), 1456 6 * characterSize + 2 * backgroundMargin, 1450 1457 12 * characterSize + 2 * backgroundMargin, 1451 1458 backgroundColor)); … … 1461 1468 std::ostringstream viewStr; 1462 1469 viewStr.clear(); 1463 viewStr.setf(std::ios::left, std::ios::adjustfield);1470 viewStr.setf(std::ios::left, std::ios::adjustfield); 1464 1471 viewStr.width(14); 1465 1472 viewStr << "View" << std::endl; 1466 viewStr << std::endl;1473 viewStr << " " << std::endl; 1467 1474 viewStr << "Stateset" << std::endl; 1468 1475 viewStr << "Group" << std::endl; … … 1475 1482 viewStr << "Vertices" << std::endl; 1476 1483 viewStr << "Primitives" << std::endl; 1477 viewStr.setf(std::ios::right, std::ios::adjustfield);1484 viewStr.setf(std::ios::right, std::ios::adjustfield); 1478 1485 camStaticText->setText(viewStr.str()); 1479 1486 1480 // Move camerablock to the right1481 pos.x() += 5 * characterSize + 2 * backgroundMargin + backgroundSpacing;1487 // Move viewer block to the right 1488 pos.x() += 6 * characterSize + 2 * backgroundMargin + backgroundSpacing; 1482 1489 1483 1490 std::vector<osgViewer::View*> views; … … 1488 1495 for (it = views.begin(); it != views.end(); ++it) 1489 1496 { 1490 geode->addDrawable(createBackgroundRectangle( pos + osg::Vec3(-backgroundMargin, characterSize + backgroundMargin, 0),1491 6 * characterSize + 2 * backgroundMargin,1497 geode->addDrawable(createBackgroundRectangle(pos + osg::Vec3(-backgroundMargin, characterSize + backgroundMargin, 0), 1498 11 * characterSize + 2 * backgroundMargin, 1492 1499 12 * characterSize + 2 * backgroundMargin, 1493 1500 backgroundColor)); … … 1503 1510 text->setDrawCallback(new ViewSceneStatsTextDrawCallback(*it, viewCounter)); 1504 1511 1505 pos.x() += 6 * characterSize + 2 * backgroundMargin + backgroundSpacing;1512 pos.x() += 11 * characterSize + 2 * backgroundMargin + backgroundSpacing; 1506 1513 viewCounter++; 1507 1514 }
