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