From db0ec1f5db65f784c330c9cb6c4a13c577244d24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Branimir=20Karad=C5=BEi=C4=87?= Date: Thu, 19 Jul 2018 20:22:21 -0700 Subject: [PATCH] Removed HMD API and OculusVR support. --- README.md | 4 - examples/01-cubes/cubes.cpp | 14 -- examples/02-metaballs/metaballs.cpp | 14 -- examples/04-mesh/mesh.cpp | 14 -- examples/05-instancing/instancing.cpp | 14 -- examples/06-bump/bump.cpp | 14 -- examples/10-font/font.cpp | 42 ---- examples/11-fontsdf/fontsdf.cpp | 23 -- examples/12-lod/lod.cpp | 14 -- examples/14-shadowvolumes/shadowvolumes.cpp | 13 -- examples/24-nbody/nbody.cpp | 24 -- examples/26-occlusion/occlusion.cpp | 17 -- examples/29-debugdraw/debugdraw.cpp | 10 - examples/32-particles/particles.cpp | 10 - examples/33-pom/pom.cpp | 14 -- examples/34-mvs/mvs.cpp | 14 -- examples/35-dynamic/dynamic.cpp | 14 -- .../gpudrivenrendering.cpp | 12 - examples/common/entry/entry.cpp | 3 - examples/common/imgui/imgui.cpp | 22 -- include/bgfx/bgfx.h | 37 --- include/bgfx/c99/bgfx.h | 27 --- include/bgfx/c99/platform.h | 1 - include/bgfx/defines.h | 11 +- src/amalgamated.cpp | 3 - src/bgfx.cpp | 16 +- src/bgfx_p.h | 17 +- src/hmd.cpp | 218 ------------------ src/hmd.h | 102 -------- src/hmd_openvr.cpp | 95 -------- src/hmd_openvr.h | 18 -- src/hmd_ovr.cpp | 210 ----------------- src/hmd_ovr.h | 70 ------ src/renderer.h | 14 +- src/renderer_d3d11.cpp | 97 ++------ src/renderer_d3d11.h | 2 - src/renderer_d3d12.cpp | 5 +- src/renderer_d3d9.cpp | 3 +- src/renderer_gl.cpp | 80 +------ src/renderer_gl.h | 2 - src/renderer_mtl.mm | 2 +- src/renderer_noop.cpp | 3 +- src/renderer_vk.cpp | 6 +- 43 files changed, 40 insertions(+), 1305 deletions(-) delete mode 100644 src/hmd.cpp delete mode 100644 src/hmd.h delete mode 100644 src/hmd_openvr.cpp delete mode 100644 src/hmd_openvr.h delete mode 100644 src/hmd_ovr.cpp delete mode 100644 src/hmd_ovr.h diff --git a/README.md b/README.md index fb811b2ab..43c9c6e26 100644 --- a/README.md +++ b/README.md @@ -25,10 +25,6 @@ Supported rendering backends: * WebGL 1.0 * WebGL 2.0 -Supported HMD: - - * OculusVR (1.3.0) - Supported platforms: * Android (14+, ARM, x86, MIPS) diff --git a/examples/01-cubes/cubes.cpp b/examples/01-cubes/cubes.cpp index 0e96c370b..4bd81f262 100644 --- a/examples/01-cubes/cubes.cpp +++ b/examples/01-cubes/cubes.cpp @@ -261,20 +261,6 @@ public: float eye[3] = { 0.0f, 0.0f, -35.0f }; // Set view and projection matrix for view 0. - const bgfx::HMD* hmd = bgfx::getHMD(); - if (NULL != hmd && 0 != (hmd->flags & BGFX_HMD_RENDERING) ) - { - float view[16]; - bx::mtxQuatTranslationHMD(view, hmd->eye[0].rotation, eye); - bgfx::setViewTransform(0, view, hmd->eye[0].projection, BGFX_VIEW_STEREO, hmd->eye[1].projection); - - // Set view 0 default viewport. - // - // Use HMD's width/height since HMD's internal frame buffer size - // might be much larger than window size. - bgfx::setViewRect(0, 0, 0, hmd->width, hmd->height); - } - else { float view[16]; bx::mtxLookAt(view, eye, at); diff --git a/examples/02-metaballs/metaballs.cpp b/examples/02-metaballs/metaballs.cpp index 0df90a553..25198be8f 100644 --- a/examples/02-metaballs/metaballs.cpp +++ b/examples/02-metaballs/metaballs.cpp @@ -583,20 +583,6 @@ public: float eye[3] = { 0.0f, 0.0f, -50.0f }; // Set view and projection matrix for view 0. - const bgfx::HMD* hmd = bgfx::getHMD(); - if (NULL != hmd && 0 != (hmd->flags & BGFX_HMD_RENDERING) ) - { - float view[16]; - bx::mtxQuatTranslationHMD(view, hmd->eye[0].rotation, eye); - bgfx::setViewTransform(0, view, hmd->eye[0].projection, BGFX_VIEW_STEREO, hmd->eye[1].projection); - - // Set view 0 default viewport. - // - // Use HMD's width/height since HMD's internal frame buffer size - // might be much larger than window size. - bgfx::setViewRect(0, 0, 0, hmd->width, hmd->height); - } - else { float view[16]; bx::mtxLookAt(view, eye, at); diff --git a/examples/04-mesh/mesh.cpp b/examples/04-mesh/mesh.cpp index d8b666d6e..48d0d5cf3 100644 --- a/examples/04-mesh/mesh.cpp +++ b/examples/04-mesh/mesh.cpp @@ -107,20 +107,6 @@ public: float eye[3] = { 0.0f, 1.0f, -2.5f }; // Set view and projection matrix for view 0. - const bgfx::HMD* hmd = bgfx::getHMD(); - if (NULL != hmd && 0 != (hmd->flags & BGFX_HMD_RENDERING) ) - { - float view[16]; - bx::mtxQuatTranslationHMD(view, hmd->eye[0].rotation, eye); - bgfx::setViewTransform(0, view, hmd->eye[0].projection, BGFX_VIEW_STEREO, hmd->eye[1].projection); - - // Set view 0 default viewport. - // - // Use HMD's width/height since HMD's internal frame buffer size - // might be much larger than window size. - bgfx::setViewRect(0, 0, 0, hmd->width, hmd->height); - } - else { float view[16]; bx::mtxLookAt(view, eye, at); diff --git a/examples/05-instancing/instancing.cpp b/examples/05-instancing/instancing.cpp index 9c698d7ac..e9d489507 100644 --- a/examples/05-instancing/instancing.cpp +++ b/examples/05-instancing/instancing.cpp @@ -176,20 +176,6 @@ public: float eye[3] = { 0.0f, 0.0f, -35.0f }; // Set view and projection matrix for view 0. - const bgfx::HMD* hmd = bgfx::getHMD(); - if (NULL != hmd && 0 != (hmd->flags & BGFX_HMD_RENDERING) ) - { - float view[16]; - bx::mtxQuatTranslationHMD(view, hmd->eye[0].rotation, eye); - bgfx::setViewTransform(0, view, hmd->eye[0].projection, BGFX_VIEW_STEREO, hmd->eye[1].projection); - - // Set view 0 default viewport. - // - // Use HMD's width/height since HMD's internal frame buffer size - // might be much larger than window size. - bgfx::setViewRect(0, 0, 0, hmd->width, hmd->height); - } - else { float view[16]; bx::mtxLookAt(view, eye, at); diff --git a/examples/06-bump/bump.cpp b/examples/06-bump/bump.cpp index 9b40e7786..9cff80eee 100644 --- a/examples/06-bump/bump.cpp +++ b/examples/06-bump/bump.cpp @@ -215,20 +215,6 @@ public: float eye[3] = { 0.0f, 0.0f, -7.0f }; // Set view and projection matrix for view 0. - const bgfx::HMD* hmd = bgfx::getHMD(); - if (NULL != hmd && 0 != (hmd->flags & BGFX_HMD_RENDERING) ) - { - float view[16]; - bx::mtxQuatTranslationHMD(view, hmd->eye[0].rotation, eye); - bgfx::setViewTransform(0, view, hmd->eye[0].projection, BGFX_VIEW_STEREO, hmd->eye[1].projection); - - // Set view 0 default viewport. - // - // Use HMD's width/height since HMD's internal frame buffer size - // might be much larger than window size. - bgfx::setViewRect(0, 0, 0, hmd->width, hmd->height); - } - else { float view[16]; bx::mtxLookAt(view, eye, at); diff --git a/examples/10-font/font.cpp b/examples/10-font/font.cpp index 23d68f6e5..ca5e4c83e 100644 --- a/examples/10-font/font.cpp +++ b/examples/10-font/font.cpp @@ -267,49 +267,7 @@ public: const float centering = 0.5f; // Setup a top-left ortho matrix for screen space drawing. - const bgfx::HMD* hmd = bgfx::getHMD(); const bgfx::Caps* caps = bgfx::getCaps(); - if (NULL != hmd - && 0 != (hmd->flags & BGFX_HMD_RENDERING) ) - { - float proj[16]; - bx::mtxProj(proj, hmd->eye[0].fov, 0.1f, 100.0f, caps->homogeneousDepth); - - static float time = 0.0f; - time += 0.05f; - - const float dist = 10.0f; - const float offset0 = -proj[8] + (hmd->eye[0].viewOffset[0] / dist * proj[0]); - const float offset1 = -proj[8] + (hmd->eye[1].viewOffset[0] / dist * proj[0]); - - float ortho[2][16]; - const float offsetx = m_width/2.0f; - bx::mtxOrtho( - ortho[0] - , centering - , offsetx + centering - , m_height + centering - , centering - , -1.0f - , 1.0f - , offset0 - , caps->homogeneousDepth - ); - bx::mtxOrtho( - ortho[1] - , centering - , offsetx + centering - , m_height + centering - , centering - , -1.0f - , 1.0f - , offset1 - , caps->homogeneousDepth - ); - bgfx::setViewTransform(0, view, ortho[0], BGFX_VIEW_STEREO, ortho[1]); - bgfx::setViewRect(0, 0, 0, hmd->width, hmd->height); - } - else { float ortho[16]; bx::mtxOrtho( diff --git a/examples/11-fontsdf/fontsdf.cpp b/examples/11-fontsdf/fontsdf.cpp index 91f109a17..6f59674c6 100644 --- a/examples/11-fontsdf/fontsdf.cpp +++ b/examples/11-fontsdf/fontsdf.cpp @@ -200,30 +200,7 @@ public: const float centering = 0.5f; // Setup a top-left ortho matrix for screen space drawing. - const bgfx::HMD* hmd = bgfx::getHMD(); const bgfx::Caps* caps = bgfx::getCaps(); - if (NULL != hmd - && 0 != (hmd->flags & BGFX_HMD_RENDERING) ) - { - float proj[16]; - bx::mtxProj(proj, hmd->eye[0].fov, 0.1f, 100.0f, caps->homogeneousDepth); - - static float time = 0.0f; - time += 0.05f; - - const float dist = 10.0f; - const float offset0 = -proj[8] + (hmd->eye[0].viewOffset[0] / dist * proj[0]); - const float offset1 = -proj[8] + (hmd->eye[1].viewOffset[0] / dist * proj[0]); - - float ortho[2][16]; - const float viewOffset = m_width/4.0f; - const float viewWidth = m_width/2.0f; - bx::mtxOrtho(ortho[0], centering + viewOffset, centering + viewOffset + viewWidth, m_height + centering, centering, -1.0f, 1.0f, offset0, caps->homogeneousDepth); - bx::mtxOrtho(ortho[1], centering + viewOffset, centering + viewOffset + viewWidth, m_height + centering, centering, -1.0f, 1.0f, offset1, caps->homogeneousDepth); - bgfx::setViewTransform(0, view, ortho[0], BGFX_VIEW_STEREO, ortho[1]); - bgfx::setViewRect(0, 0, 0, hmd->width, hmd->height); - } - else { float ortho[16]; bx::mtxOrtho(ortho, centering, m_width + centering, m_height + centering, centering, -1.0f, 1.0f, 0.0f, caps->homogeneousDepth); diff --git a/examples/12-lod/lod.cpp b/examples/12-lod/lod.cpp index f36ba3e66..ca9f2e8ea 100644 --- a/examples/12-lod/lod.cpp +++ b/examples/12-lod/lod.cpp @@ -180,20 +180,6 @@ public: float eye[3] = { 0.0f, 2.0f, -distance }; // Set view and projection matrix for view 0. - const bgfx::HMD* hmd = bgfx::getHMD(); - if (NULL != hmd && 0 != (hmd->flags & BGFX_HMD_RENDERING) ) - { - float view[16]; - bx::mtxQuatTranslationHMD(view, hmd->eye[0].rotation, eye); - bgfx::setViewTransform(0, view, hmd->eye[0].projection, BGFX_VIEW_STEREO, hmd->eye[1].projection); - - // Set view 0 default viewport. - // - // Use HMD's m_width/m_height since HMD's internal frame buffer size - // might be much larger than window size. - bgfx::setViewRect(0, 0, 0, hmd->width, hmd->height); - } - else { float view[16]; bx::mtxLookAt(view, eye, at); diff --git a/examples/14-shadowvolumes/shadowvolumes.cpp b/examples/14-shadowvolumes/shadowvolumes.cpp index d19a3e88e..006c55d27 100644 --- a/examples/14-shadowvolumes/shadowvolumes.cpp +++ b/examples/14-shadowvolumes/shadowvolumes.cpp @@ -2138,19 +2138,6 @@ public: cameraUpdate(deltaTime, m_mouseState); // Set view and projection matrix for view 0. - const bgfx::HMD* hmd = bgfx::getHMD(); - if (NULL != hmd && 0 != (hmd->flags & BGFX_HMD_RENDERING) ) - { - float eye[3]; - cameraGetPosition(eye); - - bx::mtxQuatTranslationHMD(m_viewState.m_view, hmd->eye[0].rotation, eye); - bx::mtxProj(m_viewState.m_proj, hmd->eye[0].fov, nearPlane, farPlane, s_oglNdc); - - m_viewState.m_width = hmd->width; - m_viewState.m_height = hmd->height; - } - else { cameraGetViewMtx(m_viewState.m_view); bx::mtxProj(m_viewState.m_proj, fov, aspect, nearPlane, farPlane, s_oglNdc); diff --git a/examples/24-nbody/nbody.cpp b/examples/24-nbody/nbody.cpp index a9b905fa0..34bb0691d 100644 --- a/examples/24-nbody/nbody.cpp +++ b/examples/24-nbody/nbody.cpp @@ -375,30 +375,6 @@ public: cameraGetViewMtx(view); // Set view and projection matrix for view 0. - const bgfx::HMD* hmd = bgfx::getHMD(); - if (NULL != hmd && 0 != (hmd->flags & BGFX_HMD_RENDERING) ) - { - float viewHead[16]; - float eye[3] = {}; - bx::mtxQuatTranslationHMD(viewHead, hmd->eye[0].rotation, eye); - - float tmp[16]; - bx::mtxMul(tmp, view, viewHead); - bgfx::setViewTransform( - 0 - , tmp - , hmd->eye[0].projection - , BGFX_VIEW_STEREO - , hmd->eye[1].projection - ); - - // Set view 0 default viewport. - // - // Use HMD's width/height since HMD's internal frame buffer size - // might be much larger than window size. - bgfx::setViewRect(0, 0, 0, hmd->width, hmd->height); - } - else { float proj[16]; bx::mtxProj( diff --git a/examples/26-occlusion/occlusion.cpp b/examples/26-occlusion/occlusion.cpp index 95bb109e6..e37e2feee 100644 --- a/examples/26-occlusion/occlusion.cpp +++ b/examples/26-occlusion/occlusion.cpp @@ -209,23 +209,6 @@ public: cameraGetViewMtx(view); // Set view and projection matrix for view 0. - const bgfx::HMD* hmd = bgfx::getHMD(); - if (NULL != hmd && 0 != (hmd->flags & BGFX_HMD_RENDERING) ) - { - float viewHead[16]; - float eye[3] = {}; - bx::mtxQuatTranslationHMD(viewHead, hmd->eye[0].rotation, eye); - - float tmp[16]; - bx::mtxMul(tmp, view, viewHead); - - bgfx::setViewTransform(0, tmp, hmd->eye[0].projection); - bgfx::setViewRect(0, 0, 0, hmd->width, hmd->height); - - bgfx::setViewTransform(1, tmp, hmd->eye[1].projection); - bgfx::setViewRect(1, 0, 0, hmd->width, hmd->height); - } - else { float proj[16]; bx::mtxProj(proj, 90.0f, float(m_width)/float(m_height), 0.1f, 10000.0f, bgfx::getCaps()->homogeneousDepth); diff --git a/examples/29-debugdraw/debugdraw.cpp b/examples/29-debugdraw/debugdraw.cpp index 5e512a695..d7e6dd03e 100644 --- a/examples/29-debugdraw/debugdraw.cpp +++ b/examples/29-debugdraw/debugdraw.cpp @@ -617,16 +617,6 @@ public: float proj[16]; // Set view and projection matrix for view 0. - const bgfx::HMD* hmd = bgfx::getHMD(); - if (NULL != hmd && 0 != (hmd->flags & BGFX_HMD_RENDERING) ) - { - float eye[3]; - cameraGetPosition(eye); - bx::mtxQuatTranslationHMD(view, hmd->eye[0].rotation, eye); - bgfx::setViewTransform(0, view, hmd->eye[0].projection, BGFX_VIEW_STEREO, hmd->eye[1].projection); - bgfx::setViewRect(0, 0, 0, hmd->width, hmd->height); - } - else { bx::mtxProj(proj, 60.0f, float(m_width)/float(m_height), 0.1f, 100.0f, bgfx::getCaps()->homogeneousDepth); diff --git a/examples/32-particles/particles.cpp b/examples/32-particles/particles.cpp index eacceff16..dffbb5b17 100644 --- a/examples/32-particles/particles.cpp +++ b/examples/32-particles/particles.cpp @@ -345,16 +345,6 @@ public: float proj[16]; // Set view and projection matrix for view 0. - const bgfx::HMD* hmd = bgfx::getHMD(); - if (NULL != hmd && 0 != (hmd->flags & BGFX_HMD_RENDERING) ) - { - float eye[3]; - cameraGetPosition(eye); - bx::mtxQuatTranslationHMD(view, hmd->eye[0].rotation, eye); - bgfx::setViewTransform(0, view, hmd->eye[0].projection, BGFX_VIEW_STEREO, hmd->eye[1].projection); - bgfx::setViewRect(0, 0, 0, hmd->width, hmd->height); - } - else { bx::mtxProj(proj, 60.0f, float(m_width)/float(m_height), 0.1f, 100.0f, bgfx::getCaps()->homogeneousDepth); diff --git a/examples/33-pom/pom.cpp b/examples/33-pom/pom.cpp index 721ce45a5..745a6ae6f 100644 --- a/examples/33-pom/pom.cpp +++ b/examples/33-pom/pom.cpp @@ -229,20 +229,6 @@ public: float eye[3] = { 0.0f, 0.0f, 0.0f }; // Set view and projection matrix for view 0. - const bgfx::HMD* hmd = bgfx::getHMD(); - if (NULL != hmd && 0 != (hmd->flags & BGFX_HMD_RENDERING) ) - { - float view[16]; - bx::mtxQuatTranslationHMD(view, hmd->eye[0].rotation, eye); - bgfx::setViewTransform(0, view, hmd->eye[0].projection, BGFX_VIEW_STEREO, hmd->eye[1].projection); - - // Set view 0 default viewport. - // - // Use HMD's width/height since HMD's internal frame buffer size - // might be much larger than window size. - bgfx::setViewRect(0, 0, 0, hmd->width, hmd->height); - } - else { float view[16]; bx::mtxLookAt(view, eye, at); diff --git a/examples/34-mvs/mvs.cpp b/examples/34-mvs/mvs.cpp index b26c1fed2..0da9e8ceb 100644 --- a/examples/34-mvs/mvs.cpp +++ b/examples/34-mvs/mvs.cpp @@ -211,20 +211,6 @@ public: float eye[3] = { 0.0f, 0.0f, -35.0f }; // Set view and projection matrix for view 0. - const bgfx::HMD* hmd = bgfx::getHMD(); - if (NULL != hmd && 0 != (hmd->flags & BGFX_HMD_RENDERING) ) - { - float view[16]; - bx::mtxQuatTranslationHMD(view, hmd->eye[0].rotation, eye); - bgfx::setViewTransform(0, view, hmd->eye[0].projection, BGFX_VIEW_STEREO, hmd->eye[1].projection); - - // Set view 0 default viewport. - // - // Use HMD's width/height since HMD's internal frame buffer size - // might be much larger than window size. - bgfx::setViewRect(0, 0, 0, hmd->width, hmd->height); - } - else { float view[16]; bx::mtxLookAt(view, eye, at); diff --git a/examples/35-dynamic/dynamic.cpp b/examples/35-dynamic/dynamic.cpp index 9bb021b85..c9599fb2d 100644 --- a/examples/35-dynamic/dynamic.cpp +++ b/examples/35-dynamic/dynamic.cpp @@ -194,20 +194,6 @@ public: float eye[3] = { 0.0f, 0.0f, -35.0f }; // Set view and projection matrix for view 0. - const bgfx::HMD* hmd = bgfx::getHMD(); - if (NULL != hmd && 0 != (hmd->flags & BGFX_HMD_RENDERING) ) - { - float view[16]; - bx::mtxQuatTranslationHMD(view, hmd->eye[0].rotation, eye); - bgfx::setViewTransform(0, view, hmd->eye[0].projection, BGFX_VIEW_STEREO, hmd->eye[1].projection); - - // Set view 0 default viewport. - // - // Use HMD's width/height since HMD's internal frame buffer size - // might be much larger than window size. - bgfx::setViewRect(0, 0, 0, hmd->width, hmd->height); - } - else { float view[16]; bx::mtxLookAt(view, eye, at); diff --git a/examples/37-gpudrivenrendering/gpudrivenrendering.cpp b/examples/37-gpudrivenrendering/gpudrivenrendering.cpp index 0291d6e4a..bb642b947 100644 --- a/examples/37-gpudrivenrendering/gpudrivenrendering.cpp +++ b/examples/37-gpudrivenrendering/gpudrivenrendering.cpp @@ -987,18 +987,6 @@ public: void renderMainPass() { // Set view and projection matrix for view 0. - const bgfx::HMD* hmd = bgfx::getHMD(); - if (NULL != hmd && 0 != (hmd->flags & BGFX_HMD_RENDERING)) - { - bgfx::setViewTransform(RENDER_PASS_MAIN_ID, m_mainView, hmd->eye[0].projection, BGFX_VIEW_STEREO, hmd->eye[1].projection); - - // Set view 0 default viewport. - // - // Use HMD's width/height since HMD's internal frame buffer size - // might be much larger than window size. - bgfx::setViewRect(RENDER_PASS_MAIN_ID, 0, 0, hmd->width, hmd->height); - } - else { bgfx::setViewTransform(RENDER_PASS_MAIN_ID, m_mainView, m_mainProj); diff --git a/examples/common/entry/entry.cpp b/examples/common/entry/entry.cpp index a063334dc..71a8cdaa4 100644 --- a/examples/common/entry/entry.cpp +++ b/examples/common/entry/entry.cpp @@ -284,9 +284,6 @@ BX_PRAGMA_DIAGNOSTIC_POP(); { if (setOrToggle(s_reset, "vsync", BGFX_RESET_VSYNC, 1, _argc, _argv) || setOrToggle(s_reset, "maxaniso", BGFX_RESET_MAXANISOTROPY, 1, _argc, _argv) - || setOrToggle(s_reset, "hmd", BGFX_RESET_HMD, 1, _argc, _argv) - || setOrToggle(s_reset, "hmddbg", BGFX_RESET_HMD_DEBUG, 1, _argc, _argv) - || setOrToggle(s_reset, "hmdrecenter", BGFX_RESET_HMD_RECENTER, 1, _argc, _argv) || setOrToggle(s_reset, "msaa", BGFX_RESET_MSAA_X16, 1, _argc, _argv) || setOrToggle(s_reset, "flush", BGFX_RESET_FLUSH_AFTER_RENDER, 1, _argc, _argv) || setOrToggle(s_reset, "flip", BGFX_RESET_FLIP_AFTER_RENDER, 1, _argc, _argv) diff --git a/examples/common/imgui/imgui.cpp b/examples/common/imgui/imgui.cpp index 6ada4281e..6cd4b13c1 100644 --- a/examples/common/imgui/imgui.cpp +++ b/examples/common/imgui/imgui.cpp @@ -79,29 +79,7 @@ struct OcornutImguiContext bgfx::setViewName(m_viewId, "ImGui"); bgfx::setViewMode(m_viewId, bgfx::ViewMode::Sequential); - const bgfx::HMD* hmd = bgfx::getHMD(); const bgfx::Caps* caps = bgfx::getCaps(); - if (NULL != hmd && 0 != (hmd->flags & BGFX_HMD_RENDERING) ) - { - float proj[16]; - bx::mtxProj(proj, hmd->eye[0].fov, 0.1f, 100.0f, bgfx::getCaps()->homogeneousDepth); - - static float time = 0.0f; - time += 0.05f; - - const float dist = 10.0f; - const float offset0 = -proj[8] + (hmd->eye[0].viewOffset[0] / dist * proj[0]); - const float offset1 = -proj[8] + (hmd->eye[1].viewOffset[0] / dist * proj[0]); - - float ortho[2][16]; - const float viewOffset = width/4.0f; - const float viewWidth = width/2.0f; - bx::mtxOrtho(ortho[0], viewOffset, viewOffset + viewWidth, height, 0.0f, 0.0f, 1000.0f, offset0, caps->homogeneousDepth); - bx::mtxOrtho(ortho[1], viewOffset, viewOffset + viewWidth, height, 0.0f, 0.0f, 1000.0f, offset1, caps->homogeneousDepth); - bgfx::setViewTransform(m_viewId, NULL, ortho[0], BGFX_VIEW_STEREO, ortho[1]); - bgfx::setViewRect(m_viewId, 0, 0, hmd->width, hmd->height); - } - else { float ortho[16]; bx::mtxOrtho(ortho, 0.0f, width, height, 0.0f, 0.0f, 1000.0f, 0.0f, caps->homogeneousDepth); diff --git a/include/bgfx/bgfx.h b/include/bgfx/bgfx.h index f1fa509d2..0310133a1 100644 --- a/include/bgfx/bgfx.h +++ b/include/bgfx/bgfx.h @@ -842,34 +842,6 @@ namespace bgfx uint16_t num; //!< Number of matrices. }; - /// HMD info. - /// - /// @attention C99 equivalent is `bgfx_hmd_t`. - /// - struct HMD - { - /// Eye - /// - /// @attention C99 equivalent is `bgfx_hmd_eye_t`. - /// - struct Eye - { - float rotation[4]; //!< Eye rotation represented as quaternion. - float translation[3]; //!< Eye translation. - float fov[4]; //!< Field of view (up, down, left, right). - float viewOffset[3]; //!< Eye view matrix translation adjustment. - float projection[16]; //!< Eye projection matrix. - float pixelsPerTanAngle[2]; //!< Number of pixels that fit in tan(angle) = 1. - }; - - Eye eye[2]; - uint16_t width; //!< Frame buffer width. - uint16_t height; //!< Frame buffer height. - uint32_t deviceWidth; //!< Device resolution width. - uint32_t deviceHeight; //!< Device resolution height. - uint8_t flags; //!< Status flags. - }; - /// typedef uint16_t ViewId; @@ -1887,9 +1859,6 @@ namespace bgfx /// - `BGFX_RESET_VSYNC` - Enable V-Sync. /// - `BGFX_RESET_MAXANISOTROPY` - Turn on/off max anisotropy. /// - `BGFX_RESET_CAPTURE` - Begin screen capture. - /// - `BGFX_RESET_HMD` - HMD stereo rendering. - /// - `BGFX_RESET_HMD_DEBUG` - HMD stereo rendering debug mode. - /// - `BGFX_RESET_HMD_RECENTER` - HMD calibration. /// - `BGFX_RESET_FLUSH_AFTER_RENDER` - Flush rendering after submitting to GPU. /// - `BGFX_RESET_FLIP_AFTER_RENDER` - This flag specifies where flip /// occurs. Default behavior is that flip occurs before rendering new @@ -1949,12 +1918,6 @@ namespace bgfx /// const Caps* getCaps(); - /// Returns HMD info. - /// - /// @attention C99 equivalent is `bgfx_get_hmd`. - /// - const HMD* getHMD(); - /// Returns performance counters. /// /// @attention Pointer returned is valid until `bgfx::frame` is called. diff --git a/include/bgfx/c99/bgfx.h b/include/bgfx/c99/bgfx.h index ce313429b..c68d474fd 100644 --- a/include/bgfx/c99/bgfx.h +++ b/include/bgfx/c99/bgfx.h @@ -337,30 +337,6 @@ typedef struct bgfx_transform_s } bgfx_transform_t; -/**/ -typedef struct bgfx_hmd_eye_s -{ - float rotation[4]; - float translation[3]; - float fov[4]; - float viewOffset[3]; - float projection[16]; - float pixelsPerTanAngle[2]; - -} bgfx_hmd_eye_t; - -/**/ -typedef struct bgfx_hmd_s -{ - bgfx_hmd_eye_t eye[2]; - uint16_t width; - uint16_t height; - uint32_t deviceWidth; - uint32_t deviceHeight; - uint8_t flags; - -} bgfx_hmd_t; - /**/ typedef uint16_t bgfx_view_id_t; @@ -723,9 +699,6 @@ BGFX_C_API bgfx_renderer_type_t bgfx_get_renderer_type(void); /**/ BGFX_C_API const bgfx_caps_t* bgfx_get_caps(void); -/**/ -BGFX_C_API const bgfx_hmd_t* bgfx_get_hmd(void); - /**/ BGFX_C_API const bgfx_stats_t* bgfx_get_stats(void); diff --git a/include/bgfx/c99/platform.h b/include/bgfx/c99/platform.h index de7de5564..965f6eed8 100644 --- a/include/bgfx/c99/platform.h +++ b/include/bgfx/c99/platform.h @@ -92,7 +92,6 @@ typedef struct bgfx_interface_vtbl uint32_t (*frame)(bool _capture); bgfx_renderer_type_t (*get_renderer_type)(); const bgfx_caps_t* (*get_caps)(); - const bgfx_hmd_t* (*get_hmd)(); const bgfx_stats_t* (*get_stats)(); const bgfx_memory_t* (*alloc)(uint32_t _size); const bgfx_memory_t* (*copy)(const void* _data, uint32_t _size); diff --git a/include/bgfx/defines.h b/include/bgfx/defines.h index 77d9964e7..947202c78 100644 --- a/include/bgfx/defines.h +++ b/include/bgfx/defines.h @@ -6,7 +6,7 @@ #ifndef BGFX_DEFINES_H_HEADER_GUARD #define BGFX_DEFINES_H_HEADER_GUARD -#define BGFX_API_VERSION UINT32_C(75) +#define BGFX_API_VERSION UINT32_C(76) /// Color RGB/alpha/depth write. When it's not specified write will be disabled. #define BGFX_STATE_WRITE_R UINT64_C(0x0000000000000001) //!< Enable R write. @@ -417,9 +417,6 @@ #define BGFX_RESET_VSYNC UINT32_C(0x00000080) //!< Enable V-Sync. #define BGFX_RESET_MAXANISOTROPY UINT32_C(0x00000100) //!< Turn on/off max anisotropy. #define BGFX_RESET_CAPTURE UINT32_C(0x00000200) //!< Begin screen capture. -#define BGFX_RESET_HMD UINT32_C(0x00000400) //!< HMD stereo rendering. -#define BGFX_RESET_HMD_DEBUG UINT32_C(0x00000800) //!< HMD stereo rendering debug mode. -#define BGFX_RESET_HMD_RECENTER UINT32_C(0x00001000) //!< HMD calibration. #define BGFX_RESET_FLUSH_AFTER_RENDER UINT32_C(0x00002000) //!< Flush rendering after submitting to GPU. #define BGFX_RESET_FLIP_AFTER_RENDER UINT32_C(0x00004000) //!< This flag specifies where flip occurs. Default behavior is that flip occurs before rendering new frame. This flag only has effect when `BGFX_CONFIG_MULTITHREADED=0`. #define BGFX_RESET_SRGB_BACKBUFFER UINT32_C(0x00008000) //!< Enable sRGB backbuffer. @@ -440,7 +437,6 @@ #define BGFX_CAPS_FRAGMENT_ORDERING UINT64_C(0x0000000000000040) //!< Fragment ordering is available in fragment shader. #define BGFX_CAPS_GRAPHICS_DEBUGGER UINT64_C(0x0000000000000080) //!< Graphics debugger is present. #define BGFX_CAPS_HIDPI UINT64_C(0x0000000000000100) //!< HiDPI rendering is supported. -#define BGFX_CAPS_HMD UINT64_C(0x0000000000000200) //!< Head Mounted Display is available. #define BGFX_CAPS_INDEX32 UINT64_C(0x0000000000000400) //!< 32-bit indices are supported. #define BGFX_CAPS_INSTANCING UINT64_C(0x0000000000000800) //!< Instancing is supported. #define BGFX_CAPS_OCCLUSION_QUERY UINT64_C(0x0000000000001000) //!< Occlusion query is supported. @@ -496,11 +492,6 @@ #define BGFX_PCI_ID_INTEL UINT16_C(0x8086) //!< Intel adapter. #define BGFX_PCI_ID_NVIDIA UINT16_C(0x10de) //!< nVidia adapter. -/// -#define BGFX_HMD_NONE UINT8_C(0x00) //!< None. -#define BGFX_HMD_DEVICE_RESOLUTION UINT8_C(0x01) //!< Has HMD native resolution. -#define BGFX_HMD_RENDERING UINT8_C(0x02) //!< Rendering to HMD. - /// #define BGFX_CUBE_MAP_POSITIVE_X UINT8_C(0x00) //!< Cubemap +x. #define BGFX_CUBE_MAP_NEGATIVE_X UINT8_C(0x01) //!< Cubemap -x. diff --git a/src/amalgamated.cpp b/src/amalgamated.cpp index 2f43eb1c8..6e6ebec7c 100644 --- a/src/amalgamated.cpp +++ b/src/amalgamated.cpp @@ -9,9 +9,6 @@ #include "glcontext_egl.cpp" #include "glcontext_glx.cpp" #include "glcontext_wgl.cpp" -#include "hmd.cpp" -#include "hmd_ovr.cpp" -#include "hmd_openvr.cpp" #include "nvapi.cpp" #include "renderer_d3d9.cpp" #include "renderer_d3d11.cpp" diff --git a/src/bgfx.cpp b/src/bgfx.cpp index 5fef74b30..ff97a809b 100644 --- a/src/bgfx.cpp +++ b/src/bgfx.cpp @@ -1159,7 +1159,6 @@ namespace bgfx CAPS_FLAGS(BGFX_CAPS_FRAGMENT_ORDERING), CAPS_FLAGS(BGFX_CAPS_GRAPHICS_DEBUGGER), CAPS_FLAGS(BGFX_CAPS_HIDPI), - CAPS_FLAGS(BGFX_CAPS_HMD), CAPS_FLAGS(BGFX_CAPS_INDEX32), CAPS_FLAGS(BGFX_CAPS_INSTANCING), CAPS_FLAGS(BGFX_CAPS_OCCLUSION_QUERY), @@ -1873,7 +1872,7 @@ namespace bgfx if (m_rendererInitialized && !m_flipped) { - m_renderCtx->flip(m_render->m_hmd); + m_renderCtx->flip(); m_flipped = true; if (m_renderCtx->isDeviceRemoved() ) @@ -3311,11 +3310,6 @@ error: return &g_caps; } - const HMD* getHMD() - { - return s_ctx->getHMD(); - } - const Stats* getStats() { return s_ctx->getPerfStats(); @@ -4619,8 +4613,6 @@ BGFX_C99_ENUM_CHECK(bgfx::RenderFrame, BGFX_RENDER_FRAME_COUNT); BGFX_C99_STRUCT_SIZE_CHECK(bgfx::Memory, bgfx_memory_t); BGFX_C99_STRUCT_SIZE_CHECK(bgfx::Transform, bgfx_transform_t); -BGFX_C99_STRUCT_SIZE_CHECK(bgfx::HMD::Eye, bgfx_hmd_eye_t); -BGFX_C99_STRUCT_SIZE_CHECK(bgfx::HMD, bgfx_hmd_t); BGFX_C99_STRUCT_SIZE_CHECK(bgfx::Stats, bgfx_stats_t); BGFX_C99_STRUCT_SIZE_CHECK(bgfx::VertexDecl, bgfx_vertex_decl_t); BGFX_C99_STRUCT_SIZE_CHECK(bgfx::TransientIndexBuffer, bgfx_transient_index_buffer_t); @@ -4872,11 +4864,6 @@ BGFX_C_API const bgfx_caps_t* bgfx_get_caps(void) return (const bgfx_caps_t*)bgfx::getCaps(); } -BGFX_C_API const bgfx_hmd_t* bgfx_get_hmd(void) -{ - return (const bgfx_hmd_t*)bgfx::getHMD(); -} - BGFX_C_API const bgfx_stats_t* bgfx_get_stats(void) { return (const bgfx_stats_t*)bgfx::getStats(); @@ -5823,7 +5810,6 @@ BGFX_C_API bgfx_interface_vtbl_t* bgfx_get_interface(uint32_t _version) BGFX_IMPORT_FUNC(frame) \ BGFX_IMPORT_FUNC(get_renderer_type) \ BGFX_IMPORT_FUNC(get_caps) \ - BGFX_IMPORT_FUNC(get_hmd) \ BGFX_IMPORT_FUNC(get_stats) \ BGFX_IMPORT_FUNC(alloc) \ BGFX_IMPORT_FUNC(copy) \ diff --git a/src/bgfx_p.h b/src/bgfx_p.h index 92fb01196..259e58d66 100644 --- a/src/bgfx_p.h +++ b/src/bgfx_p.h @@ -1778,7 +1778,6 @@ namespace bgfx Frame() : m_waitSubmit(0) , m_waitRender(0) - , m_hmdInitialized(false) , m_capture(false) { SortKey term; @@ -2051,7 +2050,6 @@ namespace bgfx FreeHandle m_freeUniform; TextVideoMem* m_textVideoMem; - HMD m_hmd; Stats m_perfStats; ViewStats m_viewStats[BGFX_CONFIG_MAX_VIEWS]; @@ -2059,7 +2057,6 @@ namespace bgfx int64_t m_waitSubmit; int64_t m_waitRender; - bool m_hmdInitialized; bool m_capture; }; @@ -2629,7 +2626,7 @@ namespace bgfx virtual RendererType::Enum getRendererType() const = 0; virtual const char* getRendererName() const = 0; virtual bool isDeviceRemoved() = 0; - virtual void flip(HMD& _hmd) = 0; + virtual void flip() = 0; virtual void createIndexBuffer(IndexBufferHandle _handle, const Memory* _mem, uint16_t _flags) = 0; virtual void destroyIndexBuffer(IndexBufferHandle _handle) = 0; virtual void createVertexDecl(VertexDeclHandle _handle, const VertexDecl& _decl) = 0; @@ -2799,18 +2796,6 @@ namespace bgfx m_submit->m_textVideoMem->image(_x, _y, _width, _height, _data, _pitch); } - BGFX_API_FUNC(const HMD* getHMD() ) - { - BGFX_MUTEX_SCOPE(m_resourceApiLock); - - if (m_submit->m_hmdInitialized) - { - return &m_submit->m_hmd; - } - - return NULL; - } - BGFX_API_FUNC(const Stats* getPerfStats() ) { BGFX_MUTEX_SCOPE(m_resourceApiLock); diff --git a/src/hmd.cpp b/src/hmd.cpp deleted file mode 100644 index 056b8cbfc..000000000 --- a/src/hmd.cpp +++ /dev/null @@ -1,218 +0,0 @@ -/* - * Copyright 2011-2018 Branimir Karadzic. All rights reserved. - * License: https://github.com/bkaradzic/bgfx#license-bsd-2-clause - */ - -#include "hmd.h" - -namespace bgfx -{ - VR::VR() - : m_impl(NULL) - , m_framesUntilReconnect(0) - , m_enabled(false) - { - } - - void VR::init(VRImplI* _impl) - { - if (NULL == _impl) - { - return; - } - - if (!_impl->init() ) - { - return; - } - - m_impl = _impl; - m_impl->connect(&m_desc); - - if (!m_impl->isConnected() ) - { - connectFailed(); - return; - } - - m_hmdSize.m_w = m_desc.m_eyeSize[0].m_w + m_desc.m_eyeSize[1].m_w; - m_hmdSize.m_h = bx::uint32_max(m_desc.m_eyeSize[0].m_h, m_desc.m_eyeSize[1].m_h); - } - - void VR::shutdown() - { - if (NULL == m_impl) - { - return; - } - - m_impl->destroySwapChain(); - - if (m_impl->isConnected() ) - { - m_impl->disconnect(); - } - - m_impl->shutdown(); - m_impl = NULL; - m_enabled = false; - } - - void VR::getViewport(uint8_t _eye, Rect* _viewport) const - { - _viewport->m_x = uint16_t(_eye * (m_desc.m_eyeSize[_eye].m_w + 1) ); - _viewport->m_y = 0; - _viewport->m_width = uint16_t(m_desc.m_eyeSize[_eye].m_w); - _viewport->m_height = uint16_t(m_desc.m_eyeSize[_eye].m_h); - } - - void VR::makeRenderTargetActive() - { - BX_CHECK(m_enabled, "VR::renderEyeStart called while not enabled - render usage error"); - - if (NULL != m_impl) - { - m_impl->makeRenderTargetActive(m_desc); - } - } - - void VR::recenter() - { - if (NULL != m_impl) - { - m_impl->recenter(); - } - } - - void VR::preReset() - { - if (NULL != m_impl) - { - m_impl->destroyMirror(); - } - - m_enabled = false; - } - - void VR::postReset(int _msaaSamples, int _mirrorWidth, int _mirrorHeight) - { - if (NULL != m_impl - && m_impl->createSwapChain(m_desc, _msaaSamples, _mirrorWidth, _mirrorHeight) ) - { - m_enabled = true; - } - } - - void VR::flip() - { - if (NULL == m_impl - || !m_enabled) - { - return; - } - else if (!m_impl->isConnected() - && !tryReconnect() ) - { - return; - } - - if (!m_impl->submitSwapChain(m_desc) ) - { - m_impl->destroySwapChain(); - m_impl->disconnect(); - return; - } - } - - void VR::swap(HMD& _hmd) - { - _hmd.flags = BGFX_HMD_NONE; - - if (NULL == m_impl) - { - return; - } - - _hmd.flags = BGFX_HMD_DEVICE_RESOLUTION; - _hmd.deviceWidth = m_desc.m_deviceSize.m_w; - _hmd.deviceHeight = m_desc.m_deviceSize.m_h; - _hmd.width = uint16_t(m_hmdSize.m_w); - _hmd.height = uint16_t(m_hmdSize.m_h); - - if (!m_impl->updateTracking(_hmd) ) - { - m_impl->destroySwapChain(); - m_impl->disconnect(); - } - - if (!m_impl->isConnected() ) - { - return; - } - - for (int eye = 0; eye < 2; ++eye) - { - _hmd.eye[eye].fov[0] = m_desc.m_eyeFov[eye].m_up; - _hmd.eye[eye].fov[1] = m_desc.m_eyeFov[eye].m_down; - _hmd.eye[eye].fov[2] = m_desc.m_eyeFov[eye].m_left; - _hmd.eye[eye].fov[3] = m_desc.m_eyeFov[eye].m_right; - } - - m_impl->updateInput(_hmd); - if (m_enabled) - { - _hmd.flags |= BGFX_HMD_RENDERING; - } - } - - bool VR::tryReconnect() - { - if (!m_impl) - { - return false; - } - - BX_CHECK(!m_impl->isConnected(), "VR::tryReconnect called when already connected. Usage error"); - - --m_framesUntilReconnect; - if (m_framesUntilReconnect > 0) - { - return false; - } - - m_framesUntilReconnect = 90; - m_impl->connect(&m_desc); - if (!m_impl->isConnected() ) - { - connectFailed(); - return false; - } - - m_hmdSize.m_w = m_desc.m_eyeSize[0].m_w + m_desc.m_eyeSize[1].m_w; - m_hmdSize.m_h = bx::uint32_max(m_desc.m_eyeSize[0].m_h, m_desc.m_eyeSize[1].m_h); - return true; - } - - void VR::connectFailed() - { - // sane defaults - m_desc.m_deviceSize.m_w = 2160; - m_desc.m_deviceSize.m_h = 1200; - m_desc.m_deviceType = 0; - m_desc.m_refreshRate = 90.0f; - m_desc.m_neckOffset[0] = 0.0805f; - m_desc.m_neckOffset[1] = 0.075f; - - for (int eye = 0; eye < 2; ++eye) - { - m_desc.m_eyeFov[eye].m_up = 1.32928634f; - m_desc.m_eyeFov[eye].m_down = 1.32928634f; - } - - m_desc.m_eyeFov[0].m_left = 1.05865765f; - m_desc.m_eyeFov[0].m_right = 1.09236801f; - m_desc.m_eyeFov[1].m_left = 1.09236801f; - m_desc.m_eyeFov[1].m_right = 1.05865765f; - } - -} // namesapce bgfx diff --git a/src/hmd.h b/src/hmd.h deleted file mode 100644 index 57beae33a..000000000 --- a/src/hmd.h +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Copyright 2011-2018 Branimir Karadzic. All rights reserved. - * License: https://github.com/bkaradzic/bgfx#license-bsd-2-clause - */ - -#ifndef BGFX_HMD_H_HEADER_GUARD -#define BGFX_HMD_H_HEADER_GUARD - -#include "bgfx_p.h" - -namespace bgfx -{ - struct VRSize - { - uint32_t m_w; - uint32_t m_h; - }; - - struct VRFovTan - { - float m_up; - float m_down; - float m_left; - float m_right; - }; - - struct VRDesc - { - uint32_t m_deviceType; - float m_refreshRate; - VRSize m_deviceSize; - VRSize m_eyeSize[2]; - VRFovTan m_eyeFov[2]; - float m_neckOffset[2]; - }; - - struct BX_NO_VTABLE VRImplI - { - virtual ~VRImplI() = 0; - - virtual bool init() = 0; - virtual void shutdown() = 0; - virtual void connect(VRDesc* _desc) = 0; - virtual void disconnect() = 0; - virtual bool isConnected() const = 0; - - virtual bool updateTracking(HMD& _hmd) = 0; - virtual void updateInput(HMD& _hmd) = 0; - virtual void recenter() = 0; - - virtual bool createSwapChain(const VRDesc& _desc, int _msaaSamples, int _mirrorWidth, int _mirrorHeight) = 0; - virtual void destroySwapChain() = 0; - virtual void destroyMirror() = 0; - virtual void makeRenderTargetActive(const VRDesc& _desc) = 0; - virtual bool submitSwapChain(const VRDesc& _desc) = 0; - }; - - inline VRImplI::~VRImplI() - { - } - - class VR - { - public: - VR(); - - void init(VRImplI* _impl); - void shutdown(); - - bool isInitialized() const - { - return NULL != m_impl; - } - - bool isEnabled() const - { - return m_enabled; - } - - void getViewport(uint8_t _eye, Rect* _viewport) const; - void makeRenderTargetActive(); - void recenter(); - - void preReset(); - void postReset(int _msaaSamples, int _mirrorWidth, int _mirrorHeight); - void flip(); - void swap(HMD& _hmd); - - private: - bool tryReconnect(); - void connectFailed(); - - VRImplI* m_impl; - VRDesc m_desc; - VRSize m_hmdSize; - uint32_t m_framesUntilReconnect; - bool m_enabled; - }; - -} // namespace bgfx - -#endif // BGFX_HMD_H_HEADER_GUARD diff --git a/src/hmd_openvr.cpp b/src/hmd_openvr.cpp deleted file mode 100644 index 6e6ce4939..000000000 --- a/src/hmd_openvr.cpp +++ /dev/null @@ -1,95 +0,0 @@ -/* - * Copyright 2011-2018 Branimir Karadzic. All rights reserved. - * License: https://github.com/bkaradzic/bgfx#license-bsd-2-clause - */ - -#include "hmd_openvr.h" - -BX_PRAGMA_DIAGNOSTIC_IGNORED_CLANG_GCC("-Wunused-variable") -#include - -namespace bgfx -{ -#if BX_PLATFORM_WINDOWS -# define VR_CALLTYPE __cdecl -#else -# define VR_CALLTYPE -#endif - - typedef uint32_t (VR_CALLTYPE *PFN_VR_INITINTERNAL)(EVRInitError* peError, EVRApplicationType eType); - typedef void (VR_CALLTYPE *PFN_VR_SHUTDOWNINTERNAL)(); - typedef bool (VR_CALLTYPE *PFN_VR_ISHMDPRESENT)(); - typedef void* (VR_CALLTYPE *PFN_VR_GETGENERICINTERFACE)(const char* pchInterfaceVersion, EVRInitError* peError); - typedef bool (VR_CALLTYPE *PFN_VR_ISRUNTIMEINSTALLED)(); - typedef bool (VR_CALLTYPE *PFN_VR_ISINTERFACEVERSIONVALID)(const char *pchInterfaceVersion); - typedef uint32_t (VR_CALLTYPE *PFN_VR_GETINITTOKEN)(); - typedef const char* (VR_CALLTYPE *PFN_VR_GETVRINITERRORASSYMBOL)(EVRInitError error); - typedef const char* (VR_CALLTYPE *PFN_VR_GETVRINITERRORASENGLISHDESCRIPTION)(EVRInitError error); - - PFN_VR_INITINTERNAL VR_InitInternal; - PFN_VR_SHUTDOWNINTERNAL VR_ShutdownInternal; - PFN_VR_ISHMDPRESENT VR_IsHmdPresent; - PFN_VR_GETGENERICINTERFACE VR_GetGenericInterface; - PFN_VR_ISRUNTIMEINSTALLED VR_IsRuntimeInstalled; - PFN_VR_ISINTERFACEVERSIONVALID VR_IsInterfaceVersionValid; - PFN_VR_GETINITTOKEN VR_GetInitToken; - PFN_VR_GETVRINITERRORASSYMBOL VR_GetVRInitErrorAsSymbol; - PFN_VR_GETVRINITERRORASENGLISHDESCRIPTION VR_GetVRInitErrorAsEnglishDescription; - - void* loadOpenVR() - { - void* openvrdll = bx::dlopen( -#if BX_PLATFORM_LINUX - "libopenvr_api.so" -#elif BX_PLATFORM_OSX - "libopenvr_api.dylib" -#else - "openvr_api.dll" -#endif // BX_PLATFORM_* - ); - if (NULL != openvrdll) - { - VR_InitInternal = (PFN_VR_INITINTERNAL )bx::dlsym(openvrdll, "VR_InitInternal"); - VR_ShutdownInternal = (PFN_VR_SHUTDOWNINTERNAL )bx::dlsym(openvrdll, "VR_ShutdownInternal"); - VR_IsHmdPresent = (PFN_VR_ISHMDPRESENT )bx::dlsym(openvrdll, "VR_IsHmdPresent"); - VR_GetGenericInterface = (PFN_VR_GETGENERICINTERFACE )bx::dlsym(openvrdll, "VR_GetGenericInterface"); - VR_IsRuntimeInstalled = (PFN_VR_ISRUNTIMEINSTALLED )bx::dlsym(openvrdll, "VR_IsRuntimeInstalled"); - VR_IsInterfaceVersionValid = (PFN_VR_ISINTERFACEVERSIONVALID)bx::dlsym(openvrdll, "VR_IsInterfaceVersionValid"); - VR_GetInitToken = (PFN_VR_GETINITTOKEN )bx::dlsym(openvrdll, "VR_GetInitToken"); - VR_GetVRInitErrorAsSymbol = (PFN_VR_GETVRINITERRORASSYMBOL )bx::dlsym(openvrdll, "VR_GetVRInitErrorAsSymbol"); - VR_GetVRInitErrorAsEnglishDescription = (PFN_VR_GETVRINITERRORASENGLISHDESCRIPTION)bx::dlsym(openvrdll, "VR_GetVRInitErrorAsEnglishDescription"); - - if (NULL == VR_InitInternal - || NULL == VR_ShutdownInternal - || NULL == VR_IsHmdPresent - || NULL == VR_GetGenericInterface - || NULL == VR_IsRuntimeInstalled - || NULL == VR_IsInterfaceVersionValid - || NULL == VR_GetInitToken - || NULL == VR_GetVRInitErrorAsSymbol - || NULL == VR_GetVRInitErrorAsEnglishDescription) - { - bx::dlclose(openvrdll); - return NULL; - } - - EVRInitError err; - uint32_t token = VR_InitInternal(&err, EVRApplicationType_VRApplication_Scene); - BX_UNUSED(token); - - BX_TRACE("OpenVR: HMD is %spresent, Runtime is %sinstalled." - , VR_IsHmdPresent() ? "" : "not " - , VR_IsRuntimeInstalled() ? "" : "not " - ); - } - - return openvrdll; - } - - void unloadOpenVR(void* _openvrdll) - { - VR_ShutdownInternal(); - bx::dlclose(_openvrdll); - } - -} // namespace bgfx diff --git a/src/hmd_openvr.h b/src/hmd_openvr.h deleted file mode 100644 index 16a18145c..000000000 --- a/src/hmd_openvr.h +++ /dev/null @@ -1,18 +0,0 @@ -/* - * Copyright 2011-2018 Branimir Karadzic. All rights reserved. - * License: https://github.com/bkaradzic/bgfx#license-bsd-2-clause - */ - -#ifndef BGFX_OPENVR_H_HEADER_GUARD -#define BGFX_OPENVR_H_HEADER_GUARD - -#include "bgfx_p.h" - -namespace bgfx -{ - void* loadOpenVR(); - void unloadOpenVR(void*); - -} // namespace bgfx - -#endif // BGFX_OPENVR_H_HEADER_GUARD diff --git a/src/hmd_ovr.cpp b/src/hmd_ovr.cpp deleted file mode 100644 index f23d6799b..000000000 --- a/src/hmd_ovr.cpp +++ /dev/null @@ -1,210 +0,0 @@ -/* - * Copyright 2011-2018 Branimir Karadzic. All rights reserved. - * License: https://github.com/bkaradzic/bgfx#license-bsd-2-clause - */ - -#include "bgfx_p.h" - -#if BGFX_CONFIG_USE_OVR - -#include "hmd_ovr.h" - -namespace bgfx -{ -#define _OVR_CHECK(_call) \ - BX_MACRO_BLOCK_BEGIN \ - ovrResult __result__ = _call; \ - BX_CHECK(OVR_SUCCESS(__result__), #_call " FAILED %d", __result__); \ - BX_MACRO_BLOCK_END - -#if BGFX_CONFIG_DEBUG -# define OVR_CHECK(_call) _OVR_CHECK(_call) -#else -# define OVR_CHECK(_call) _call -#endif // BGFX_CONFIG_DEBUG - - VRImplOVR::VRImplOVR() - : m_session(NULL) - { - } - - VRImplOVR::~VRImplOVR() - { - if (NULL != g_platformData.session) - { - return; - } - - BX_CHECK(NULL == m_session, "OVR not shutdown properly."); - } - - bool VRImplOVR::init() - { - if (NULL != g_platformData.session) - { - return true; - } - - ovrResult initialized = ovr_Initialize(NULL); - if (!OVR_SUCCESS(initialized)) - { - BX_TRACE("Unable to initialize OVR runtime."); - return false; - } - - return true; - } - - void VRImplOVR::shutdown() - { - if (NULL != g_platformData.session) - { - return; - } - - ovr_Shutdown(); - } - - void VRImplOVR::connect(VRDesc* _desc) - { - if (NULL == g_platformData.session) - { - ovrGraphicsLuid luid; - ovrResult result = ovr_Create(&m_session, &luid); - if (!OVR_SUCCESS(result)) - { - BX_TRACE("Failed to create OVR device."); - return; - } - } - else - { - m_session = (ovrSession)g_platformData.session; - } - - ovrHmdDesc hmdDesc = ovr_GetHmdDesc(m_session); - _desc->m_deviceType = hmdDesc.Type; - _desc->m_refreshRate = hmdDesc.DisplayRefreshRate; - _desc->m_deviceSize.m_w = hmdDesc.Resolution.w; - _desc->m_deviceSize.m_h = hmdDesc.Resolution.h; - - BX_TRACE("OVR HMD: %s, %s, firmware: %d.%d" - , hmdDesc.ProductName - , hmdDesc.Manufacturer - , hmdDesc.FirmwareMajor - , hmdDesc.FirmwareMinor - ); - - ovrSizei eyeSize[2] = - { - ovr_GetFovTextureSize(m_session, ovrEye_Left, hmdDesc.DefaultEyeFov[0], 1.0f), - ovr_GetFovTextureSize(m_session, ovrEye_Right, hmdDesc.DefaultEyeFov[0], 1.0f), - }; - - for (int eye = 0; eye < 2; ++eye) - { - BX_STATIC_ASSERT(sizeof(_desc->m_eyeFov[eye]) == sizeof(hmdDesc.DefaultEyeFov[eye])); - bx::memCopy(&_desc->m_eyeFov[eye], &hmdDesc.DefaultEyeFov[eye], sizeof(_desc->m_eyeFov[eye])); - _desc->m_eyeSize[eye].m_w = eyeSize[eye].w; - _desc->m_eyeSize[eye].m_h = eyeSize[eye].h; - } - - float neckOffset[2] = {OVR_DEFAULT_NECK_TO_EYE_HORIZONTAL, OVR_DEFAULT_NECK_TO_EYE_VERTICAL}; - ovr_GetFloatArray(m_session, OVR_KEY_NECK_TO_EYE_DISTANCE, neckOffset, 2); - _desc->m_neckOffset[0] = neckOffset[0]; - _desc->m_neckOffset[1] = neckOffset[1]; - - // build constant layer settings - m_renderLayer.Header.Type = ovrLayerType_EyeFov; - m_renderLayer.Header.Flags = 0; - m_renderLayer.Fov[0] = hmdDesc.DefaultEyeFov[0]; - m_renderLayer.Fov[1] = hmdDesc.DefaultEyeFov[1]; - m_renderLayer.Viewport[0].Pos.x = 0; - m_renderLayer.Viewport[0].Pos.y = 0; - m_renderLayer.Viewport[0].Size.w = _desc->m_eyeSize[0].m_w; - m_renderLayer.Viewport[0].Size.h = _desc->m_eyeSize[0].m_h; - m_renderLayer.Viewport[1].Pos.x = _desc->m_eyeSize[0].m_w+1; - m_renderLayer.Viewport[1].Pos.y = 0; - m_renderLayer.Viewport[1].Size.w = _desc->m_eyeSize[1].m_w; - m_renderLayer.Viewport[1].Size.h = _desc->m_eyeSize[1].m_h; - - m_viewScale.HmdSpaceToWorldScaleInMeters = 1.0f; - for (int eye = 0; eye < 2; ++eye) - { - ovrEyeRenderDesc erd = ovr_GetRenderDesc(m_session, static_cast(eye), hmdDesc.DefaultEyeFov[eye]); - m_viewScale.HmdToEyeOffset[eye] = erd.HmdToEyeOffset; - m_eyeFov[eye] = erd.Fov; - m_pixelsPerTanAngleAtCenter[eye] = erd.PixelsPerTanAngleAtCenter; - } - } - - void VRImplOVR::disconnect() - { - if (NULL != g_platformData.session) - { - return; - } - - if (NULL != m_session) - { - ovr_Destroy(m_session); - m_session = NULL; - } - } - - bool VRImplOVR::updateTracking(HMD& _hmd) - { - if (NULL == m_session) - { - return false; - } - - ovr_GetEyePoses(m_session, 0, ovrTrue, m_viewScale.HmdToEyeOffset, m_renderLayer.RenderPose, &m_renderLayer.SensorSampleTime); - - for (int eye = 0; eye < 2; ++eye) - { - const ovrPosef& pose = m_renderLayer.RenderPose[eye]; - HMD::Eye& hmdEye = _hmd.eye[eye]; - - hmdEye.rotation[0] = pose.Orientation.x; - hmdEye.rotation[1] = pose.Orientation.y; - hmdEye.rotation[2] = pose.Orientation.z; - hmdEye.rotation[3] = pose.Orientation.w; - hmdEye.translation[0] = pose.Position.x; - hmdEye.translation[1] = pose.Position.y; - hmdEye.translation[2] = pose.Position.z; - hmdEye.viewOffset[0] = -m_viewScale.HmdToEyeOffset[eye].x; - hmdEye.viewOffset[1] = -m_viewScale.HmdToEyeOffset[eye].y; - hmdEye.viewOffset[2] = -m_viewScale.HmdToEyeOffset[eye].z; - - hmdEye.pixelsPerTanAngle[0] = m_pixelsPerTanAngleAtCenter[eye].x; - hmdEye.pixelsPerTanAngle[1] = m_pixelsPerTanAngleAtCenter[eye].y; - - ovrMatrix4f projection = ovrMatrix4f_Projection(m_eyeFov[eye], 0.1f, 1000.0f, ovrProjection_LeftHanded); - for (uint32_t ii = 0; ii < 4; ++ii) - { - for (uint32_t jj = 0; jj < 4; ++jj) - { - hmdEye.projection[4*ii + jj] = projection.M[jj][ii]; - } - } - } - - return true; - } - - void VRImplOVR::updateInput(HMD& /* _hmd */) - { - } - - void VRImplOVR::recenter() - { - if (NULL != m_session) - { - ovr_RecenterTrackingOrigin(m_session); - } - } - -} // namespace bgfx - -#endif // BGFX_CONFIG_USE_OVR diff --git a/src/hmd_ovr.h b/src/hmd_ovr.h deleted file mode 100644 index f5bae3aa5..000000000 --- a/src/hmd_ovr.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright 2011-2018 Branimir Karadzic. All rights reserved. - * License: https://github.com/bkaradzic/bgfx#license-bsd-2-clause - */ - -#ifndef BGFX_OVR_H_HEADER_GUARD -#define BGFX_OVR_H_HEADER_GUARD - -#include "bgfx_p.h" - -#if BGFX_CONFIG_USE_OVR - -# include "hmd.h" -# include - -# define OVR_VERSION_(_a, _b, _c) (_a * 10000 + _b * 100 + _c) -# define OVR_VERSION OVR_VERSION_(OVR_PRODUCT_VERSION, OVR_MAJOR_VERSION, OVR_MINOR_VERSION) - -# include - -# if BGFX_CONFIG_RENDERER_DIRECT3D11 -# include -# endif // BGFX_CONFIG_RENDERER_DIRECT3D11 - -# if BGFX_CONFIG_RENDERER_OPENGL -# include -# endif // BGFX_CONFIG_RENDERER_OPENGL - - -namespace bgfx -{ - class VRImplOVR : public VRImplI - { - public: - VRImplOVR(); - virtual ~VRImplOVR() = 0; - - virtual bool init() override; - virtual void shutdown() override; - virtual void connect(VRDesc* _desc) override; - virtual void disconnect() override; - - virtual bool isConnected() const override - { - return NULL != m_session; - } - - virtual bool updateTracking(HMD& _hmd) override; - virtual void updateInput(HMD& _hmd) override; - virtual void recenter() override; - - virtual bool createSwapChain(const VRDesc& _desc, int _msaaSamples, int _mirrorWidth, int _mirrorHeight) override = 0; - virtual void destroySwapChain() override = 0; - virtual void destroyMirror() override = 0; - virtual void makeRenderTargetActive(const VRDesc& _desc) override = 0; - virtual bool submitSwapChain(const VRDesc& _desc) override = 0; - - protected: - ovrSession m_session; - ovrLayerEyeFov m_renderLayer; - ovrViewScaleDesc m_viewScale; - ovrFovPort m_eyeFov[2]; - ovrVector2f m_pixelsPerTanAngleAtCenter[2]; - }; - -} // namespace bgfx - -#endif // BGFX_CONFIG_USE_OVR - -#endif // BGFX_OVR_H_HEADER_GUARD diff --git a/src/renderer.h b/src/renderer.h index 9a5f02b32..ef45002a7 100644 --- a/src/renderer.h +++ b/src/renderer.h @@ -47,12 +47,12 @@ namespace bgfx { } - ViewState(Frame* _frame, bool _hmdEnabled) + ViewState(Frame* _frame, bool _stereo) { - reset(_frame, _hmdEnabled); + reset(_frame, _stereo); } - void reset(Frame* _frame, bool _hmdEnabled) + void reset(Frame* _frame, bool _stereo) { m_alphaRef = 0.0f; m_invViewCached = UINT16_MAX; @@ -62,16 +62,15 @@ namespace bgfx m_view[0] = m_viewTmp[0]; m_view[1] = m_viewTmp[1]; - if (_hmdEnabled) + if (_stereo) { - HMD& hmd = _frame->m_hmd; - m_view[0] = m_viewTmp[0]; Matrix4 viewAdjust; bx::mtxIdentity(viewAdjust.un.val); for (uint32_t eye = 0; eye < 2; ++eye) { +/* const HMD::Eye& hmdEye = hmd.eye[eye]; viewAdjust.un.val[12] = hmdEye.viewOffset[0]; viewAdjust.un.val[13] = hmdEye.viewOffset[1]; @@ -91,6 +90,7 @@ namespace bgfx bx::memCopy(&m_view[0][ii].un.f4x4, &_frame->m_view[ii].m_view.un.f4x4, sizeof(Matrix4) ); } } +*/ } } else @@ -103,7 +103,7 @@ namespace bgfx for (uint32_t ii = 0; ii < BGFX_CONFIG_MAX_VIEWS; ++ii) { - for (uint32_t eye = 0; eye < uint32_t(_hmdEnabled)+1; ++eye) + for (uint32_t eye = 0; eye < uint32_t(_stereo)+1; ++eye) { bx::float4x4_mul(&m_viewProj[eye][ii].un.f4x4 , &m_view[eye][ii].un.f4x4 diff --git a/src/renderer_d3d11.cpp b/src/renderer_d3d11.cpp index 45f8589d0..45d028b78 100644 --- a/src/renderer_d3d11.cpp +++ b/src/renderer_d3d11.cpp @@ -8,10 +8,6 @@ #if BGFX_CONFIG_RENDERER_DIRECT3D11 # include "renderer_d3d11.h" -#if BGFX_CONFIG_USE_OVR -# include "hmd_ovr.h" -#endif // BGFX_CONFIG_USE_OVR - namespace bgfx { namespace d3d11 { static wchar_t s_viewNameW[BGFX_CONFIG_MAX_VIEWS][BGFX_CONFIG_MAX_VIEW_NAME]; @@ -717,15 +713,8 @@ namespace bgfx { namespace d3d11 ErrorState::Enum errorState = ErrorState::Default; - // Must be before device creation, and before RenderDoc. - VRImplI* vrImpl = NULL; -#if BGFX_CONFIG_USE_OVR - vrImpl = &m_ovrRender; -#endif // BGFX_CONFIG_USE_OVR - m_ovr.init(vrImpl); - - if (!m_ovr.isInitialized() - && (_init.debug || _init.profile) ) + if (_init.debug + || _init.profile) { m_renderdocdll = loadRenderDoc(); } @@ -1141,9 +1130,6 @@ namespace bgfx { namespace d3d11 | BGFX_CAPS_TEXTURE_DIRECT_ACCESS : 0) | BGFX_CAPS_SWAP_CHAIN - | (m_ovr.isInitialized() - ? BGFX_CAPS_HMD - : 0) | BGFX_CAPS_DRAW_INDIRECT | BGFX_CAPS_TEXTURE_BLIT | BGFX_CAPS_TEXTURE_READ_BACK @@ -1555,7 +1541,6 @@ namespace bgfx { namespace d3d11 m_agsdll = NULL; unloadRenderDoc(m_renderdocdll); - m_ovr.shutdown(); break; } @@ -1565,7 +1550,6 @@ namespace bgfx { namespace d3d11 void shutdown() { preReset(); - m_ovr.shutdown(); if (NULL != m_ags) { @@ -2129,8 +2113,7 @@ namespace bgfx { namespace d3d11 ovrPostReset(); - // If OVR doesn't create separate depth stencil view, create default one. - if (!m_ovr.isEnabled() && NULL == m_backBufferDepthStencil) + if (NULL == m_backBufferDepthStencil) { D3D11_TEXTURE2D_DESC dsd; dsd.Width = m_scd.width; @@ -2150,14 +2133,7 @@ namespace bgfx { namespace d3d11 DX_RELEASE(depthStencil, 0); } - if (m_ovr.isEnabled() ) - { - m_ovr.makeRenderTargetActive(); - } - else - { - m_deviceCtx->OMSetRenderTargets(1, &m_backBufferColor, m_backBufferDepthStencil); - } + m_deviceCtx->OMSetRenderTargets(1, &m_backBufferColor, m_backBufferDepthStencil); m_currentColor = m_backBufferColor; m_currentDepthStencil = m_backBufferDepthStencil; @@ -2175,7 +2151,7 @@ namespace bgfx { namespace d3d11 return m_lost; } - void flip(HMD& _hmd) override + void flip() override { if (NULL != m_swapChain && !m_lost) @@ -2195,13 +2171,7 @@ namespace bgfx { namespace d3d11 { if (m_needPresent) { - m_ovr.flip(); - m_ovr.swap(_hmd); - - if (!m_ovr.isEnabled() ) - { - hr = m_swapChain->Present(syncInterval, 0); - } + hr = m_swapChain->Present(syncInterval, 0); m_needPresent = false; } @@ -2285,8 +2255,6 @@ namespace bgfx { namespace d3d11 m_resolution.reset &= ~BGFX_RESET_SUSPEND; } - bool recenter = !!(_resolution.reset & BGFX_RESET_HMD_RECENTER); - uint32_t maxAnisotropy = 1; if (!!(_resolution.reset & BGFX_RESET_MAXANISOTROPY) ) { @@ -2314,7 +2282,6 @@ namespace bgfx { namespace d3d11 } const uint32_t maskFlags = ~(0 - | BGFX_RESET_HMD_RECENTER | BGFX_RESET_MAXANISOTROPY | BGFX_RESET_DEPTH_CLAMP | BGFX_RESET_SUSPEND @@ -2382,19 +2349,9 @@ namespace bgfx { namespace d3d11 m_scd.bufferCount = m_swapBufferCount; } - SwapChainDesc* scd = &m_scd; - SwapChainDesc swapChainScd; - if (0 != (m_resolution.reset & BGFX_RESET_HMD) - && m_ovr.isInitialized() ) - { - swapChainScd = m_scd; - swapChainScd.sampleDesc = s_msaa[0]; - scd = &swapChainScd; - } - HRESULT hr; hr = m_dxgi.createSwapChain(m_device - , *scd + , m_scd , &m_swapChain ); BGFX_FATAL(SUCCEEDED(hr), bgfx::Fatal::UnableToInitialize, "Failed to create swap chain."); @@ -2404,11 +2361,6 @@ namespace bgfx { namespace d3d11 postReset(); } - if (recenter) - { - m_ovr.recenter(); - } - return false; } @@ -2471,15 +2423,8 @@ namespace bgfx { namespace d3d11 if (!isValid(_fbh) ) { - if (m_ovr.isEnabled() ) - { - m_ovr.makeRenderTargetActive(); - } - else - { - m_currentColor = m_backBufferColor; - m_currentDepthStencil = m_backBufferDepthStencil; - } + m_currentColor = m_backBufferColor; + m_currentDepthStencil = m_backBufferDepthStencil; m_deviceCtx->OMSetRenderTargets(1, &m_currentColor, m_currentDepthStencil); m_needPresent |= _needPresent; @@ -3485,11 +3430,6 @@ namespace bgfx { namespace d3d11 bool m_rtMsaa; bool m_timerQuerySupport; bool m_directAccessSupport; - - VR m_ovr; -#if BGFX_CONFIG_USE_OVR - VRImplOVRD3D11 m_ovrRender; -#endif // BGFX_CONFIG_USE_OVR }; static RendererContextD3D11* s_renderD3D11; @@ -5459,9 +5399,7 @@ namespace bgfx { namespace d3d11 RenderBind currentBind; currentBind.clear(); - _render->m_hmdInitialized = m_ovr.isInitialized(); - - const bool hmdEnabled = m_ovr.isEnabled(); + const bool hmdEnabled = false; static ViewState viewState; viewState.reset(_render, hmdEnabled); @@ -5590,15 +5528,8 @@ namespace bgfx { namespace d3d11 ); } - if (m_ovr.isEnabled() ) - { - m_ovr.getViewport(eye, &viewState.m_rect); - } - else - { - viewState.m_rect.m_x = eye * (viewState.m_rect.m_width+1)/2; - viewState.m_rect.m_width /= 2; - } + viewState.m_rect.m_x = eye * (viewState.m_rect.m_width+1)/2; + viewState.m_rect.m_width /= 2; } else { @@ -6452,14 +6383,14 @@ namespace bgfx { namespace d3d11 ); char hmd[16]; - bx::snprintf(hmd, BX_COUNTOF(hmd), ", [%c] HMD ", hmdEnabled ? '\xfe' : ' '); + bx::snprintf(hmd, BX_COUNTOF(hmd), ", [ ] HMD "); const uint32_t msaa = (m_resolution.reset&BGFX_RESET_MSAA_MASK)>>BGFX_RESET_MSAA_SHIFT; tvm.printf(10, pos++, 0x8b, " Reset flags: [%c] vsync, [%c] MSAAx%d%s, [%c] MaxAnisotropy " , !!(m_resolution.reset&BGFX_RESET_VSYNC) ? '\xfe' : ' ' , 0 != msaa ? '\xfe' : ' ' , 1<m_hmdInitialized = false; - const bool hmdEnabled = false; static ViewState viewState; viewState.reset(_render, hmdEnabled); diff --git a/src/renderer_d3d9.cpp b/src/renderer_d3d9.cpp index 91421cf20..0e8ab4817 100644 --- a/src/renderer_d3d9.cpp +++ b/src/renderer_d3d9.cpp @@ -1403,7 +1403,6 @@ namespace bgfx { namespace d3d9 : 1 ; const uint32_t maskFlags = ~(0 - | BGFX_RESET_HMD_RECENTER | BGFX_RESET_MAXANISOTROPY | BGFX_RESET_DEPTH_CLAMP | BGFX_RESET_SUSPEND @@ -1523,7 +1522,7 @@ namespace bgfx { namespace d3d9 return false; } - void flip(HMD& /*_hmd*/) override + void flip() override { if (NULL != m_swapChain) { diff --git a/src/renderer_gl.cpp b/src/renderer_gl.cpp index a8d05ef5b..530ab3b20 100644 --- a/src/renderer_gl.cpp +++ b/src/renderer_gl.cpp @@ -9,7 +9,6 @@ # include "renderer_gl.h" # include # include -# include "hmd_ovr.h" namespace bgfx { namespace gl { @@ -1798,13 +1797,6 @@ BX_TRACE("%d, %d, %d, %s", _array, _srgb, _mipAutogen, getName(_format) ); setRenderContextSize(_init.resolution.width, _init.resolution.height); - // Must be after context is initialized?! - VRImplI* vrImpl = NULL; -#if BGFX_CONFIG_USE_OVR - vrImpl = &m_ovrRender; -#endif - m_ovr.init(vrImpl); - m_vendor = getGLString(GL_VENDOR); m_renderer = getGLString(GL_RENDERER); m_version = getGLString(GL_VERSION); @@ -2595,7 +2587,6 @@ BX_TRACE("%d, %d, %d, %s", _array, _srgb, _mipAutogen, getName(_format) ); } ovrPreReset(); - m_ovr.shutdown(); m_glctx.destroy(); @@ -2606,7 +2597,6 @@ BX_TRACE("%d, %d, %d, %s", _array, _srgb, _mipAutogen, getName(_format) ); void shutdown() { ovrPreReset(); - m_ovr.shutdown(); if (m_vaoSupport) { @@ -2657,7 +2647,7 @@ BX_TRACE("%d, %d, %d, %s", _array, _srgb, _mipAutogen, getName(_format) ); return false; } - void flip(HMD& _hmd) override + void flip() override { if (m_flip) { @@ -2673,9 +2663,6 @@ BX_TRACE("%d, %d, %d, %s", _array, _srgb, _mipAutogen, getName(_format) ); if (m_needPresent) { - m_ovr.flip(); - m_ovr.swap(_hmd); - // Ensure the back buffer is bound as the source of the flip GL_CHECK(glBindFramebuffer(GL_FRAMEBUFFER, m_backBufferFbo)); @@ -3122,7 +3109,6 @@ BX_TRACE("%d, %d, %d, %s", _array, _srgb, _mipAutogen, getName(_format) ); void updateResolution(const Resolution& _resolution) { - bool recenter = !!(_resolution.reset & BGFX_RESET_HMD_RECENTER); m_maxAnisotropy = !!(_resolution.reset & BGFX_RESET_MAXANISOTROPY) ? m_maxAnisotropyDefault : 0.0f @@ -3141,7 +3127,6 @@ BX_TRACE("%d, %d, %d, %s", _array, _srgb, _mipAutogen, getName(_format) ); } const uint32_t maskFlags = ~(0 - | BGFX_RESET_HMD_RECENTER | BGFX_RESET_MAXANISOTROPY | BGFX_RESET_DEPTH_CLAMP | BGFX_RESET_SUSPEND @@ -3159,12 +3144,6 @@ BX_TRACE("%d, %d, %d, %s", _array, _srgb, _mipAutogen, getName(_format) ); m_textVideoMem.resize(false, _resolution.width, _resolution.height); m_textVideoMem.clear(); - if ( (flags & BGFX_RESET_HMD) - && m_ovr.isInitialized() ) - { - flags &= ~BGFX_RESET_MSAA_MASK; - } - setRenderContextSize(m_resolution.width , m_resolution.height , flags @@ -3179,22 +3158,10 @@ BX_TRACE("%d, %d, %d, %s", _array, _srgb, _mipAutogen, getName(_format) ); ovrPreReset(); ovrPostReset(); - if (m_ovr.isEnabled() ) - { - m_ovr.makeRenderTargetActive(); - } - else - { - m_currentFbo = 0; - } + m_currentFbo = 0; GL_CHECK(glBindFramebuffer(GL_FRAMEBUFFER, m_currentFbo) ); } - - if (recenter) - { - m_ovr.recenter(); - } } void setShaderUniform4f(uint8_t /*_flags*/, uint32_t _regIndex, const void* _val, uint32_t _numRegs) @@ -3235,14 +3202,7 @@ BX_TRACE("%d, %d, %d, %s", _array, _srgb, _mipAutogen, getName(_format) ); { m_needPresent |= true; - if (m_ovr.isEnabled() ) - { - m_ovr.makeRenderTargetActive(); - } - else - { - m_currentFbo = m_msaaBackBufferFbo; - } + m_currentFbo = m_msaaBackBufferFbo; if (m_srgbWriteControlSupport) { @@ -3972,11 +3932,6 @@ BX_TRACE("%d, %d, %d, %s", _array, _srgb, _mipAutogen, getName(_format) ); Workaround m_workaround; GLuint m_currentFbo; - - VR m_ovr; -#if BGFX_CONFIG_USE_OVR - VRImplOVRGL m_ovrRender; -#endif // BGFX_CONFIG_USE_OVR }; RendererContextGL* s_renderGL; @@ -6643,9 +6598,7 @@ BX_TRACE("%d, %d, %d, %s", _array, _srgb, _mipAutogen, getName(_format) ); RenderBind currentBind; currentBind.clear(); - _render->m_hmdInitialized = m_ovr.isInitialized(); - - const bool hmdEnabled = m_ovr.isEnabled(); + const bool hmdEnabled = false; static ViewState viewState; viewState.reset(_render, hmdEnabled); @@ -6656,10 +6609,7 @@ BX_TRACE("%d, %d, %d, %s", _array, _srgb, _mipAutogen, getName(_format) ); BlitState bs(_render); - int32_t resolutionHeight = hmdEnabled - ? _render->m_hmd.height - : _render->m_resolution.height - ; + int32_t resolutionHeight = _render->m_resolution.height; uint32_t blendFactor = 0; uint8_t primIndex; @@ -6749,10 +6699,7 @@ BX_TRACE("%d, %d, %d, %s", _array, _srgb, _mipAutogen, getName(_format) ); if (_render->m_view[view].m_fbh.idx != fbh.idx) { fbh = _render->m_view[view].m_fbh; - resolutionHeight = hmdEnabled - ? _render->m_hmd.height - : _render->m_resolution.height - ; + resolutionHeight = _render->m_resolution.height; resolutionHeight = setFrameBuffer(fbh, resolutionHeight, discardFlags); } @@ -6792,15 +6739,8 @@ BX_TRACE("%d, %d, %d, %s", _array, _srgb, _mipAutogen, getName(_format) ); GL_CHECK(glInsertEventMarker(0, viewName) ); } - if (m_ovr.isEnabled() ) - { - m_ovr.getViewport(eye, &viewState.m_rect); - } - else - { - viewState.m_rect.m_x = eye * (viewState.m_rect.m_width+1)/2; - viewState.m_rect.m_width /= 2; - } + viewState.m_rect.m_x = eye * (viewState.m_rect.m_width+1)/2; + viewState.m_rect.m_width /= 2; } else { @@ -7783,14 +7723,14 @@ BX_TRACE("%d, %d, %d, %s", _array, _srgb, _mipAutogen, getName(_format) ); ); char hmd[16]; - bx::snprintf(hmd, BX_COUNTOF(hmd), ", [%c] HMD ", hmdEnabled ? '\xfe' : ' '); + bx::snprintf(hmd, BX_COUNTOF(hmd), ", [ ] HMD "); const uint32_t msaa = (m_resolution.reset&BGFX_RESET_MSAA_MASK)>>BGFX_RESET_MSAA_SHIFT; tvm.printf(10, pos++, 0x8b, " Reset flags: [%c] vsync, [%c] MSAAx%d%s, [%c] MaxAnisotropy " , !!(m_resolution.reset&BGFX_RESET_VSYNC) ? '\xfe' : ' ' , 0 != msaa ? '\xfe' : ' ' , 1<m_hmdInitialized = false; - const bool hmdEnabled = false; ViewState viewState(_render, hmdEnabled); viewState.reset(_render, hmdEnabled);