Upstream version 9.37.195.0
[platform/framework/web/crosswalk.git] / src / third_party / skia / include / utils / SkMeshUtils.h
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
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
30     int             indexCount() const { return fIndexCount; }
31     const uint16_t* indices() const { return fIndices; }
32
33     size_t          texCount() const { return fTexCount; }
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