Home | History | Annotate | Download | only in core
      1 /*
      2  * Copyright 2015 Google Inc.
      3  *
      4  * Use of this source code is governed by a BSD-style license that can be
      5  * found in the LICENSE file.
      6  */
      7 
      8 #ifndef SkNinePatchIter_DEFINED
      9 #define SkNinePatchIter_DEFINED
     10 
     11 #include "SkScalar.h"
     12 
     13 struct SkIRect;
     14 struct SkRect;
     15 
     16 /**
     17  *  Disect a ninepatch request into an sequence of src-rect / dst-rect pairs
     18  */
     19 class SkNinePatchIter {
     20 public:
     21     static bool Valid(int imageWidth, int imageHeight, const SkIRect& center);
     22 
     23     SkNinePatchIter(int imageWidth, int imageHeight, const SkIRect& center, const SkRect& dst);
     24 
     25     /**
     26      *  While it returns true, use src/dst to draw the image/bitmap
     27      */
     28     bool next(SkRect* src, SkRect* dst);
     29 
     30 private:
     31     SkScalar fSrcX[4];
     32     SkScalar fSrcY[4];
     33     SkScalar fDstX[4];
     34     SkScalar fDstY[4];
     35 
     36     int fCurrX;
     37     int fCurrY;
     38     bool fDone;
     39 };
     40 
     41 #endif
     42 
     43