Index: trunk/src/lib/graphics/text_engine/multi_line_text.cc
===================================================================
--- trunk/src/lib/graphics/text_engine/multi_line_text.cc	(revision 8316)
+++ trunk/src/lib/graphics/text_engine/multi_line_text.cc	(revision 8448)
@@ -76,8 +76,8 @@
   glActiveTexture(GL_TEXTURE0);
 
-  glColor4f(this->getColor().x, this->getColor().y, this->getColor().z, this->getBlending());
+  glColor4fv(&this->getColor()[0]);
   glEnable(GL_BLEND);
   glEnable(GL_TEXTURE_2D);
-  glBlendFunc(GL_SRC_ALPHA, GL_ONE);
+  glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
   glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, GL_MODULATE );
 
Index: trunk/src/lib/graphics/text_engine/text.cc
===================================================================
--- trunk/src/lib/graphics/text_engine/text.cc	(revision 8316)
+++ trunk/src/lib/graphics/text_engine/text.cc	(revision 8448)
@@ -37,5 +37,4 @@
   this->size = textSize;
   this->setSizeY2D(size);
-  this->blending = TEXT_DEFAULT_BLENDING;
   this->color = TEXT_DEFAULT_COLOR;
 
@@ -73,6 +72,5 @@
           this->size == text.size &&
           this->font == text.font &&
-          this->color == text.color &&
-          this->blending == text.blending);
+          this->color == text.color);
 }
 
@@ -95,5 +93,4 @@
 {
   this->size = text.size;
-  this->blending = text.blending;
   this->color = text.color;
   this->setAlignment(text.getAlignment());
@@ -224,5 +221,5 @@
   // drawing this Text.
   // setting the Blending effects
-  glColor4f(this->color.x, this->color.y, this->color.z, this->blending);
+  glColor4fv(&this->color[0]);
 
 
@@ -231,5 +228,5 @@
   glEnable(GL_BLEND);
   glEnable(GL_TEXTURE_2D);
-  glBlendFunc(GL_SRC_ALPHA, GL_ONE);
+  glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
   glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, GL_MODULATE );
 
@@ -285,5 +282,5 @@
 {
   PRINT(0)("=== TEXT: %s (with Font:'%s')  displaying %s ===\n", this->getName(), this->font->getName(), this->text.c_str());
-  PRINT(0)("Color: %0.2f %0.2f %0.2f\n", this->color.x, this->color.y, this->color.z);
-}
-
+  PRINT(0)("Color: r=%0.2f g=%0.2f b=%0.2f a=%0.2f\n", this->color.r(), this->color.g(), this->color.b(), this->color.a());
+}
+
Index: trunk/src/lib/graphics/text_engine/text.h
===================================================================
--- trunk/src/lib/graphics/text_engine/text.h	(revision 8316)
+++ trunk/src/lib/graphics/text_engine/text.h	(revision 8448)
@@ -8,4 +8,5 @@
 
 #include "element_2d.h"
+#include "color.h"
 
 #define  TEXT_ALIGN_LEFT             E2D_ALIGN_LEFT
@@ -13,6 +14,5 @@
 #define  TEXT_ALIGN_CENTER           E2D_ALIGN_CENTER
 #define  TEXT_ALIGN_SCREEN_CENTER    E2D_ALIGN_SCREEN_CENTER
-#define  TEXT_DEFAULT_COLOR          Vector(1.0, 1.0, 1.0)      //!< the default Color (white)
-#define  TEXT_DEFAULT_BLENDING       1.0f                       //!< the default blending of the text, (no blending at all)
+#define  TEXT_DEFAULT_COLOR          Color(1.0, 1.0, 1.0, 1.0f) //!< the default Color (white, fully visible)
 
 #define  TEXT_DEFAULT_ALIGNMENT      TEXT_ALIGN_LEFT            //!< default alignment
@@ -44,7 +44,9 @@
     void setFont(const std::string& fontFile, unsigned int renderSize);
     /** @param blending the blending intensity to set (between 0.0 and 1.0) */
-    inline void setBlending(float blending) { this->blending = blending; };
+    inline void setBlending(float blending) { this->color.a() = blending; };
     /** @param r red @param g green @param b blue @brief sets the Color of the Text to render (values in [0-1]) */
-    void setColor(float r, float g, float b) { this->color = Vector(r, g, b); };
+    void setColor(float r, float g, float b) { this->color = Color(r, g, b, this->color.a()); };
+    void setColor(float r, float g, float b, float a) { this->color = Color(r, g, b, a); };
+    void setColor(const Color& color) { this->color = color; };
     void setSize(float size);
 
@@ -57,7 +59,7 @@
     inline const Font* const getFont() const { return this->font; };
     /** @returns the Blending Value [0 invisible 1.0 full visible */
-    inline float getBlending() const { return this->blending; };
+    inline float getBlending() const { return this->color.a(); };
     /** @returns: a Vector(r,g,b) @brief: retrieve a Vector holding the Color of the Text */
-    inline const Vector& getColor() const { return this->color; };
+    inline const Color& getColor() const { return this->color; };
     /** @returns the Size of the Text */
     inline float getSize() const { return this->size; };
@@ -76,6 +78,5 @@
 
     std::string       text;           //!< The text to display
-    Vector            color;          //!< The color of the font.
-    float             blending;       //!< The blending intensity.
+    Color             color;          //!< The color of the font.
     float             size;           //!< The size of the Text.
 };
