Progress on OOo GDI Metafile
cbo at boemann.dk
Sat Apr 9 12:15:22 CEST 2011
It looks understandable already, but I'm sure you'll refine it more as you go
On Saturday 09 April 2011 02:38:15 Pierre wrote:
> I could not spend a night with no progress on this :)
> Here is a first specification draft.
> Are you okay with that formatting/presentation, or do you think something
> more formal is needed ?
> Global file structure
> The byte order of the file is Little Endian.
> The SVM file is composed of two parts : the header, followed by a list of
> Each of these contain objects, referenced in the last section of this
> * Header
> - Signature, 6 bytes, equals to "VCLMTF" (without quotes)
> - VersionCompat object
> - compression mode, uint32
> - MapMode object
> - width, uint32
> - height, uint32
> - action count, uint32
> * List of actions
> Each action starts with a type index, on uint16, identifying it. The
> following data depends on that type.
> LibreOffice 3.3 implements about 52 different actions. I will describe here
> only the ones I saw in my documents.
> In almost every case (except the null action), an action starts with a
> VersionCompat object, which I will name actionCompat in the following text.
> Unless mentionned otherwise, each Action starts with such an object.
> - Action 103 : draw rectangle
> This action draws a rectangle of the given coordinates using the current
> paint context. It contains the following objects :
> - topLeft Point
> - bottomRight Point
> - VersionCompat
> A VersionCompat object contains two integers :
> - version, uint16
> - size (in bytes), uint32
> The total size refers to the «current context». For instance, the
> VersionCompat at the beginning of an action will refer to the size of the
> - Point
> A point contains two integers :
> - x, uint32
> - y, uint32
> - Polygon
More information about the calligra-devel