oculus2

changeset 3:096b18432ba7

something is fucked
author John Tsiombikas <nuclear@member.fsf.org>
date Tue, 26 Aug 2014 18:37:24 +0300
parents 0984fa94b490
children d64830551c32
files oculus2.vcxproj src/main.c
diffstat 2 files changed, 56 insertions(+), 12 deletions(-) [+]
line diff
     1.1 --- a/oculus2.vcxproj	Tue Aug 26 08:14:09 2014 +0300
     1.2 +++ b/oculus2.vcxproj	Tue Aug 26 18:37:24 2014 +0300
     1.3 @@ -57,7 +57,7 @@
     1.4      <Link>
     1.5        <SubSystem>Console</SubSystem>
     1.6        <GenerateDebugInformation>true</GenerateDebugInformation>
     1.7 -      <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;sdl2.lib;sdl2main.lib;opengl32.lib;glew32.lib;libovrd.lib;winmm.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
     1.8 +      <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;sdl2.lib;sdl2main.lib;opengl32.lib;glu32.lib;glew32.lib;libovrd.lib;winmm.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
     1.9      </Link>
    1.10    </ItemDefinitionGroup>
    1.11    <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
    1.12 @@ -76,7 +76,7 @@
    1.13        <GenerateDebugInformation>true</GenerateDebugInformation>
    1.14        <EnableCOMDATFolding>true</EnableCOMDATFolding>
    1.15        <OptimizeReferences>true</OptimizeReferences>
    1.16 -      <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;sdl2.lib;sdl2main.lib;opengl32.lib;glew32.lib;libovr.lib;winmm.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
    1.17 +      <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;sdl2.lib;sdl2main.lib;opengl32.lib;glu32.lib;glew32.lib;libovr.lib;winmm.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
    1.18      </Link>
    1.19    </ItemDefinitionGroup>
    1.20    <ItemGroup>
     2.1 --- a/src/main.c	Tue Aug 26 08:14:09 2014 +0300
     2.2 +++ b/src/main.c	Tue Aug 26 18:37:24 2014 +0300
     2.3 @@ -114,13 +114,12 @@
     2.4  		fb_ovr_tex[i].OGL.Header.API = ovrRenderAPI_OpenGL;
     2.5  		fb_ovr_tex[i].OGL.Header.TextureSize.w = fb_tex_width;
     2.6  		fb_ovr_tex[i].OGL.Header.TextureSize.h = fb_tex_height;
     2.7 -		fb_ovr_tex[i].OGL.Header.RenderViewport.Pos.y = 0;
     2.8 +		fb_ovr_tex[i].OGL.Header.RenderViewport.Pos.x = i == 0 ? 0 : fb_width / 2.0;
     2.9 +		fb_ovr_tex[i].OGL.Header.RenderViewport.Pos.y = fb_tex_height - fb_height;
    2.10  		fb_ovr_tex[i].OGL.Header.RenderViewport.Size.w = fb_width / 2.0;
    2.11  		fb_ovr_tex[i].OGL.Header.RenderViewport.Size.h = fb_height;
    2.12  		fb_ovr_tex[i].OGL.TexId = fb_tex;
    2.13  	}
    2.14 -	fb_ovr_tex[0].OGL.Header.RenderViewport.Pos.x = 0;
    2.15 -	fb_ovr_tex[1].OGL.Header.RenderViewport.Pos.x = fb_width / 2.0;
    2.16  
    2.17  	memset(&glcfg, 0, sizeof glcfg);
    2.18  	glcfg.OGL.Header.API = ovrRenderAPI_OpenGL;
    2.19 @@ -140,20 +139,19 @@
    2.20  	}
    2.21  	ovrHmd_SetEnabledCaps(hmd, ovrHmdCap_LowPersistence | ovrHmdCap_DynamicPrediction);
    2.22  
    2.23 -	dcaps = ovrDistortionCap_Chromatic | ovrDistortionCap_Vignette | ovrDistortionCap_TimeWarp;
    2.24 +	dcaps = ovrDistortionCap_Chromatic | ovrDistortionCap_Vignette;// | ovrDistortionCap_TimeWarp;
    2.25  	if(!ovrHmd_ConfigureRendering(hmd, &glcfg.Config, dcaps, hmd->DefaultEyeFov, eye_rdesc)) {
    2.26  		fprintf(stderr, "failed to configure distortion renderer\n");
    2.27  	}
    2.28  
    2.29 -	/* ovrhmd_EnableHSWDisplaySDKRender(hmd, 0); */
    2.30 -
    2.31 +	ovrhmd_EnableHSWDisplaySDKRender(hmd, 0);
    2.32  
    2.33  	glEnable(GL_DEPTH_TEST);
    2.34  	glEnable(GL_CULL_FACE);
    2.35  	glEnable(GL_LIGHTING);
    2.36  	glEnable(GL_LIGHT0);
    2.37  
    2.38 -	glClearColor(0.5, 0.05, 0.05, 1);
    2.39 +	glClearColor(0.05, 0.05, 0.05, 1);
    2.40  
    2.41  	return 0;
    2.42  }
    2.43 @@ -179,6 +177,45 @@
    2.44  	glBindFramebuffer(GL_FRAMEBUFFER, fbo);
    2.45  	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    2.46  
    2.47 +	glViewport(0, 0, fb_width, fb_height);
    2.48 +
    2.49 +	/*glMatrixMode(GL_PROJECTION);
    2.50 +	glLoadIdentity();
    2.51 +	glMatrixMode(GL_MODELVIEW);
    2.52 +	glLoadIdentity();
    2.53 +
    2.54 +	glPushAttrib(GL_ENABLE_BIT);
    2.55 +	glDisable(GL_LIGHTING);
    2.56 +	glDisable(GL_DEPTH_TEST);
    2.57 +
    2.58 +	glBegin(GL_QUADS);
    2.59 +	glColor3f(1, 0, 0);
    2.60 +	glVertex2f(-1, -1);
    2.61 +	glVertex2f(0, -1);
    2.62 +	glVertex2f(0, 1);
    2.63 +	glVertex2f(-1, 1);
    2.64 +
    2.65 +	glColor3f(1, 0, 1);
    2.66 +	glVertex2f(-0.6, -0.1);
    2.67 +	glVertex2f(-0.4, -0.1);
    2.68 +	glVertex2f(-0.4, 0.1);
    2.69 +	glVertex2f(-0.6, 0.1);
    2.70 +
    2.71 +	glColor3f(0, 1, 0);
    2.72 +	glVertex2f(0, -1);
    2.73 +	glVertex2f(1, -1);
    2.74 +	glVertex2f(1, 1);
    2.75 +	glVertex2f(0, 1);
    2.76 +
    2.77 +	glColor3f(0, 1, 1);
    2.78 +	glVertex2f(0.4, -0.1);
    2.79 +	glVertex2f(0.6, -0.1);
    2.80 +	glVertex2f(0.6, 0.1);
    2.81 +	glVertex2f(0.4, 0.1);
    2.82 +	glEnd();
    2.83 +
    2.84 +	glPopAttrib();*/
    2.85 +
    2.86  	/* for each eye ... */
    2.87  	for(i=0; i<2; i++) {
    2.88  		int eye = hmd->EyeRenderOrder[i];
    2.89 @@ -188,12 +225,14 @@
    2.90  
    2.91  		proj = ovrMatrix4f_Projection(hmd->DefaultEyeFov[eye], 0.5, 500.0, 1);
    2.92  		glMatrixMode(GL_PROJECTION);
    2.93 -		glLoadMatrixf(proj.M[0]);
    2.94 +		//glLoadMatrixf(proj.M[0]);
    2.95 +		glLoadIdentity();
    2.96 +		gluPerspective(50.0, (float)fb_width / 2.0 / (float)fb_height, 0.5, 500.0);
    2.97  
    2.98  		pose[eye] = ovrHmd_GetEyePose(hmd, eye);
    2.99  		glMatrixMode(GL_MODELVIEW);
   2.100 -		/* TODO: get HMD orientation data and use them */
   2.101 -		glTranslatef(0, -ovrHmd_GetFloat(hmd, OVR_KEY_EYE_HEIGHT, 1.65), 0);
   2.102 +		/* TODO: get HMD orientation data and use it */
   2.103 +		//glTranslatef(0, -ovrHmd_GetFloat(hmd, OVR_KEY_EYE_HEIGHT, 1.65), 0);
   2.104  
   2.105  		draw_scene();
   2.106  	}
   2.107 @@ -212,6 +251,11 @@
   2.108  	float lpos[] = {0, 5, 0, 1};
   2.109  	glLightfv(GL_LIGHT0, GL_POSITION, lpos);
   2.110  
   2.111 +	glPushMatrix();
   2.112 +	glTranslatef(0, 0, -8);
   2.113 +	draw_box(2, 2, 2, 1.0);
   2.114 +	glPopMatrix();
   2.115 +
   2.116  	glTranslatef(0, 5, 0);
   2.117  	draw_box(20, 10, 20, -1.0);
   2.118