diff --git a/docs/develop/interface/BPicture_specifications.html b/docs/develop/interface/BPicture_specifications.html new file mode 100644 index 0000000000..a7019eb34b --- /dev/null +++ b/docs/develop/interface/BPicture_specifications.html @@ -0,0 +1,603 @@ + + +
+| int16 | +id | +The instruction id | +
| int32 | +size | +The size of the data | +
| Id + |
+ Name + |
+ Size + |
+ Data + |
+
|---|---|---|---|
| 0x0010 + |
+ MovePenBy + |
+ 4 + |
+ BPoint where + |
+
| 0x0100 + |
+ StrokeLine + |
+ 16 + |
+ BPoint start +BPoint end + |
+
| 0x0101 + |
+ StrokeRect + |
+ 16 + |
+ BRect rect + |
+
| 0x0102 + |
+ FillRect + |
+ 16 + |
+ BRect rect + |
+
| 0x0103 + |
+ StrokeRoundRect + |
+ 24 | +BRect rect +BPoint radii + |
+
| 0x0104 + |
+ FillRoundRect | +24 + |
+ BRect rect +BPoint radii |
+
| 0x0105 + |
+ StrokeBezier + |
+ 32 + |
+ BPoint[4] control | +
| 0x0106 + |
+ FillBezier + |
+ 32 + |
+ BPoint[4] control | +
| 0x010B + |
+ StrokePolygon + |
+ 4 + point data size + 1 + |
+ int32 numPoints +BPoint *points +bool isClosed + |
+
| 0x010C + |
+ FillPolygon + |
+ 4 + point data size | +int32 numPoints +BPoint *points + |
+
| 0x010D + |
+ StrokeShape + |
+ shape data size + |
+ shape data, see below | +
| 0x010E | +FillShape | +shape data size | +shape data, see below | +
| 0x010F + |
+ DrawString + |
+ 4 + string data size + 8 + |
+ strlen +char *string +float deltax +float deltay + |
+
| 0x0110 | +DrawPixels + |
+ 52 + pixel data size + |
+ BRect src +BRect dest +int32 width +int32 height +int32 bytesPerRow +int32 pixelFormat +int32 flags +pixel data + |
+
| 0x0113 | +StrokeArc + |
+ 24 + |
+ BPoint center +BPoint radii +float startTheta +float arcTheta + |
+
| 0x0114 + |
+ FillArc + |
+ 24 + |
+ BPoint center +BPoint radii +float startTheta +float arcTheta |
+
| 0x0115 + |
+ StrokeEllipse + |
+ 16 + |
+ BRect rect + |
+
| 0x0116 | +FillEllipse | +16 + |
+ BRect rect | +
| 0x0200 + |
+ EnterStateChange + |
+ size of state instructions + |
+ state instructions | +
| 0x0201 | +SetClippingRects | +TODO | +TODO | +
| 0x0203 + |
+ PushState + |
+ 0 + |
+ + |
+
| 0x0204 | +PopState | +0 + |
+ + |
+
| 0x0205 + |
+ SetClippingRects + |
+ TODO + |
+ TODO | +
| 0x0300 + |
+ SetOrigin + |
+ 8 + |
+ BPoint pt + |
+
| 0x0301 + |
+ SetPenLocation + |
+ 8 + |
+ BPoint pt + |
+
| 0x0302 + |
+ SetDrawingMode + |
+ 2 + |
+ drawing_mode mode + |
+
| 0x0303 | +SetLineMode + |
+ 2 + 2 + 4 + |
+ cap_mode capMode +join_mode joinMode +float miterLimit + |
+
| 0x0304 + |
+ SetPenSize | +4 + |
+ float size + |
+
| 0x0305 + |
+ SetScale + |
+ 4 + |
+ float scale | +
| 0x0306 + |
+ SetForeColor + |
+ 4 + |
+ rgb_color color + |
+
| 0x0307 + |
+ SetBackColor + |
+ 4 + |
+ rgb_color color | +
| 0x0308 + |
+ SetStipplePattern + |
+ 8 + |
+ pattern p + |
+
| 0x0309 + |
+ EnterFontState + |
+ size of font instructions | +font instructions | +
| 0x0380 + |
+ SetFontFamily + |
+ 4 + string data size | +strlen +char *family + |
+
| 0x0381 + |
+ SetFontStyle + |
+ 4 + string data size | +strlen +char style |
+
| 0x0382 + |
+ SetFontSpacing + |
+ 4 + |
+ int32 spacing + |
+
| 0x0383 + |
+ SetFontEncoding + |
+ 4 + |
+ int32 encoding + |
+
| 0x0384 + |
+ SetFontFlags + |
+ 4 + |
+ int32 flags + |
+
| 0x0385 + |
+ SetFontSize + |
+ 4 + |
+ float size + |
+
| 0x0386 + |
+ SetFontRotate + |
+ 4 + |
+ float rotation + |
+
| 0x0387 + |
+ SetFontShear + |
+ 4 + |
+ float shear(is 0 instead of 90?) + |
+
| 0x0389 + |
+ SetFontFace + |
+ 4 + |
+ int32 flags + |
+
| 30A + |
+ ???? + |
+ 4 + |
+ some state change | +
| 388 + |
+ ???? + |
+ 4 + |
+ some font change + |
+
| int32 + |
+ instruction count + |
+
| int32 *instructions + |
+ Each instruction looks like: +First byte is the instruction id, MoveTo is not coded as a seperate instruction, +but as a bitflag of the next instruction 0x80 see the table below. +The next three bytes is the amount of points used* + |
+
| int32 + |
+ point count + |
+
| points + |
+ + |
+
| Id + |
+ Name + |
+ Points* + |
+ Notes + |
+
|---|---|---|---|
| 0x0B | +MoveTo | +1 | ++ |
+
| 0x10 | +LineTo | +point count in instruction + |
+ + |
+
| 0x90 | +MoveTo LineTo | +point count in instruction + 1 | ++ |
+
| 0x20 | +BezierTo | +point count in instruction | +point count is always multiple of 3 + |
+
| 0xA0 | +MoveTo BezierTo | +point count in instruction + 1 | +point count is always multiple of 3 | +
| 0x70 | +Close | +0 + |
+ + |
+