Index: trunk/src/lib/graphics/graphics_engine.cc
===================================================================
--- trunk/src/lib/graphics/graphics_engine.cc	(revision 5118)
+++ trunk/src/lib/graphics/graphics_engine.cc	(revision 5121)
@@ -464,5 +464,5 @@
 if (this->geTextCFPS == NULL)
 {
-  this->geTextCFPS = TextEngine::getInstance()->createText("fonts/arial_black.ttf", 15, TEXT_DYNAMIC, 0, 255, 0);
+  this->geTextCFPS = TextEngine::getInstance()->createText("fonts/arial_black.ttf", 15, TEXT_DYNAMIC);
   this->geTextCFPS->setAlignment(TEXT_ALIGN_LEFT);
   this->geTextCFPS->setAbsCoor2D(5, 5);
@@ -470,5 +470,5 @@
 if (this->geTextMaxFPS == NULL)
 {
-      this->geTextMaxFPS = TextEngine::getInstance()->createText("fonts/arial_black.ttf", 15, TEXT_DYNAMIC, 0, 255, 0);
+      this->geTextMaxFPS = TextEngine::getInstance()->createText("fonts/arial_black.ttf", 15, TEXT_DYNAMIC);
       this->geTextMaxFPS->setAlignment(TEXT_ALIGN_LEFT);
       this->geTextMaxFPS->setAbsCoor2D(5, 35);
@@ -476,5 +476,5 @@
 if (this->geTextMinFPS == NULL)
 {
-      this->geTextMinFPS = TextEngine::getInstance()->createText("fonts/arial_black.ttf", 15, TEXT_DYNAMIC, 0, 255, 0);
+      this->geTextMinFPS = TextEngine::getInstance()->createText("fonts/arial_black.ttf", 15, TEXT_DYNAMIC);
       this->geTextMinFPS->setAlignment(TEXT_ALIGN_LEFT);
       this->geTextMinFPS->setAbsCoor2D(5, 65);
Index: trunk/src/lib/graphics/text_engine.cc
===================================================================
--- trunk/src/lib/graphics/text_engine.cc	(revision 5118)
+++ trunk/src/lib/graphics/text_engine.cc	(revision 5121)
@@ -60,4 +60,5 @@
   this->texture = 0;
   this->blending = 1.0f;
+  this->color = Vector(1.0, 1.0, 1.0);
   this->setType(type);
 
@@ -75,5 +76,5 @@
 
   if (this->text)
-    delete []this->text;
+    delete[] this->text;
 }
 
@@ -130,17 +131,4 @@
 
 /**
- *  sets a new color to the font
- * @param r Red
- * @param g Green
- * @param b Blue
-*/
-void Text::setColor(Uint8 r, Uint8 g, Uint8 b)
-{
-  this->color.r = r;
-  this->color.g = g;
-  this->color.b = b;
-}
-
-/**
  *  creates a texture out of the given parameters
 
@@ -154,7 +142,10 @@
     glDeleteTextures(1, &this->texture);
   if (likely(this->font != NULL))
+  {
+    SDL_Color theColor = { (int)(this->color.x*255), (int)(this->color.y*255), (int)(this->color.z*255) };
     tmpSurf = TTF_RenderText_Blended(this->font->font,
                                      this->text,
-                                     this->color);
+                                     theColor);
+  }
   if (tmpSurf)
     this->texture = loadTexture(tmpSurf, &this->texCoord);
@@ -179,8 +170,10 @@
   // drawing this Text.
   // setting the Blending effects
-  glColor4f(1.0f,1.0f,1.0f, this->blending);
+  glColor4f(this->color.x, this->color.y, this->color.z, this->blending);
   glEnable(GL_BLEND);
   glEnable(GL_TEXTURE_2D);
   glBlendFunc(GL_SRC_ALPHA, GL_ONE);
+
+  glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, GL_MODULATE );
 
   if(type == TEXT_STATIC)
@@ -234,5 +227,5 @@
     PRINT(0)("is bind to %s; ref=%p\n", this->getBindNode()->getName(), this->getBindNode());
   PRINT(0)("Relative Position: (%d::%d)\n", this->posSize.x, this->posSize.y);
-  PRINT(0)("Color: %d %d %d\n", this->color.r, this->color.g, this->color.b);
+  PRINT(0)("Color: %0.2f %0.2f %0.2f\n", this->color.x, this->color.y, this->color.z);
 }
 
@@ -349,5 +342,5 @@
  * @param b Blue value of the Font.
 */
-Font::Font(const char* fontFile, unsigned int fontSize, Uint8 r, Uint8 g, Uint8 b)
+Font::Font(const char* fontFile, unsigned int fontSize)
 {
   this->setClassID(CL_FONT, "Font");
@@ -364,6 +357,4 @@
   this->setStyle("c");//TTF_STYLE_NORMAL);
 
-  this->setFastColor(r, g, b);
-
   this->fastTextureID = this->createFastTexture();
 }
@@ -381,5 +372,5 @@
       for (int i = 0; i < FONT_HIGHEST_KNOWN_CHAR; i++)
         delete this->glyphArray[i];
-      delete []this->glyphArray;
+      delete[] this->glyphArray;
     }
 
@@ -448,17 +439,4 @@
 {
   this->fontSize = fontSize;
-}
-
-/**
- *  sets a new color to the font
- * @param r Red
- * @param g Green
- * @param b Blue
-*/
-void Font::setFastColor(Uint8 r, Uint8 g, Uint8 b)
-{
-  this->fastColor.r = r;
-  this->fastColor.g = g;
-  this->fastColor.b = b;
 }
 
@@ -538,5 +516,5 @@
 
   this->initGlyphs(32, numberOfGlyphs);
-  this->glyphArray[32]->width = fontSize/3; //!< @todo find out the real size of a Space
+  this->glyphArray[32]->width = fontSize/2; //!< @todo find out the real size of a Space
 
   int rectSize = this->findOptimalFastTextureSize();
@@ -589,5 +567,8 @@
           // reading in the new Glyph
           if (likely(this->font != NULL))
-            glyphSurf = TTF_RenderGlyph_Blended(this->font, i, this->fastColor);
+          {
+            SDL_Color white = {255, 255, 255};
+            glyphSurf = TTF_RenderGlyph_Blended(this->font, i, white);
+          }
           if( glyphSurf != NULL )
             {
@@ -598,5 +579,5 @@
               tmpTexCoord.minU = (float)tmpRect.x/(float)tmpSurf->w;
               tmpTexCoord.maxU = (float)(tmpRect.x +1 + tmpGlyph->width)/(float)tmpSurf->w;
-              tmpTexCoord.minV = (float)tmpRect.y/(float)tmpSurf->w;
+              tmpTexCoord.minV = (float)(tmpRect.y)/(float)tmpSurf->w;
               tmpTexCoord.maxV = (float)(tmpRect.y+tmpGlyph->height)/(float)tmpSurf->w;
               tmpGlyph->displayList = glGenLists(1);
@@ -691,5 +672,5 @@
   int x,y; // the counters
   int maxLineHeight;
-  int size = 32;      // starting Value, we have to start somewhere 32 seems reasonable.
+  unsigned int size = 32;  // starting Value, we have to start somewhere 32 seems reasonable. (take any small enough 2^i number)
   bool sizeOK = false;
   Glyph* tmpGlyph;
@@ -815,5 +796,5 @@
    @see Text::Text
 */
-Text* TextEngine::createText(const char* fontFile, unsigned int fontSize, int textType, Uint8 r, Uint8 g, Uint8 b)
+Text* TextEngine::createText(const char* fontFile, unsigned int fontSize, int textType)
 {
   Font* tmpFont;
@@ -821,6 +802,5 @@
   Vector tmpVec;
 
-  tmpVec = Vector(r, g, b);
-  tmpFont = (Font*)ResourceManager::getInstance()->load(fontFile, TTF, RP_GAME, &fontSize, &tmpVec);
+  tmpFont = (Font*)ResourceManager::getInstance()->load(fontFile, TTF, RP_GAME, &fontSize);
   if (!tmpFont)
     {
Index: trunk/src/lib/graphics/text_engine.h
===================================================================
--- trunk/src/lib/graphics/text_engine.h	(revision 5118)
+++ trunk/src/lib/graphics/text_engine.h	(revision 5121)
@@ -34,5 +34,4 @@
 class PNode;
 class Font;
-template<class T> class tList;
 
 #define  TEXT_ALIGN_LEFT             E2D_ALIGN_LEFT
@@ -113,6 +112,6 @@
   inline void setBlending(float blending) { this->blending = blending; };
 
-  // Static Text
-  void setColor(Uint8 r, Uint8 g, Uint8 b);
+  /** sets the Color of the Text to render (values in [0-1]) @param r red @param g green @param b blue */
+  void setColor(float r, float g, float b) { this->color = Vector(r,g,b); };
 
   void createTexture();
@@ -133,5 +132,5 @@
   int               type;           //!< The type of this Font.
   char*             text;           //!< The text to display
-  SDL_Color         color;          //!< The color of the font.
+  Vector            color;          //!< The color of the font.
   float             blending;       //!< The blending intensity.
 
@@ -152,8 +151,5 @@
  public:
   Font(const char* fontFile,
-       unsigned int fontSize = FONT_DEFAULT_SIZE,
-       Uint8 r = FONT_DEFAULT_COLOR_R,
-       Uint8 g = FONT_DEFAULT_COLOR_G,
-       Uint8 b = FONT_DEFAULT_COLOR_B);
+       unsigned int fontSize = FONT_DEFAULT_SIZE);
 
   virtual ~Font();
@@ -162,9 +158,8 @@
   bool setFont(const char* fontFile);
   void setSize(unsigned int fontSize);
-  void setFastColor(Uint8 r, Uint8 g, Uint8 b);
   void setStyle(const char* renderStyle);
 
   /** @returns a Pointer to the Array of Glyphs */
-  inline Glyph** getGlyphArray() const {return glyphArray;}
+  inline Glyph** getGlyphArray() const { return glyphArray; };
   /** @returns the texture to the fast-texture */
   inline GLuint getFastTextureID() const {return fastTextureID;}
@@ -195,5 +190,4 @@
   Glyph**       glyphArray;          //!< An Array of all the Glyphs stored in the Array of Glyphs.
   GLuint        fastTextureID;       //!< The fast textureID.
-  SDL_Color     fastColor;           //!< A Color for the fast Texture.
 
   tList<Text>*  textList;            //!< A list of texts this Font is mapped to.
@@ -213,8 +207,5 @@
   Text* createText(const char* fontFile,
                    unsigned int fontSize = FONT_DEFAULT_SIZE,
-                   int textType = TEXT_DYNAMIC,
-                   Uint8 r = FONT_DEFAULT_COLOR_R,
-                   Uint8 g = FONT_DEFAULT_COLOR_G,
-                   Uint8 b = FONT_DEFAULT_COLOR_B);
+                   int textType = TEXT_DYNAMIC);
 
   void debug() const;
@@ -228,8 +219,4 @@
   static void disableFonts();
   static bool checkVersion();
-
- private:
-  //  tList<Font>* fontList;
-
 };
 
