Update of /cvsroot/libwpg/libwpg/src/lib
In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv4023/src/lib
Modified Files:
WPGBitmap.cpp
Log Message:
Implement --with-dummy-bitmaps for purposes of svg validation runs
Index: WPGBitmap.cpp
===================================================================
RCS file: /cvsroot/libwpg/libwpg/src/lib/WPGBitmap.cpp,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -d -r1.27 -r1.28
--- WPGBitmap.cpp 7 Sep 2009 09:50:15 -0000 1.27
+++ WPGBitmap.cpp 6 Jun 2010 19:24:52 -0000 1.28
@@ -27,6 +27,10 @@
#include "WPGBitmap.h"
#include "libwpg_utils.h"
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
#define DUMP_BITMAP 0
#if DUMP_BITMAP
@@ -146,11 +150,16 @@
if (d->dib.size() || d->height <= 0 || d->width <= 0)
return d->dib;
+#ifndef OUTPUT_DUMMY_BITMAPS
unsigned tmpPixelSize = (unsigned)(d->height * d->width);
if (tmpPixelSize < (unsigned)d->height) // overflow
return d->dib;
+#else
+ unsigned tmpPixelSize = 1;
+#endif
unsigned tmpBufferPosition = 0;
+
unsigned tmpDIBImageSize = tmpPixelSize * 4;
if (tmpPixelSize > tmpDIBImageSize) // overflow !!!
return d->dib;
@@ -173,8 +182,13 @@
// Create DIB Info header
writeU32(tmpDIBBuffer, tmpBufferPosition, 40); // Size
+#ifndef OUTPUT_DUMMY_BITMAPS
writeU32(tmpDIBBuffer, tmpBufferPosition, width()); // Width
writeU32(tmpDIBBuffer, tmpBufferPosition, height()); // Height
+#else
+ writeU32(tmpDIBBuffer, tmpBufferPosition, 1); // Width
+ writeU32(tmpDIBBuffer, tmpBufferPosition, 1); // Height
+#endif
writeU16(tmpDIBBuffer, tmpBufferPosition, 1); // Planes
writeU16(tmpDIBBuffer, tmpBufferPosition, 32); // BitCount
writeU32(tmpDIBBuffer, tmpBufferPosition, 0); // Compression
@@ -188,6 +202,7 @@
// Write DIB Image data
+#ifndef OUTPUT_DUMMY_BITMAPS
int i = 0; int j = 0;
if (d->vFlip)
for (i = 0; i < d->height && tmpBufferPosition < tmpDIBFileSize; i++)
@@ -232,6 +247,13 @@
WPG_DEBUG_MSG(("WPGBitmap: DIB file size = %i\n", tmpBufferPosition - 1));
+#else
+ writeU8(tmpDIBBuffer, tmpBufferPosition, 0x7F);
+ writeU8(tmpDIBBuffer, tmpBufferPosition, 0x7F);
+ writeU8(tmpDIBBuffer, tmpBufferPosition, 0x7F);
+ writeU8(tmpDIBBuffer, tmpBufferPosition, 0x7F);
+#endif
+
d->dib.append(tmpDIBBuffer, tmpDIBFileSize);
// temporary for debug - dump the binary bmp (need to have write access in the current directory
|