diff options
-rw-r--r-- | src/gl/gllib.cc | 14 | ||||
-rw-r--r-- | src/gl/gllib.h | 164 |
2 files changed, 14 insertions, 164 deletions
diff --git a/src/gl/gllib.cc b/src/gl/gllib.cc index 3d3e26c..b8ca232 100644 --- a/src/gl/gllib.cc +++ b/src/gl/gllib.cc @@ -17,9 +17,23 @@ using math::Color; namespace gl { +std::string renderer; +std::string version; +std::string extensions; +std::string vendor; + void init() { con_debug << "Initializing gl..." << std::endl; + + renderer = std::string ((char *)glGetString(GL_RENDERER)); + vendor = std::string ((char *)glGetString(GL_VENDOR)); + version = std::string ((char *)glGetString(GL_VERSION)); + extensions = std::string ((char *)glGetString(GL_EXTENSIONS)); + + con_print << "Renderer: " << renderer << std::endl; + con_print << "Vendor: " << vendor << std::endl; + con_print << "Version: " << version << std::endl; } void shutdown() diff --git a/src/gl/gllib.h b/src/gl/gllib.h index 42fcea1..e69de29 100644 --- a/src/gl/gllib.h +++ b/src/gl/gllib.h @@ -1,164 +0,0 @@ -/* - gl/gllib.h - This file is part of the Osirion project and is distributed under - the terms of the GNU General Public License version 2 -*/ - -#ifndef __INCLUDED_GL_GLLIB_H__ -#define __INCLUDED_GL_GLLIB_H__ - -// project headers -#include "math/vector3f.h" -#include "math/color.h" - -// OpenGL headers -#include <GL/gl.h> - -/// wrapper namespace for OpenGL operations -/** The gl namespace provides a wrapper to the OpenGL library functions. - * All methods take floats or Vector3f and Color as parameters. - */ -namespace gl -{ - /// initialize the OpenGL subsystem - void init(); - - /// shutdown the OpenGL subsystem - void shutdown(); - - /// enum to denote Vertex drawing modes - enum Primitive { - Points=GL_POINTS, - Lines=GL_LINES, - LineStrip=GL_LINE_STRIP, - LineLoop=GL_LINE_LOOP, - Triangles=GL_TRIANGLES, - TriangleStrip=GL_TRIANGLE_STRIP, - TriangleFan=GL_TRIANGLE_FAN, - Quads=GL_QUADS, - QuadStrip=GL_QUAD_STRIP, - Polygon=GL_POLYGON - }; - - /// glViewPort - void viewport(GLint x, GLint y, GLsizei width, GLsizei height ); - - /// set the color used to clear to buffer - void clearcolor(math::Color const &color); - void clearcolor(const float r, const float g, const float b, const float a); - - /// clear buffers to preset values - void clear (GLbitfield mask); - - /// glMatrixMode - void matrixmode(GLenum mode); - - /// glEnable - void enable(GLenum cap); - - /// glDisable - void disable(GLenum cap); - - /// glShadeModel - void shademodel(GLenum mode); - - /// glCullFace - void cullface(GLenum mode); - - /// glFrontFace - void frontface(GLenum mode); - - /// glDepthMask - void depthmask(GLenum mode); - - /// glBlendFunc - void blendfunc(GLenum sfactor, GLenum dfactor); - - /// Delimite the start of a sequence of verteces describing a primitive or group of primitives - /** @param primitive The type of drawing primitive - * @see end() - */ - void begin(Primitive primitive); - - /// delimit the end of a sequence of verteces describing a primitive or group of primitives - /** @see begin() - */ - void end(); - - /// Add the next vertex the the current drawing operation - /** From the glVertex() description: - * vertex() commands are used within begin()/end() pairs to specify point, - * line, and polygon vertices. The current color, normal, and texture - * coordinates are associated with the vertex when vertex() is called. - */ - void vertex(const math::Vector3f& vector); - - void vertex(const float x, const float y, const float z); - - /// multiply the current matrix by a general rotation matrix - /** @param angle The angle of the rotation, in degrees [0-360] - * @param vector The rotation axes, relative to the origin (0,0,0) - */ - void rotate(const float angle, const math::Vector3f& vector); - - /// multiply the current matrix by a general rotation matrix - /** @param angle The angle of the rotation, in degrees - * @param x The x-coordinate of the rotation vector - * @param y The y-coordinate of the rotation vector - * @param z The z-coordinate of the rotation vector - */ - void rotate(const float angle, const float x, const float y, const float z); - - /// multiply the current matrix by a general translation matrix - /** @param vector The translation vector, relative to the origin (0,0,0) - */ - void translate(const math::Vector3f& vector); - - /// multiply the current matrix by a general translation matrix - /** @param x The x-coordinate of the translation vector - * @param y The y-coordinate of the translation vector - * @param z The z-coordinate of the translation vector - */ - void translate(const float x, const float y, const float z); - - /// multiply the current matrix by a general scaling matrix - /** @param vector The scale factor for all 3 axes - */ - void scale(const math::Vector3f& vector); - - /// multiply the current matrix by a general scaling matrix - /** @param x x-scaling factor - * @param y y-scaling factor - * @param z z-scaling factor - */ - void scale(const float x, const float y, const float z); - - /// specify the drawing color for the next GL functions - /** @param color the new drawing color - */ - void color(math::Color const & color); - - /** @param r red value of the new drawing color - * @param g green value of the new drawing color - * @param b blue value of the new drawing color - * @param a alpha value of the new drawing color - */ - void color(const float r, const float g, const float b, const float a=1.0f); - - /// Push the current transformation matrix to the stack - void push(); - - /// Replace the transformation matrix with the top from the stack - void pop(); - - /// Replace the transformation matrix with the identity matrtix - void loadidentity(); - - /// Perspective matrix - void frustum(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble znear, GLdouble zfar); -}; - -#include "gl/box.h" -#include "gl/sphere.h" - -#endif // __INCLUDED_GL_GLLIB_H__ |