Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStijn Buys <ingar@osirion.org>2008-02-02 14:53:46 +0000
committerStijn Buys <ingar@osirion.org>2008-02-02 14:53:46 +0000
commit67f8a7a783e550cab8e6a77d997b31815ee8cd7e (patch)
treeb68bde793bb881b965366569cfc9cea65423eb12 /src/render/gl.cc
parent8ac9b27f5f0a1e833974058464cdf7029c9d7e0b (diff)
introduced librender
Diffstat (limited to 'src/render/gl.cc')
-rw-r--r--src/render/gl.cc163
1 files changed, 163 insertions, 0 deletions
diff --git a/src/render/gl.cc b/src/render/gl.cc
new file mode 100644
index 0000000..6eb91b1
--- /dev/null
+++ b/src/render/gl.cc
@@ -0,0 +1,163 @@
+/*
+ render/gl.cc
+ This file is part of the Osirion project and is distributed under
+ the terms of the GNU General Public License version 2
+*/
+
+// project includes
+#include "render/gl.h"
+
+// system includes
+#include "GL/gl.h"
+
+using math::Vector3f;
+using math::Color;
+
+namespace render {
+
+namespace gl {
+
+std::string renderer()
+{
+ return std::string ((char *)glGetString(GL_RENDERER));
+}
+
+std::string vendor()
+{
+ return std::string ((char *)glGetString(GL_VENDOR));
+}
+
+std::string version()
+{
+ return std::string ((char *)glGetString(GL_VERSION));
+}
+
+std::string extensions()
+{
+ return std::string ((char *)glGetString(GL_EXTENSIONS));
+}
+
+void begin(Primitive primitive)
+{
+ ::glBegin(primitive);
+}
+
+void end() {
+ ::glEnd();
+}
+
+void viewport(GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ ::glViewport(x, y, width, height);
+}
+
+void depthmask(GLenum mode)
+{
+ ::glDepthMask(mode);
+}
+
+
+void frontface(GLenum mode)
+{
+ glFrontFace(mode);
+}
+
+void cullface(GLenum mode)
+{
+ glCullFace(mode);
+}
+
+void shademodel(GLenum mode)
+{
+ glShadeModel(mode);
+}
+
+void blendfunc(GLenum sfactor, GLenum dfactor)
+{
+ glBlendFunc(sfactor, dfactor);
+}
+
+void enable(GLenum cap)
+{
+ glEnable(cap);
+}
+
+void disable(GLenum cap)
+{
+ glDisable(cap);
+}
+
+void clear (GLbitfield mask) {
+ glClear(mask);
+}
+
+void clearcolor(Color const & color) {
+ glClearColor(color.red(), color.green(), color.blue(), color.alpha());
+}
+
+void clearcolor(const float r, const float g, const float b, const float a) {
+ glClearColor(r,g,b, a);
+}
+
+void rotate(const float angle, const Vector3f& vector) {
+ glRotatef(angle, vector[0], vector[1], vector[2]);
+}
+
+void rotate(const float angle, const float x, const float y, const float z) {
+ glRotatef(angle, x, y, z);
+}
+
+void translate(const Vector3f& vector) {
+ glTranslatef(vector[0], vector[1], vector[2]);
+}
+
+void translate(const float x, const float y, const float z) {
+ glTranslatef(x, y, z);
+}
+void scale(const Vector3f& vector) {
+ glScalef(vector[0], vector[1], vector[2]);
+}
+
+void scale(const float x, const float y, const float z) {
+ glScalef(x, y, z);
+}
+
+void vertex(const Vector3f& vector) {
+ glVertex3f(vector[0], vector[1], vector[2]);
+}
+
+void vertex(const float x, const float y, const float z) {
+ glVertex3f(x, y, z);
+}
+
+void push() {
+ glPushMatrix();
+}
+
+void pop() {
+ glPopMatrix();
+}
+
+void color(const float r, const float g, const float b, const float a) {
+ glColor4f(r,g,b,a);
+}
+void color(Color const & color) {
+ glColor4f(color.red(), color.green(), color.blue(), color.alpha());
+}
+
+void matrixmode(GLenum mode) {
+ glMatrixMode(mode);
+}
+
+void loadidentity() {
+ glLoadIdentity();
+}
+
+void frustum(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble znear, GLdouble zfar)
+{
+ glFrustum(left, right, bottom, top, znear, zfar);
+}
+
+} // namespace gl
+
+} // namespace render