3
0
Fork 0
mirror of https://github.com/lubosz/overte.git synced 2025-04-26 16:15:47 +02:00

Working on SDK 0.6

This commit is contained in:
Brad Davis 2015-06-07 14:34:40 -07:00
parent 6c49e13da2
commit 119f37a178
3 changed files with 13 additions and 25 deletions
cmake/externals/oglplus
interface/src/devices
libraries/render-utils/src

View file

@ -3,13 +3,13 @@ string(TOUPPER ${EXTERNAL_NAME} EXTERNAL_NAME_UPPER)
include(ExternalProject)
ExternalProject_Add(
${EXTERNAL_NAME}
GIT_REPOSITORY https://github.com/matus-chochlik/oglplus.git
GIT_TAG 9660aaaf65c5a3f47e6c54827ae28ae1ec5c5deb
${EXTERNAL_NAME}
URL http://softlayer-dal.dl.sourceforge.net/project/oglplus/oglplus-0.61.x/oglplus-0.61.0.zip
URL_MD5 bb55038c36c660d2b6c7be380414fa60
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
LOG_DOWNLOAD 1
LOG_DOWNLOAD 1
)
ExternalProject_Get_Property(${EXTERNAL_NAME} SOURCE_DIR)

View file

@ -270,7 +270,7 @@ void OculusManager::connect() {
_sceneLayer.ColorTexture[1] = nullptr;
_sceneLayer.Viewport[0].Pos = { 0, 0 };
_sceneLayer.Viewport[0].Size = _recommendedTexSize;
_sceneLayer.Viewport[1].Pos = { _recommendedTexSize.x, 0 };
_sceneLayer.Viewport[1].Pos = { _recommendedTexSize.w, 0 };
_sceneLayer.Viewport[1].Size = _recommendedTexSize;
_sceneLayer.Header.Type = ovrLayerType_EyeFov;
_sceneLayer.Header.Flags = ovrLayerFlag_TextureOriginAtBottomLeft;
@ -344,10 +344,10 @@ void OculusManager::disconnect() {
}
#endif
if (_ovrHmd) {
if (_ovrHmd) {
ovrHmd_Destroy(_ovrHmd);
_ovrHmd = nullptr;
}
}
ovr_Shutdown();
_isConnected = false;
@ -586,9 +586,6 @@ void OculusManager::display(QGLWidget * glCanvas, const glm::quat &bodyOrientati
glm::vec3 trackerPosition;
auto deviceSize = qApp->getDeviceSize();
#ifndef Q_OS_WIN
ovrHmd_BeginFrame(_ovrHmd, _frameIndex);
#endif
ovrTrackingState ts = ovrHmd_GetTrackingState(_ovrHmd, ovr_GetTimeInSeconds());
ovrVector3f ovrHeadPosition = ts.HeadPose.ThePose.Position;
@ -604,7 +601,9 @@ void OculusManager::display(QGLWidget * glCanvas, const glm::quat &bodyOrientati
static ovrVector3f eyeOffsets[2] = { { 0, 0, 0 }, { 0, 0, 0 } };
ovrPosef eyePoses[ovrEye_Count];
ovrHmd_GetEyePoses(_ovrHmd, _frameIndex, eyeOffsets, eyePoses, nullptr);
#ifndef Q_OS_WIN
ovrHmd_BeginFrame(_ovrHmd, _frameIndex);
#endif
static ovrPosef eyeRenderPose[ovrEye_Count];
//Render each eye into an fbo
for_each_eye(_ovrHmd, [&](ovrEyeType eye){
@ -652,7 +651,7 @@ void OculusManager::display(QGLWidget * glCanvas, const glm::quat &bodyOrientati
glViewport(vp.Pos.x, vp.Pos.y, vp.Size.w, vp.Size.h);
qApp->displaySide(*_camera, false, RenderArgs::MONO);
qApp->getApplicationOverlay().displayOve rlayTextureHmd(*_camera);
qApp->getApplicationOverlay().displayOverlayTextureHmd(*_camera);
});
_activeEye = ovrEye_Count;
@ -692,21 +691,10 @@ void OculusManager::display(QGLWidget * glCanvas, const glm::quat &bodyOrientati
GL_COLOR_BUFFER_BIT, GL_NEAREST);
glBindFramebuffer(GL_READ_FRAMEBUFFER, 0);
ovrLayerEyeFov sceneLayer;
sceneLayer.ColorTexture[0] = _swapFbo->color;
sceneLayer.ColorTexture[1] = nullptr;
sceneLayer.Viewport[0].Pos = { 0, 0 };
sceneLayer.Viewport[0].Size = { _swapFbo->size.x / 2, _swapFbo->size.y };
sceneLayer.Viewport[1].Pos = { _swapFbo->size.x / 2, 0 };
sceneLayer.Viewport[1].Size = { _swapFbo->size.x / 2, _swapFbo->size.y };
sceneLayer.Header.Type = ovrLayerType_EyeFov;
sceneLayer.Header.Flags = ovrLayerFlag_TextureOriginAtBottomLeft;
for_each_eye([&](ovrEyeType eye) {
sceneLayer.Fov[eye] = _eyeFov[eye];
sceneLayer.RenderPose[eye] = eyeRenderPose[eye];
_sceneLayer.RenderPose[eye] = eyeRenderPose[eye];
});
auto header = &sceneLayer.Header;
auto header = &_sceneLayer.Header;
ovrResult res = ovrHmd_SubmitFrame(_ovrHmd, _frameIndex, nullptr, &header, 1);
Q_ASSERT(OVR_SUCCESS(res));
_swapFbo->Increment();

View file

@ -1412,7 +1412,7 @@ void Model::simulate(float deltaTime, bool fullUpdate) {
if (_snapModelToRegistrationPoint && !_snappedToRegistrationPoint) {
snapToRegistrationPoint();
}
//simulateInternal(deltaTime);
simulateInternal(deltaTime);
}
}