summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2012-02-10 14:25:55 +0000
committerCaolán McNamara <caolanm@redhat.com>2012-02-10 14:25:55 +0000
commitfcb72a159ba9a24b6536492f84bc7dcdea8e4f1b (patch)
tree3ff600c7d599cf0775bfbc35049cb0b476458015
parent99b2adf721fa424e0a02c4458774b8829cd33bf2 (diff)
get libcdr to build under msvc
-rw-r--r--libcdr/libcdr-msvc.patch64
-rw-r--r--libcdr/makefile.mk3
2 files changed, 66 insertions, 1 deletions
diff --git a/libcdr/libcdr-msvc.patch b/libcdr/libcdr-msvc.patch
new file mode 100644
index 000000000000..d5419e464a4d
--- /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 47122766df10..acbd5a381d8e 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