Index: include/utils/SkPathUtils.h |
diff --git a/include/utils/SkPathUtils.h b/include/utils/SkPathUtils.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..a27cbb8f0f3e28157e36799a17679d641405089d |
--- /dev/null |
+++ b/include/utils/SkPathUtils.h |
@@ -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 |