| /* |
| * CAUTION: EXPERIMENTAL CODE |
| * |
| * This code is not to be used and will not be supported |
| * if it fails on you. DO NOT USE! |
| * |
| */ |
| |
| #ifndef SkPathUtils_DEFINED |
| #define SkPathUtils_DEFINED |
| |
| #include "SkPath.h" |
| |
| /* |
| * The following methods return the boundary path given a 1-bit bitmap, specified |
| * by width/height and stride. The bits are interpreted as 1 being "in" the path, |
| * and 0 being "out". The bits are interpreted as MSB on the left, and LSB on the right. |
| */ |
| |
| class SK_API SkPathUtils { |
| public: |
| /** |
| This variation iterates the binary data sequentially (as in scanline fashion) |
| and will add each run of 1's to the path as a rectangular path. Upon parsing |
| all binary data the path is simplified using the PathOps::Simplify() method. |
| */ |
| static void BitsToPath_Path(SkPath* path, const char* bitmap, |
| int w, int h, int rowBytes); |
| |
| /** |
| This variation utilizes the SkRegion class to generate paths, adding |
| each run of 1's to the SkRegion as an SkIRect. Upon parsing the entirety |
| of the binary the SkRegion is converted to a Path via getBoundaryPath(). |
| */ |
| static void BitsToPath_Region(SkPath* path, const char* bitmap, |
| int w, int h, int rowBytes); |
| |
| }; |
| |
| #endif |