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