oculus1

annotate src/opengl.cc @ 21:ef4c9d8eeca7

added shaderless distortion method
author John Tsiombikas <nuclear@member.fsf.org>
date Wed, 02 Oct 2013 04:09:37 +0300
parents 3265970a7315
children
rev   line source
nuclear@8 1 #include "opengl.h"
nuclear@9 2 #include <vmath/vmath.h>
nuclear@8 3
nuclear@9 4 void load_matrix(const Matrix4x4 &m)
nuclear@8 5 {
nuclear@9 6 #ifdef SINGLE_PRECISION_MATH
nuclear@9 7 if(glLoadTransposeMatrixfARB) {
nuclear@9 8 glLoadTransposeMatrixfARB((float*)&m);
nuclear@9 9 } else {
nuclear@9 10 Matrix4x4 tmat = m.transposed();
nuclear@9 11 glLoadMatrixf((float*)&tmat);
nuclear@9 12 }
nuclear@9 13 #else
nuclear@9 14 if(glLoadTransposeMatrixdARB) {
nuclear@9 15 glLoadTransposeMatrixdARB((double*)&m);
nuclear@9 16 } else {
nuclear@9 17 Matrix4x4 tmat = m.transposed();
nuclear@9 18 glLoadMatrixd((double*)&tmat);
nuclear@9 19 }
nuclear@9 20 #endif
nuclear@9 21 }
nuclear@9 22
nuclear@9 23 void mult_matrix(const Matrix4x4 &m)
nuclear@9 24 {
nuclear@9 25 #ifdef SINGLE_PRECISION_MATH
nuclear@9 26 if(glMultTransposeMatrixfARB) {
nuclear@9 27 glMultTransposeMatrixfARB((float*)&m);
nuclear@9 28 } else {
nuclear@9 29 Matrix4x4 tmat = m.transposed();
nuclear@9 30 glMultMatrixf((float*)&tmat);
nuclear@9 31 }
nuclear@9 32 #else
nuclear@9 33 if(glMultTransposeMatrixdARB) {
nuclear@9 34 glMultTransposeMatrixdARB((double*)&m);
nuclear@9 35 } else {
nuclear@9 36 Matrix4x4 tmat = m.transposed();
nuclear@9 37 glMultMatrixd((double*)&tmat);
nuclear@9 38 }
nuclear@8 39 #endif
nuclear@8 40 }
nuclear@8 41
nuclear@8 42 const char *strglerr(int err)
nuclear@8 43 {
nuclear@8 44 static const char *errnames[] = {
nuclear@8 45 "GL_INVALID_ENUM",
nuclear@8 46 "GL_INVALID_VALUE",
nuclear@8 47 "GL_INVALID_OPERATION",
nuclear@8 48 "GL_STACK_OVERFLOW",
nuclear@8 49 "GL_STACK_UNDERFLOW",
nuclear@8 50 "GL_OUT_OF_MEMORY",
nuclear@8 51 "GL_INVALID_FRAMEBUFFER_OPERATION"
nuclear@8 52 };
nuclear@8 53
nuclear@8 54 if(!err) {
nuclear@8 55 return "GL_NO_ERROR";
nuclear@8 56 }
nuclear@8 57 if(err < GL_INVALID_ENUM || err > GL_OUT_OF_MEMORY) {
nuclear@8 58 return "<invalid gl error>";
nuclear@8 59 }
nuclear@8 60 return errnames[err - GL_INVALID_ENUM];
nuclear@8 61 }