Home | History | Annotate | Download | only in utils
      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     size_t          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     size_t      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