Beispiel #1
0
 RgbaBytes(RgbaBytes c, int a_)
 {
     _r = (byte)c._r;
     _g = (byte)c._g;
     _b = (byte)c._b;
     _a = (byte)a_;
 }
Beispiel #2
0
 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;
     }
 }
Beispiel #3
0
 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;
 }
Beispiel #4
0
 /// <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]);
     }
 }
Beispiel #5
0
 /// <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);
 }
Beispiel #6
0
 /// <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);
 }
Beispiel #7
0
 /// <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);
Beispiel #8
0
 /// <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);
 }
Beispiel #9
0
 /// <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);
Beispiel #10
0
 /// <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
 }
Beispiel #11
0
 /// <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);
 }
Beispiel #12
0
 /// <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);
 }