예제 #1
0
 // 绘制
 public void Draw(GLEx g)
 {
     if (!visible)
     {
         return;
     }
     alpha = startTime / 255f;
     g.SetAlpha(alpha);
     g.DrawTexture(texture, info.offsetX + x, info.offsetY + y, width, height);
     g.SetAlpha(1f);
 }
예제 #2
0
		public virtual void CreateUI(GLEx g) {
			if (visible) {
				if (alpha > 0 && alpha < 1) {
					g.SetAlpha(alpha);
				}
				g.DrawTexture(image, X(), Y());
				if (alpha > 0 && alpha < 1) {
					g.SetAlpha(1.0f);
				}
			}
		}
예제 #3
0
		public void CreateUI(GLEx g) {
			if (visible) {
				LFont oldFont = g.GetFont();
				uint oldColor = g.GetColorRGB();
				g.SetFont(font);
				g.SetColor(color);
				this.width = font.StringWidth(label);
				this.height = font.GetSize();
				if (alpha > 0 && alpha < 1) {
					g.SetAlpha(alpha);
					g.DrawString(label, X(), Y());
					g.SetAlpha(1.0F);
				} else {
					g.DrawString(label, X(), Y());
				}
				g.SetFont(oldFont);
				g.SetColor(oldColor);
			}
		}
예제 #4
0
 public void Draw(GLEx gl)
 {
     if (logo == null || finish)
     {
         return;
     }
     if (!logo.IsLoaded())
     {
         this.logo.LoadTexture();
     }
     if (centerX == 0 || centerY == 0)
     {
         this.centerX = (int)(LSystem.screenRect.width)
              / 2 - logo.GetWidth() / 2;
         this.centerY = (int)(LSystem.screenRect.height)
                 / 2 - logo.GetHeight() / 2;
     }
     if (logo == null || !logo.IsLoaded())
     {
         return;
     }
     alpha = (curFrame / curTime);
     if (inToOut)
     {
         curFrame++;
         if (curFrame == curTime)
         {
             alpha = 1f;
             inToOut = false;
         }
     }
     else if (!inToOut)
     {
         curFrame--;
         if (curFrame == 0)
         {
             alpha = 0f;
             finish = true;
         }
     }
     gl.Reset(true);
     gl.SetAlpha(alpha);
     gl.DrawTexture(logo, centerX, centerY);
 }
예제 #5
0
 public override void Draw(GLEx g)
 {
     if (!running || !IsOnLoadComplete() || IsClose())
     {
         return;
     }
     if (scrCG == null)
     {
         return;
     }
     if (scrCG.sleep == 0)
     {
         scrCG.Paint(g);
         DrawScreen(g);
         if (desktop != null)
         {
             desktop.CreateUI(g);
         }
         if (sprites != null)
         {
             sprites.CreateUI(g);
         }
     }
     else
     {
         scrCG.sleep--;
         if (color != null)
         {
             float alpha = (float)(scrCG.sleepMax - scrCG.sleep)
                     / scrCG.sleepMax;
             if (alpha > 0 && alpha < 1.0)
             {
                 if (scrCG.getBackgroundCG() != null)
                 {
                     g.DrawTexture(scrCG.getBackgroundCG(), 0, 0);
                 }
                 LColor c = g.GetColor();
                 g.SetColor(color.R, color.G, color.B, (byte)(alpha * 255));
                 g.FillRect(0, 0, GetWidth(), GetHeight());
                 g.SetColor(c);
             }
             else
             {
                 LColor c = g.GetColor();
                 g.SetColor(color);
                 g.FillRect(0, 0, GetWidth(), GetHeight());
                 g.SetColor(c);
             }
         }
         if (scrCG.sleep <= 0)
         {
             scrCG.sleep = 0;
             color = null;
         }
         g.SetAlpha(1.0f);
     }
 }
예제 #6
0
 public void Paint(GLEx g)
 {
     if (background != null)
     {
         if (shakeNumber > 0)
         {
             g.DrawTexture(background,
                     shakeNumber / 2 - LSystem.random.Next(shakeNumber),
                     shakeNumber / 2 - LSystem.random.Next(shakeNumber));
         }
         else
         {
             g.DrawTexture(background, 0, 0);
         }
     }
     lock (charas)
     {
         for (int i = 0; i < charas.Size(); i++)
         {
             AVGChara chara = (AVGChara)charas.Get(i);
             if (chara == null || !chara.isVisible)
             {
                 continue;
             }
             if (style)
             {
                 if (chara.flag != -1)
                 {
                     if (chara.flag == ISprite_Constants.TYPE_FADE_IN)
                     {
                         chara.currentFrame--;
                         if (chara.currentFrame == 0)
                         {
                             chara.opacity = 0;
                             chara.flag = -1;
                             chara.Dispose();
                             charas.Remove(chara);
                         }
                     }
                     else
                     {
                         chara.currentFrame++;
                         if (chara.currentFrame == chara.time)
                         {
                             chara.opacity = 0;
                             chara.flag = -1;
                         }
                     }
                     chara.opacity = (chara.currentFrame / chara.time) * 255;
                     if (chara.opacity > 0)
                     {
                         g.SetAlpha(chara.opacity / 255);
                     }
                 }
             }
             if (chara.isAnimation)
             {
                 AVGAnm animation = chara.anm;
                 if (animation.load)
                 {
                     if (animation.loop && animation.startTime == -1)
                     {
                         animation.Start(0, loop);
                     }
                     Point.Point2i point = animation.GetPos(JavaRuntime
                             .CurrentTimeMillis());
                     if (animation.alpha != 1f)
                     {
                         g.SetAlpha(animation.alpha);
                     }
                     g.DrawTexture(animation.texture, chara.x, chara.y,
                             animation.width, animation.height, point.x,
                             point.y, point.x + animation.imageWidth,
                             point.y + animation.imageHeight,
                             animation.angle, animation.color);
                     if (animation.alpha != 1f)
                     {
                         g.SetAlpha(1f);
                     }
                 }
             }
             else
             {
                 chara.Next();
                 chara.draw(g);
             }
             if (style)
             {
                 if (chara.flag != -1 && chara.opacity > 0)
                 {
                     g.SetAlpha(1f);
                 }
             }
         }
     }
 }
예제 #7
0
파일: LControl.cs 프로젝트: keppelcao/LGame
        public override void CreateUI(GLEx g, int x, int y, LComponent component,
				LTexture[] buttonImage) {
			if (visible) {
				g.SetAlpha(0.5f);
				g.DrawTexture(controlBase, x, y, baseWidth, baseHeight);
				g.DrawTexture(controlDot, x + centerX, y + centerY, dotWidth,
						dotHeight);
				g.SetAlpha(1f);
			}
		}
예제 #8
0
	public void CreateUI(GLEx g) {
		if (isClose) {
			return;
		}
		if (!isVisible) {
			return;
		}
		if (IsComplete()) {
			return;
		}
		if (alpha > 0 && alpha < 1) {
			g.SetAlpha(alpha);
		}
		pixmap.Draw(g, X(), Y(), width, height);
		if (alpha > 0 && alpha < 1) {
			g.SetAlpha(1f);
		}
	}
예제 #9
0
 public void CreateUI(GLEx g)
 {
     if (!visible)
     {
         return;
     }
     if (complete)
     {
         return;
     }
     if (alpha > 0 && alpha < 1)
     {
         g.SetAlpha(alpha);
     }
     if (count <= 1)
     {
         g.SetColor(color);
         g.FillRect(X(), Y(), width, height);
         g.ResetColor();
     }
     else
     {
         g.SetColor(color);
         float length = MathUtils.Sqrt(MathUtils.Pow(width / 2, 2.0f)
                 + MathUtils.Pow(height / 2, 2.0f));
         float x = GetX() + (width / 2 - length);
         float y = GetY() + (height / 2 - length);
         float w = width / 2 + length - x;
         float h = height / 2 + length - y;
         float deg = 360f / this.div * this.count;
         g.FillArc(x, y, w, h, 20, 0, this.sign[this.turn] * deg);
         g.ResetColor();
     }
     if (alpha > 0 && alpha < 1)
     {
         g.SetAlpha(1f);
     }
 }
예제 #10
0
 public void CreateUI(GLEx g)
 {
     if (!visible)
     {
         return;
     }
     if (!complete)
     {
         if (alpha > 0 && alpha < 1)
         {
             g.SetAlpha(alpha);
         }
         g.DrawTexture(texture, X(), Y());
         if (alpha > 0 && alpha < 1)
         {
             g.SetAlpha(1);
         }
     }
 }
예제 #11
0
        public virtual void CreateUI(GLEx g)
        {
            if (isClose)
            {
                return;
            }
            if (!this.visible)
            {
                return;
            }
            int width = this.GetWidth();
            int height = this.GetHeight();

            if (rotation != 0)
            {
                float centerX = this.screenX + width / 2;
                float centerY = this.screenY + height / 2;
                g.Rotate(centerX, centerY, rotation);
            }
            else if (!(scaleX == 1f && scaleY == 1f))
            {
                g.Scale(scaleX, scaleY);
            }
            else if (this.elastic)
            {
                g.SetClip(this.screenX, this.screenY, width, height);
            }
            if (alpha > 0.1d && alpha < 1.0d)
            {
                g.SetAlpha(alpha);
                if (background != null)
                {
                    g.DrawTexture(background, this.screenX, this.screenY, width,
                            height);
                }
                if (this.customRendering)
                {
                    this.CreateCustomUI(g, this.screenX, this.screenY, width,
                            height);
                }
                else
                {
                    this.CreateUI(g, this.screenX, this.screenY, this, this.imageUI);
                }
                g.SetAlpha(1F);
            }
            else
            {
                if (background != null)
                {
                    g.DrawTexture(background, this.screenX, this.screenY, width,
                            height);
                }
                if (this.customRendering)
                {
                    this.CreateCustomUI(g, this.screenX, this.screenY, width,
                            height);
                }
                else
                {
                    this.CreateUI(g, this.screenX, this.screenY, this, this.imageUI);
                }
            }
            if (rotation != 0 || !(scaleX == 1f && scaleY == 1f))
            {
                g.Restore();
            }
            else if (this.elastic)
            {
                g.ClearClip();
            }
        }
예제 #12
0
        protected internal override void CreateCustomUI(GLEx g, int x, int y, int w, int h)
        {
            if (!visible)
            {
                return;
            }
            LColor oldColor = g.GetColor();
            LFont oldFont = g.GetFont();
            g.SetColor(fontColor);
            g.SetFont(messageFont);
            sizeFont = messageFont.GetSize();
            doubleSizeFont = sizeFont * 2;
            if (doubleSizeFont == 0)
            {
                doubleSizeFont = 20;
            }
            messageLeft = (x + doubleSizeFont + sizeFont / 2) + tmpOffset + left
                    + doubleSizeFont;
            // g.setAntiAlias(true);
            if (message != null)
            {
                messageTop = y + doubleSizeFont + top + 2;
                g.DrawString(message, messageLeft, messageTop);
            }
            else
            {
                messageTop = y + top + 2;
            }

            nTop = messageTop;
            if (selects != null)
            {
                nLeft = messageLeft - sizeFont / 4;
                for (int i = 0; i < selects.Length; i++)
                {
                    nTop += 30;
                    type = i + 1;
                    isSelect = (type == ((selectFlag > 0) ? selectFlag : 1));
                    if ((buoyage != null) && isSelect)
                    {
                        g.SetAlpha(autoAlpha);
                        g.DrawTexture(buoyage, nLeft,
                                nTop - (int)(buoyage.GetHeight() / 1.5f));
                        g.SetAlpha(1.0F);
                    }
                    g.DrawString(selects[i], messageLeft, nTop);
                    if ((cursor != null) && isSelect)
                    {
                        g.DrawTexture(cursor, nLeft, nTop - cursor.GetHeight() / 2, LColor.white);
                    }

                }
            }
            // g.setAntiAlias(false);
            g.SetColor(oldColor);
            g.SetFont(oldFont);

        }
예제 #13
0
파일: Print.cs 프로젝트: keppelcao/LGame
		public void Draw(GLEx g, LColor old) {
			if (!visible) {
				return;
			}
			alpha = g.GetAlpha();
			if (alpha > 0 && alpha < 1) {
				g.SetAlpha(1.0f);
			}
			DrawMessage(g, old);
			if (alpha > 0 && alpha < 1) {
				g.SetAlpha(alpha);
			}
		}
예제 #14
0
        protected internal override void CreateCustomUI(GLEx g, int x, int y, int w,
				int h) {
			if (!visible) {
				return;
			}
			LFont oldFont = g.GetFont();
			g.SetFont(messageFont);
			print.Draw(g, fontColor);
			g.SetFont(oldFont);
			if (print.IsComplete() && animation != null) {
				if (animation.GetSpriteImage() != null) {
					g.SetAlpha(1.0F);
					UpdateIcon();
					g.DrawTexture(animation.GetSpriteImage(), dx, dy);
				}
			}
			g.ResetColor();
		}
예제 #15
0
 public virtual void CreateUI(GLEx g)
 {
     if (!visible)
     {
         return;
     }
     if (alpha > 0 && alpha < 1)
     {
         g.SetAlpha(alpha);
     }
     g.SetColor(color);
     for (int i = 0; i < drops.Length; ++i)
     {
         g.FillOval((int)drops[i].x, (int)drops[i].y, 2, 2);
     }
     g.ResetColor();
     if (alpha > 0 && alpha < 1)
     {
         g.SetAlpha(1);
     }
 }
예제 #16
0
파일: Cycle.cs 프로젝트: DONGChuan/LGame
		public void CreateUI(GLEx g) {
			if (!isVisible) {
				return;
			}
	
			this.Setup();
	
			int pointsLength = points.Count;
	
			Progress point;
			int index;
			int frameD;
			int indexD;
	
			float size = (pointsLength * this.trailLength);
	
			for (float i = -1, l = size; ++i < l && !this.stopped;) {
	
				index = (int) (frame + i);
				if (index < pointsLength) {
					point = points[index];
				} else {
					point = points[index - pointsLength];
				}
				this.alpha = (i / (l - 1));
				frameD = frame / (pointsLength - 1);
				indexD = (int) alpha;
				if (lineWidth > 0) {
					g.SetLineWidth(lineWidth);
				}
				if (scaleX != 1 || scaleY != 1) {
					g.Scale(scaleX, scaleY);
				}
				if (alpha > 0 && alpha < 1) {
					g.SetAlpha(alpha);
				}
				g.SetColor(color);
				Step(g, point, indexD, frameD, color, alpha);
				g.ResetColor();
				if (alpha > 0 && alpha < 1) {
					g.SetAlpha(1);
				}
				if (lineWidth > 0) {
					g.ResetLineWidth();
				}
				if (scaleX != 1 || scaleY != 1) {
					g.Restore();
				}
			}
	
		}
예제 #17
0
파일: Cycle.cs 프로젝트: DONGChuan/LGame
            public override void Step(GLEx g, float x, float y, float progress,
					int index, int frame, LColor color, float alpha) {
	
				float cx = this.padding + 50, cy = this.padding + 50, angle = (MathUtils.PI / 180)
						* (progress * 360);
				alpha = MathUtils.Max(0.5f, alpha);
				g.SetAlpha(alpha);
				if (path == null) {
					path = new Path(GetX() + x * scale, GetY() + y * scale);
				} else {
					path.Clear();
					path.Set(GetX() + x * scale, GetY() + y * scale);
				}
				path.LineTo(GetX() + ((MathUtils.Cos(angle) * 35) + cx)
						* scale, GetY()
						+ ((MathUtils.Sin(angle) * 35) + cy) * scale);
				path.Close();
				g.Draw(path);
				if (path == null) {
					path = new Path(GetX()
							+ ((MathUtils.Cos(-angle) * 32) + cx) * scale,
							GetY() + ((MathUtils.Sin(-angle) * 32) + cy)
									* scale);
				} else {
					path.Clear();
					path.Set(GetX() + ((MathUtils.Cos(-angle) * 32) + cx)
							* scale, GetY()
							+ ((MathUtils.Sin(-angle) * 32) + cy) * scale);
				}
				path.LineTo(GetX() + ((MathUtils.Cos(-angle) * 27) + cx)
						* scale, GetY()
						+ ((MathUtils.Sin(-angle) * 27) + cy) * scale);
				path.Close();
				g.Draw(path);
				g.SetAlpha(1);
			}
예제 #18
0
 public void CreateUI(GLEx g)
 {
     if (!visible)
     {
         return;
     }
     image = animation.GetSpriteImage();
     if (image == null)
     {
         return;
     }
     float width = (image.GetWidth() * scaleX);
     float height = (image.GetHeight() * scaleY);
     if (filterColor == null)
     {
         if (alpha > 0 && alpha < 1)
         {
             g.SetAlpha(alpha);
         }
         if (LTrans.TRANS_NONE == transform)
         {
             g.DrawTexture(image, X(), Y(), width, height, rotation);
         }
         else
         {
             g.DrawRegion(image, 0, 0, GetWidth(), GetHeight(), transform,
                     X(), Y(), LGraphics.TOP | LGraphics.LEFT);
         }
         if (alpha > 0 && alpha < 1)
         {
             g.SetAlpha(1);
         }
         return;
     }
     else
     {
         if (alpha > 0 && alpha < 1)
         {
             g.SetAlpha(alpha);
         }
         if (LTrans.TRANS_NONE == transform)
         {
             g.DrawTexture(image, X(), Y(), width, height, rotation,
                     filterColor);
         }
         else
         {
             g.DrawRegion(image, 0, 0, GetWidth(), GetHeight(), transform,
                     X(), Y(), LGraphics.TOP | LGraphics.LEFT, filterColor);
         }
         if (alpha > 0 && alpha < 1)
         {
             g.SetAlpha(1);
         }
         return;
     }
 }
예제 #19
0
        public void CreateUI(GLEx g)
        {
            if (!visible)
            {
                return;
            }
            if (!complete)
            {
                if (alpha > 0 && alpha < 1)
                {
                    g.SetAlpha(alpha);
                }
                float x1 = v1.x + GetX();
                float y1 = v1.y + GetY();

                float x2 = v2.x + GetX();
                float y2 = v2.y + GetY();
                texture.GLBegin();
                switch (direction)
                {
                    case Config.LEFT:
                    case Config.RIGHT:
                    case Config.TUP:
                    case Config.TDOWN:
                        texture.Draw(x1, y1, width, halfHeight, 0, 0, width, halfHeight);
                        texture.Draw(x2, y2, width, halfHeight, 0, halfHeight, width,
                                height);
                        break;
                    case Config.UP:
                    case Config.DOWN:
                    case Config.TLEFT:
                    case Config.TRIGHT:
                        texture.Draw(x1, y1, halfWidth, height, 0, 0, halfWidth, height);
                        texture.Draw(x2, y2, halfWidth, height, halfWidth, 0, width,
                                height);
                        break;

                }
                texture.GLEnd();
                if (alpha > 0 && alpha < 1)
                {
                    g.SetAlpha(1f);
                }
            }
        }
예제 #20
0
 public void CreateUI(GLEx g)
 {
     if (!visible)
     {
         return;
     }
     if (style < 2)
     {
         if (alpha > 0.1f && alpha < 1.0f)
         {
             g.SetAlpha(alpha);
             wait.Draw(g, X(), Y());
             g.SetAlpha(1.0F);
         }
         else
         {
             wait.Draw(g, X(), Y());
         }
     }
     else
     {
         if (cycle != null)
         {
             cycle.CreateUI(g);
         }
     }
 }
예제 #21
0
파일: LLayer.cs 프로젝트: keppelcao/LGame
        public virtual void PaintObjects(GLEx g, int minX, int minY, int maxX, int maxY)
        {
            lock (objects)
            {
                IIterator it = objects.Iterator();
                for (; it.HasNext(); )
                {
                    thing = (Actor)it.Next();
                    if (!thing.visible)
                    {
                        continue;
                    }
                    isListener = (thing.actorListener != null);

                    if (isVSync)
                    {
                        if (isListener)
                        {
                            thing.actorListener.Update(elapsedTime);
                        }
                        thing.Update(elapsedTime);
                    }

                    RectBox rect = thing.GetRectBox();
                    actorX = minX + thing.GetX();
                    actorY = minY + thing.GetY();
                    actorWidth = rect.width;
                    actorHeight = rect.height;
                    if (actorX + actorWidth < minX || actorX > maxX
                            || actorY + actorHeight < minY || actorY > maxY)
                    {
                        continue;
                    }
                    LTexture actorImage = thing.GetImage();
                    if (actorImage != null)
                    {

                        width = (actorImage.GetWidth() * thing.scaleX);
                        height = (actorImage.GetHeight() * thing.scaleY);
                        isBitmapFilter = (thing.filterColor != null);
                        thing.SetLastPaintSeqNum(paintSeq++);
                        angle = thing.GetRotation();
                        colorAlpha = thing.alpha;

                        if (thing.isAnimation)
                        {

                            if (isBitmapFilter)
                            {
                                g.DrawTexture(actorImage, actorX, actorY, width,
                                        height, angle, thing.filterColor);
                            }
                            else
                            {
                                if (colorAlpha != 1f)
                                {
                                    g.SetAlpha(colorAlpha);
                                }
                                g.DrawTexture(actorImage, actorX, actorY, width,
                                        height, angle);
                                if (colorAlpha != 1f)
                                {
                                    g.SetAlpha(1f);
                                }
                            }

                        }
                        else
                        {

                            int texId = actorImage.GetTextureID();

                            LTextureBatch batch = (LTextureBatch)textures
                                    .GetValue(texId);

                            if (batch == null)
                            {
                                LTextureBatch pBatch = LTextureBatch
                                        .BindBatchCache(this, texId,
                                                actorImage);
                                batch = pBatch;
                                batch.GLBegin();

                                textures.Put(texId, batch);

                            }

                            batch.SetTexture(actorImage);

                            if (isBitmapFilter)
                            {
                                batch.Draw(actorX, actorY, width, height, angle,
                                        thing.filterColor);
                            }
                            else
                            {
                                if (colorAlpha != 1f)
                                {
                                    alphaColor.a = colorAlpha;
                                }
                                batch.Draw(actorX, actorY, width, height, angle,
                                        alphaColor);
                                if (colorAlpha != 1f)
                                {
                                    alphaColor.a = 1;
                                }
                            }

                        }
                    }
                    if (thing.isConsumerDrawing)
                    {
                        if (actorX == 0 && actorY == 0)
                        {
                            thing.Draw(g);
                            if (isListener)
                            {
                                thing.actorListener.Draw(g);
                            }
                        }
                        else
                        {
                            g.Translate(actorX, actorY);
                            thing.Draw(g);
                            if (isListener)
                            {
                                thing.actorListener.Draw(g);
                            }
                            g.Translate(-actorX, -actorY);
                        }
                    }
                }

                int size = textures.Size();
                if (size > 0)
                {
                    for (int i = 0; i < size; i++)
                    {
                        LTextureBatch batch = (LTextureBatch)textures.Get(i);
                        batch.GLEnd();
                    }
                    textures.Clear();
                }
            }
        }
예제 #22
0
 public void CreateUI(GLEx g)
 {
     if (isClose)
     {
         return;
     }
     if (!visible)
     {
         return;
     }
      lock (image)
     {
  
         if (alpha > 0 && alpha < 1)
         {
             g.SetAlpha(alpha);
         }
         if (!IsComplete() && isDirty)
         {
             g.DrawTexture2D(image.GetBitmap(), X(), Y(), width, height);
             isDirty = false;
         }
         else if (!IsComplete())
         {
             g.DrawTexture2D(image.GetBitmap(), X(), Y(), width, height);
         }
         if (alpha > 0 && alpha < 1)
         {
             g.SetAlpha(1f);
         }
     }
 }
예제 #23
0
 public void Draw(GLEx g, int x, int y)
 {
     LColor oldColor = g.GetColor();
     g.SetColor(color);
     switch (style)
     {
         case 0:
             float alpha = 0.0f;
             int nx = x + width / 2 - (int)r * 4,
             ny = y + height / 2 - (int)r * 4;
             g.Translate(nx, ny);
             for (IIterator it = new IteratorAdapter(list.GetEnumerator()); it.HasNext(); )
             {
                 RectBox s = (RectBox)it.Next();
                 alpha = alpha + 0.1f;
                 g.SetAlpha(alpha);
                 g.FillOval(s.x, s.y, s.width, s.height);
             }
             g.SetAlpha(1.0F);
             g.Translate(-nx, -ny);
             break;
         case 1:
             g.SetLineWidth(10);
             g.Translate(x, y);
             g.SetColor(Fill);
             g.DrawOval(0, 0, width, height);
             int sa = angle % 360;
             g.FillArc(x + (width - paintWidth) / 2, y
                     + (height - paintHeight) / 2, paintWidth, paintHeight,
                     sa, sa + ANGLE_STEP);
             g.Translate(-x, -y);
             g.ResetLineWidth();
             break;
     }
     g.SetColor(oldColor);
 }