# HG changeset patch # User John Tsiombikas # Date 1408880160 -10800 # Node ID 9b0db7dbde6e70d50d2807dfe1fa8958aac681a6 # Parent 423d4e6728cbda2e8f493ab08104b57406cfa0e8 hmmm doesn't work properly yes diff -r 423d4e6728cb -r 9b0db7dbde6e conworlds.vcxproj --- a/conworlds.vcxproj Sun Aug 24 09:43:58 2014 +0300 +++ b/conworlds.vcxproj Sun Aug 24 14:36:00 2014 +0300 @@ -58,7 +58,7 @@ Console true - opengl32.lib;freeglutd.lib;glew32.lib;libvmath.lib;libimago2.lib;jpeglib.lib;libpng.lib;zlib.lib;libovrd.lib;ws2_32.lib;%(AdditionalDependencies) + opengl32.lib;freeglutd.lib;glew32.lib;libvmath.lib;libanim.lib;libimago2.lib;jpeglib.lib;libpng.lib;zlib.lib;libovrd.lib;ws2_32.lib;%(AdditionalDependencies) @@ -78,17 +78,28 @@ true true true - opengl32.lib;freeglut.lib;glew32.lib;libvmath.lib;libimago2.lib;jpeglib.lib;libpng.lib;zlib.lib;libovr.lib;ws2_32.lib;%(AdditionalDependencies) + opengl32.lib;freeglut.lib;glew32.lib;libvmath.lib;libanim.lib;libimago2.lib;jpeglib.lib;libpng.lib;zlib.lib;libovr.lib;ws2_32.lib;%(AdditionalDependencies) + + + + + + + + + + + @@ -97,21 +108,38 @@ + + + + + + + + + + + + + + + + + - + \ No newline at end of file diff -r 423d4e6728cb -r 9b0db7dbde6e conworlds.vcxproj.filters --- a/conworlds.vcxproj.filters Sun Aug 24 09:43:58 2014 +0300 +++ b/conworlds.vcxproj.filters Sun Aug 24 14:36:00 2014 +0300 @@ -55,6 +55,42 @@ src\vr + + src + + + src + + + src + + + src + + + src + + + src + + + src + + + src + + + src + + + src + + + src + + + src + @@ -90,5 +126,49 @@ src\vr + + src + + + src + + + src + + + src + + + src + + + src + + + src + + + src + + + src + + + src + + + src + + + src + + + src + + + + + src + \ No newline at end of file diff -r 423d4e6728cb -r 9b0db7dbde6e src/game.cc --- a/src/game.cc Sun Aug 24 09:43:58 2014 +0300 +++ b/src/game.cc Sun Aug 24 14:36:00 2014 +0300 @@ -1,3 +1,4 @@ +#include #include "game.h" #include "gameopt.h" #include "opengl.h" @@ -8,6 +9,9 @@ static void game_render_eye(int eye); static void draw_scene(); static bool setup_rtarg(int x, int y); +static void draw_box(float sz); +static void draw_pyramid(float basesz, float height); + static Texture *rtarg; static unsigned int fbo, rtarg_depth; @@ -143,9 +147,11 @@ if(eye == 0 || !vr_view_matrix(eye < 0 ? 0 : 1, mat)) { glLoadIdentity(); } else { - glLoadMatrixf(mat); + glLoadIdentity(); + //glLoadMatrixf(mat); } glMultTransposeMatrixf(view_matrix[0]); + glMultMatrixf(mat); draw_scene(); } @@ -258,27 +264,7 @@ for(int i=0; i<4; i++) { glPushMatrix(); glTranslatef(i & 1 ? -10 : 10, 0, i & 2 ? -10 : 10); - glScalef(2.0, 2.0, 2.0); - - glBegin(GL_TRIANGLES); - glNormal3f(0, 1, 1); - glVertex3f(-1, 0, 1); - glVertex3f(1, 0, 1); - glVertex3f(0, 1.75, 0); - glNormal3f(1, 1, 0); - glVertex3f(1, 0, 1); - glVertex3f(1, 0, -1); - glVertex3f(0, 1.75, 0); - glNormal3f(0, 1, -1); - glVertex3f(1, 0, -1); - glVertex3f(-1, 0, -1); - glVertex3f(0, 1.75, 0); - glNormal3f(-1, 1, 0); - glVertex3f(-1, 0, -1); - glVertex3f(-1, 0, 1); - glVertex3f(0, 1.75, 0); - glEnd(); - + draw_pyramid(2.0, 2.0); glPopMatrix(); } } @@ -314,3 +300,68 @@ printf("created render target %dx%d (texture: %dx%d)\n", x, y, tex_width, tex_height); return true; } + +static void draw_box(float sz) +{ + float hsz = sz / 2.0; + + glBegin(GL_QUADS); + glNormal3f(0, 0, 1); + glVertex3f(-hsz, -hsz, hsz); + glVertex3f(hsz, -hsz, hsz); + glVertex3f(hsz, hsz, hsz); + glVertex3f(-hsz, hsz, hsz); + glNormal3f(1, 0, 0); + glVertex3f(hsz, -hsz, hsz); + glVertex3f(hsz, -hsz, -hsz); + glVertex3f(hsz, hsz, -hsz); + glVertex3f(hsz, hsz, hsz); + glNormal3f(0, 0, -1); + glVertex3f(hsz, -hsz, -hsz); + glVertex3f(-hsz, -hsz, -hsz); + glVertex3f(-hsz, hsz, -hsz); + glVertex3f(hsz, hsz, -hsz); + glNormal3f(-1, 0, 0); + glVertex3f(-hsz, -hsz, -hsz); + glVertex3f(-hsz, -hsz, hsz); + glVertex3f(-hsz, hsz, hsz); + glVertex3f(-hsz, hsz, -hsz); + glNormal3f(0, 1, 0); + glVertex3f(-hsz, hsz, hsz); + glVertex3f(hsz, hsz, hsz); + glVertex3f(hsz, hsz, -hsz); + glVertex3f(-hsz, hsz, -hsz); + glNormal3f(0, -1, 0); + glVertex3f(-hsz, -hsz, -hsz); + glVertex3f(hsz, -hsz, -hsz); + glVertex3f(hsz, -hsz, hsz); + glVertex3f(-hsz, -hsz, hsz); + glEnd(); +} + +static void draw_pyramid(float basesz, float height) +{ + float hsz = basesz / 2.0; + float theta = atan(hsz / height); + float nx = cos(theta); + float ny = sin(theta); + + glBegin(GL_TRIANGLES); + glNormal3f(0, ny, nx); + glVertex3f(-hsz, 0, hsz); + glVertex3f(hsz, 0, hsz); + glVertex3f(0, height, 0); + glNormal3f(nx, ny, 0); + glVertex3f(hsz, 0, hsz); + glVertex3f(hsz, 0, -hsz); + glVertex3f(0, height, 0); + glNormal3f(0, ny, -nx); + glVertex3f(hsz, 0, -hsz); + glVertex3f(-hsz, 0, -hsz); + glVertex3f(0, height, 0); + glNormal3f(-nx, ny, 0); + glVertex3f(-hsz, 0, -hsz); + glVertex3f(-hsz, 0, hsz); + glVertex3f(0, height, 0); + glEnd(); +} \ No newline at end of file