Put stereo render loop inside ryzom client main loop, see #43

This commit is contained in:
kaetemi 2013-07-05 02:38:56 +02:00
parent 541f75920b
commit c3f6f5b8ff
2 changed files with 536 additions and 462 deletions

View file

@ -438,8 +438,17 @@ void CStereoOVR::getCurrentMatrix(uint cid, NL3D::UCamera *camera) const
CMatrix translate; CMatrix translate;
if (m_Stage % 2) translate.translate(CVector((m_DevicePtr->HMDInfo.InterpupillaryDistance * m_Scale) * -0.5f, 0.f, 0.f)); if (m_Stage % 2) translate.translate(CVector((m_DevicePtr->HMDInfo.InterpupillaryDistance * m_Scale) * -0.5f, 0.f, 0.f));
else translate.translate(CVector((m_DevicePtr->HMDInfo.InterpupillaryDistance * m_Scale) * 0.5f, 0.f, 0.f)); else translate.translate(CVector((m_DevicePtr->HMDInfo.InterpupillaryDistance * m_Scale) * 0.5f, 0.f, 0.f));
camera->setTransformMode(NL3D::UTransformable::DirectMatrix); CMatrix mat = m_CameraMatrix[cid] * translate;
camera->setMatrix(m_CameraMatrix[cid] * translate); if (camera->getTransformMode() == NL3D::UTransformable::RotQuat)
{
camera->setPos(mat.getPos());
camera->setRotQuat(mat.getRot());
}
else
{
// camera->setTransformMode(NL3D::UTransformable::DirectMatrix);
camera->setMatrix(mat);
}
} }
bool CStereoOVR::wantClear() bool CStereoOVR::wantClear()

File diff suppressed because it is too large Load diff