| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2006 The Android Open Source Project | 2 * Copyright 2006 The Android Open Source Project |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
| 5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
| 6 */ | 6 */ |
| 7 | 7 |
| 8 #ifndef SkCanvas_DEFINED | 8 #ifndef SkCanvas_DEFINED |
| 9 #define SkCanvas_DEFINED | 9 #define SkCanvas_DEFINED |
| 10 | 10 |
| (...skipping 938 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 949 * - The center is stretched in both axes. | 949 * - The center is stretched in both axes. |
| 950 * Else, for each axis where dst < bitmap, | 950 * Else, for each axis where dst < bitmap, |
| 951 * - The corners shrink proportionally | 951 * - The corners shrink proportionally |
| 952 * - The sides (along the shrink axis) and center are not drawn | 952 * - The sides (along the shrink axis) and center are not drawn |
| 953 */ | 953 */ |
| 954 void drawBitmapNine(const SkBitmap& bitmap, const SkIRect& center, const SkR
ect& dst, | 954 void drawBitmapNine(const SkBitmap& bitmap, const SkIRect& center, const SkR
ect& dst, |
| 955 const SkPaint* paint = NULL); | 955 const SkPaint* paint = NULL); |
| 956 | 956 |
| 957 /** | 957 /** |
| 958 * Specifies coordinates to divide a bitmap into (xCount*yCount) rects. | 958 * Specifies coordinates to divide a bitmap into (xCount*yCount) rects. |
| 959 * |
| 960 * If the lattice divs or bounds are invalid, the entire lattice |
| 961 * struct will be ignored on the draw call. |
| 959 */ | 962 */ |
| 960 struct Lattice { | 963 struct Lattice { |
| 961 enum Flags : uint8_t { | 964 enum Flags : uint8_t { |
| 962 // If set, indicates that we should not draw corresponding rect. | 965 // If set, indicates that we should not draw corresponding rect. |
| 963 kTransparent_Flags = 1 << 0, | 966 kTransparent_Flags = 1 << 0, |
| 964 }; | 967 }; |
| 965 | 968 |
| 966 // An array of x-coordinates that divide the bitmap vertically. | 969 // An array of x-coordinates that divide the bitmap vertically. |
| 967 // These must be unique, increasing, and in the set [0, width). | 970 // These must be unique, increasing, and in the set [fBounds.fLeft, fBou
nds.fRight). |
| 968 // Does not have ownership. | 971 // Does not have ownership. |
| 969 const int* fXDivs; | 972 const int* fXDivs; |
| 970 | 973 |
| 971 // An array of y-coordinates that divide the bitmap horizontally. | 974 // An array of y-coordinates that divide the bitmap horizontally. |
| 972 // These must be unique, increasing, and in the set [0, height). | 975 // These must be unique, increasing, and in the set [fBounds.fTop, fBoun
ds.fBottom). |
| 973 // Does not have ownership. | 976 // Does not have ownership. |
| 974 const int* fYDivs; | 977 const int* fYDivs; |
| 975 | 978 |
| 976 // If non-null, the length of this array must be equal to | 979 // If non-null, the length of this array must be equal to |
| 977 // (fXCount + 1) * (fYCount + 1). Note that we allow the first rect | 980 // (fXCount + 1) * (fYCount + 1). Note that we allow the first rect |
| 978 // in each direction to empty (divs[0] = 0). In this case, the | 981 // in each direction to be empty (ex: fXDivs[0] = fBounds.fLeft). |
| 979 // caller still must specify a flag (as a placeholder) for these | 982 // In this case, the caller still must specify a flag (as a placeholder) |
| 980 // empty rects. | 983 // for these empty rects. |
| 981 // The flags correspond to the rects in the lattice, first moving | 984 // The flags correspond to the rects in the lattice, first moving |
| 982 // left to right and then top to bottom. | 985 // left to right and then top to bottom. |
| 983 const Flags* fFlags; | 986 const Flags* fFlags; |
| 984 | 987 |
| 985 // The number of fXDivs. | 988 // The number of fXDivs. |
| 986 int fXCount; | 989 int fXCount; |
| 987 | 990 |
| 988 // The number of fYDivs. | 991 // The number of fYDivs. |
| 989 int fYCount; | 992 int fYCount; |
| 993 |
| 994 // The bound to draw from. Must be contained by the src that is being d
rawn, |
| 995 // non-empty, and non-inverted. |
| 996 // If nullptr, the bounds are the entire src. |
| 997 const SkIRect* fBounds; |
| 990 }; | 998 }; |
| 991 | 999 |
| 992 /** | 1000 /** |
| 993 * Draw the bitmap stretched or shrunk differentially to fit into dst. | 1001 * Draw the bitmap stretched or shrunk differentially to fit into dst. |
| 994 * | 1002 * |
| 995 * Moving horizontally across the bitmap, alternating rects will be "scalab
le" | 1003 * Moving horizontally across the bitmap, alternating rects will be "scalab
le" |
| 996 * (in the x-dimension) to fit into dst or must be left "fixed". The first
rect | 1004 * (in the x-dimension) to fit into dst or must be left "fixed". The first
rect |
| 997 * is treated as "fixed", but it's possible to specify an empty first rect
by | 1005 * is treated as "fixed", but it's possible to specify an empty first rect
by |
| 998 * making lattice.fXDivs[0] = 0. | 1006 * making lattice.fXDivs[0] = 0. |
| 999 * | 1007 * |
| (...skipping 755 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1755 | 1763 |
| 1756 class SkCanvasClipVisitor { | 1764 class SkCanvasClipVisitor { |
| 1757 public: | 1765 public: |
| 1758 virtual ~SkCanvasClipVisitor(); | 1766 virtual ~SkCanvasClipVisitor(); |
| 1759 virtual void clipRect(const SkRect&, SkCanvas::ClipOp, bool antialias) = 0; | 1767 virtual void clipRect(const SkRect&, SkCanvas::ClipOp, bool antialias) = 0; |
| 1760 virtual void clipRRect(const SkRRect&, SkCanvas::ClipOp, bool antialias) = 0
; | 1768 virtual void clipRRect(const SkRRect&, SkCanvas::ClipOp, bool antialias) = 0
; |
| 1761 virtual void clipPath(const SkPath&, SkCanvas::ClipOp, bool antialias) = 0; | 1769 virtual void clipPath(const SkPath&, SkCanvas::ClipOp, bool antialias) = 0; |
| 1762 }; | 1770 }; |
| 1763 | 1771 |
| 1764 #endif | 1772 #endif |
| OLD | NEW |