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