summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFridrich Štrba <fridrich.strba@bluewin.ch>2016-07-20 11:14:36 +0200
committerFridrich Štrba <fridrich.strba@bluewin.ch>2016-07-20 11:14:36 +0200
commit3eb9b6eb8e9855661eb505ffeb29cd7860ed5b9d (patch)
tree1d001ff25dd5a0391002b973e450bf2ebc052426
parentf568a1a6ecab5200f9c7443887dc7fb623beb060 (diff)
Full-Color and Imported Bitmap have similar structure
Change-Id: I989bdc58eb88ce68e7fc3a64ddb7d3d46572b7ac
-rw-r--r--src/lib/CMXParser.cpp26
1 files changed, 5 insertions, 21 deletions
diff --git a/src/lib/CMXParser.cpp b/src/lib/CMXParser.cpp
index 4f04ca3..b4fbee5 100644
--- a/src/lib/CMXParser.cpp
+++ b/src/lib/CMXParser.cpp
@@ -1232,6 +1232,7 @@ bool libcdr::CMXParser::readFill(librevenge::RVNGInputStream *input)
}
break;
case 9: // Imported Bitmap
+ case 10: // Full Color Pattern
if (m_precision == libcdr::PRECISION_32BIT)
{
unsigned char tagId = 0;
@@ -1242,11 +1243,11 @@ bool libcdr::CMXParser::readFill(librevenge::RVNGInputStream *input)
tagId = readU8(input, m_bigEndian);
if (tagId == CMX_Tag_EndTag)
{
- CDR_DEBUG_MSG((" Imported Bitmap fill - tagId %i\n", tagId));
+ CDR_DEBUG_MSG((" %s fill - tagId %i\n", fillType == 9 ? "Imported Bitmap" : "Full Color Pattern", tagId));
break;
}
tagLength = readU16(input, m_bigEndian);
- CDR_DEBUG_MSG((" Imported Bitmap fill - tagId %i, tagLength %u\n", tagId, tagLength));
+ CDR_DEBUG_MSG((" %s fill - tagId %i, tagLength %u\n", fillType == 9 ? "Imported Bitmap" : "Full Color Pattern", tagId, tagLength));
switch (tagId)
{
case CMX_Tag_RenderAttr_FillSpec_ColorBM:
@@ -1282,7 +1283,7 @@ bool libcdr::CMXParser::readFill(librevenge::RVNGInputStream *input)
}
else if (m_precision == libcdr::PRECISION_16BIT)
{
- CDR_DEBUG_MSG((" Imported Bitmap fill\n"));
+ CDR_DEBUG_MSG((" %s fill\n", fillType == 9 ? "Imported Bitmap" : "Full Color Pattern"));
unsigned short patternId = readU16(input, m_bigEndian);
int tmpWidth = readU16(input, m_bigEndian);
int tmpHeight = readU16(input, m_bigEndian);
@@ -1303,23 +1304,6 @@ bool libcdr::CMXParser::readFill(librevenge::RVNGInputStream *input)
imageFill = libcdr::CDRImageFill(patternId, patternWidth, patternHeight, isRelative, tileOffsetX, tileOffsetY, rcpOffset, flags);
}
break;
- case 10:
- CDR_DEBUG_MSG((" Full-Color Pattern fill\n"));
- if (m_precision == libcdr::PRECISION_32BIT)
- {
- }
- else if (m_precision == libcdr::PRECISION_16BIT)
- {
- /* unsigned short pattern = */ readU16(input, m_bigEndian);
- /* unsigned short width = */ readU16(input, m_bigEndian);
- /* unsigned short height = */ readU16(input, m_bigEndian);
- /* unsigned short xoff = */ readU16(input, m_bigEndian);
- /* unsigned short yoff = */ readU16(input, m_bigEndian);
- /* unsigned short inter = */ readU16(input, m_bigEndian);
- /* unsigned short flags = */ readU16(input, m_bigEndian);
- /* libcdr::CDRBox box = */ readBBox(input);
- }
- break;
case 11:
if (m_precision == libcdr::PRECISION_32BIT)
{
@@ -2045,7 +2029,7 @@ void libcdr::CMXParser::readIxpc(librevenge::RVNGInputStream *input)
{
long oldOffset = input->tell();
input->seek(procOffset, librevenge::RVNG_SEEK_SET);
- m_collector->collectVect(1);
+ m_collector->collectVect(0);
m_collector->collectSpnd(j);
readProc(input);
input->seek(oldOffset, librevenge::RVNG_SEEK_SET);