public void DrawWidth(GLEx g, int x, int y) { try { if (drawTexWidth == null) { LImage img = LImage.CreateImage(width, height, true); LGraphics gl = img.GetLGraphics(); for (int i = 0; i < width; i++) { gl.SetColor( (start.GetRed() * (width - i)) / width + (end.GetRed() * i) / width, (start.GetGreen() * (width - i)) / width + (end.GetGreen() * i) / width, (start.GetBlue() * (width - i)) / width + (end.GetBlue() * i) / width, alpha); gl.DrawLine(i, 0, i, height); } drawTexWidth = new LTexture(GLLoader.GetTextureData(img), Loon.Core.Graphics.Opengl.LTexture.Format.SPEED); gl.Dispose(); gl = null; } g.DrawTexture(drawTexWidth, x, y); } catch (Exception) { for (int i = 0; i < width; i++) { g.SetColorValue( (start.GetRed() * (width - i)) / width + (end.GetRed() * i) / width, (start.GetGreen() * (width - i)) / width + (end.GetGreen() * i) / width, (start.GetBlue() * (width - i)) / width + (end.GetBlue() * i) / width, alpha); g.DrawLine(i + x, y, i + x, y + height); } } }
public void DrawHeight(GLEx g, int x, int y) { try { if (drawTexHeight == null) { LImage img = LImage.CreateImage(width, height, true); LGraphics gl = img.GetLGraphics(); for (int i = 0; i < height; i++) { gl.SetColor( (start.GetRed() * (height - i)) / height + (end.GetRed() * i) / height, (start.GetGreen() * (height - i)) / height + (end.GetGreen() * i) / height, (start.GetBlue() * (height - i)) / height + (end.GetBlue() * i) / height, alpha); gl.DrawLine(0, i, width, i); } drawTexHeight = new LTexture(GLLoader.GetTextureData(img), Loon.Core.Graphics.Opengl.LTexture.Format.SPEED); gl.Dispose(); gl = null; } g.DrawTexture(drawTexHeight, x, y); } catch (Exception) { for (int i = 0; i < height; i++) { g.SetColorValue( (start.GetRed() * (height - i)) / height + (end.GetRed() * i) / height, (start.GetGreen() * (height - i)) / height + (end.GetGreen() * i) / height, (start.GetBlue() * (height - i)) / height + (end.GetBlue() * i) / height, alpha); g.DrawLine(x, i + y, x + width, i + y); } } }
private void Step(GLEx g, Progress e, int index, int frame, LColor color, float alpha) { switch (stepType) { case 0: g.FillOval(X() + e.x - blockHalfWidth, Y() + e.y - blockHalfHeight, blockWidth, blockHeight); break; case 1: g.FillRect(X() + e.x - blockHalfWidth, Y() + e.y - blockHalfHeight, blockWidth, blockHeight); break; case 2: if (last != null) { float[] xs = { X() + last.x, X() + e.x }; float[] ys = { Y() + last.y, Y() + e.y }; g.DrawPolygon(xs, ys, 2); } last = e; break; case 3: if (last != null) { g.DrawLine(X() + last.x, Y() + last.y, X() + e.x, Y() + e.y); } last = e; break; case 4: Step(g, e.x, e.y, e.progress, index, frame, color, alpha); break; } }