oculus1

changeset 8:3265970a7315

added xcode project
author John Tsiombikas <nuclear@member.fsf.org>
date Wed, 18 Sep 2013 22:15:04 +0300
parents 5a3ab7506c40
children b66b54a68dfd
files .hgignore oculus_test1.xcodeproj/project.pbxproj src/main.cc src/opengl.cc src/opengl.h src/vr.cc
diffstat 6 files changed, 744 insertions(+), 13 deletions(-) [+]
line diff
     1.1 --- a/.hgignore	Wed Sep 18 17:26:38 2013 +0300
     1.2 +++ b/.hgignore	Wed Sep 18 22:15:04 2013 +0300
     1.3 @@ -1,4 +1,11 @@
     1.4  \.o$
     1.5 +\.swp$
     1.6  \.d$
     1.7 -\.swp$
     1.8 -^oculus1$
     1.9 +Makefile$
    1.10 +oculus1$
    1.11 +\.DS_store$
    1.12 +^data
    1.13 +^build/
    1.14 +\.pbxuser$
    1.15 +xcuserdata
    1.16 +xcworkspace
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/oculus_test1.xcodeproj/project.pbxproj	Wed Sep 18 22:15:04 2013 +0300
     2.3 @@ -0,0 +1,552 @@
     2.4 +// !$*UTF8*$!
     2.5 +{
     2.6 +	archiveVersion = 1;
     2.7 +	classes = {
     2.8 +	};
     2.9 +	objectVersion = 46;
    2.10 +	objects = {
    2.11 +
    2.12 +/* Begin PBXBuildFile section */
    2.13 +		06C414DB17EA2E9B00B02BEB /* camera.cc in Sources */ = {isa = PBXBuildFile; fileRef = 06C414D317EA2E9B00B02BEB /* camera.cc */; };
    2.14 +		06C414DC17EA2E9B00B02BEB /* main.cc in Sources */ = {isa = PBXBuildFile; fileRef = 06C414D517EA2E9B00B02BEB /* main.cc */; };
    2.15 +		06C414DD17EA2E9B00B02BEB /* opengl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 06C414D617EA2E9B00B02BEB /* opengl.cc */; };
    2.16 +		06C414DE17EA2E9B00B02BEB /* vr.cc in Sources */ = {isa = PBXBuildFile; fileRef = 06C414D917EA2E9B00B02BEB /* vr.cc */; };
    2.17 +		06C4154917EA2EC800B02BEB /* OVR_Alg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 06C414E517EA2EC700B02BEB /* OVR_Alg.cpp */; };
    2.18 +		06C4154A17EA2EC800B02BEB /* OVR_Allocator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 06C414E717EA2EC700B02BEB /* OVR_Allocator.cpp */; };
    2.19 +		06C4154B17EA2EC800B02BEB /* OVR_Atomic.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 06C414EA17EA2EC700B02BEB /* OVR_Atomic.cpp */; };
    2.20 +		06C4154C17EA2EC800B02BEB /* OVR_File.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 06C414EE17EA2EC700B02BEB /* OVR_File.cpp */; };
    2.21 +		06C4154D17EA2EC800B02BEB /* OVR_FileFILE.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 06C414F017EA2EC700B02BEB /* OVR_FileFILE.cpp */; };
    2.22 +		06C4154E17EA2EC800B02BEB /* OVR_Log.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 06C414F417EA2EC700B02BEB /* OVR_Log.cpp */; };
    2.23 +		06C4154F17EA2EC800B02BEB /* OVR_Math.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 06C414F617EA2EC700B02BEB /* OVR_Math.cpp */; };
    2.24 +		06C4155017EA2EC800B02BEB /* OVR_RefCount.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 06C414F817EA2EC700B02BEB /* OVR_RefCount.cpp */; };
    2.25 +		06C4155117EA2EC800B02BEB /* OVR_Std.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 06C414FA17EA2EC700B02BEB /* OVR_Std.cpp */; };
    2.26 +		06C4155217EA2EC800B02BEB /* OVR_String.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 06C414FC17EA2EC700B02BEB /* OVR_String.cpp */; };
    2.27 +		06C4155317EA2EC800B02BEB /* OVR_String_FormatUtil.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 06C414FE17EA2EC700B02BEB /* OVR_String_FormatUtil.cpp */; };
    2.28 +		06C4155417EA2EC800B02BEB /* OVR_String_PathUtil.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 06C414FF17EA2EC700B02BEB /* OVR_String_PathUtil.cpp */; };
    2.29 +		06C4155517EA2EC800B02BEB /* OVR_SysFile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 06C4150117EA2EC700B02BEB /* OVR_SysFile.cpp */; };
    2.30 +		06C4155617EA2EC800B02BEB /* OVR_System.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 06C4150317EA2EC700B02BEB /* OVR_System.cpp */; };
    2.31 +		06C4155717EA2EC800B02BEB /* OVR_Timer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 06C4150617EA2EC700B02BEB /* OVR_Timer.cpp */; };
    2.32 +		06C4155817EA2EC800B02BEB /* OVR_UTF8Util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 06C4150917EA2EC700B02BEB /* OVR_UTF8Util.cpp */; };
    2.33 +		06C4155F17EA2EC800B02BEB /* OVR_OSX_DeviceManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 06C4151617EA2EC700B02BEB /* OVR_OSX_DeviceManager.cpp */; };
    2.34 +		06C4156017EA2EC800B02BEB /* OVR_OSX_HIDDevice.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 06C4151817EA2EC800B02BEB /* OVR_OSX_HIDDevice.cpp */; };
    2.35 +		06C4156117EA2EC800B02BEB /* OVR_OSX_HMDDevice.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 06C4151A17EA2EC800B02BEB /* OVR_OSX_HMDDevice.cpp */; };
    2.36 +		06C4156217EA2EC800B02BEB /* OVR_OSX_SensorDevice.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 06C4151C17EA2EC800B02BEB /* OVR_OSX_SensorDevice.cpp */; };
    2.37 +		06C4156317EA2EC800B02BEB /* OVR_ThreadsPthread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 06C4151D17EA2EC800B02BEB /* OVR_ThreadsPthread.cpp */; };
    2.38 +		06C4156417EA2EC800B02BEB /* OVR_DeviceHandle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 06C4152017EA2EC800B02BEB /* OVR_DeviceHandle.cpp */; };
    2.39 +		06C4156517EA2EC800B02BEB /* OVR_DeviceImpl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 06C4152217EA2EC800B02BEB /* OVR_DeviceImpl.cpp */; };
    2.40 +		06C4156617EA2EC800B02BEB /* OVR_JSON.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 06C4152817EA2EC800B02BEB /* OVR_JSON.cpp */; };
    2.41 +		06C4156717EA2EC800B02BEB /* OVR_LatencyTestImpl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 06C4152A17EA2EC800B02BEB /* OVR_LatencyTestImpl.cpp */; };
    2.42 +		06C4156817EA2EC800B02BEB /* OVR_Profile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 06C4152C17EA2EC800B02BEB /* OVR_Profile.cpp */; };
    2.43 +		06C4156917EA2EC800B02BEB /* OVR_SensorFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 06C4152E17EA2EC800B02BEB /* OVR_SensorFilter.cpp */; };
    2.44 +		06C4156A17EA2EC800B02BEB /* OVR_SensorFusion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 06C4153017EA2EC800B02BEB /* OVR_SensorFusion.cpp */; };
    2.45 +		06C4156B17EA2EC800B02BEB /* OVR_SensorImpl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 06C4153217EA2EC800B02BEB /* OVR_SensorImpl.cpp */; };
    2.46 +		06C4156C17EA2EC800B02BEB /* OVR_ThreadCommandQueue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 06C4153417EA2EC800B02BEB /* OVR_ThreadCommandQueue.cpp */; };
    2.47 +		06C4156D17EA2EC800B02BEB /* Util_LatencyTest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 06C4153717EA2EC800B02BEB /* Util_LatencyTest.cpp */; };
    2.48 +		06C4156E17EA2EC800B02BEB /* Util_MagCalibration.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 06C4153917EA2EC800B02BEB /* Util_MagCalibration.cpp */; };
    2.49 +		06C4156F17EA2EC800B02BEB /* Util_Render_Stereo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 06C4153B17EA2EC800B02BEB /* Util_Render_Stereo.cpp */; };
    2.50 +		06C4157717EA2F5E00B02BEB /* GLUT.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 06C4157617EA2F5E00B02BEB /* GLUT.framework */; };
    2.51 +		06C4157917EA2FEE00B02BEB /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 06C4157817EA2FEE00B02BEB /* OpenGL.framework */; };
    2.52 +		06C4157B17EA30A200B02BEB /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 06C4157A17EA30A200B02BEB /* CoreFoundation.framework */; };
    2.53 +		06C4157D17EA30B500B02BEB /* ApplicationServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 06C4157C17EA30B500B02BEB /* ApplicationServices.framework */; };
    2.54 +		06C4157F17EA30C200B02BEB /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 06C4157E17EA30C200B02BEB /* IOKit.framework */; };
    2.55 +/* End PBXBuildFile section */
    2.56 +
    2.57 +/* Begin PBXCopyFilesBuildPhase section */
    2.58 +		06C414C517EA2E0000B02BEB /* CopyFiles */ = {
    2.59 +			isa = PBXCopyFilesBuildPhase;
    2.60 +			buildActionMask = 2147483647;
    2.61 +			dstPath = /usr/share/man/man1/;
    2.62 +			dstSubfolderSpec = 0;
    2.63 +			files = (
    2.64 +			);
    2.65 +			runOnlyForDeploymentPostprocessing = 1;
    2.66 +		};
    2.67 +/* End PBXCopyFilesBuildPhase section */
    2.68 +
    2.69 +/* Begin PBXFileReference section */
    2.70 +		06C414C717EA2E0000B02BEB /* oculus_test1 */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = oculus_test1; sourceTree = BUILT_PRODUCTS_DIR; };
    2.71 +		06C414D317EA2E9B00B02BEB /* camera.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = camera.cc; path = src/camera.cc; sourceTree = SOURCE_ROOT; };
    2.72 +		06C414D417EA2E9B00B02BEB /* camera.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = camera.h; path = src/camera.h; sourceTree = SOURCE_ROOT; };
    2.73 +		06C414D517EA2E9B00B02BEB /* main.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = main.cc; path = src/main.cc; sourceTree = SOURCE_ROOT; };
    2.74 +		06C414D617EA2E9B00B02BEB /* opengl.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = opengl.cc; path = src/opengl.cc; sourceTree = SOURCE_ROOT; };
    2.75 +		06C414D717EA2E9B00B02BEB /* opengl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = opengl.h; path = src/opengl.h; sourceTree = SOURCE_ROOT; };
    2.76 +		06C414D817EA2E9B00B02BEB /* vr_impl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = vr_impl.h; path = src/vr_impl.h; sourceTree = SOURCE_ROOT; };
    2.77 +		06C414D917EA2E9B00B02BEB /* vr.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = vr.cc; path = src/vr.cc; sourceTree = SOURCE_ROOT; };
    2.78 +		06C414DA17EA2E9B00B02BEB /* vr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = vr.h; path = src/vr.h; sourceTree = SOURCE_ROOT; };
    2.79 +		06C414E117EA2EC700B02BEB /* OVR.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OVR.h; sourceTree = "<group>"; };
    2.80 +		06C414E217EA2EC700B02BEB /* OVRVersion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OVRVersion.h; sourceTree = "<group>"; };
    2.81 +		06C414E517EA2EC700B02BEB /* OVR_Alg.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OVR_Alg.cpp; sourceTree = "<group>"; };
    2.82 +		06C414E617EA2EC700B02BEB /* OVR_Alg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OVR_Alg.h; sourceTree = "<group>"; };
    2.83 +		06C414E717EA2EC700B02BEB /* OVR_Allocator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OVR_Allocator.cpp; sourceTree = "<group>"; };
    2.84 +		06C414E817EA2EC700B02BEB /* OVR_Allocator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OVR_Allocator.h; sourceTree = "<group>"; };
    2.85 +		06C414E917EA2EC700B02BEB /* OVR_Array.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OVR_Array.h; sourceTree = "<group>"; };
    2.86 +		06C414EA17EA2EC700B02BEB /* OVR_Atomic.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OVR_Atomic.cpp; sourceTree = "<group>"; };
    2.87 +		06C414EB17EA2EC700B02BEB /* OVR_Atomic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OVR_Atomic.h; sourceTree = "<group>"; };
    2.88 +		06C414EC17EA2EC700B02BEB /* OVR_Color.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OVR_Color.h; sourceTree = "<group>"; };
    2.89 +		06C414ED17EA2EC700B02BEB /* OVR_ContainerAllocator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OVR_ContainerAllocator.h; sourceTree = "<group>"; };
    2.90 +		06C414EE17EA2EC700B02BEB /* OVR_File.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OVR_File.cpp; sourceTree = "<group>"; };
    2.91 +		06C414EF17EA2EC700B02BEB /* OVR_File.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OVR_File.h; sourceTree = "<group>"; };
    2.92 +		06C414F017EA2EC700B02BEB /* OVR_FileFILE.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OVR_FileFILE.cpp; sourceTree = "<group>"; };
    2.93 +		06C414F117EA2EC700B02BEB /* OVR_Hash.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OVR_Hash.h; sourceTree = "<group>"; };
    2.94 +		06C414F217EA2EC700B02BEB /* OVR_KeyCodes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OVR_KeyCodes.h; sourceTree = "<group>"; };
    2.95 +		06C414F317EA2EC700B02BEB /* OVR_List.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OVR_List.h; sourceTree = "<group>"; };
    2.96 +		06C414F417EA2EC700B02BEB /* OVR_Log.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OVR_Log.cpp; sourceTree = "<group>"; };
    2.97 +		06C414F517EA2EC700B02BEB /* OVR_Log.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OVR_Log.h; sourceTree = "<group>"; };
    2.98 +		06C414F617EA2EC700B02BEB /* OVR_Math.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OVR_Math.cpp; sourceTree = "<group>"; };
    2.99 +		06C414F717EA2EC700B02BEB /* OVR_Math.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OVR_Math.h; sourceTree = "<group>"; };
   2.100 +		06C414F817EA2EC700B02BEB /* OVR_RefCount.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OVR_RefCount.cpp; sourceTree = "<group>"; };
   2.101 +		06C414F917EA2EC700B02BEB /* OVR_RefCount.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OVR_RefCount.h; sourceTree = "<group>"; };
   2.102 +		06C414FA17EA2EC700B02BEB /* OVR_Std.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OVR_Std.cpp; sourceTree = "<group>"; };
   2.103 +		06C414FB17EA2EC700B02BEB /* OVR_Std.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OVR_Std.h; sourceTree = "<group>"; };
   2.104 +		06C414FC17EA2EC700B02BEB /* OVR_String.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OVR_String.cpp; sourceTree = "<group>"; };
   2.105 +		06C414FD17EA2EC700B02BEB /* OVR_String.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OVR_String.h; sourceTree = "<group>"; };
   2.106 +		06C414FE17EA2EC700B02BEB /* OVR_String_FormatUtil.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OVR_String_FormatUtil.cpp; sourceTree = "<group>"; };
   2.107 +		06C414FF17EA2EC700B02BEB /* OVR_String_PathUtil.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OVR_String_PathUtil.cpp; sourceTree = "<group>"; };
   2.108 +		06C4150017EA2EC700B02BEB /* OVR_StringHash.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OVR_StringHash.h; sourceTree = "<group>"; };
   2.109 +		06C4150117EA2EC700B02BEB /* OVR_SysFile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OVR_SysFile.cpp; sourceTree = "<group>"; };
   2.110 +		06C4150217EA2EC700B02BEB /* OVR_SysFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OVR_SysFile.h; sourceTree = "<group>"; };
   2.111 +		06C4150317EA2EC700B02BEB /* OVR_System.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OVR_System.cpp; sourceTree = "<group>"; };
   2.112 +		06C4150417EA2EC700B02BEB /* OVR_System.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OVR_System.h; sourceTree = "<group>"; };
   2.113 +		06C4150517EA2EC700B02BEB /* OVR_Threads.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OVR_Threads.h; sourceTree = "<group>"; };
   2.114 +		06C4150617EA2EC700B02BEB /* OVR_Timer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OVR_Timer.cpp; sourceTree = "<group>"; };
   2.115 +		06C4150717EA2EC700B02BEB /* OVR_Timer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OVR_Timer.h; sourceTree = "<group>"; };
   2.116 +		06C4150817EA2EC700B02BEB /* OVR_Types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OVR_Types.h; sourceTree = "<group>"; };
   2.117 +		06C4150917EA2EC700B02BEB /* OVR_UTF8Util.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OVR_UTF8Util.cpp; sourceTree = "<group>"; };
   2.118 +		06C4150A17EA2EC700B02BEB /* OVR_UTF8Util.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OVR_UTF8Util.h; sourceTree = "<group>"; };
   2.119 +		06C4151617EA2EC700B02BEB /* OVR_OSX_DeviceManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OVR_OSX_DeviceManager.cpp; sourceTree = "<group>"; };
   2.120 +		06C4151717EA2EC800B02BEB /* OVR_OSX_DeviceManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OVR_OSX_DeviceManager.h; sourceTree = "<group>"; };
   2.121 +		06C4151817EA2EC800B02BEB /* OVR_OSX_HIDDevice.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OVR_OSX_HIDDevice.cpp; sourceTree = "<group>"; };
   2.122 +		06C4151917EA2EC800B02BEB /* OVR_OSX_HIDDevice.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OVR_OSX_HIDDevice.h; sourceTree = "<group>"; };
   2.123 +		06C4151A17EA2EC800B02BEB /* OVR_OSX_HMDDevice.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OVR_OSX_HMDDevice.cpp; sourceTree = "<group>"; };
   2.124 +		06C4151B17EA2EC800B02BEB /* OVR_OSX_HMDDevice.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OVR_OSX_HMDDevice.h; sourceTree = "<group>"; };
   2.125 +		06C4151C17EA2EC800B02BEB /* OVR_OSX_SensorDevice.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OVR_OSX_SensorDevice.cpp; sourceTree = "<group>"; };
   2.126 +		06C4151D17EA2EC800B02BEB /* OVR_ThreadsPthread.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OVR_ThreadsPthread.cpp; sourceTree = "<group>"; };
   2.127 +		06C4151E17EA2EC800B02BEB /* OVR_Device.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OVR_Device.h; sourceTree = "<group>"; };
   2.128 +		06C4151F17EA2EC800B02BEB /* OVR_DeviceConstants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OVR_DeviceConstants.h; sourceTree = "<group>"; };
   2.129 +		06C4152017EA2EC800B02BEB /* OVR_DeviceHandle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OVR_DeviceHandle.cpp; sourceTree = "<group>"; };
   2.130 +		06C4152117EA2EC800B02BEB /* OVR_DeviceHandle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OVR_DeviceHandle.h; sourceTree = "<group>"; };
   2.131 +		06C4152217EA2EC800B02BEB /* OVR_DeviceImpl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OVR_DeviceImpl.cpp; sourceTree = "<group>"; };
   2.132 +		06C4152317EA2EC800B02BEB /* OVR_DeviceImpl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OVR_DeviceImpl.h; sourceTree = "<group>"; };
   2.133 +		06C4152417EA2EC800B02BEB /* OVR_DeviceMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OVR_DeviceMessages.h; sourceTree = "<group>"; };
   2.134 +		06C4152517EA2EC800B02BEB /* OVR_HIDDevice.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OVR_HIDDevice.h; sourceTree = "<group>"; };
   2.135 +		06C4152617EA2EC800B02BEB /* OVR_HIDDeviceBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OVR_HIDDeviceBase.h; sourceTree = "<group>"; };
   2.136 +		06C4152717EA2EC800B02BEB /* OVR_HIDDeviceImpl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OVR_HIDDeviceImpl.h; sourceTree = "<group>"; };
   2.137 +		06C4152817EA2EC800B02BEB /* OVR_JSON.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OVR_JSON.cpp; sourceTree = "<group>"; };
   2.138 +		06C4152917EA2EC800B02BEB /* OVR_JSON.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OVR_JSON.h; sourceTree = "<group>"; };
   2.139 +		06C4152A17EA2EC800B02BEB /* OVR_LatencyTestImpl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OVR_LatencyTestImpl.cpp; sourceTree = "<group>"; };
   2.140 +		06C4152B17EA2EC800B02BEB /* OVR_LatencyTestImpl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OVR_LatencyTestImpl.h; sourceTree = "<group>"; };
   2.141 +		06C4152C17EA2EC800B02BEB /* OVR_Profile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OVR_Profile.cpp; sourceTree = "<group>"; };
   2.142 +		06C4152D17EA2EC800B02BEB /* OVR_Profile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OVR_Profile.h; sourceTree = "<group>"; };
   2.143 +		06C4152E17EA2EC800B02BEB /* OVR_SensorFilter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OVR_SensorFilter.cpp; sourceTree = "<group>"; };
   2.144 +		06C4152F17EA2EC800B02BEB /* OVR_SensorFilter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OVR_SensorFilter.h; sourceTree = "<group>"; };
   2.145 +		06C4153017EA2EC800B02BEB /* OVR_SensorFusion.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OVR_SensorFusion.cpp; sourceTree = "<group>"; };
   2.146 +		06C4153117EA2EC800B02BEB /* OVR_SensorFusion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OVR_SensorFusion.h; sourceTree = "<group>"; };
   2.147 +		06C4153217EA2EC800B02BEB /* OVR_SensorImpl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OVR_SensorImpl.cpp; sourceTree = "<group>"; };
   2.148 +		06C4153317EA2EC800B02BEB /* OVR_SensorImpl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OVR_SensorImpl.h; sourceTree = "<group>"; };
   2.149 +		06C4153417EA2EC800B02BEB /* OVR_ThreadCommandQueue.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OVR_ThreadCommandQueue.cpp; sourceTree = "<group>"; };
   2.150 +		06C4153517EA2EC800B02BEB /* OVR_ThreadCommandQueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OVR_ThreadCommandQueue.h; sourceTree = "<group>"; };
   2.151 +		06C4153717EA2EC800B02BEB /* Util_LatencyTest.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Util_LatencyTest.cpp; sourceTree = "<group>"; };
   2.152 +		06C4153817EA2EC800B02BEB /* Util_LatencyTest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Util_LatencyTest.h; sourceTree = "<group>"; };
   2.153 +		06C4153917EA2EC800B02BEB /* Util_MagCalibration.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Util_MagCalibration.cpp; sourceTree = "<group>"; };
   2.154 +		06C4153A17EA2EC800B02BEB /* Util_MagCalibration.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Util_MagCalibration.h; sourceTree = "<group>"; };
   2.155 +		06C4153B17EA2EC800B02BEB /* Util_Render_Stereo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Util_Render_Stereo.cpp; sourceTree = "<group>"; };
   2.156 +		06C4153C17EA2EC800B02BEB /* Util_Render_Stereo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Util_Render_Stereo.h; sourceTree = "<group>"; };
   2.157 +		06C4157617EA2F5E00B02BEB /* GLUT.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GLUT.framework; path = System/Library/Frameworks/GLUT.framework; sourceTree = SDKROOT; };
   2.158 +		06C4157817EA2FEE00B02BEB /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; };
   2.159 +		06C4157A17EA30A200B02BEB /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = ../../../../../../System/Library/Frameworks/CoreFoundation.framework; sourceTree = "<group>"; };
   2.160 +		06C4157C17EA30B500B02BEB /* ApplicationServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ApplicationServices.framework; path = ../../../../../../System/Library/Frameworks/ApplicationServices.framework; sourceTree = "<group>"; };
   2.161 +		06C4157E17EA30C200B02BEB /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = ../../../../../../System/Library/Frameworks/IOKit.framework; sourceTree = "<group>"; };
   2.162 +/* End PBXFileReference section */
   2.163 +
   2.164 +/* Begin PBXFrameworksBuildPhase section */
   2.165 +		06C414C417EA2E0000B02BEB /* Frameworks */ = {
   2.166 +			isa = PBXFrameworksBuildPhase;
   2.167 +			buildActionMask = 2147483647;
   2.168 +			files = (
   2.169 +				06C4157F17EA30C200B02BEB /* IOKit.framework in Frameworks */,
   2.170 +				06C4157D17EA30B500B02BEB /* ApplicationServices.framework in Frameworks */,
   2.171 +				06C4157B17EA30A200B02BEB /* CoreFoundation.framework in Frameworks */,
   2.172 +				06C4157917EA2FEE00B02BEB /* OpenGL.framework in Frameworks */,
   2.173 +				06C4157717EA2F5E00B02BEB /* GLUT.framework in Frameworks */,
   2.174 +			);
   2.175 +			runOnlyForDeploymentPostprocessing = 0;
   2.176 +		};
   2.177 +/* End PBXFrameworksBuildPhase section */
   2.178 +
   2.179 +/* Begin PBXGroup section */
   2.180 +		06C414BE17EA2E0000B02BEB = {
   2.181 +			isa = PBXGroup;
   2.182 +			children = (
   2.183 +				06C4157E17EA30C200B02BEB /* IOKit.framework */,
   2.184 +				06C4157C17EA30B500B02BEB /* ApplicationServices.framework */,
   2.185 +				06C4157A17EA30A200B02BEB /* CoreFoundation.framework */,
   2.186 +				06C4157817EA2FEE00B02BEB /* OpenGL.framework */,
   2.187 +				06C4157617EA2F5E00B02BEB /* GLUT.framework */,
   2.188 +				06C414DF17EA2EC700B02BEB /* libovr */,
   2.189 +				06C414C917EA2E0000B02BEB /* oculus_test1 */,
   2.190 +				06C414C817EA2E0000B02BEB /* Products */,
   2.191 +			);
   2.192 +			sourceTree = "<group>";
   2.193 +		};
   2.194 +		06C414C817EA2E0000B02BEB /* Products */ = {
   2.195 +			isa = PBXGroup;
   2.196 +			children = (
   2.197 +				06C414C717EA2E0000B02BEB /* oculus_test1 */,
   2.198 +			);
   2.199 +			name = Products;
   2.200 +			sourceTree = "<group>";
   2.201 +		};
   2.202 +		06C414C917EA2E0000B02BEB /* oculus_test1 */ = {
   2.203 +			isa = PBXGroup;
   2.204 +			children = (
   2.205 +				06C414D317EA2E9B00B02BEB /* camera.cc */,
   2.206 +				06C414D417EA2E9B00B02BEB /* camera.h */,
   2.207 +				06C414D517EA2E9B00B02BEB /* main.cc */,
   2.208 +				06C414D617EA2E9B00B02BEB /* opengl.cc */,
   2.209 +				06C414D717EA2E9B00B02BEB /* opengl.h */,
   2.210 +				06C414D817EA2E9B00B02BEB /* vr_impl.h */,
   2.211 +				06C414D917EA2E9B00B02BEB /* vr.cc */,
   2.212 +				06C414DA17EA2E9B00B02BEB /* vr.h */,
   2.213 +			);
   2.214 +			path = oculus_test1;
   2.215 +			sourceTree = "<group>";
   2.216 +		};
   2.217 +		06C414DF17EA2EC700B02BEB /* libovr */ = {
   2.218 +			isa = PBXGroup;
   2.219 +			children = (
   2.220 +				06C414E017EA2EC700B02BEB /* Include */,
   2.221 +				06C414E317EA2EC700B02BEB /* Src */,
   2.222 +			);
   2.223 +			path = libovr;
   2.224 +			sourceTree = "<group>";
   2.225 +		};
   2.226 +		06C414E017EA2EC700B02BEB /* Include */ = {
   2.227 +			isa = PBXGroup;
   2.228 +			children = (
   2.229 +				06C414E117EA2EC700B02BEB /* OVR.h */,
   2.230 +				06C414E217EA2EC700B02BEB /* OVRVersion.h */,
   2.231 +			);
   2.232 +			path = Include;
   2.233 +			sourceTree = "<group>";
   2.234 +		};
   2.235 +		06C414E317EA2EC700B02BEB /* Src */ = {
   2.236 +			isa = PBXGroup;
   2.237 +			children = (
   2.238 +				06C414E417EA2EC700B02BEB /* Kernel */,
   2.239 +				06C4151517EA2EC700B02BEB /* osx */,
   2.240 +				06C4151E17EA2EC800B02BEB /* OVR_Device.h */,
   2.241 +				06C4151F17EA2EC800B02BEB /* OVR_DeviceConstants.h */,
   2.242 +				06C4152017EA2EC800B02BEB /* OVR_DeviceHandle.cpp */,
   2.243 +				06C4152117EA2EC800B02BEB /* OVR_DeviceHandle.h */,
   2.244 +				06C4152217EA2EC800B02BEB /* OVR_DeviceImpl.cpp */,
   2.245 +				06C4152317EA2EC800B02BEB /* OVR_DeviceImpl.h */,
   2.246 +				06C4152417EA2EC800B02BEB /* OVR_DeviceMessages.h */,
   2.247 +				06C4152517EA2EC800B02BEB /* OVR_HIDDevice.h */,
   2.248 +				06C4152617EA2EC800B02BEB /* OVR_HIDDeviceBase.h */,
   2.249 +				06C4152717EA2EC800B02BEB /* OVR_HIDDeviceImpl.h */,
   2.250 +				06C4152817EA2EC800B02BEB /* OVR_JSON.cpp */,
   2.251 +				06C4152917EA2EC800B02BEB /* OVR_JSON.h */,
   2.252 +				06C4152A17EA2EC800B02BEB /* OVR_LatencyTestImpl.cpp */,
   2.253 +				06C4152B17EA2EC800B02BEB /* OVR_LatencyTestImpl.h */,
   2.254 +				06C4152C17EA2EC800B02BEB /* OVR_Profile.cpp */,
   2.255 +				06C4152D17EA2EC800B02BEB /* OVR_Profile.h */,
   2.256 +				06C4152E17EA2EC800B02BEB /* OVR_SensorFilter.cpp */,
   2.257 +				06C4152F17EA2EC800B02BEB /* OVR_SensorFilter.h */,
   2.258 +				06C4153017EA2EC800B02BEB /* OVR_SensorFusion.cpp */,
   2.259 +				06C4153117EA2EC800B02BEB /* OVR_SensorFusion.h */,
   2.260 +				06C4153217EA2EC800B02BEB /* OVR_SensorImpl.cpp */,
   2.261 +				06C4153317EA2EC800B02BEB /* OVR_SensorImpl.h */,
   2.262 +				06C4153417EA2EC800B02BEB /* OVR_ThreadCommandQueue.cpp */,
   2.263 +				06C4153517EA2EC800B02BEB /* OVR_ThreadCommandQueue.h */,
   2.264 +				06C4153617EA2EC800B02BEB /* Util */,
   2.265 +			);
   2.266 +			path = Src;
   2.267 +			sourceTree = "<group>";
   2.268 +		};
   2.269 +		06C414E417EA2EC700B02BEB /* Kernel */ = {
   2.270 +			isa = PBXGroup;
   2.271 +			children = (
   2.272 +				06C414E517EA2EC700B02BEB /* OVR_Alg.cpp */,
   2.273 +				06C414E617EA2EC700B02BEB /* OVR_Alg.h */,
   2.274 +				06C414E717EA2EC700B02BEB /* OVR_Allocator.cpp */,
   2.275 +				06C414E817EA2EC700B02BEB /* OVR_Allocator.h */,
   2.276 +				06C414E917EA2EC700B02BEB /* OVR_Array.h */,
   2.277 +				06C414EA17EA2EC700B02BEB /* OVR_Atomic.cpp */,
   2.278 +				06C414EB17EA2EC700B02BEB /* OVR_Atomic.h */,
   2.279 +				06C414EC17EA2EC700B02BEB /* OVR_Color.h */,
   2.280 +				06C414ED17EA2EC700B02BEB /* OVR_ContainerAllocator.h */,
   2.281 +				06C414EE17EA2EC700B02BEB /* OVR_File.cpp */,
   2.282 +				06C414EF17EA2EC700B02BEB /* OVR_File.h */,
   2.283 +				06C414F017EA2EC700B02BEB /* OVR_FileFILE.cpp */,
   2.284 +				06C414F117EA2EC700B02BEB /* OVR_Hash.h */,
   2.285 +				06C414F217EA2EC700B02BEB /* OVR_KeyCodes.h */,
   2.286 +				06C414F317EA2EC700B02BEB /* OVR_List.h */,
   2.287 +				06C414F417EA2EC700B02BEB /* OVR_Log.cpp */,
   2.288 +				06C414F517EA2EC700B02BEB /* OVR_Log.h */,
   2.289 +				06C414F617EA2EC700B02BEB /* OVR_Math.cpp */,
   2.290 +				06C414F717EA2EC700B02BEB /* OVR_Math.h */,
   2.291 +				06C414F817EA2EC700B02BEB /* OVR_RefCount.cpp */,
   2.292 +				06C414F917EA2EC700B02BEB /* OVR_RefCount.h */,
   2.293 +				06C414FA17EA2EC700B02BEB /* OVR_Std.cpp */,
   2.294 +				06C414FB17EA2EC700B02BEB /* OVR_Std.h */,
   2.295 +				06C414FC17EA2EC700B02BEB /* OVR_String.cpp */,
   2.296 +				06C414FD17EA2EC700B02BEB /* OVR_String.h */,
   2.297 +				06C414FE17EA2EC700B02BEB /* OVR_String_FormatUtil.cpp */,
   2.298 +				06C414FF17EA2EC700B02BEB /* OVR_String_PathUtil.cpp */,
   2.299 +				06C4150017EA2EC700B02BEB /* OVR_StringHash.h */,
   2.300 +				06C4150117EA2EC700B02BEB /* OVR_SysFile.cpp */,
   2.301 +				06C4150217EA2EC700B02BEB /* OVR_SysFile.h */,
   2.302 +				06C4150317EA2EC700B02BEB /* OVR_System.cpp */,
   2.303 +				06C4150417EA2EC700B02BEB /* OVR_System.h */,
   2.304 +				06C4150517EA2EC700B02BEB /* OVR_Threads.h */,
   2.305 +				06C4150617EA2EC700B02BEB /* OVR_Timer.cpp */,
   2.306 +				06C4150717EA2EC700B02BEB /* OVR_Timer.h */,
   2.307 +				06C4150817EA2EC700B02BEB /* OVR_Types.h */,
   2.308 +				06C4150917EA2EC700B02BEB /* OVR_UTF8Util.cpp */,
   2.309 +				06C4150A17EA2EC700B02BEB /* OVR_UTF8Util.h */,
   2.310 +			);
   2.311 +			path = Kernel;
   2.312 +			sourceTree = "<group>";
   2.313 +		};
   2.314 +		06C4151517EA2EC700B02BEB /* osx */ = {
   2.315 +			isa = PBXGroup;
   2.316 +			children = (
   2.317 +				06C4151617EA2EC700B02BEB /* OVR_OSX_DeviceManager.cpp */,
   2.318 +				06C4151717EA2EC800B02BEB /* OVR_OSX_DeviceManager.h */,
   2.319 +				06C4151817EA2EC800B02BEB /* OVR_OSX_HIDDevice.cpp */,
   2.320 +				06C4151917EA2EC800B02BEB /* OVR_OSX_HIDDevice.h */,
   2.321 +				06C4151A17EA2EC800B02BEB /* OVR_OSX_HMDDevice.cpp */,
   2.322 +				06C4151B17EA2EC800B02BEB /* OVR_OSX_HMDDevice.h */,
   2.323 +				06C4151C17EA2EC800B02BEB /* OVR_OSX_SensorDevice.cpp */,
   2.324 +				06C4151D17EA2EC800B02BEB /* OVR_ThreadsPthread.cpp */,
   2.325 +			);
   2.326 +			path = osx;
   2.327 +			sourceTree = "<group>";
   2.328 +		};
   2.329 +		06C4153617EA2EC800B02BEB /* Util */ = {
   2.330 +			isa = PBXGroup;
   2.331 +			children = (
   2.332 +				06C4153717EA2EC800B02BEB /* Util_LatencyTest.cpp */,
   2.333 +				06C4153817EA2EC800B02BEB /* Util_LatencyTest.h */,
   2.334 +				06C4153917EA2EC800B02BEB /* Util_MagCalibration.cpp */,
   2.335 +				06C4153A17EA2EC800B02BEB /* Util_MagCalibration.h */,
   2.336 +				06C4153B17EA2EC800B02BEB /* Util_Render_Stereo.cpp */,
   2.337 +				06C4153C17EA2EC800B02BEB /* Util_Render_Stereo.h */,
   2.338 +			);
   2.339 +			path = Util;
   2.340 +			sourceTree = "<group>";
   2.341 +		};
   2.342 +/* End PBXGroup section */
   2.343 +
   2.344 +/* Begin PBXNativeTarget section */
   2.345 +		06C414C617EA2E0000B02BEB /* oculus_test1 */ = {
   2.346 +			isa = PBXNativeTarget;
   2.347 +			buildConfigurationList = 06C414D017EA2E0000B02BEB /* Build configuration list for PBXNativeTarget "oculus_test1" */;
   2.348 +			buildPhases = (
   2.349 +				06C414C317EA2E0000B02BEB /* Sources */,
   2.350 +				06C414C417EA2E0000B02BEB /* Frameworks */,
   2.351 +				06C414C517EA2E0000B02BEB /* CopyFiles */,
   2.352 +			);
   2.353 +			buildRules = (
   2.354 +			);
   2.355 +			dependencies = (
   2.356 +			);
   2.357 +			name = oculus_test1;
   2.358 +			productName = oculus_test1;
   2.359 +			productReference = 06C414C717EA2E0000B02BEB /* oculus_test1 */;
   2.360 +			productType = "com.apple.product-type.tool";
   2.361 +		};
   2.362 +/* End PBXNativeTarget section */
   2.363 +
   2.364 +/* Begin PBXProject section */
   2.365 +		06C414BF17EA2E0000B02BEB /* Project object */ = {
   2.366 +			isa = PBXProject;
   2.367 +			attributes = {
   2.368 +				LastUpgradeCheck = 0460;
   2.369 +				ORGANIZATIONNAME = "Mutant Stargoat";
   2.370 +			};
   2.371 +			buildConfigurationList = 06C414C217EA2E0000B02BEB /* Build configuration list for PBXProject "oculus_test1" */;
   2.372 +			compatibilityVersion = "Xcode 3.2";
   2.373 +			developmentRegion = English;
   2.374 +			hasScannedForEncodings = 0;
   2.375 +			knownRegions = (
   2.376 +				en,
   2.377 +			);
   2.378 +			mainGroup = 06C414BE17EA2E0000B02BEB;
   2.379 +			productRefGroup = 06C414C817EA2E0000B02BEB /* Products */;
   2.380 +			projectDirPath = "";
   2.381 +			projectRoot = "";
   2.382 +			targets = (
   2.383 +				06C414C617EA2E0000B02BEB /* oculus_test1 */,
   2.384 +			);
   2.385 +		};
   2.386 +/* End PBXProject section */
   2.387 +
   2.388 +/* Begin PBXSourcesBuildPhase section */
   2.389 +		06C414C317EA2E0000B02BEB /* Sources */ = {
   2.390 +			isa = PBXSourcesBuildPhase;
   2.391 +			buildActionMask = 2147483647;
   2.392 +			files = (
   2.393 +				06C414DB17EA2E9B00B02BEB /* camera.cc in Sources */,
   2.394 +				06C414DC17EA2E9B00B02BEB /* main.cc in Sources */,
   2.395 +				06C414DD17EA2E9B00B02BEB /* opengl.cc in Sources */,
   2.396 +				06C414DE17EA2E9B00B02BEB /* vr.cc in Sources */,
   2.397 +				06C4154917EA2EC800B02BEB /* OVR_Alg.cpp in Sources */,
   2.398 +				06C4154A17EA2EC800B02BEB /* OVR_Allocator.cpp in Sources */,
   2.399 +				06C4154B17EA2EC800B02BEB /* OVR_Atomic.cpp in Sources */,
   2.400 +				06C4154C17EA2EC800B02BEB /* OVR_File.cpp in Sources */,
   2.401 +				06C4154D17EA2EC800B02BEB /* OVR_FileFILE.cpp in Sources */,
   2.402 +				06C4154E17EA2EC800B02BEB /* OVR_Log.cpp in Sources */,
   2.403 +				06C4154F17EA2EC800B02BEB /* OVR_Math.cpp in Sources */,
   2.404 +				06C4155017EA2EC800B02BEB /* OVR_RefCount.cpp in Sources */,
   2.405 +				06C4155117EA2EC800B02BEB /* OVR_Std.cpp in Sources */,
   2.406 +				06C4155217EA2EC800B02BEB /* OVR_String.cpp in Sources */,
   2.407 +				06C4155317EA2EC800B02BEB /* OVR_String_FormatUtil.cpp in Sources */,
   2.408 +				06C4155417EA2EC800B02BEB /* OVR_String_PathUtil.cpp in Sources */,
   2.409 +				06C4155517EA2EC800B02BEB /* OVR_SysFile.cpp in Sources */,
   2.410 +				06C4155617EA2EC800B02BEB /* OVR_System.cpp in Sources */,
   2.411 +				06C4155717EA2EC800B02BEB /* OVR_Timer.cpp in Sources */,
   2.412 +				06C4155817EA2EC800B02BEB /* OVR_UTF8Util.cpp in Sources */,
   2.413 +				06C4155F17EA2EC800B02BEB /* OVR_OSX_DeviceManager.cpp in Sources */,
   2.414 +				06C4156017EA2EC800B02BEB /* OVR_OSX_HIDDevice.cpp in Sources */,
   2.415 +				06C4156117EA2EC800B02BEB /* OVR_OSX_HMDDevice.cpp in Sources */,
   2.416 +				06C4156217EA2EC800B02BEB /* OVR_OSX_SensorDevice.cpp in Sources */,
   2.417 +				06C4156317EA2EC800B02BEB /* OVR_ThreadsPthread.cpp in Sources */,
   2.418 +				06C4156417EA2EC800B02BEB /* OVR_DeviceHandle.cpp in Sources */,
   2.419 +				06C4156517EA2EC800B02BEB /* OVR_DeviceImpl.cpp in Sources */,
   2.420 +				06C4156617EA2EC800B02BEB /* OVR_JSON.cpp in Sources */,
   2.421 +				06C4156717EA2EC800B02BEB /* OVR_LatencyTestImpl.cpp in Sources */,
   2.422 +				06C4156817EA2EC800B02BEB /* OVR_Profile.cpp in Sources */,
   2.423 +				06C4156917EA2EC800B02BEB /* OVR_SensorFilter.cpp in Sources */,
   2.424 +				06C4156A17EA2EC800B02BEB /* OVR_SensorFusion.cpp in Sources */,
   2.425 +				06C4156B17EA2EC800B02BEB /* OVR_SensorImpl.cpp in Sources */,
   2.426 +				06C4156C17EA2EC800B02BEB /* OVR_ThreadCommandQueue.cpp in Sources */,
   2.427 +				06C4156D17EA2EC800B02BEB /* Util_LatencyTest.cpp in Sources */,
   2.428 +				06C4156E17EA2EC800B02BEB /* Util_MagCalibration.cpp in Sources */,
   2.429 +				06C4156F17EA2EC800B02BEB /* Util_Render_Stereo.cpp in Sources */,
   2.430 +			);
   2.431 +			runOnlyForDeploymentPostprocessing = 0;
   2.432 +		};
   2.433 +/* End PBXSourcesBuildPhase section */
   2.434 +
   2.435 +/* Begin XCBuildConfiguration section */
   2.436 +		06C414CE17EA2E0000B02BEB /* Debug */ = {
   2.437 +			isa = XCBuildConfiguration;
   2.438 +			buildSettings = {
   2.439 +				ALWAYS_SEARCH_USER_PATHS = NO;
   2.440 +				ARCHS = "$(ARCHS_STANDARD_64_BIT)";
   2.441 +				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
   2.442 +				CLANG_CXX_LIBRARY = "libc++";
   2.443 +				CLANG_WARN_CONSTANT_CONVERSION = YES;
   2.444 +				CLANG_WARN_EMPTY_BODY = YES;
   2.445 +				CLANG_WARN_ENUM_CONVERSION = YES;
   2.446 +				CLANG_WARN_INT_CONVERSION = YES;
   2.447 +				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
   2.448 +				COPY_PHASE_STRIP = NO;
   2.449 +				GCC_C_LANGUAGE_STANDARD = gnu99;
   2.450 +				GCC_DYNAMIC_NO_PIC = NO;
   2.451 +				GCC_ENABLE_OBJC_EXCEPTIONS = YES;
   2.452 +				GCC_OPTIMIZATION_LEVEL = 0;
   2.453 +				GCC_PREPROCESSOR_DEFINITIONS = (
   2.454 +					"DEBUG=1",
   2.455 +					"$(inherited)",
   2.456 +				);
   2.457 +				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
   2.458 +				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
   2.459 +				GCC_WARN_ABOUT_RETURN_TYPE = YES;
   2.460 +				GCC_WARN_UNINITIALIZED_AUTOS = YES;
   2.461 +				GCC_WARN_UNUSED_VARIABLE = YES;
   2.462 +				HEADER_SEARCH_PATHS = (
   2.463 +					libovr/Include,
   2.464 +					libovr/Src,
   2.465 +					libovr/Src/Util,
   2.466 +					libovr/Src/Kernel,
   2.467 +					libovr/Src/OSX,
   2.468 +				);
   2.469 +				MACOSX_DEPLOYMENT_TARGET = 10.8;
   2.470 +				ONLY_ACTIVE_ARCH = YES;
   2.471 +				OTHER_LDFLAGS = (
   2.472 +					"-lvmath",
   2.473 +					"-lGLEW",
   2.474 +				);
   2.475 +				SDKROOT = "";
   2.476 +			};
   2.477 +			name = Debug;
   2.478 +		};
   2.479 +		06C414CF17EA2E0000B02BEB /* Release */ = {
   2.480 +			isa = XCBuildConfiguration;
   2.481 +			buildSettings = {
   2.482 +				ALWAYS_SEARCH_USER_PATHS = NO;
   2.483 +				ARCHS = "$(ARCHS_STANDARD_64_BIT)";
   2.484 +				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
   2.485 +				CLANG_CXX_LIBRARY = "libc++";
   2.486 +				CLANG_WARN_CONSTANT_CONVERSION = YES;
   2.487 +				CLANG_WARN_EMPTY_BODY = YES;
   2.488 +				CLANG_WARN_ENUM_CONVERSION = YES;
   2.489 +				CLANG_WARN_INT_CONVERSION = YES;
   2.490 +				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
   2.491 +				COPY_PHASE_STRIP = YES;
   2.492 +				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
   2.493 +				GCC_C_LANGUAGE_STANDARD = gnu99;
   2.494 +				GCC_ENABLE_OBJC_EXCEPTIONS = YES;
   2.495 +				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
   2.496 +				GCC_WARN_ABOUT_RETURN_TYPE = YES;
   2.497 +				GCC_WARN_UNINITIALIZED_AUTOS = YES;
   2.498 +				GCC_WARN_UNUSED_VARIABLE = YES;
   2.499 +				HEADER_SEARCH_PATHS = (
   2.500 +					libovr/Include,
   2.501 +					libovr/Src,
   2.502 +					libovr/Src/Util,
   2.503 +					libovr/Src/Kernel,
   2.504 +					libovr/Src/OSX,
   2.505 +				);
   2.506 +				MACOSX_DEPLOYMENT_TARGET = 10.8;
   2.507 +				OTHER_LDFLAGS = (
   2.508 +					"-lvmath",
   2.509 +					"-lGLEW",
   2.510 +				);
   2.511 +				SDKROOT = "";
   2.512 +			};
   2.513 +			name = Release;
   2.514 +		};
   2.515 +		06C414D117EA2E0000B02BEB /* Debug */ = {
   2.516 +			isa = XCBuildConfiguration;
   2.517 +			buildSettings = {
   2.518 +				PRODUCT_NAME = "$(TARGET_NAME)";
   2.519 +				SDKROOT = "";
   2.520 +			};
   2.521 +			name = Debug;
   2.522 +		};
   2.523 +		06C414D217EA2E0000B02BEB /* Release */ = {
   2.524 +			isa = XCBuildConfiguration;
   2.525 +			buildSettings = {
   2.526 +				PRODUCT_NAME = "$(TARGET_NAME)";
   2.527 +				SDKROOT = "";
   2.528 +			};
   2.529 +			name = Release;
   2.530 +		};
   2.531 +/* End XCBuildConfiguration section */
   2.532 +
   2.533 +/* Begin XCConfigurationList section */
   2.534 +		06C414C217EA2E0000B02BEB /* Build configuration list for PBXProject "oculus_test1" */ = {
   2.535 +			isa = XCConfigurationList;
   2.536 +			buildConfigurations = (
   2.537 +				06C414CE17EA2E0000B02BEB /* Debug */,
   2.538 +				06C414CF17EA2E0000B02BEB /* Release */,
   2.539 +			);
   2.540 +			defaultConfigurationIsVisible = 0;
   2.541 +			defaultConfigurationName = Release;
   2.542 +		};
   2.543 +		06C414D017EA2E0000B02BEB /* Build configuration list for PBXNativeTarget "oculus_test1" */ = {
   2.544 +			isa = XCConfigurationList;
   2.545 +			buildConfigurations = (
   2.546 +				06C414D117EA2E0000B02BEB /* Debug */,
   2.547 +				06C414D217EA2E0000B02BEB /* Release */,
   2.548 +			);
   2.549 +			defaultConfigurationIsVisible = 0;
   2.550 +			defaultConfigurationName = Release;
   2.551 +		};
   2.552 +/* End XCConfigurationList section */
   2.553 +	};
   2.554 +	rootObject = 06C414BF17EA2E0000B02BEB /* Project object */;
   2.555 +}
     3.1 --- a/src/main.cc	Wed Sep 18 17:26:38 2013 +0300
     3.2 +++ b/src/main.cc	Wed Sep 18 22:15:04 2013 +0300
     3.3 @@ -2,12 +2,7 @@
     3.4  #include <stdlib.h>
     3.5  #include <string.h>
     3.6  #include <assert.h>
     3.7 -#include <GL/glew.h>
     3.8 -#ifdef __APPLE__
     3.9 -#include <GLUT/glut.h>
    3.10 -#else
    3.11 -#include <GL/glut.h>
    3.12 -#endif
    3.13 +#include "opengl.h"
    3.14  #include "vr.h"
    3.15  #include "camera.h"
    3.16  
    3.17 @@ -17,12 +12,20 @@
    3.18  static void idle();
    3.19  static void reshape(int x, int y);
    3.20  static void keyb(unsigned char key, int x, int y);
    3.21 +static void keyup(unsigned char key, int x, int y);
    3.22 +static void mouse(int bn, int st, int x, int y);
    3.23 +static void motion(int x, int y);
    3.24 +static void passive(int x, int y);
    3.25  static void sball_rotate(int rx, int ry, int rz);
    3.26  static bool parse_args(int argc, char **argv);
    3.27  
    3.28  static FlyCamera cam;
    3.29  static int width, height;
    3.30  static bool use_vr = false;
    3.31 +static bool mouselook = false;
    3.32 +
    3.33 +static bool keystate[256];
    3.34 +
    3.35  
    3.36  int main(int argc, char **argv)
    3.37  {
    3.38 @@ -40,10 +43,11 @@
    3.39  	glutIdleFunc(idle);
    3.40  	glutReshapeFunc(reshape);
    3.41  	glutKeyboardFunc(keyb);
    3.42 +	glutKeyboardUpFunc(keyup);
    3.43 +	glutMouseFunc(mouse);
    3.44 +	glutMotionFunc(motion);
    3.45  	glutSpaceballRotateFunc(sball_rotate);
    3.46  
    3.47 -	glewInit();
    3.48 -
    3.49  	if(!init()) {
    3.50  		return 1;
    3.51  	}
    3.52 @@ -55,6 +59,8 @@
    3.53  
    3.54  static bool init()
    3.55  {
    3.56 +	init_opengl(); // this must be first
    3.57 +
    3.58  	glEnable(GL_DEPTH_TEST);
    3.59  	glEnable(GL_LIGHTING);
    3.60  	glEnable(GL_CULL_FACE);
    3.61 @@ -104,9 +110,17 @@
    3.62  	float lpos[] = {0, 60, 0, 1};
    3.63  	glLightfv(GL_LIGHT0, GL_POSITION, lpos);
    3.64  
    3.65 -	glFrontFace(GL_CW);
    3.66 +	/*glFrontFace(GL_CW);
    3.67  	glutSolidTeapot(1.0);
    3.68 -	glFrontFace(GL_CCW);
    3.69 +	glFrontFace(GL_CCW);*/
    3.70 +
    3.71 +	glBegin(GL_QUADS);
    3.72 +	glNormal3f(0, 1, 0);
    3.73 +	glVertex3f(-10, -1, 10);
    3.74 +	glVertex3f(10, -1, 10);
    3.75 +	glVertex3f(10, -1, -10);
    3.76 +	glVertex3f(-10, -1, -10);
    3.77 +	glEnd();
    3.78  
    3.79  	glutSwapBuffers();
    3.80  	assert(glGetError() == GL_NO_ERROR);
    3.81 @@ -129,7 +143,65 @@
    3.82  	switch(key) {
    3.83  	case 27:
    3.84  		exit(0);
    3.85 +
    3.86 +	case 'm':
    3.87 +		mouselook = !mouselook;
    3.88 +		if(mouselook) {
    3.89 +			glutPassiveMotionFunc(passive);
    3.90 +			glutSetCursor(GLUT_CURSOR_NONE);
    3.91 +			glutWarpPointer(width / 2, height / 2);
    3.92 +		} else {
    3.93 +			glutPassiveMotionFunc(0);
    3.94 +			glutSetCursor(GLUT_CURSOR_INHERIT);
    3.95 +		}
    3.96 +		break;
    3.97  	}
    3.98 +
    3.99 +	keystate[key] = true;
   3.100 +	glutPostRedisplay();
   3.101 +}
   3.102 +
   3.103 +static void keyup(unsigned char key, int x, int y)
   3.104 +{
   3.105 +	keystate[key] = false;
   3.106 +	glutPostRedisplay();
   3.107 +}
   3.108 +
   3.109 +static bool bnstate[32];
   3.110 +static int prev_x, prev_y;
   3.111 +
   3.112 +static void mouse(int bn, int st, int x, int y)
   3.113 +{
   3.114 +	prev_x = x;
   3.115 +	prev_y = y;
   3.116 +	bnstate[bn - GLUT_LEFT_BUTTON] = st == GLUT_DOWN;
   3.117 +}
   3.118 +
   3.119 +static void motion(int x, int y)
   3.120 +{
   3.121 +	if(mouselook) {
   3.122 +		// just call passive, it does what we need
   3.123 +		passive(x, y);
   3.124 +	}
   3.125 +}
   3.126 +
   3.127 +static void passive(int x, int y)
   3.128 +{
   3.129 +	// no need to test mouselook; this callback is only set when mouselook is enabled
   3.130 +	int center_x = width / 2;
   3.131 +	int center_y = height / 2;
   3.132 +
   3.133 +	int dx = x - center_x;
   3.134 +	int dy = y - center_y;
   3.135 +
   3.136 +	if(!dx && !dy) {
   3.137 +		return;
   3.138 +	}
   3.139 +
   3.140 +	cam.input_rotate(dy * 0.1, dx * 0.1, 0.0);
   3.141 +	glutPostRedisplay();
   3.142 +
   3.143 +	glutWarpPointer(center_x, center_y);
   3.144  }
   3.145  
   3.146  static void sball_rotate(int rx, int ry, int rz)
     4.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.2 +++ b/src/opengl.cc	Wed Sep 18 22:15:04 2013 +0300
     4.3 @@ -0,0 +1,29 @@
     4.4 +#include "opengl.h"
     4.5 +
     4.6 +void init_opengl()
     4.7 +{
     4.8 +#ifdef __GLEW_H__
     4.9 +	glewInit();
    4.10 +#endif
    4.11 +}
    4.12 +
    4.13 +const char *strglerr(int err)
    4.14 +{
    4.15 +	static const char *errnames[] = {
    4.16 +		"GL_INVALID_ENUM",
    4.17 +		"GL_INVALID_VALUE",
    4.18 +		"GL_INVALID_OPERATION",
    4.19 +		"GL_STACK_OVERFLOW",
    4.20 +		"GL_STACK_UNDERFLOW",
    4.21 +		"GL_OUT_OF_MEMORY",
    4.22 +		"GL_INVALID_FRAMEBUFFER_OPERATION"
    4.23 +	};
    4.24 +
    4.25 +	if(!err) {
    4.26 +		return "GL_NO_ERROR";
    4.27 +	}
    4.28 +	if(err < GL_INVALID_ENUM || err > GL_OUT_OF_MEMORY) {
    4.29 +		return "<invalid gl error>";
    4.30 +	}
    4.31 +	return errnames[err - GL_INVALID_ENUM];
    4.32 +}
     5.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.2 +++ b/src/opengl.h	Wed Sep 18 22:15:04 2013 +0300
     5.3 @@ -0,0 +1,71 @@
     5.4 +#ifndef OPENGL_H_
     5.5 +#define OPENGL_H_
     5.6 +
     5.7 +#include <stdlib.h>
     5.8 +
     5.9 +#ifdef __APPLE__
    5.10 +#include "TargetConditionals.h"
    5.11 +
    5.12 +#if TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR
    5.13 +/* iOS */
    5.14 +#include <OpenGLES/ES2/gl.h>
    5.15 +#include <OpenGLES/ES2/glext.h>
    5.16 +
    5.17 +#define GL_CLAMP			GL_CLAMP_TO_EDGE
    5.18 +#define GL_DEPTH24_STENCIL8	GL_DEPTH24_STENCIL8_OES
    5.19 +
    5.20 +#undef USE_OLDGL
    5.21 +
    5.22 +#define GL_WRITE_ONLY	GL_WRITE_ONLY_OES
    5.23 +#define glMapBuffer		glMapBufferOES
    5.24 +#define glUnmapBuffer	glUnmapBufferOES
    5.25 +
    5.26 +#else
    5.27 +/* MacOS X */
    5.28 +#include <GL/glew.h>
    5.29 +#include <GLUT/glut.h>
    5.30 +
    5.31 +#define USE_OLDGL
    5.32 +#endif
    5.33 +
    5.34 +#else
    5.35 +/* UNIX or Windows */
    5.36 +#include <GL/glew.h>
    5.37 +#include <GL/glut.h>
    5.38 +
    5.39 +#define USE_OLDGL
    5.40 +#endif
    5.41 +
    5.42 +#ifndef GL_RGB16F
    5.43 +#define GL_RGB16F	0x881b
    5.44 +#endif
    5.45 +#ifndef GL_RGBA16F
    5.46 +#define GL_RGBA16F	0x881a
    5.47 +#endif
    5.48 +#ifndef GL_RGB32F
    5.49 +#define GL_RGB32F	0x8815
    5.50 +#endif
    5.51 +#ifndef GL_RGBA32F
    5.52 +#define GL_RGBA32F	0x8814
    5.53 +#endif
    5.54 +#ifndef GL_LUMINANCE16F
    5.55 +#define GL_LUMINANCE16F	0x881e
    5.56 +#endif
    5.57 +#ifndef GL_LUMINANCE32F
    5.58 +#define GL_LUMINANCE32F	0x8818
    5.59 +#endif
    5.60 +
    5.61 +#define CHECKGLERR	\
    5.62 +	do { \
    5.63 +		int err = glGetError(); \
    5.64 +		if(err) { \
    5.65 +			fprintf(stderr, "%s:%d: OpenGL error 0x%x: %s\n", __FILE__, __LINE__, err, strglerr(err)); \
    5.66 +			abort(); \
    5.67 +		} \
    5.68 +	} while(0)
    5.69 +
    5.70 +void init_opengl();
    5.71 +
    5.72 +const char *strglerr(int err);
    5.73 +
    5.74 +#endif	// OPENGL_H_
     6.1 --- a/src/vr.cc	Wed Sep 18 17:26:38 2013 +0300
     6.2 +++ b/src/vr.cc	Wed Sep 18 22:15:04 2013 +0300
     6.3 @@ -21,7 +21,7 @@
     6.4  
     6.5  static bool init_ovr()
     6.6  {
     6.7 -	LogMaskConstants log_level;
     6.8 +	LogMaskConstants log_level = LogMask_All;
     6.9  	// initialize Oculus SDK
    6.10  	const char *logenv = getenv("VR_LOGLEVEL");
    6.11  	if(logenv) {