Home | History | Annotate | Download | only in utils
      1 #ifndef SkMeshUtils_DEFINED
      2 #define SkMeshUtils_DEFINED
      3 
      4 #include "SkPoint.h"
      5 #include "SkColor.h"
      6 
      7 class SkBitmap;
      8 class SkCanvas;
      9 class SkPaint;
     10 
     11 class SkMeshIndices {
     12 public:
     13     SkMeshIndices();
     14     ~SkMeshIndices();
     15 
     16     bool init(int texW, int texH, int rows, int cols) {
     17         return this->init(NULL, NULL, texW, texH, rows, cols);
     18     }
     19 
     20     bool init(SkPoint tex[], uint16_t indices[],
     21               int texW, int texH, int rows, int cols);
     22 
     23     size_t          indexCount() const { return fIndexCount; }
     24     const uint16_t* indices() const { return fIndices; }
     25 
     26     size_t          texCount() const { return fTexCount; }
     27     const SkPoint*  tex() const { return fTex; }
     28 
     29 private:
     30     size_t      fIndexCount, fTexCount;
     31     SkPoint*    fTex;
     32     uint16_t*   fIndices;
     33     void*       fStorage; // may be null
     34 };
     35 
     36 class SkMeshUtils {
     37 public:
     38     static void Draw(SkCanvas*, const SkBitmap&, int rows, int cols,
     39                      const SkPoint verts[], const SkColor colors[],
     40                      const SkPaint& paint);
     41 };
     42 
     43 #endif
     44