VRManager: Handle removal of prop getValue<const char *>()
Handle removal of SGPropertyNode::getValue<const char *>() in VRManager::Listener<const char *>::valueChanged() by switching the string listeners and VRManager setter handlers to std::string. This fixes the following link error when VR is enabled: ld: VRManager.cxx.o: in function `flightgear::VRManager::Listener<char const*>::valueChanged(SGPropertyNode*)': src/Viewer/VRManager.hxx:147: undefined reference to `char const* SGPropertyNode::getValue<char const*>(std::enable_if<simgear::props::PropertyTraits<char const*>::Internal, void>::type*) const'
This commit is contained in:
parent
cfe5ed0ef4
commit
89b7f8139f
2 changed files with 20 additions and 20 deletions
src/Viewer
|
@ -144,15 +144,15 @@ void VRManager::setVisibilityMask(bool visibilityMask)
|
||||||
syncSettings();
|
syncSettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
void VRManager::setVRMode(const char * mode)
|
void VRManager::setVRMode(const std::string& mode)
|
||||||
{
|
{
|
||||||
osgXR::Settings::VRMode vrMode = osgXR::Settings::VRMODE_AUTOMATIC;
|
osgXR::Settings::VRMode vrMode = osgXR::Settings::VRMODE_AUTOMATIC;
|
||||||
|
|
||||||
if (strcmp(mode, "AUTOMATIC") == 0) {
|
if (mode == "AUTOMATIC") {
|
||||||
vrMode = osgXR::Settings::VRMODE_AUTOMATIC;
|
vrMode = osgXR::Settings::VRMODE_AUTOMATIC;
|
||||||
} else if (strcmp(mode, "SLAVE_CAMERAS") == 0) {
|
} else if (mode == "SLAVE_CAMERAS") {
|
||||||
vrMode = osgXR::Settings::VRMODE_SLAVE_CAMERAS;
|
vrMode = osgXR::Settings::VRMODE_SLAVE_CAMERAS;
|
||||||
} else if (strcmp(mode, "SCENE_VIEW") == 0) {
|
} else if (mode == "SCENE_VIEW") {
|
||||||
vrMode = osgXR::Settings::VRMODE_SCENE_VIEW;
|
vrMode = osgXR::Settings::VRMODE_SCENE_VIEW;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -160,15 +160,15 @@ void VRManager::setVRMode(const char * mode)
|
||||||
syncSettings();
|
syncSettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
void VRManager::setSwapchainMode(const char * mode)
|
void VRManager::setSwapchainMode(const std::string& mode)
|
||||||
{
|
{
|
||||||
osgXR::Settings::SwapchainMode swapchainMode = osgXR::Settings::SWAPCHAIN_AUTOMATIC;
|
osgXR::Settings::SwapchainMode swapchainMode = osgXR::Settings::SWAPCHAIN_AUTOMATIC;
|
||||||
|
|
||||||
if (strcmp(mode, "AUTOMATIC") == 0) {
|
if (mode == "AUTOMATIC") {
|
||||||
swapchainMode = osgXR::Settings::SWAPCHAIN_AUTOMATIC;
|
swapchainMode = osgXR::Settings::SWAPCHAIN_AUTOMATIC;
|
||||||
} else if (strcmp(mode,"MULTIPLE") == 0) {
|
} else if (mode == "MULTIPLE") {
|
||||||
swapchainMode = osgXR::Settings::SWAPCHAIN_MULTIPLE;
|
swapchainMode = osgXR::Settings::SWAPCHAIN_MULTIPLE;
|
||||||
} else if (strcmp(mode,"SINGLE") == 0) {
|
} else if (mode == "SINGLE") {
|
||||||
swapchainMode = osgXR::Settings::SWAPCHAIN_SINGLE;
|
swapchainMode = osgXR::Settings::SWAPCHAIN_SINGLE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -176,22 +176,22 @@ void VRManager::setSwapchainMode(const char * mode)
|
||||||
syncSettings();
|
syncSettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
void VRManager::setMirrorMode(const char * mode)
|
void VRManager::setMirrorMode(const std::string& mode)
|
||||||
{
|
{
|
||||||
osgXR::MirrorSettings::MirrorMode mirrorMode = osgXR::MirrorSettings::MIRROR_AUTOMATIC;
|
osgXR::MirrorSettings::MirrorMode mirrorMode = osgXR::MirrorSettings::MIRROR_AUTOMATIC;
|
||||||
int viewIndex = -1;
|
int viewIndex = -1;
|
||||||
|
|
||||||
if (strcmp(mode, "AUTOMATIC") == 0) {
|
if (mode == "AUTOMATIC") {
|
||||||
mirrorMode = osgXR::MirrorSettings::MIRROR_AUTOMATIC;
|
mirrorMode = osgXR::MirrorSettings::MIRROR_AUTOMATIC;
|
||||||
} else if (strcmp(mode, "NONE") == 0) {
|
} else if (mode == "NONE") {
|
||||||
mirrorMode = osgXR::MirrorSettings::MIRROR_NONE;
|
mirrorMode = osgXR::MirrorSettings::MIRROR_NONE;
|
||||||
} else if (strcmp(mode, "LEFT") == 0) {
|
} else if (mode == "LEFT") {
|
||||||
mirrorMode = osgXR::MirrorSettings::MIRROR_SINGLE;
|
mirrorMode = osgXR::MirrorSettings::MIRROR_SINGLE;
|
||||||
viewIndex = 0;
|
viewIndex = 0;
|
||||||
} else if (strcmp(mode, "RIGHT") == 0) {
|
} else if (mode == "RIGHT") {
|
||||||
mirrorMode = osgXR::MirrorSettings::MIRROR_SINGLE;
|
mirrorMode = osgXR::MirrorSettings::MIRROR_SINGLE;
|
||||||
viewIndex = 1;
|
viewIndex = 1;
|
||||||
} else if (strcmp(mode, "LEFT_RIGHT") == 0) {
|
} else if (mode == "LEFT_RIGHT") {
|
||||||
mirrorMode = osgXR::MirrorSettings::MIRROR_LEFT_RIGHT;
|
mirrorMode = osgXR::MirrorSettings::MIRROR_LEFT_RIGHT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -80,9 +80,9 @@ class VRManager : public osgXR::Manager
|
||||||
void setDepthInfo(bool depthInfo);
|
void setDepthInfo(bool depthInfo);
|
||||||
void setVisibilityMask(bool visibilityMask);
|
void setVisibilityMask(bool visibilityMask);
|
||||||
|
|
||||||
void setVRMode(const char * mode);
|
void setVRMode(const std::string& mode);
|
||||||
void setSwapchainMode(const char * mode);
|
void setSwapchainMode(const std::string& mode);
|
||||||
void setMirrorMode(const char * mode);
|
void setMirrorMode(const std::string& mode);
|
||||||
|
|
||||||
// osgXR::Manager overrides
|
// osgXR::Manager overrides
|
||||||
|
|
||||||
|
@ -130,11 +130,11 @@ class VRManager : public osgXR::Manager
|
||||||
|
|
||||||
// Property listeners
|
// Property listeners
|
||||||
|
|
||||||
template <typename T>
|
template <typename T, typename R = T>
|
||||||
class Listener : public SGPropertyChangeListener
|
class Listener : public SGPropertyChangeListener
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
typedef void (VRManager::*SetterFn)(T v);
|
typedef void (VRManager::*SetterFn)(R v);
|
||||||
|
|
||||||
Listener(VRManager *manager, SetterFn setter) :
|
Listener(VRManager *manager, SetterFn setter) :
|
||||||
_manager(manager),
|
_manager(manager),
|
||||||
|
@ -153,7 +153,7 @@ class VRManager : public osgXR::Manager
|
||||||
SetterFn _setter;
|
SetterFn _setter;
|
||||||
};
|
};
|
||||||
typedef Listener<bool> ListenerBool;
|
typedef Listener<bool> ListenerBool;
|
||||||
typedef Listener<const char *> ListenerString;
|
typedef Listener<std::string, const std::string&> ListenerString;
|
||||||
|
|
||||||
ListenerBool _listenerEnabled;
|
ListenerBool _listenerEnabled;
|
||||||
ListenerBool _listenerDepthInfo;
|
ListenerBool _listenerDepthInfo;
|
||||||
|
|
Loading…
Add table
Reference in a new issue