00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include "GLFunctions.h"
00021 #include "fixedfloat26_6.h"
00022
00023 namespace mathglpp
00024 {
00025
00026 template <>
00027 void glVertexv<2,GLdouble>(const GLdouble* arr) { ::glVertex2dv(arr); }
00028 template <>
00029 void glVertexv<2,GLfloat>(const GLfloat* arr) { ::glVertex2fv(arr); }
00030 template <>
00031 void glVertexv<2,GLint>(const GLint* arr) { ::glVertex2iv(arr); }
00032 template <>
00033 void glVertexv<2,GLshort>(const GLshort* arr) { ::glVertex2sv(arr); }
00034 template <>
00035 void glVertexv<2,GLbyte>(const GLbyte* arr) { ::glVertex2s(arr[0], arr[1]); }
00036 template <>
00037 void glVertexv<2,FixedFloat26_6>(const FixedFloat26_6* arr) { ::glVertex2f(arr[0].toFloat(), arr[1].toFloat()); }
00038
00039 template <>
00040 void glVertexv<3,GLdouble>(const GLdouble* arr) { ::glVertex3dv(arr); }
00041 template <>
00042 void glVertexv<3,GLfloat>(const GLfloat* arr) { ::glVertex3fv(arr); }
00043 template <>
00044 void glVertexv<3,GLint>(const GLint* arr) { ::glVertex3iv(arr); }
00045 template <>
00046 void glVertexv<3,GLshort>(const GLshort* arr) { ::glVertex3sv(arr); }
00047 template <>
00048 void glVertexv<3,GLbyte>(const GLbyte* arr) { ::glVertex3s(arr[0], arr[1], arr[2]); }
00049 template <>
00050 void glVertexv<3,FixedFloat26_6>(const FixedFloat26_6* arr) { ::glVertex3f(arr[0].toFloat(), arr[1].toFloat(), arr[2].toFloat()); }
00051
00052 template <>
00053 void glVertexv<4,GLdouble>(const GLdouble* arr) { ::glVertex4dv(arr); }
00054 template <>
00055 void glVertexv<4,GLfloat>(const GLfloat* arr) { ::glVertex4fv(arr); }
00056 template <>
00057 void glVertexv<4,GLint>(const GLint* arr) { ::glVertex4iv(arr); }
00058 template <>
00059 void glVertexv<4,GLshort>(const GLshort* arr) { ::glVertex4sv(arr); }
00060 template <>
00061 void glVertexv<4,GLbyte>(const GLbyte* arr) { ::glVertex4s(arr[0], arr[1], arr[2], arr[3]); }
00062 template <>
00063 void glVertexv<4,FixedFloat26_6>(const FixedFloat26_6* arr) { ::glVertex4f(arr[0].toFloat(), arr[1].toFloat(), arr[2].toFloat(), arr[3].toFloat()); }
00064
00065 template <>
00066 void glLoadMatrix<GLdouble>(const GLdouble* m) { ::glLoadMatrixd(m); }
00067 template <>
00068 void glLoadMatrix<GLfloat>(const GLfloat* m) { ::glLoadMatrixf(m); }
00069
00070 template <>
00071 void glMultMatrix<GLdouble>(const GLdouble* m) { ::glMultMatrixd(m); }
00072 template <>
00073 void glMultMatrix<GLfloat>(const GLfloat* m) { ::glMultMatrixf(m); }
00074
00075 template <>
00076 void glGet<GLboolean>(GLenum pname, GLboolean* params) { ::glGetBooleanv(pname, params); }
00077 template <>
00078 void glGet<GLdouble>(GLenum pname, GLdouble* params) { ::glGetDoublev(pname, params); }
00079 template <>
00080 void glGet<GLfloat>(GLenum pname, GLfloat* params) { ::glGetFloatv(pname, params); }
00081 template <>
00082 void glGet<GLint>(GLenum pname, GLint* params) { ::glGetIntegerv(pname, params); }
00083
00084 template <>
00085 void glMap1<GLdouble>(GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble* points)
00086 { ::glMap1d(target, u1, u2, stride, order, points); }
00087 template <>
00088 void glMap1<GLfloat>(GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat* points)
00089 { ::glMap1f(target, u1, u2, stride, order, points); }
00090
00091 template <>
00092 void glMap2<GLdouble>(GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble* points)
00093 { ::glMap2d(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points); }
00094 template <>
00095 void glMap2<GLfloat>(GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat* points)
00096 { ::glMap2f(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points); }
00097
00098 template <>
00099 void glMapGrid1<GLdouble>(GLint un, GLdouble u1, GLdouble u2) { ::glMapGrid1d(un, u1, u2); }
00100 template <>
00101 void glMapGrid1<GLfloat>(GLint un, GLfloat u1, GLfloat u2) { ::glMapGrid1f(un, u1, u2); }
00102
00103
00104 template <>
00105 void glMapGrid2<GLdouble>(GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2) { ::glMapGrid2d(un, u1, u2, vn, v1, v2); }
00106 template <>
00107 void glMapGrid2<GLfloat>(GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2) { ::glMapGrid2f(un, u1, u2, vn, v1, v2); }
00108
00109
00110 template <>
00111 void glEvalCoord1<GLdouble>(GLdouble u) { ::glEvalCoord1d(u); }
00112 template <>
00113 void glEvalCoord1<GLfloat>(GLfloat u) { ::glEvalCoord1f(u); }
00114
00115 template <>
00116 void glEvalCoord2<GLdouble>(GLdouble u, GLdouble v) { ::glEvalCoord2d(u, v); }
00117 template <>
00118 void glEvalCoord2<GLfloat>(GLfloat u, GLfloat v) { ::glEvalCoord2f(u, v); }
00119
00120
00121 };