RgbaBytes(RgbaBytes c, int a_) { _r = (byte)c._r; _g = (byte)c._g; _b = (byte)c._b; _a = (byte)a_; }
public void @add(RgbaBytes c, int cover) { int cr, cg, cb, ca; if (cover == CoverMask) { if (c.a == BaseMask) { this = c; } else { cr = r + c.r; r = (cr > (int)(BaseMask)) ? (int)(BaseMask) : cr; cg = g + c.g; g = (cg > (int)(BaseMask)) ? (int)(BaseMask) : cg; cb = b + c.b; b = (cb > (int)(BaseMask)) ? (int)(BaseMask) : cb; ca = a + c.a; a = (ca > (int)(BaseMask)) ? (int)(BaseMask) : ca; } } else { cr = r + ((c.r * cover + CoverMask / 2) >> CoverShift); cg = g + ((c.g * cover + CoverMask / 2) >> CoverShift); cb = b + ((c.b * cover + CoverMask / 2) >> CoverShift); ca = a + ((c.a * cover + CoverMask / 2) >> CoverShift); r = (cr > (int)(BaseMask)) ? (int)(BaseMask) : cr; g = (cg > (int)(BaseMask)) ? (int)(BaseMask) : cg; b = (cb > (int)(BaseMask)) ? (int)(BaseMask) : cb; a = (ca > (int)(BaseMask)) ? (int)(BaseMask) : ca; } }
public RgbaBytes Gradient(RgbaBytes c, double k) { RgbaBytes ret = new RgbaBytes (); int ik = PictorBasics.Uround (k * BaseScale); ret.r = (byte)((int)(r) + ((((int)(c.r) - r) * ik) >> BaseShift)); ret.g = (byte)((int)(g) + ((((int)(c.g) - g) * ik) >> BaseShift)); ret.b = (byte)((int)(b) + ((((int)(c.b) - b) * ik) >> BaseShift)); ret.a = (byte)((int)(a) + ((((int)(c.a) - a) * ik) >> BaseShift)); return ret; }
/// <summary> /// /// </summary> /// <param name="vertexSource"> /// A <see cref="IVertexSource"/> /// </param> /// <param name="colorArray"> /// A <see cref="RgbaBytes[]"/> /// </param> /// <param name="pathIdArray"> /// A <see cref="System.Int32[]"/> /// </param> /// <param name="numPaths"> /// A <see cref="System.Int32"/> /// </param> public void Render(IVertexSource vertexSource, RgbaBytes[] colorArray, int[] pathIdArray, int numPaths) { for (int i = 0; i < numPaths; i++) { Render (vertexSource, pathIdArray[i], colorArray[i]); } }
/// <summary> /// /// </summary> /// <param name="vertexSource"> /// A <see cref="IVertexSource"/> /// </param> /// <param name="color"> /// A <see cref="RgbaBytes"/> /// </param> public void Render(IVertexSource vertexSource, RgbaBytes color) { Render (vertexSource, 0, color); }
/// <summary> /// /// </summary> /// <param name="imageSource"> /// A <see cref="IImage"/> /// </param> /// <param name="x"> /// A <see cref="System.Double"/> /// </param> /// <param name="y"> /// A <see cref="System.Double"/> /// </param> /// <param name="color"> /// A <see cref="RgbaBytes"/> /// </param> /// <param name="renderingMode"> /// A <see cref="BlendMode"/> /// </param> public void Render(IImage imageSource, double x, double y, RgbaBytes color, BlendMode renderingMode) { Render (imageSource, x, y, 0, 1, 1, color, renderingMode); }
/// <summary> /// /// </summary> /// <param name="imageSource"> /// A <see cref="IImage"/> /// </param> /// <param name="x"> /// A <see cref="System.Double"/> /// </param> /// <param name="y"> /// A <see cref="System.Double"/> /// </param> /// <param name="angleDegrees"> /// A <see cref="System.Double"/> /// </param> /// <param name="scaleX"> /// A <see cref="System.Double"/> /// </param> /// <param name="ScaleY"> /// A <see cref="System.Double"/> /// </param> /// <param name="color"> /// A <see cref="RgbaBytes"/> /// </param> /// <param name="renderingMode"> /// A <see cref="BlendMode"/> /// </param> public abstract void Render(IImage imageSource, double x, double y, double angleDegrees, double scaleX, double ScaleY, RgbaBytes color, BlendMode renderingMode);
/// <summary> /// /// </summary> /// <param name="imageSource"> /// A <see cref="IImage"/> /// </param> /// <param name="x"> /// A <see cref="System.Double"/> /// </param> /// <param name="y"> /// A <see cref="System.Double"/> /// </param> /// <param name="color"> /// A <see cref="RgbaBytes"/> /// </param> public void Render(IImage imageSource, double x, double y, RgbaBytes color) { Render (imageSource, x, y, 0, 1, 1, color, BlendMode.ForceSourceOneDestOneMinusAlphaBlender); }
/// <summary> /// /// </summary> /// <param name="vertexSource"> /// A <see cref="IVertexSource"/> /// </param> /// <param name="pathIndexToRender"> /// A <see cref="System.Int32"/> /// </param> /// <param name="colorBytes"> /// A <see cref="RgbaBytes"/> /// </param> public abstract void Render(IVertexSource vertexSource, int pathIndexToRender, RgbaBytes colorBytes);
/// <summary> /// /// </summary> /// <param name="x1"> /// A <see cref="System.Double"/> /// </param> /// <param name="y1"> /// A <see cref="System.Double"/> /// </param> /// <param name="x2"> /// A <see cref="System.Double"/> /// </param> /// <param name="y2"> /// A <see cref="System.Double"/> /// </param> /// <param name="color"> /// A <see cref="RgbaBytes"/> /// </param> public void Line(double x1, double y1, double x2, double y2, RgbaBytes color) { // TODO }
/// <summary> /// /// </summary> /// <param name="Start"> /// A <see cref="Vector2D"/> /// </param> /// <param name="End"> /// A <see cref="Vector2D"/> /// </param> /// <param name="color"> /// A <see cref="RgbaBytes"/> /// </param> public void Line(Vector2D Start, Vector2D End, RgbaBytes color) { Line (Start.x, Start.y, End.x, End.y, color); }
/// <summary> /// /// </summary> /// <param name="Text"> /// A <see cref="System.String"/> /// </param> /// <param name="x"> /// A <see cref="System.Double"/> /// </param> /// <param name="y"> /// A <see cref="System.Double"/> /// </param> /// <param name="color"> /// A <see cref="RgbaBytes"/> /// </param> public void DrawString(string Text, double x, double y, RgbaBytes color) { TextPath.SetFontSize (10); TextPath.start_point (x, y); TextPath.text (Text); Render (StrockedText, color); }