oculus1
diff src/opengl.cc @ 9:b66b54a68dfd
tracking almost done
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Thu, 19 Sep 2013 06:36:48 +0300 |
parents | 3265970a7315 |
children |
line diff
1.1 --- a/src/opengl.cc Wed Sep 18 22:15:04 2013 +0300 1.2 +++ b/src/opengl.cc Thu Sep 19 06:36:48 2013 +0300 1.3 @@ -1,9 +1,41 @@ 1.4 #include "opengl.h" 1.5 +#include <vmath/vmath.h> 1.6 1.7 -void init_opengl() 1.8 +void load_matrix(const Matrix4x4 &m) 1.9 { 1.10 -#ifdef __GLEW_H__ 1.11 - glewInit(); 1.12 +#ifdef SINGLE_PRECISION_MATH 1.13 + if(glLoadTransposeMatrixfARB) { 1.14 + glLoadTransposeMatrixfARB((float*)&m); 1.15 + } else { 1.16 + Matrix4x4 tmat = m.transposed(); 1.17 + glLoadMatrixf((float*)&tmat); 1.18 + } 1.19 +#else 1.20 + if(glLoadTransposeMatrixdARB) { 1.21 + glLoadTransposeMatrixdARB((double*)&m); 1.22 + } else { 1.23 + Matrix4x4 tmat = m.transposed(); 1.24 + glLoadMatrixd((double*)&tmat); 1.25 + } 1.26 +#endif 1.27 +} 1.28 + 1.29 +void mult_matrix(const Matrix4x4 &m) 1.30 +{ 1.31 +#ifdef SINGLE_PRECISION_MATH 1.32 + if(glMultTransposeMatrixfARB) { 1.33 + glMultTransposeMatrixfARB((float*)&m); 1.34 + } else { 1.35 + Matrix4x4 tmat = m.transposed(); 1.36 + glMultMatrixf((float*)&tmat); 1.37 + } 1.38 +#else 1.39 + if(glMultTransposeMatrixdARB) { 1.40 + glMultTransposeMatrixdARB((double*)&m); 1.41 + } else { 1.42 + Matrix4x4 tmat = m.transposed(); 1.43 + glMultMatrixd((double*)&tmat); 1.44 + } 1.45 #endif 1.46 } 1.47