Browse Source

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

Branimir Karadžić 10 years ago
parent
commit
ad4b2f134f
4 changed files with 28 additions and 4 deletions
  1. 15 0
      examples/common/entry/input.cpp
  2. 3 0
      examples/common/entry/input.h
  3. 9 3
      src/ovr.cpp
  4. 1 1
      src/ovr.h

+ 15 - 0
examples/common/entry/input.cpp

@@ -109,6 +109,16 @@ struct Keyboard
 		return decodeKeyState(m_key[_key], *_modifiers);
 	}
 
+	uint8_t getModifiersState()
+	{
+		uint8_t modifiers = 0;
+		for (uint32_t ii = 0; ii < entry::Key::Count; ++ii)
+		{
+			modifiers |= (m_key[ii]>>16)&0xff;
+		}
+		return modifiers;
+	}
+
 	void pushChar(uint8_t _len, const uint8_t _char[4])
 	{
 		for (uint32_t len = m_ring.reserve(4)
@@ -314,6 +324,11 @@ bool inputGetKeyState(entry::Key::Enum _key, uint8_t* _modifiers)
 	return s_input->m_keyboard.getKeyState(_key, _modifiers);
 }
 
+uint8_t inputGetModifiersState()
+{
+	return s_input->m_keyboard.getModifiersState();
+}
+
 void inputChar(uint8_t _len, const uint8_t _char[4])
 {
 	s_input->m_keyboard.pushChar(_len, _char);

+ 3 - 0
examples/common/entry/input.h

@@ -42,6 +42,9 @@ void inputSetKeyState(entry::Key::Enum  _key, uint8_t _modifiers, bool _down);
 ///
 bool inputGetKeyState(entry::Key::Enum _key, uint8_t* _modifiers = NULL);
 
+///
+uint8_t inputGetModifiersState();
+
 /// Adds single UTF-8 encoded character into input buffer.
 void inputChar(uint8_t _len, const uint8_t _char[4]);
 

+ 9 - 3
src/ovr.cpp

@@ -9,6 +9,12 @@
 
 namespace bgfx
 {
+#if OVR_VERSION <= OVR_VERSION_050
+	static const int s_eyeBuffer = 100;
+#else
+	static const int s_eyeBuffer = 8;
+#endif // OVR_VERSION...
+
 	OVR::OVR()
 		: m_hmd(NULL)
 		, m_isenabled(false)
@@ -50,7 +56,7 @@ namespace bgfx
 
 		ovrSizei sizeL = ovrHmd_GetFovTextureSize(m_hmd, ovrEye_Left,  m_hmd->DefaultEyeFov[0], 1.0f);
 		ovrSizei sizeR = ovrHmd_GetFovTextureSize(m_hmd, ovrEye_Right, m_hmd->DefaultEyeFov[1], 1.0f);
-		m_rtSize.w = sizeL.w + sizeR.w;
+		m_rtSize.w = sizeL.w + sizeR.w + s_eyeBuffer;
 		m_rtSize.h = bx::uint32_max(sizeL.h, sizeR.h);
 		m_warning = true;
 	}
@@ -169,12 +175,12 @@ ovrError:
 			ovrRecti rect;
 			rect.Pos.x  = 0;
 			rect.Pos.y  = 0;
-			rect.Size.w = m_rtSize.w/2;
+			rect.Size.w = (m_rtSize.w - s_eyeBuffer)/2;
 			rect.Size.h = m_rtSize.h;
 
 			m_texture[0].Header.RenderViewport = rect;
 
-			rect.Pos.x += rect.Size.w;
+			rect.Pos.x += rect.Size.w + s_eyeBuffer;
 			m_texture[1].Header.RenderViewport = rect;
 
 			m_timing = ovrHmd_BeginFrame(m_hmd, 0);

+ 1 - 1
src/ovr.h

@@ -13,7 +13,7 @@
 #	include <OVR_Version.h>
 
 #	define OVR_VERSION_(_a, _b, _c) (_a * 10000 + _b * 100 + _c)
-#	define OVR_VERSION     OVR_VERSION_(OVR_MAJOR_VERSION, OVR_MINOR_VERSION, OVR_BUILD_VERSION)
+#	define OVR_VERSION     OVR_VERSION_(OVR_PRODUCT_VERSION, OVR_MAJOR_VERSION, OVR_MINOR_VERSION)
 #	define OVR_VERSION_042 OVR_VERSION_(0, 4, 2)
 #	define OVR_VERSION_043 OVR_VERSION_(0, 4, 3)
 #	define OVR_VERSION_044 OVR_VERSION_(0, 4, 4)