[Libreoffice-commits] .: libcdr/libcdr-msvc.patch libcdr/makefile.mk

Caolán McNamara caolan at kemper.freedesktop.org
Fri Feb 10 06:26:00 PST 2012


 libcdr/libcdr-msvc.patch |   64 +++++++++++++++++++++++++++++++++++++++++++++++
 libcdr/makefile.mk       |    3 +-
 2 files changed, 66 insertions(+), 1 deletion(-)

New commits:
commit fcb72a159ba9a24b6536492f84bc7dcdea8e4f1b
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Fri Feb 10 14:25:55 2012 +0000

    get libcdr to build under msvc

diff --git a/libcdr/libcdr-msvc.patch b/libcdr/libcdr-msvc.patch
new file mode 100644
index 0000000..d5419e4
--- /dev/null
+++ b/libcdr/libcdr-msvc.patch
@@ -0,0 +1,64 @@
+--- misc/libcdr-0.0.2/src/lib/CDRCollector.cpp	2012-02-10 13:53:41.351040000 +0000
++++ misc/build/libcdr-0.0.2/src/lib/CDRCollector.cpp	2012-02-10 14:07:38.966966400 +0000
+@@ -35,6 +35,13 @@
+ #define M_PI 3.14159265358979323846
+ #endif
+ 
++//http://msdn.microsoft.com/en-us/library/7wsh95e5%28VS.80%29.aspx
++//msvc 2005 doesn't have round
++inline double myround( double d )
++{
++    return floor( d + 0.5 );
++}
++
+ libcdr::CDRCollector::CDRCollector(libwpg::WPGPaintInterface *painter) :
+   m_painter(painter),
+   m_isPageProperties(false),
+@@ -354,9 +361,9 @@
+       satGreen = 0.0;
+       satBlue = (double)(360 - hue) / 60.0;
+     }
+-    red = (unsigned char)round(255*(1 - saturation + saturation * (satRed > 1 ? 1 : satRed)) * brightness);
+-    green = (unsigned char)round(255*(1 - saturation + saturation * (satGreen > 1 ? 1 : satGreen)) * brightness);
+-    blue = (unsigned char)round(255*(1 - saturation + saturation * (satBlue > 1 ? 1 : satBlue)) * brightness);
++    red = (unsigned char)myround(255*(1 - saturation + saturation * (satRed > 1 ? 1 : satRed)) * brightness);
++    green = (unsigned char)myround(255*(1 - saturation + saturation * (satGreen > 1 ? 1 : satGreen)) * brightness);
++    blue = (unsigned char)myround(255*(1 - saturation + saturation * (satBlue > 1 ? 1 : satBlue)) * brightness);
+   }
+   else if (colorModel == 0x07) // HLS
+   {
+@@ -394,15 +401,15 @@
+ 
+     if (lightness < 0.5)
+     {
+-      red = (unsigned char)round(255.0*lightness*tmpRed);
+-      green = (unsigned char)round(255.0*lightness*tmpGreen);
+-      blue = (unsigned char)round(255.0*lightness*tmpBlue);
++      red = (unsigned char)myround(255.0*lightness*tmpRed);
++      green = (unsigned char)myround(255.0*lightness*tmpGreen);
++      blue = (unsigned char)myround(255.0*lightness*tmpBlue);
+     }
+     else
+     {
+-      red = (unsigned char)round(255*((1 - lightness) * tmpRed + 2 * lightness - 1));
+-      green = (unsigned char)round(255*((1 - lightness) * tmpGreen + 2 * lightness - 1));
+-      blue = (unsigned char)round(255*((1 - lightness) * tmpBlue + 2 * lightness - 1));
++      red = (unsigned char)myround(255*((1 - lightness) * tmpRed + 2 * lightness - 1));
++      green = (unsigned char)myround(255*((1 - lightness) * tmpGreen + 2 * lightness - 1));
++      blue = (unsigned char)myround(255*((1 - lightness) * tmpBlue + 2 * lightness - 1));
+     }
+   }
+   else if (colorModel == 0x09) // Grayscale
+--- misc/libcdr-0.0.2/src/lib/CDRParser.cpp	2012-02-10 13:53:41.411126400 +0000
++++ misc/build/libcdr-0.0.2/src/lib/CDRParser.cpp	2012-02-10 14:14:04.832200000 +0000
+@@ -547,8 +547,8 @@
+       tmpPoints.push_back(points[i]);
+     }
+   }
+-  double scaleX = 72.0*fabs(X1 - X2)/(double)width;
+-  double scaleY = 72.0*fabs(Y1 - Y2)/(double)height;
++  double scaleX = 72.0*fabs(double(X1 - X2))/(double)width;
++  double scaleY = 72.0*fabs(double(Y1 - Y2))/(double)height;
+   m_collector->collectBitmap(imageId, colorMode, colorDepth, width, height, scaleX, scaleY);
+ }
+ 
diff --git a/libcdr/makefile.mk b/libcdr/makefile.mk
index 4712276..acbd5a3 100644
--- a/libcdr/makefile.mk
+++ b/libcdr/makefile.mk
@@ -58,7 +58,8 @@ TARFILE_NAME=libcdr-0.0.2
 TARFILE_MD5=bb94fe29a21444369307f19015d48b82
 
 PATCH_FILES=\
-    libcdr-0.0.2.patch
+    libcdr-0.0.2.patch \
+    libcdr-msvc.patch
 
 BUILD_ACTION=dmake $(MFLAGS) $(CALLMACROS)
 BUILD_DIR=src$/lib


More information about the Libreoffice-commits mailing list