nuclear@7: #include "opengl.h" nuclear@7: #include "vmath.h" nuclear@7: nuclear@7: void load_matrix(const Matrix4x4 &m) nuclear@7: { nuclear@7: #ifdef SINGLE_PRECISION_MATH nuclear@7: if(glLoadTransposeMatrixfARB) { nuclear@7: glLoadTransposeMatrixfARB((float*)&m); nuclear@7: } else { nuclear@7: Matrix4x4 tmat = m.transposed(); nuclear@7: glLoadMatrixf((float*)&tmat); nuclear@7: } nuclear@7: #else nuclear@7: if(glLoadTransposeMatrixdARB) { nuclear@7: glLoadTransposeMatrixdARB((double*)&m); nuclear@7: } else { nuclear@7: Matrix4x4 tmat = m.transposed(); nuclear@7: glLoadMatrixd((double*)&tmat); nuclear@7: } nuclear@7: #endif nuclear@7: } nuclear@7: nuclear@7: void mult_matrix(const Matrix4x4 &m) nuclear@7: { nuclear@7: #ifdef SINGLE_PRECISION_MATH nuclear@7: if(glMultTransposeMatrixfARB) { nuclear@7: glMultTransposeMatrixfARB((float*)&m); nuclear@7: } else { nuclear@7: Matrix4x4 tmat = m.transposed(); nuclear@7: glMultMatrixf((float*)&tmat); nuclear@7: } nuclear@7: #else nuclear@7: if(glMultTransposeMatrixdARB) { nuclear@7: glMultTransposeMatrixdARB((double*)&m); nuclear@7: } else { nuclear@7: Matrix4x4 tmat = m.transposed(); nuclear@7: glMultMatrixd((double*)&tmat); nuclear@7: } nuclear@7: #endif nuclear@7: } nuclear@18: nuclear@18: const char *strglerr(int err) nuclear@18: { nuclear@18: static const char *errnames[] = { nuclear@18: "GL_INVALID_ENUM", nuclear@18: "GL_INVALID_VALUE", nuclear@18: "GL_INVALID_OPERATION", nuclear@18: "GL_STACK_OVERFLOW", nuclear@18: "GL_STACK_UNDERFLOW", nuclear@18: "GL_OUT_OF_MEMORY", nuclear@18: "GL_INVALID_FRAMEBUFFER_OPERATION" nuclear@18: }; nuclear@18: nuclear@18: if(!err) { nuclear@18: return "GL_NO_ERROR"; nuclear@18: } nuclear@18: if(err < GL_INVALID_ENUM || err > GL_OUT_OF_MEMORY) { nuclear@18: return ""; nuclear@18: } nuclear@18: return errnames[err - GL_INVALID_ENUM]; nuclear@18: }