Index: branches/gui/src/lib/graphics/importer/material.cc
===================================================================
--- branches/gui/src/lib/graphics/importer/material.cc	(revision 8559)
+++ branches/gui/src/lib/graphics/importer/material.cc	(revision 8571)
@@ -22,4 +22,7 @@
 #include "debug.h"
 #include "compiler.h"
+
+#include "loading/load_param.h"
+
 #include "util/loading/resource_manager.h"
 
@@ -47,4 +50,19 @@
 }
 
+void Material::loadParams(const TiXmlElement* root)
+{
+  LoadParam(root, "illum", this, Material, setIllum);
+
+  LoadParam(root, "diffuse-color", this, Material , setDiffuse);
+  LoadParam(root, "ambient-color", this, Material , setAmbient);
+  LoadParam(root, "specular-color", this, Material , setSpecular);
+  LoadParam(root, "transparency", this, Material , setTransparency);
+
+  LoadParam(root, "tex", this, Material, setDiffuseMap);
+  LoadParam(root, "blendfunc", this, Material, setBlendFuncS)
+      .defaultValues("ZERO", "ZERO");
+}
+
+
 /**
  * @brief deletes a Material
@@ -65,16 +83,4 @@
 
 const Material* Material::selectedMaterial = NULL;
-
-const GLenum Material::glTextureArbs[] =
-{
-  GL_TEXTURE0,
-  GL_TEXTURE1,
-  GL_TEXTURE2,
-  GL_TEXTURE3,
-  GL_TEXTURE4,
-  GL_TEXTURE5,
-  GL_TEXTURE6,
-  GL_TEXTURE7
-};
 
 
@@ -104,19 +110,19 @@
  * @brief sets the material with which the following Faces will be painted
  */
-  bool Material::select() const
+bool Material::select() const
 {
   if (unlikely(this == Material::selectedMaterial))
-      return true;
-
-/// !!  HACK !!! FIX THIS IN MODEL ///
+    return true;
+
+  /// !!  HACK !!! FIX THIS IN MODEL ///
   else if (likely(Material::selectedMaterial != NULL))
   {
-  Material::unselect();
-//     for(unsigned int i = 0; i < Material::selectedMaterial->textures.size(); ++i)
-//     {
-//         glActiveTexture(Material::glTextureArbs[i]);
-//         glBindTexture(GL_TEXTURE_2D, 0);
-//         glDisable(GL_TEXTURE_2D);
-//     }
+    Material::unselect();
+    //     for(unsigned int i = 0; i < Material::selectedMaterial->textures.size(); ++i)
+    //     {
+    //         glActiveTexture(Material::glTextureArbs[i]);
+    //         glBindTexture(GL_TEXTURE_2D, 0);
+    //         glDisable(GL_TEXTURE_2D);
+    //     }
   }
 
@@ -125,11 +131,11 @@
     for(unsigned int i = 0; i < Material::selectedMaterial->textures.size(); ++i)
     {
-        glActiveTexture(Material::glTextureArbs[i]);
-        //glBindTexture(GL_TEXTURE_2D, 0);
-        glDisable(GL_TEXTURE_2D);
+      glActiveTexture(Material::glTextureArbs[i]);
+      //glBindTexture(GL_TEXTURE_2D, 0);
+      glDisable(GL_TEXTURE_2D);
     }
   }
 
-    // setting diffuse color
+  // setting diffuse color
   glColor4f (diffuse.r(), diffuse.g(), diffuse.b(), diffuse.a());
   // setting ambient color
@@ -161,11 +167,11 @@
   for(unsigned int i = 0; i < this->textures.size(); ++i)
   {
-      glActiveTexture(Material::glTextureArbs[i]);
-      glEnable(GL_TEXTURE_2D);
-      if(this->textures[i].hasAlpha())
-      {
-        glEnable(GL_BLEND);
-      }
-      glBindTexture(GL_TEXTURE_2D, this->textures[i].getTexture());
+    glActiveTexture(Material::glTextureArbs[i]);
+    glEnable(GL_TEXTURE_2D);
+    if(this->textures[i].hasAlpha())
+    {
+      glEnable(GL_BLEND);
+    }
+    glBindTexture(GL_TEXTURE_2D, this->textures[i].getTexture());
   }
   Material::selectedMaterial = this;
@@ -179,10 +185,10 @@
 {
   Material::selectedMaterial = NULL;
-    for(unsigned int i = 0; i < 8; ++i)
-    {
-        glActiveTexture(Material::glTextureArbs[i]);
-        glBindTexture(GL_TEXTURE_2D, 0);
-        glDisable(GL_TEXTURE_2D);
-    }
+  for(unsigned int i = 0; i < 8; ++i)
+  {
+    glActiveTexture(Material::glTextureArbs[i]);
+    glBindTexture(GL_TEXTURE_2D, 0);
+    glDisable(GL_TEXTURE_2D);
+  }
 }
 
@@ -252,4 +258,16 @@
   this->diffuse.a() = trans;
 }
+
+/**
+ * @brief sets the Blend-Function Parameters
+ * @param sFactor the Source Parameter.
+ * @param tFactor the Desitnation Parameter.
+ */
+void Material::setBlendFuncS(const std::string& sFactor, const std::string& tFactor)
+{
+  this->setBlendFunc(Material::stringToBlendFunc(sFactor), Material::stringToBlendFunc(tFactor));
+}
+
+
 
 /**
@@ -354,6 +372,6 @@
   // HACK
   glActiveTexture(textureNumber);
-   glEnable(GL_TEXTURE_2D);
-   glBindTexture(GL_TEXTURE_2D, this->textures[textureNumber].getTexture());
+  glEnable(GL_TEXTURE_2D);
+  glBindTexture(GL_TEXTURE_2D, this->textures[textureNumber].getTexture());
   glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height);
 
@@ -387,6 +405,5 @@
  */
 void Material::setBump(const std::string& bump)
-{
-}
+{}
 
 
@@ -400,2 +417,60 @@
   return maxTexUnits;
 }
+
+const GLenum Material::glTextureArbs[] =
+{
+  GL_TEXTURE0,
+  GL_TEXTURE1,
+  GL_TEXTURE2,
+  GL_TEXTURE3,
+  GL_TEXTURE4,
+  GL_TEXTURE5,
+  GL_TEXTURE6,
+  GL_TEXTURE7
+};
+
+
+const std::string& Material::blendFuncToString(GLenum blendFunc)
+{
+  for (unsigned int i = 0; i < 9; ++i)
+    if (blendFunc == glBlendFuncParams[i])
+      return blendFuncNames[i];
+  return blendFuncNames[0];
+}
+
+GLenum Material::stringToBlendFunc(const std::string& blendFuncString)
+{
+  for (unsigned int i = 0; i < 9; ++i)
+    if (blendFuncString == blendFuncNames[i])
+      return glBlendFuncParams[i];
+  return glBlendFuncParams[0];
+}
+
+
+
+const GLenum Material::glBlendFuncParams[] =
+  {
+    GL_ZERO,
+    GL_ONE,
+    GL_DST_COLOR,
+    GL_ONE_MINUS_DST_COLOR,
+    GL_SRC_ALPHA,
+    GL_ONE_MINUS_SRC_ALPHA,
+    GL_DST_ALPHA,
+    GL_ONE_MINUS_DST_ALPHA,
+    GL_SRC_ALPHA_SATURATE
+  };
+
+const std::string Material::blendFuncNames[] =
+  {
+    "ZERO",
+    "ONE",
+    "DST_COLOR",
+    "ONE_MINUS_DST_COLOR",
+    "SRC_ALPHA",
+    "ONE_MINUS_SRC_ALPHA",
+    "DST_ALPHA",
+    "ONE_MINUS_DST_ALPHA",
+    "SRC_ALPHA_SATURATE"
+
+  };
Index: branches/gui/src/lib/graphics/importer/material.h
===================================================================
--- branches/gui/src/lib/graphics/importer/material.h	(revision 8559)
+++ branches/gui/src/lib/graphics/importer/material.h	(revision 8571)
@@ -28,4 +28,6 @@
     virtual ~Material ();
 
+    void loadParams(const TiXmlElement* root);
+
     Material& operator=(const Material& material);
 
@@ -44,4 +46,5 @@
     void setTransparency (float trans);
     void setBlendFunc(GLenum sFactor, GLenum tFactor) { this->sFactor = sFactor; this->tFactor = tFactor; };
+    void setBlendFuncS(const std::string& sFactor, const std::string& tFactor);
 
     const Color& getDiffuseColor() const { return diffuse; };
@@ -60,6 +63,13 @@
     static void addTexturePath(const std::string& pathName);
 
+    const std::string& blendFuncToString(GLenum blendFunc);
+    GLenum stringToBlendFunc(const std::string& blendFuncString);
+
+
   public:
     static const GLenum glTextureArbs[];  //!< The Texture ARB's
+
+    static const GLenum glBlendFuncParams[];
+    static const std::string blendFuncNames[];
 
     static unsigned int getMaxTextureUnits();
Index: branches/gui/src/lib/graphics/text_engine/text.cc
===================================================================
--- branches/gui/src/lib/graphics/text_engine/text.cc	(revision 8559)
+++ branches/gui/src/lib/graphics/text_engine/text.cc	(revision 8571)
@@ -21,6 +21,4 @@
 #include "util/loading/resource_manager.h"
 #include "debug.h"
-
-using namespace std;
 
 /**
