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 51