aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkNinePatchIter.h
blob: 2d7e9a8b195ea3cf3c093134eb4a8b032ac64fb2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
/*
 * Copyright 2015 Google Inc.
 *
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file.
 */

#ifndef SkNinePatchIter_DEFINED
#define SkNinePatchIter_DEFINED

#include "SkScalar.h"

struct SkIRect;
struct SkRect;

/**
 *  Disect a ninepatch request into an sequence of src-rect / dst-rect pairs
 */
class SkNinePatchIter {
public:
    static bool Valid(int imageWidth, int imageHeight, const SkIRect& center);

    SkNinePatchIter(int imageWidth, int imageHeight, const SkIRect& center, const SkRect& dst);

    /**
     *  While it returns true, use src/dst to draw the image/bitmap
     */
    bool next(SkRect* src, SkRect* dst);
    
private:
    SkScalar fSrcX[4];
    SkScalar fSrcY[4];
    SkScalar fDstX[4];
    SkScalar fDstY[4];
    
    int fCurrX;
    int fCurrY;
    bool fDone;
};

#endif