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

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
calligra-devel mailing list
calligra-devel@kde.org
https://mail.kde.org/mailman/listinfo/calligra-devel

Reply via email to