Chromium Code Reviews| 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 SkPaint_DEFINED | 8 #ifndef SkPaint_DEFINED |
| 9 #define SkPaint_DEFINED | 9 #define SkPaint_DEFINED |
| 10 | 10 |
| (...skipping 865 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 876 * the glyphs. If not NULL, must be at least a large | 876 * the glyphs. If not NULL, must be at least a large |
| 877 * as the number of unichars in the specified text. | 877 * as the number of unichars in the specified text. |
| 878 * @param bounds If not null, returns the bounds for each of | 878 * @param bounds If not null, returns the bounds for each of |
| 879 * character, relative to (0, 0) | 879 * character, relative to (0, 0) |
| 880 * @return the number of unichars in the specified text. | 880 * @return the number of unichars in the specified text. |
| 881 */ | 881 */ |
| 882 int getTextWidths(const void* text, size_t byteLength, SkScalar widths[], | 882 int getTextWidths(const void* text, size_t byteLength, SkScalar widths[], |
| 883 SkRect bounds[] = NULL) const; | 883 SkRect bounds[] = NULL) const; |
| 884 | 884 |
| 885 /** Return the path (outline) for the specified text. | 885 /** Return the path (outline) for the specified text. |
| 886 Note: just like SkCanvas::drawText, this will respect the Align setting | 886 * Note: just like SkCanvas::drawText, this will respect the Align setting |
| 887 in the paint. | 887 * in the paint. |
| 888 */ | 888 * |
| 889 * @param text the text | |
| 890 * @param length number of bytes of text | |
| 891 * @param x The x-coordinate of the origin of the text. | |
| 892 * @param y The y-coordinate of the origin of the text. | |
| 893 * @param path The outline of the text. | |
| 894 */ | |
| 889 void getTextPath(const void* text, size_t length, SkScalar x, SkScalar y, | 895 void getTextPath(const void* text, size_t length, SkScalar x, SkScalar y, |
| 890 SkPath* path) const; | 896 SkPath* path) const; |
| 891 | 897 |
| 898 /** Return the path (outline) for the specified text. | |
| 899 * Note: just like SkCanvas::drawText, this will respect the Align setting | |
| 900 * in the paint. | |
| 901 * | |
| 902 * @param text the text | |
| 903 * @param length number of bytes of text | |
| 904 * @param pos array of positions, used to position each character | |
| 905 * @param path The outline of the text. | |
| 906 */ | |
| 892 void getPosTextPath(const void* text, size_t length, | 907 void getPosTextPath(const void* text, size_t length, |
| 893 const SkPoint pos[], SkPath* path) const; | 908 const SkPoint pos[], SkPath* path) const; |
| 894 | 909 |
| 910 /** Return the number of intervals that intersect the intercept along the ax is of the advance. | |
| 911 * This permits constructing an underline that skips the descenders. | |
| 912 * | |
| 913 * @param text the text | |
| 914 * @param length number of bytes of text | |
| 915 * @param x The x-coordinate of the origin of the text. | |
| 916 * @param y The y-coordinate of the origin of the text. | |
| 917 * @param bounds The lower and upper line parallel to the advance. | |
| 918 * @param array If not null, the found intersections. | |
| 919 * | |
| 920 * @return The number of intersections. | |
| 921 */ | |
| 922 int getTextIntercepts(const void* text, size_t length, SkScalar x, SkScalar y, | |
|
reed1
2016/02/05 18:56:59
If there is any extra burden, we can decide to not
caryclark
2016/02/05 19:43:36
The burden is very slight; nearly all of the code
| |
| 923 SkScalar bounds[2], SkScalar* array) const; | |
| 924 | |
| 925 /** Return the number of intervals that intersect the intercept along the ax is of the advance. | |
| 926 * This permits constructing an underline that skips the descenders. | |
| 927 * | |
| 928 * @param text the text | |
| 929 * @param length number of bytes of text | |
| 930 * @param pos array of positions, used to position each character | |
| 931 * @param bounds The lower and upper line parallel to the advance. | |
| 932 * @param array If not null, the glyph bounds contained by the advan ce parallel lines. | |
| 933 * | |
| 934 * @return The number of glyph bounds. | |
| 935 */ | |
| 936 int getPosTextIntercepts(const void* text, size_t length, const SkPoint pos[ ], | |
| 937 SkScalar bounds[2], SkScalar* array) const; | |
|
reed1
2016/02/05 18:56:59
SkScalar intervals[] ?
Is an upper-bound on the s
reed1
2016/02/05 18:56:59
const SkScalar bounds[2] ?
caryclark
2016/02/05 19:43:36
If the string has no descenders at all, the size r
| |
| 938 | |
| 895 /** | 939 /** |
| 896 * Return a rectangle that represents the union of the bounds of all | 940 * Return a rectangle that represents the union of the bounds of all |
| 897 * of the glyphs, but each one positioned at (0,0). This may be conservativ ely large, and | 941 * of the glyphs, but each one positioned at (0,0). This may be conservativ ely large, and |
| 898 * will not take into account any hinting, but will respect any text-scale- x or text-skew-x | 942 * will not take into account any hinting, but will respect any text-scale- x or text-skew-x |
| 899 * on this paint. | 943 * on this paint. |
| 900 */ | 944 */ |
| 901 SkRect getFontBounds() const; | 945 SkRect getFontBounds() const; |
| 902 | 946 |
| 903 // returns true if the paint's settings (e.g. xfermode + alpha) resolve to | 947 // returns true if the paint's settings (e.g. xfermode + alpha) resolve to |
| 904 // mean that we need not draw at all (e.g. SrcOver + 0-alpha) | 948 // mean that we need not draw at all (e.g. SrcOver + 0-alpha) |
| (...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1082 friend class SkCanvas; | 1126 friend class SkCanvas; |
| 1083 friend class SkDraw; | 1127 friend class SkDraw; |
| 1084 friend class SkPDFDevice; | 1128 friend class SkPDFDevice; |
| 1085 friend class GrAtlasTextBlob; | 1129 friend class GrAtlasTextBlob; |
| 1086 friend class GrAtlasTextContext; | 1130 friend class GrAtlasTextContext; |
| 1087 friend class GrStencilAndCoverTextContext; | 1131 friend class GrStencilAndCoverTextContext; |
| 1088 friend class GrPathRendering; | 1132 friend class GrPathRendering; |
| 1089 friend class GrTextUtils; | 1133 friend class GrTextUtils; |
| 1090 friend class GrGLPathRendering; | 1134 friend class GrGLPathRendering; |
| 1091 friend class SkScalerContext; | 1135 friend class SkScalerContext; |
| 1092 friend class SkTextToPathIter; | 1136 friend class SkTextBaseIter; |
| 1093 friend class SkCanonicalizePaint; | 1137 friend class SkCanonicalizePaint; |
| 1094 }; | 1138 }; |
| 1095 | 1139 |
| 1096 #endif | 1140 #endif |
| OLD | NEW |