osggraph: add osg stats using ? key

git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9428 30fe4595-0a0c-4342-8851-515496e4dcbd

Former-commit-id: 19ff7a06be63a287b82647600d6384fde32cb55a
Former-commit-id: 9bfd9aed69cba598b1f878164a6c4ef83d4529dd
This commit is contained in:
iobyte 2024-06-09 01:14:31 +00:00
parent adfefc1101
commit 7375c14241
3 changed files with 18 additions and 2 deletions

View file

@ -220,7 +220,10 @@ void SDMoveSeatForwardBackward(void *move)
tCarElt* curCar = screens->getActiveView()->getCurrentCar();
curCar->_drvPos_x+=movement;
}
void SDToggleStats(void *vp)
{
screens->toggleStats();
}
int initView(int x, int y, int width, int height, int /* flag */, void *screen)
@ -262,6 +265,8 @@ int initView(int x, int y, int width, int height, int /* flag */, void *screen)
GfuiAddKey(screen, GFUIK_F10, "Follow Car Zoomed", (void*)8, SDSelectCamera, NULL);
GfuiAddKey(screen, GFUIK_F11, "TV Director View", (void*)9, SDSelectCamera, NULL);
GfuiAddKey(screen, '?', "Toggle OSG Stats", (void *)0, SDToggleStats, NULL);
GfuiAddKey(screen, '1', "Toggle HUD laptimeWidget", (void*)"laptimeWidget", SDToggleHUDwidget, NULL);
GfuiAddKey(screen, '2', "Toggle HUD carinfoWidget", (void*)"carinfoWidget,carstatusWidget", SDToggleHUDwidgets, NULL);
GfuiAddKey(screen, '3', "Toggle HUD boardWidget", (void*)"boardWidget", SDToggleHUDwidget, NULL);

View file

@ -23,9 +23,11 @@
#include <osgViewer/Viewer>
#include <osgViewer/GraphicsWindow>
#include <osgViewer/ViewerEventHandlers>
#include <osg/GraphicsContext>
#include <osg/ValueObject>
#include <osg/FrontFace>
#include <osgGA/EventQueue>
#include "OsgScreens.h"
#if SDL_MAJOR_VERSION >= 2
@ -52,7 +54,7 @@ SDScreens::SDScreens() :
debugHUD = new SDDebugHUD();
}
extern SDHUD hud;
extern SDHUD hud;
class CameraDrawnCallback : public osg::Camera::DrawCallback
{
@ -68,6 +70,9 @@ void SDScreens::Init(int x,int y, int width, int height, osg::ref_ptr<osg::Node>
//intialising main screen
viewer = new osgViewer::Viewer;
osgViewer::StatsHandler *statsHandler = new osgViewer::StatsHandler();
statsHandler->setKeyEventTogglesOnScreenStats('?');
viewer->addEventHandler(statsHandler);
viewer->setLightingMode( osg::View::NO_LIGHT );
viewer->setThreadingModel( osgViewer::Viewer::CullThreadPerCameraDrawThreadPerContext );
#if 1 //SDL_MAJOR_VERSION < 2
@ -293,6 +298,11 @@ void SDScreens::toggleHUDeditmode()
hud.ToggleHUDeditmode();
}
void SDScreens::toggleStats()
{
viewer->getEventQueue()->keyPress(osgGA::GUIEventAdapter::KeySymbol('?'));
}
void SDScreens::registerViewDependantPreRenderNode(osg::ref_ptr<osg::Node> node)
{
//TODO : multi-screen support of this feature

View file

@ -64,6 +64,7 @@ public:
void toggleHUDdriverinput();
void toggleHUDeditmode();
void toggleStats();
inline SDView * getActiveView(){return Screens[m_CurrentScreenIndex];}
};