|
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 |