Progress on OOo GDI Metafile

C. Boemann 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 
along

Casper

On Saturday 09 April 2011 02:38:15 Pierre wrote:
> Hi
> 
> 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
> actions.
> Each of these contain objects, referenced in the last section of this
> document.
> 
>     * 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.
> 
> 
> Actions
> =======
> 
> 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
> 
> 
> 
> Objects
> =======
> - 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
> action.
> 
> - Point
> A point contains two integers :
>     - x, uint32
>     - y, uint32
> 
> - Polygon


More information about the calligra-devel mailing list