Merge branch 'master' of github.com:bkaradzic/bgfx

This commit is contained in:
Branimir Karadžić 2015-04-17 19:27:38 -07:00
commit 62d2d744f9
3 changed files with 23 additions and 6 deletions

View file

@ -117,6 +117,7 @@ namespace bgfx
| ovrDistortionCap_TimeWarp
| ovrDistortionCap_Overdrive
| ovrDistortionCap_NoRestore
| ovrDistortionCap_HqDistortion
, eyeFov
, m_erd
);
@ -174,6 +175,13 @@ ovrError:
m_texture[1].Header.RenderViewport = rect;
m_timing = ovrHmd_BeginFrame(m_hmd, 0);
#if OVR_VERSION > OVR_VERSION_042
m_pose[0] = ovrHmd_GetHmdPosePerEye(m_hmd, ovrEye_Left);
m_pose[1] = ovrHmd_GetHmdPosePerEye(m_hmd, ovrEye_Right);
#else
m_pose[0] = ovrHmd_GetEyePose(m_hmd, ovrEye_Left);
m_pose[1] = ovrHmd_GetEyePose(m_hmd, ovrEye_Right);
#endif // OVR_VERSION > OVR_VERSION_042
}
}

View file

@ -12,12 +12,19 @@ namespace bgfx
{
struct ViewState
{
ViewState() { }
ViewState(Frame* _render, bool _hmdEnabled)
: m_alphaRef(0.0f)
, m_invViewCached(UINT16_MAX)
, m_invProjCached(UINT16_MAX)
, m_invViewProjCached(UINT16_MAX)
{
reset(_render, _hmdEnabled);
}
void reset(Frame* _render, bool _hmdEnabled)
{
m_alphaRef = 0.0f;
m_invViewCached = UINT16_MAX;
m_invProjCached = UINT16_MAX;
m_invViewProjCached = UINT16_MAX;
m_view[0] = _render->m_view;
m_view[1] = m_viewTmp[1];

View file

@ -942,8 +942,8 @@ BX_PRAGMA_DIAGNOSTIC_POP();
DX_RELEASE(m_swapChain, 0);
DX_RELEASE(m_deviceCtx, 0);
DX_RELEASE(m_device, 0);
DX_RELEASE(m_factory, 0);
DX_RELEASE(m_device, 0);
unloadRenderDoc(m_renderdocdll);
@ -2459,6 +2459,7 @@ BX_PRAGMA_DIAGNOSTIC_POP();
void* m_uniforms[BGFX_CONFIG_MAX_UNIFORMS];
Matrix4 m_predefinedUniforms[PredefinedUniform::Count];
UniformRegistry m_uniformReg;
ViewState m_viewState;
StateCacheT<ID3D11BlendState> m_blendStateCache;
StateCacheT<ID3D11DepthStencilState> m_depthStencilStateCache;
@ -3305,7 +3306,8 @@ BX_PRAGMA_DIAGNOSTIC_POP();
const bool hmdEnabled = m_ovr.isEnabled() || m_ovr.isDebug();
_render->m_hmdEnabled = hmdEnabled;
ViewState viewState(_render, hmdEnabled);
ViewState& viewState = m_viewState;
viewState.reset(_render, hmdEnabled);
bool wireframe = !!(_render->m_debug&BGFX_DEBUG_WIREFRAME);
bool scissorEnabled = false;