//------------------------------------------------------------------------------------------------------------------------
 //														RenderSelf()
 //------------------------------------------------------------------------------------------------------------------------
 override protected void RenderSelf(GLContext glContext)
 {
     if (game != null)
     {
         Vector2[] bounds = GetExtents();
         float     maxX   = float.MinValue;
         float     maxY   = float.MinValue;
         float     minX   = float.MaxValue;
         float     minY   = float.MaxValue;
         for (int i = 0; i < 4; i++)
         {
             if (bounds[i].x > maxX)
             {
                 maxX = bounds[i].x;
             }
             if (bounds[i].x < minX)
             {
                 minX = bounds[i].x;
             }
             if (bounds[i].y > maxY)
             {
                 maxY = bounds[i].y;
             }
             if (bounds[i].y < minY)
             {
                 minY = bounds[i].y;
             }
         }
         bool test = (maxX < 0) || (maxY < 0) || (minX >= game.width) || (minY >= game.height);
         if (test == false)
         {
             if (blendMode != null)
             {
                 blendMode.enable();
             }
             _texture.Bind();
             glContext.SetColor((byte)((_color >> 16) & 0xFF),
                                (byte)((_color >> 8) & 0xFF),
                                (byte)(_color & 0xFF),
                                (byte)(_alpha * 0xFF));
             glContext.DrawQuad(GetArea(), _uvs);
             glContext.SetColor(1, 1, 1, 1);
             _texture.Unbind();
             if (blendMode != null)
             {
                 BlendMode.NORMAL.enable();
             }
         }
     }
 }