--- /dev/null
+typedef unsigned char uchar;
+typedef unsigned int uint;
+typedef double qreal;
+template < typename Enum > class QFlags {
+ enum NumberFlag {
+ ShowBase = 0x1, ForcePoint = 0x2, ForceSign =
+ 0x4, UppercaseBase = 0x8, UppercaseDigits = 0x10
+ };
+};
+
+class __attribute__ ((visibility("default"))) QPainterPath {
+};
+
+enum {
+ EdgeRight = 0x1, EdgeDown = 0x2, EdgeLeft = 0x4, EdgeUp = 0x8
+};
+void qt_addBitmapToPath(qreal x0, qreal y0, const uchar * image_data, int bpl,
+ int w, int h, QPainterPath * path)
+{
+ uint *grid = new uint[(w + 1) * (h + 1)];
+ for (int y = 0; y <= h; ++y) {
+ for (int x = 0; x <= w; ++x) {
+ bool topLeft =
+ (x == 0) | (y ==
+ 0) ? false : (*(image_data +
+ (y - 1) * bpl +
+ ((x -
+ 1) >> 3)) & (0x80 >>
+ ((x -
+ 1) &
+ 7)));
+ bool bottomLeft =
+ (x == 0) | (y ==
+ h) ? false : (*(image_data + (y) * bpl +
+ ((x -
+ 1) >> 3)) & (0x80 >>
+ ((x -
+ 1) &
+ 7)));
+ if ((!bottomLeft) & topLeft)
+ grid[(y) * (w + 1) + (x)] |= EdgeLeft;
+ }
+ }
+}