Index: trunk/src/lib/graphics/graphics_engine.cc
===================================================================
--- trunk/src/lib/graphics/graphics_engine.cc	(revision 5260)
+++ trunk/src/lib/graphics/graphics_engine.cc	(revision 5261)
@@ -225,4 +225,8 @@
 }
 
+/**
+ * grabs the Hardware Specifics
+ * checks for all the different HW-types
+ */
 void GraphicsEngine::grabHardwareSettings()
 {
@@ -308,5 +312,4 @@
 }
 
-
 /**
  *  Signalhandler, for when the resolution has changed
@@ -322,6 +325,4 @@
 */
 bool GraphicsEngine::texturesEnabled = true;
-
-
 
 /**
@@ -378,5 +379,4 @@
      return false;
 };
-
 
 /**
@@ -470,4 +470,18 @@
       PRINT(4)(" |  %d x %d\n", this->videoModes[i]->w, this->videoModes[i]->h);
   }
+}
+
+/**
+ * checks wether a certain extension is availiable
+ * @param extension the Extension to check for (ex. GL_ARB_texture_env_dot3)
+ * @return true if it is, false otherwise
+ */
+bool GraphicsEngine::hwSupportsEXT(const char* extension)
+{
+  if (this->hwExtensions != NULL)
+    for (unsigned int i = 0; i < this->hwExtensions->getCount(); i++)
+      if (!strcmp(extension, this->hwExtensions->getString(i)))
+        return true;
+  return false;
 }
 
@@ -554,5 +568,5 @@
 
 /**
-  \brief processes the events for orxonox main class
+  \brief processes the events for the GraphicsEngine class
 * @param the event to handle
  */
Index: trunk/src/lib/graphics/graphics_engine.h
===================================================================
--- trunk/src/lib/graphics/graphics_engine.h	(revision 5260)
+++ trunk/src/lib/graphics/graphics_engine.h	(revision 5261)
@@ -69,4 +69,5 @@
 
     void listModes();
+    bool hwSupportsEXT(const char* extension);
 
     /** \brief swaps the GL_BUFFERS */
Index: trunk/src/lib/graphics/shader.cc
===================================================================
--- trunk/src/lib/graphics/shader.cc	(revision 5261)
+++ trunk/src/lib/graphics/shader.cc	(revision 5261)
@@ -0,0 +1,69 @@
+/*
+   orxonox - the future of 3D-vertical-scrollers
+
+   Copyright (C) 2004 orx
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   ### File Specific:
+   main-programmer: Benjamin Grauer
+   co-programmer: ...
+*/
+
+//#define DEBUG_SPECIAL_MODULE DEBUG_MODULE_
+
+#include "shader.h"
+
+using namespace std;
+
+
+/**
+ * standard constructor
+*/
+Shader::Shader (SHADER_TYPE type, ...)
+{
+   this->setClassID(CL_SHADER, "Shader");
+
+   this->fragmentShaderFile = NULL;
+   this->vertexShaderFile = NULL;
+   this->fragmentShaderSource = NULL;
+   this->vertexShaderSource = NULL;
+   this->shaderProgram = 0;
+   this->vertexShader = 0;
+   this->fragmentShader = 0;
+}
+
+
+/**
+ * standard deconstructor
+*/
+Shader::~Shader ()
+{
+  // delete what has to be deleted here
+  delete[] this->fragmentShaderFile;
+  delete[] this->vertexShaderFile;
+  delete[] this->fragmentShaderSource;
+  delete[] this->vertexShaderSource;
+
+  // DELETE THE PROGRAMS
+/*  this->shaderProgram = 0;
+  this->vertexShader = 0;
+  this->fragmentShader = 0;*/
+}
+
+
+bool Shader::loadShaderProgramm(SHADER_TYPE type, const char* fileName)
+{
+  if (type != SHADER_VERTEX || type != SHADER_FRAGMENT)
+    return false;
+
+
+}
+
+bool Shader::activateShader()
+{
+
+}
Index: trunk/src/lib/graphics/shader.h
===================================================================
--- trunk/src/lib/graphics/shader.h	(revision 5261)
+++ trunk/src/lib/graphics/shader.h	(revision 5261)
@@ -0,0 +1,45 @@
+/*!
+ * @file shader.h
+ * @brief Definition of the Shader rendering class
+*/
+
+#ifndef _SHADER_H
+#define _SHADER_H
+
+#include "base_object.h"
+#include "glincl.h"
+
+
+typedef enum
+{
+  SHADER_NONE       = 0,
+  SHADER_FRAGMENT   = 1,
+  SHADER_VERTEX     = 0,
+
+} SHADER_TYPE;
+
+// FORWARD DECLARATION
+
+
+
+//! A class for ...
+class Shader : public BaseObject {
+
+ public:
+  Shader(SHADER_TYPE type, ...);
+  virtual ~Shader();
+
+  bool loadShaderProgramm(SHADER_TYPE type, const char* fileName);
+  bool activateShader();
+
+ private:
+   char*                  fragmentShaderFile;
+   char*                  vertexShaderFile;
+   char*                  fragmentShaderSource;
+   char*                  vertexShaderSource;
+   GLenum                 shaderProgram;
+   GLenum                 vertexShader;
+   GLenum                 fragmentShader;
+};
+
+#endif /* _SHADER_H */
