]> granicus.if.org Git - imagemagick/commitdiff
(no commit message)
authorcristy <urban-warrior@git.imagemagick.org>
Tue, 31 Aug 2010 23:21:38 +0000 (23:21 +0000)
committercristy <urban-warrior@git.imagemagick.org>
Tue, 31 Aug 2010 23:21:38 +0000 (23:21 +0000)
ChangeLog
magick/draw.c

index 489776dcade79ab76c2db0da5e35db2de429f522..89f6c816a2d37c19e22bd8c9c34ccaaa23badfca 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2010-08-31  6.6.4-0 Cristy  <quetzlzacatenango@image...>
+  * Path no longer closed if join style is round (reference
+    http://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=16943).
+
 2010-08-23  6.6.3-10 Cristy  <quetzlzacatenango@image...>
   * Fixed bug in the raw BGRA coders (reference
     http://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=16880).
index c7cd29aa175da8d954b875f8df72a7dcc19392a1..ddec876ae4d858aa951c83769e7eb05299c9ae82 100644 (file)
@@ -698,10 +698,6 @@ static void LogPathInfo(const PathInfo *path_info)
 static PathInfo *ConvertPrimitiveToPath(
   const DrawInfo *magick_unused(draw_info),const PrimitiveInfo *primitive_info)
 {
-  ssize_t
-    coordinates,
-    start;
-
   PathInfo
     *path_info;
 
@@ -716,6 +712,10 @@ static PathInfo *ConvertPrimitiveToPath(
     i,
     n;
 
+  ssize_t
+    coordinates,
+    start;
+
   /*
     Converts a PrimitiveInfo structure into a vector path structure.
   */
@@ -1094,9 +1094,6 @@ MagickExport MagickBooleanType DrawAffineImage(Image *image,
   ExceptionInfo
     *exception;
 
-  ssize_t
-    y;
-
   MagickBooleanType
     status;
 
@@ -1118,6 +1115,9 @@ MagickExport MagickBooleanType DrawAffineImage(Image *image,
   SegmentInfo
     edge;
 
+  ssize_t
+    y;
+
   /*
     Determine bounding box.
   */
@@ -1180,9 +1180,6 @@ MagickExport MagickBooleanType DrawAffineImage(Image *image,
     int
       id;
 
-    ssize_t
-      x_offset;
-
     MagickPixelPacket
       composite,
       pixel;
@@ -1202,6 +1199,9 @@ MagickExport MagickBooleanType DrawAffineImage(Image *image,
     SegmentInfo
       inverse_edge;
 
+    ssize_t
+      x_offset;
+
     inverse_edge=AffineEdge(source,&inverse_affine,(double) y,&edge);
     if (inverse_edge.x2 < inverse_edge.x1)
       continue;
@@ -1272,9 +1272,6 @@ static void DrawBoundingRectangles(Image *image,const DrawInfo *draw_info,
   DrawInfo
     *clone_info;
 
-  ssize_t
-    coordinates;
-
   MagickRealType
     mid;
 
@@ -1292,6 +1289,9 @@ static void DrawBoundingRectangles(Image *image,const DrawInfo *draw_info,
   SegmentInfo
     bounds;
 
+  ssize_t
+    coordinates;
+
   clone_info=CloneDrawInfo((ImageInfo *) NULL,draw_info);
   (void) QueryColorDatabase("#0000",&clone_info->fill,&image->exception);
   resolution.x=DefaultResolution;
@@ -1493,10 +1493,6 @@ static MagickBooleanType DrawDashPolygon(const DrawInfo *draw_info,
   DrawInfo
     *clone_info;
 
-  ssize_t
-    j,
-    n;
-
   MagickRealType
     length,
     maximum_length,
@@ -1520,6 +1516,10 @@ static MagickBooleanType DrawDashPolygon(const DrawInfo *draw_info,
   size_t
     number_vertices;
 
+  ssize_t
+    j,
+    n;
+
   assert(draw_info != (const DrawInfo *) NULL);
   if (image->debug != MagickFalse)
     (void) LogMagickEvent(DrawEvent,GetMagickModule(),"    begin draw-dash");
@@ -1700,11 +1700,6 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info)
   DrawInfo
     **graphic_context;
 
-  ssize_t
-    j,
-    k,
-    n;
-
   MagickBooleanType
     proceed,
     status;
@@ -1737,11 +1732,14 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info)
     bounds;
 
   size_t
-    length;
-
-  size_t
+    length,
     number_points;
 
+  ssize_t
+    j,
+    k,
+    n;
+
   /*
     Ensure the annotation info is valid.
   */
@@ -3245,9 +3243,6 @@ MagickExport MagickBooleanType DrawGradientImage(Image *image,
   ExceptionInfo
     *exception;
 
-  ssize_t
-    y;
-
   MagickBooleanType
     status;
 
@@ -3263,6 +3258,9 @@ MagickExport MagickBooleanType DrawGradientImage(Image *image,
   RectangleInfo
     bounding_box;
 
+  ssize_t
+    y;
+
   /*
     Draw linear or radial gradient on image.
   */
@@ -3286,9 +3284,6 @@ MagickExport MagickBooleanType DrawGradientImage(Image *image,
 #endif
   for (y=bounding_box.y; y < (ssize_t) bounding_box.height; y++)
   {
-    ssize_t
-      j;
-
     MagickPixelPacket
       composite,
       pixel;
@@ -3307,6 +3302,9 @@ MagickExport MagickBooleanType DrawGradientImage(Image *image,
     register PixelPacket
       *restrict q;
 
+    ssize_t
+      j;
+
     if (status == MagickFalse)
       continue;
     q=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,exception);
@@ -3599,12 +3597,12 @@ static PolygonInfo **AcquirePolygonThreadSet(const DrawInfo *draw_info,
   PathInfo
     *restrict path_info;
 
-  register ssize_t
-    i;
-
   PolygonInfo
     **polygon_info;
 
+  register ssize_t
+    i;
+
   size_t
     number_threads;
 
@@ -3808,11 +3806,6 @@ static MagickBooleanType DrawPolygonPrimitive(Image *image,
   ExceptionInfo
     *exception;
 
-  ssize_t
-    start,
-    stop,
-    y;
-
   MagickBooleanType
     fill,
     status;
@@ -3832,6 +3825,11 @@ static MagickBooleanType DrawPolygonPrimitive(Image *image,
   SegmentInfo
     bounds;
 
+  ssize_t
+    start,
+    stop,
+    y;
+
   /*
     Compute bounding box.
   */
@@ -3952,12 +3950,12 @@ static MagickBooleanType DrawPolygonPrimitive(Image *image,
       fill_color,
       stroke_color;
 
-    register ssize_t
-      x;
-
     register PixelPacket
       *restrict q;
 
+    register ssize_t
+      x;
+
     if (status == MagickFalse)
       continue;
     q=GetCacheViewAuthenticPixels(image_view,start,y,(size_t) (stop-
@@ -4043,10 +4041,6 @@ static void LogPrimitiveInfo(const PrimitiveInfo *primitive_info)
       "?"
     };
 
-  ssize_t
-    coordinates,
-    y;
-
   PointInfo
     p,
     q,
@@ -4056,6 +4050,10 @@ static void LogPrimitiveInfo(const PrimitiveInfo *primitive_info)
     i,
     x;
 
+  ssize_t
+    coordinates,
+    y;
+
   x=(ssize_t) ceil(primitive_info->point.x-0.5);
   y=(ssize_t) ceil(primitive_info->point.y-0.5);
   switch (primitive_info->primitive)
@@ -4141,9 +4139,6 @@ MagickExport MagickBooleanType DrawPrimitive(Image *image,
   ExceptionInfo
     *exception;
 
-  ssize_t
-    y;
-
   MagickStatusType
     status;
 
@@ -4151,6 +4146,9 @@ MagickExport MagickBooleanType DrawPrimitive(Image *image,
     i,
     x;
 
+  ssize_t
+    y;
+
   if (image->debug != MagickFalse)
     {
       (void) LogMagickEvent(DrawEvent,GetMagickModule(),
@@ -4264,12 +4262,12 @@ MagickExport MagickBooleanType DrawPrimitive(Image *image,
 
           for (y=0; y < (ssize_t) image->rows; y++)
           {
-            register ssize_t
-              x;
-
             register PixelPacket
               *restrict q;
 
+            register ssize_t
+              x;
+
             q=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,
               exception);
             if (q == (PixelPacket *) NULL)
@@ -4323,12 +4321,12 @@ MagickExport MagickBooleanType DrawPrimitive(Image *image,
           (void) GetOneCacheViewVirtualPixel(image_view,x,y,&target,exception);
           for (y=0; y < (ssize_t) image->rows; y++)
           {
-            register ssize_t
-              x;
-
             register PixelPacket
               *restrict q;
 
+            register ssize_t
+              x;
+
             q=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,
               exception);
             if (q == (PixelPacket *) NULL)
@@ -4378,12 +4376,12 @@ MagickExport MagickBooleanType DrawPrimitive(Image *image,
 
           for (y=0; y < (ssize_t) image->rows; y++)
           {
-            register ssize_t
-              x;
-
             register PixelPacket
               *restrict q;
 
+            register ssize_t
+              x;
+
             q=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,
               exception);
             if (q == (PixelPacket *) NULL)
@@ -4436,13 +4434,13 @@ MagickExport MagickBooleanType DrawPrimitive(Image *image,
       ImageInfo
         *clone_info;
 
+      RectangleInfo
+        geometry;
+
       ssize_t
         x1,
         y1;
 
-      RectangleInfo
-        geometry;
-
       if (primitive_info->text == (char *) NULL)
         break;
       clone_info=AcquireImageInfo();
@@ -5026,13 +5024,13 @@ static void TraceBezier(PrimitiveInfo *primitive_info,
     point,
     *points;
 
+  register PrimitiveInfo
+    *p;
+
   register ssize_t
     i,
     j;
 
-  register PrimitiveInfo
-    *p;
-
   size_t
     control_points,
     quantum;
@@ -5400,7 +5398,7 @@ static size_t TracePath(PrimitiveInfo *primitive_info,const char *path)
           i++;
           TracePoint(q,point);
           q+=q->coordinates;
-          if (attribute == (int) 'M')
+          if ((i != 0) && (attribute == (int) 'M'))
             {
               TracePoint(q,point);
               q+=q->coordinates;
@@ -5663,9 +5661,6 @@ static void TraceSquareLinecap(PrimitiveInfo *primitive_info,
   MagickRealType
     distance;
 
-  ssize_t
-    j;
-
   register MagickRealType
     dx,
     dy;
@@ -5673,6 +5668,9 @@ static void TraceSquareLinecap(PrimitiveInfo *primitive_info,
   register ssize_t
     i;
 
+  ssize_t
+    j;
+
   dx=0.0;
   dy=0.0;
   for (i=1; i < (ssize_t) number_vertices; i++)
@@ -5722,12 +5720,6 @@ static PrimitiveInfo *TraceStrokePolygon(const DrawInfo *draw_info,
     slope,
     theta;
 
-  ssize_t
-    j,
-    n,
-    p,
-    q;
-
   MagickBooleanType
     closed_path;
 
@@ -5757,6 +5749,12 @@ static PrimitiveInfo *TraceStrokePolygon(const DrawInfo *draw_info,
     max_strokes,
     number_vertices;
 
+  ssize_t
+    j,
+    n,
+    p,
+    q;
+
   /*
     Allocate paths.
   */