make each OSG debug HUD graph item a seperate widget
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@7995 30fe4595-0a0c-4342-8851-515496e4dcbd Former-commit-id: 015f7daad15c6c0908e111ccdba411ce8d8196d3 Former-commit-id: 999588eaecc67902f402a16526082633b787d3b2
This commit is contained in:
parent
7bdb8c59f7
commit
fa9b4b6f49
5 changed files with 112 additions and 37 deletions
|
@ -169,9 +169,21 @@ void SDToggleHUDdashitems(void *vp)
|
|||
screens->toggleHUDdashitems();
|
||||
}
|
||||
#ifdef HUDDEBUG
|
||||
void SDToggleHUDgraph(void *vp)
|
||||
void SDToggleHUDgraphFPS(void *vp)
|
||||
{
|
||||
screens->toggleHUDgraph();
|
||||
screens->toggleHUDgraphFPS();
|
||||
}
|
||||
void SDToggleHUDgraphSpeed(void *vp)
|
||||
{
|
||||
screens->toggleHUDgraphSpeed();
|
||||
}
|
||||
void SDToggleHUDgraphFFB(void *vp)
|
||||
{
|
||||
screens->toggleHUDgraphFFB();
|
||||
}
|
||||
void SDToggleHUDgraphInputs(void *vp)
|
||||
{
|
||||
screens->toggleHUDgraphInputs();
|
||||
}
|
||||
#endif
|
||||
/*Driver position change*/
|
||||
|
@ -265,7 +277,10 @@ int initView(int x, int y, int width, int height, int /* flag */, void *screen)
|
|||
GfuiAddKey(screen, '7', "Toggle HUD raceinfoWidget", (void*)0, SDToggleHUDraceinfo, NULL);
|
||||
GfuiAddKey(screen, '8', "Toggle HUD", (void*)0, SDToggleHUD, NULL);
|
||||
#ifdef HUDDEBUG
|
||||
GfuiAddKey(screen, '0', "Toggle HUD graphWidget", (void*)0, SDToggleHUDgraph, NULL);
|
||||
GfuiAddKey(screen, '!', "Toggle HUD graphFPSWidget", (void*)0, SDToggleHUDgraphFPS, NULL);
|
||||
GfuiAddKey(screen, '@', "Toggle HUD graphSpeedWidget", (void*)0, SDToggleHUDgraphSpeed, NULL);
|
||||
GfuiAddKey(screen, '#', "Toggle HUD graphFFBWidget", (void*)0, SDToggleHUDgraphFFB, NULL);
|
||||
GfuiAddKey(screen, '$', "Toggle HUD graphInputsWidget", (void*)0, SDToggleHUDgraphInputs, NULL);
|
||||
#endif
|
||||
|
||||
/*GfuiAddKey(screen, '5', "Debug Info", (void*)3, grSelectBoard, NULL);
|
||||
|
|
|
@ -250,12 +250,6 @@ OSGPLOT::~OSGPLOT()
|
|||
{
|
||||
}
|
||||
|
||||
void OSGPLOT::setNodeMask(int mask)
|
||||
{
|
||||
for (unsigned int i = 0; i < osgGroup->getNumChildren(); i++)
|
||||
osgGroup->getChild(i)->setNodeMask(mask);
|
||||
}
|
||||
|
||||
osg::ref_ptr <osg::Group> OSGPLOT::getGroup()
|
||||
{
|
||||
return (*osgGroup).asGroup();
|
||||
|
@ -1413,7 +1407,10 @@ void SDHUD::ToggleHUD()
|
|||
hudElementsVisibilityStatus["debugWidget"] = (int)hudWidgets["debugWidget"]->getNodeMask();
|
||||
hudElementsVisibilityStatus["dashitemsWidget"] = (int)hudWidgets["dashitemsWidget"]->getNodeMask();
|
||||
#ifdef HUDDEBUG
|
||||
hudElementsVisibilityStatus["graphWidget"] = (int)hudWidgets["graphWidget"]->getNodeMask();
|
||||
hudElementsVisibilityStatus["graphFPSWidget"] = (int)hudWidgets["graphFPSWidget"]->getNodeMask();
|
||||
hudElementsVisibilityStatus["graphSpeedWidget"] = (int)hudWidgets["graphSpeedWidget"]->getNodeMask();
|
||||
hudElementsVisibilityStatus["graphFFBWidget"] = (int)hudWidgets["graphFFBWidget"]->getNodeMask();
|
||||
hudElementsVisibilityStatus["graphInputsWidget"] = (int)hudWidgets["graphInputsWidget"]->getNodeMask();
|
||||
#endif
|
||||
|
||||
hudWidgets["boardWidget"]->setNodeMask(0);
|
||||
|
@ -1427,8 +1424,10 @@ void SDHUD::ToggleHUD()
|
|||
hudWidgets["debugWidget"]->setNodeMask(0);
|
||||
hudWidgets["dashitemsWidget"]->setNodeMask(0);
|
||||
#ifdef HUDDEBUG
|
||||
hudWidgets["graphWidget"]->setNodeMask(0);
|
||||
setGraphNodeMask(0);
|
||||
hudWidgets["graphFPSWidget"]->setNodeMask(0);
|
||||
hudWidgets["graphSpeedWidget"]->setNodeMask(0);
|
||||
hudWidgets["graphFFBWidget"]->setNodeMask(0);
|
||||
hudWidgets["graphInputsWidget"]->setNodeMask(0);
|
||||
#endif
|
||||
hudElementsVisibilityStatusEnabled = 0;
|
||||
}else{
|
||||
|
@ -1443,8 +1442,10 @@ void SDHUD::ToggleHUD()
|
|||
hudWidgets["debugWidget"]->setNodeMask(hudElementsVisibilityStatus["debugWidget"]);
|
||||
hudWidgets["dashitemsWidget"]->setNodeMask(hudElementsVisibilityStatus["dashitemsWidget"]);
|
||||
#ifdef HUDDEBUG
|
||||
hudWidgets["graphWidget"]->setNodeMask(hudElementsVisibilityStatus["graphWidget"]);
|
||||
setGraphNodeMask(hudElementsVisibilityStatus["graphWidget"]);
|
||||
hudWidgets["graphFPSWidget"]->setNodeMask(hudElementsVisibilityStatus["graphFPSWidget"]);
|
||||
hudWidgets["graphSpeedWidget"]->setNodeMask(hudElementsVisibilityStatus["graphSpeedWidget"]);
|
||||
hudWidgets["graphFFBWidget"]->setNodeMask(hudElementsVisibilityStatus["graphFFBWidget"]);
|
||||
hudWidgets["graphInputsWidget"]->setNodeMask(hudElementsVisibilityStatus["graphInputsWidget"]);
|
||||
#endif
|
||||
hudElementsVisibilityStatusEnabled = 1;
|
||||
}
|
||||
|
@ -1587,27 +1588,71 @@ void SDHUD::ToggleHUDdashitems()
|
|||
}
|
||||
|
||||
#ifdef HUDDEBUG
|
||||
void SDHUD::setGraphNodeMask(int mask)
|
||||
{
|
||||
for (std::map<std::string, OSGPLOT *>::iterator it = hudGraphElements.begin(); it != hudGraphElements.end(); ++it)
|
||||
{
|
||||
it->second->setNodeMask(mask);
|
||||
}
|
||||
}
|
||||
|
||||
void SDHUD::ToggleHUDgraph()
|
||||
void SDHUD::ToggleHUDgraphFPS()
|
||||
{
|
||||
//toggle the visibility
|
||||
hudWidgets["graphWidget"]->setNodeMask(1 - hudWidgets["graphWidget"]->getNodeMask());
|
||||
|
||||
int value = hudWidgets["graphWidget"]->getNodeMask();
|
||||
setGraphNodeMask(value);
|
||||
hudWidgets["graphFPSWidget"]->setNodeMask(1 - hudWidgets["graphFPSWidget"]->getNodeMask());
|
||||
|
||||
//save the current status in the config file
|
||||
std::string configFileUrl = GetLocalDir();
|
||||
configFileUrl.append("config/osghudconfig.xml");
|
||||
std::string path = "widgets/graphWidget";
|
||||
std::string path = "widgets/graphFPSWidget";
|
||||
std::string attribute = "enabled";
|
||||
int value = hudWidgets["graphFPSWidget"]->getNodeMask();
|
||||
|
||||
//read the config file, update the value and write it back
|
||||
void *paramHandle = GfParmReadFile(configFileUrl.c_str(), GFPARM_RMODE_STD);
|
||||
GfParmSetNum(paramHandle, path.c_str(), attribute.c_str(), NULL, (int)value);
|
||||
GfParmWriteFile(NULL, paramHandle, "osghudconfig");
|
||||
}
|
||||
|
||||
void SDHUD::ToggleHUDgraphSpeed()
|
||||
{
|
||||
//toggle the visibility
|
||||
hudWidgets["graphSpeedWidget"]->setNodeMask(1 - hudWidgets["graphSpeedWidget"]->getNodeMask());
|
||||
|
||||
//save the current status in the config file
|
||||
std::string configFileUrl = GetLocalDir();
|
||||
configFileUrl.append("config/osghudconfig.xml");
|
||||
std::string path = "widgets/graphSpeedWidget";
|
||||
std::string attribute = "enabled";
|
||||
int value = hudWidgets["graphSpeedWidget"]->getNodeMask();
|
||||
|
||||
//read the config file, update the value and write it back
|
||||
void *paramHandle = GfParmReadFile(configFileUrl.c_str(), GFPARM_RMODE_STD);
|
||||
GfParmSetNum(paramHandle, path.c_str(), attribute.c_str(), NULL, (int)value);
|
||||
GfParmWriteFile(NULL, paramHandle, "osghudconfig");
|
||||
}
|
||||
|
||||
void SDHUD::ToggleHUDgraphFFB()
|
||||
{
|
||||
//toggle the visibility
|
||||
hudWidgets["graphFFBWidget"]->setNodeMask(1 - hudWidgets["graphFFBWidget"]->getNodeMask());
|
||||
|
||||
//save the current status in the config file
|
||||
std::string configFileUrl = GetLocalDir();
|
||||
configFileUrl.append("config/osghudconfig.xml");
|
||||
std::string path = "widgets/graphFFBWidget";
|
||||
std::string attribute = "enabled";
|
||||
int value = hudWidgets["graphFFBWidget"]->getNodeMask();
|
||||
|
||||
//read the config file, update the value and write it back
|
||||
void *paramHandle = GfParmReadFile(configFileUrl.c_str(), GFPARM_RMODE_STD);
|
||||
GfParmSetNum(paramHandle, path.c_str(), attribute.c_str(), NULL, (int)value);
|
||||
GfParmWriteFile(NULL, paramHandle, "osghudconfig");
|
||||
}
|
||||
|
||||
void SDHUD::ToggleHUDgraphInputs()
|
||||
{
|
||||
//toggle the visibility
|
||||
hudWidgets["graphInputsWidget"]->setNodeMask(1 - hudWidgets["graphInputsWidget"]->getNodeMask());
|
||||
|
||||
//save the current status in the config file
|
||||
std::string configFileUrl = GetLocalDir();
|
||||
configFileUrl.append("config/osghudconfig.xml");
|
||||
std::string path = "widgets/graphInputsWidget";
|
||||
std::string attribute = "enabled";
|
||||
int value = hudWidgets["graphInputsWidget"]->getNodeMask();
|
||||
|
||||
//read the config file, update the value and write it back
|
||||
void *paramHandle = GfParmReadFile(configFileUrl.c_str(), GFPARM_RMODE_STD);
|
||||
|
@ -2034,8 +2079,7 @@ osg::ref_ptr <osg::Group> SDHUD::generateHudFromXmlFile(int scrH, int scrW)
|
|||
|
||||
//istantiate the graph
|
||||
hudGraphElements[elementId] = new OSGPLOT(positionX, positionY, width, height, title, lines);
|
||||
osgGroupHud->addChild(hudGraphElements[elementId]->getGroup());
|
||||
hudGraphElements[elementId]->setNodeMask(widgetEnabled);
|
||||
geode->addChild(hudGraphElements[elementId]->getGroup());
|
||||
#endif
|
||||
}
|
||||
else
|
||||
|
|
|
@ -88,7 +88,6 @@ public:
|
|||
osg::ref_ptr <osg::Group> getGroup();
|
||||
void drawBackground();
|
||||
void update(tSituation *s, const SDFrameInfo* frameInfo,const tCarElt *currCar);
|
||||
void setNodeMask(int mask);
|
||||
void clearDataPoints();
|
||||
};
|
||||
#endif
|
||||
|
@ -127,7 +126,6 @@ class SDHUD
|
|||
|
||||
#ifdef HUDDEBUG
|
||||
std::map<std::string,OSGPLOT* > hudGraphElements;
|
||||
void setGraphNodeMask(int mask);
|
||||
#endif
|
||||
|
||||
public:
|
||||
|
@ -143,7 +141,10 @@ class SDHUD
|
|||
void ToggleHUDdebug();
|
||||
void ToggleHUDdashitems();
|
||||
#ifdef HUDDEBUG
|
||||
void ToggleHUDgraph();
|
||||
void ToggleHUDgraphFPS();
|
||||
void ToggleHUDgraphSpeed();
|
||||
void ToggleHUDgraphFFB();
|
||||
void ToggleHUDgraphInputs();
|
||||
#endif
|
||||
|
||||
osg::ref_ptr<osg::Camera> camera;
|
||||
|
|
|
@ -254,9 +254,21 @@ void SDScreens::toggleHUDdashitems()
|
|||
hud.ToggleHUDdashitems();
|
||||
}
|
||||
#ifdef HUDDEBUG
|
||||
void SDScreens::toggleHUDgraph()
|
||||
void SDScreens::toggleHUDgraphFPS()
|
||||
{
|
||||
hud.ToggleHUDgraph();
|
||||
hud.ToggleHUDgraphFPS();
|
||||
}
|
||||
void SDScreens::toggleHUDgraphSpeed()
|
||||
{
|
||||
hud.ToggleHUDgraphSpeed();
|
||||
}
|
||||
void SDScreens::toggleHUDgraphFFB()
|
||||
{
|
||||
hud.ToggleHUDgraphFFB();
|
||||
}
|
||||
void SDScreens::toggleHUDgraphInputs()
|
||||
{
|
||||
hud.ToggleHUDgraphInputs();
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
|
@ -65,7 +65,10 @@ public:
|
|||
void toggleHUDdebug();
|
||||
void toggleHUDdashitems();
|
||||
#ifdef HUDDEBUG
|
||||
void toggleHUDgraph();
|
||||
void toggleHUDgraphFPS();
|
||||
void toggleHUDgraphSpeed();
|
||||
void toggleHUDgraphFFB();
|
||||
void toggleHUDgraphInputs();
|
||||
#endif
|
||||
|
||||
inline SDView * getActiveView(){return Screens[m_CurrentScreenIndex];}
|
||||
|
|
Loading…
Reference in a new issue