1 
2 /*
3  * Copyright 2011 Google Inc.
4  *
5  * Use of this source code is governed by a BSD-style license that can be
6  * found in the LICENSE file.
7  */
8 #ifndef SkMeshUtils_DEFINED
9 #define SkMeshUtils_DEFINED
10 
11 #include "SkPoint.h"
12 #include "SkColor.h"
13 
14 class SkBitmap;
15 class SkCanvas;
16 class SkPaint;
17 
18 class SkMeshIndices {
19 public:
20     SkMeshIndices();
21     ~SkMeshIndices();
22 
init(int texW,int texH,int rows,int cols)23     bool init(int texW, int texH, int rows, int cols) {
24         return this->init(NULL, NULL, texW, texH, rows, cols);
25     }
26 
27     bool init(SkPoint tex[], uint16_t indices[],
28               int texW, int texH, int rows, int cols);
29 
indexCount()30     int             indexCount() const { return fIndexCount; }
indices()31     const uint16_t* indices() const { return fIndices; }
32 
texCount()33     size_t          texCount() const { return fTexCount; }
tex()34     const SkPoint*  tex() const { return fTex; }
35 
36 private:
37     int         fIndexCount, fTexCount;
38     SkPoint*    fTex;
39     uint16_t*   fIndices;
40     void*       fStorage; // may be null
41 };
42 
43 class SkMeshUtils {
44 public:
45     static void Draw(SkCanvas*, const SkBitmap&, int rows, int cols,
46                      const SkPoint verts[], const SkColor colors[],
47                      const SkPaint& paint);
48 };
49 
50 #endif
51