Author: fredkiefer
Date: Wed Jan 18 23:52:41 2017
New Revision: 40296

URL: http://svn.gna.org/viewcvs/gnustep?rev=40296&view=rev
Log:
        * Source/OpalGraphics/CGContext.m: Protect against incorrect dash count.
        * Source/OpalGraphics/cairo/CairoFontX11.m: Correct sign of descender.
        * Source/OpalGraphics/image/OPImageCodecPNG.m: Prepare for newer
        libpng versions.


Modified:
    libs/opal/trunk/ChangeLog
    libs/opal/trunk/Source/OpalGraphics/CGContext.m
    libs/opal/trunk/Source/OpalGraphics/cairo/CairoFontX11.m
    libs/opal/trunk/Source/OpalGraphics/image/OPImageCodecPNG.m

Modified: libs/opal/trunk/ChangeLog
URL: 
http://svn.gna.org/viewcvs/gnustep/libs/opal/trunk/ChangeLog?rev=40296&r1=40295&r2=40296&view=diff
==============================================================================
--- libs/opal/trunk/ChangeLog   (original)
+++ libs/opal/trunk/ChangeLog   Wed Jan 18 23:52:41 2017
@@ -1,3 +1,10 @@
+2017-01-18  Fred Kiefer <[email protected]>
+
+       * Source/OpalGraphics/CGContext.m: Protect against incorrect dash count.
+       * Source/OpalGraphics/cairo/CairoFontX11.m: Correct sign of descender.
+       * Source/OpalGraphics/image/OPImageCodecPNG.m: Prepare for newer
+       libpng versions.
+
 2016-06-19  Fred Kiefer <[email protected]>
 
        * Source/GNUmakefile

Modified: libs/opal/trunk/Source/OpalGraphics/CGContext.m
URL: 
http://svn.gna.org/viewcvs/gnustep/libs/opal/trunk/Source/OpalGraphics/CGContext.m?rev=40296&r1=40295&r2=40296&view=diff
==============================================================================
--- libs/opal/trunk/Source/OpalGraphics/CGContext.m     (original)
+++ libs/opal/trunk/Source/OpalGraphics/CGContext.m     Wed Jan 18 23:52:41 2017
@@ -412,12 +412,19 @@
   size_t count)
 {
   OPLOGCALL("ctx /*%p*/, %g, <lengths>, %d", ctx, phase, count)
+  if (!lengths && count != 0)
+    {
+      NSLog(@"%s: null 'lengths' passed with count %d. Fixing by setting count 
to 0.", lengths, (int)count);
+      count = 0;
+    }
 
   double dashes[count]; /* C99 allows this */
   size_t i;
 
   for (i=0; i<count; i++)
-    dashes[i] = lengths[i];
+    {
+      dashes[i] = lengths[i];
+    }
 
   cairo_set_dash(ctx->ct, dashes, count, phase);
   OPRESTORELOGGING()
@@ -426,13 +433,13 @@
 void CGContextSetFlatness(CGContextRef ctx, CGFloat flatness)
 {
   OPLOGCALL("ctx /*%p*/, %g", ctx, flatness)
-  cairo_set_tolerance(ctx->ct, flatness);
+  cairo_set_tolerance(ctx->ct, flatness / 2);
   OPRESTORELOGGING()
 }
 
 CGInterpolationQuality CGContextGetInterpolationQuality(CGContextRef ctx)
 {
-       return 0;
+  return 0;
 }
 
 void CGContextSetInterpolationQuality(

Modified: libs/opal/trunk/Source/OpalGraphics/cairo/CairoFontX11.m
URL: 
http://svn.gna.org/viewcvs/gnustep/libs/opal/trunk/Source/OpalGraphics/cairo/CairoFontX11.m?rev=40296&r1=40295&r2=40296&view=diff
==============================================================================
--- libs/opal/trunk/Source/OpalGraphics/cairo/CairoFontX11.m    (original)
+++ libs/opal/trunk/Source/OpalGraphics/cairo/CairoFontX11.m    Wed Jan 18 
23:52:41 2017
@@ -305,8 +305,8 @@
 - (int) descent;
 {
   FT_Face ft_face = cairo_ft_scaled_font_lock_face(self->cairofont);
-  int result = ft_face->descender;
-  
+  int result = -ft_face->descender;
+
   cairo_ft_scaled_font_unlock_face(self->cairofont);
   return result;
 }
@@ -366,7 +366,7 @@
   // see http://www.typophile.com/node/13081
   int result =  ft_face->height - ft_face->ascender + 
     ft_face->descender;
-    
+
   cairo_ft_scaled_font_unlock_face(self->cairofont);
   return result;
 }

Modified: libs/opal/trunk/Source/OpalGraphics/image/OPImageCodecPNG.m
URL: 
http://svn.gna.org/viewcvs/gnustep/libs/opal/trunk/Source/OpalGraphics/image/OPImageCodecPNG.m?rev=40296&r1=40295&r2=40296&view=diff
==============================================================================
--- libs/opal/trunk/Source/OpalGraphics/image/OPImageCodecPNG.m (original)
+++ libs/opal/trunk/Source/OpalGraphics/image/OPImageCodecPNG.m Wed Jan 18 
23:52:41 2017
@@ -406,7 +406,11 @@
     const CGColorSpaceRef dstColorSpace = [CGColorSpaceCreateDeviceRGB() 
autorelease];
 
     // init structures
+#if PNG_LIBPNG_VER < 10500
+    // I don't think this was ever needed as png_create_info_struct()
+    // sets up the structure correctly and we rely on that in all other places.
     png_info_init_3(&png_info, png_sizeof(png_info));
+#endif
     png_set_write_fn(png_struct, dc, opal_png_writer_func, NULL);
     png_set_IHDR(png_struct, png_info, srcWidth, srcHeight, 8,
      PNG_COLOR_TYPE_RGB_ALPHA, PNG_INTERLACE_NONE, 
PNG_COMPRESSION_TYPE_DEFAULT,


_______________________________________________
Gnustep-cvs mailing list
[email protected]
https://mail.gna.org/listinfo/gnustep-cvs

Reply via email to