diff -r 000000000000 -r 6474c204b198 gfx/skia/trunk/include/utils/SkPathUtils.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gfx/skia/trunk/include/utils/SkPathUtils.h Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,40 @@ +/* + * 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