blob: c6e3fe6ab584d04d7877be009292df7aefb3f597 [file] [log] [blame]
Cary Clark8032b982017-07-28 11:04:54 -04001# external references that will be documented eventually ...
2#External
Cary Clark61ca7c52018-01-02 11:34:14 -05003 DirectWrite TrueType Windows Linux Android iOS __ANDROID_API__ AHardwareBuffer
Cary Clark682c58d2018-05-16 07:07:07 -04004 FreeType FreeType-based Harfbuzz
Cary Clark77b3f3a2018-11-07 14:59:03 -05005 LCD RGB sRGB BGR RGBA ARGB YUV YUVA HSV SDTV HDTV
Cary Clark8032b982017-07-28 11:04:54 -04006 Unicode Unicode5 UTF-8 UTF-16 UTF-32 ASCII Unichar
Cary Clark8032b982017-07-28 11:04:54 -04007 API
Cary Clark61ca7c52018-01-02 11:34:14 -05008 BMP GIF HEIF ICO JPEG PNG WBMP WebP
Cary Clark5538c132018-06-14 12:28:14 -04009 CPU
Cary Clark09d80c02018-10-31 12:14:03 -040010 GPU GPU-backed OpenGL Vulkan VkDevice I/O MSAA
Cary Clarkbc5697d2017-10-04 14:31:33 -040011 PDF XPS
Cary Clark8032b982017-07-28 11:04:54 -040012 RFC
Cary Clarkbc5697d2017-10-04 14:31:33 -040013 NaN NaNs
Cary Clark77b3f3a2018-11-07 14:59:03 -050014 bool U16CPU int int8_t int16_t int32_t int64_t uint8_t uint16_t uint32_t uint64_t size_t
Cary Clark09d80c02018-10-31 12:14:03 -040015 nullptr
16 malloc() calloc() assert() std::move()
Cary Clark77b3f3a2018-11-07 14:59:03 -050017 C C++ SIZE_MAX C_FILE FILE
Cary Clark682c58d2018-05-16 07:07:07 -040018 CSS HTML
Cary Clarkabaffd82018-11-15 08:25:12 -050019
Cary Clark77b3f3a2018-11-07 14:59:03 -050020 affine destructor multitexturing representable subclasses descender descenders grayscale kerning
Cary Clarke9c5a152018-11-21 11:45:57 -050021 unhinted no-parameter
Cary Clark77b3f3a2018-11-07 14:59:03 -050022
23 Sa Da Sc Dc 0xAARRGGBB # temporary until figure out what to do
Cary Clark224c7002018-06-27 11:00:21 -040024
Cary Clark77b3f3a2018-11-07 14:59:03 -050025 SkUserConfig.h # not external, but still thinking about how markup refers to this
Cary Clarkbad5ad72017-08-03 17:14:08 -040026 SkXXX.h # ditto
Cary Clarkd0530ba2017-09-14 11:25:39 -040027 SkXXX_Reference # ditto
Cary Clark8032b982017-07-28 11:04:54 -040028 Skia # ditto
Cary Clarkbc5697d2017-10-04 14:31:33 -040029 SK_ABORT # ditto
Cary Clarkd0530ba2017-09-14 11:25:39 -040030 SK_DEBUG # ditto
31 SK_RELEASE # ditto
Cary Clark8032b982017-07-28 11:04:54 -040032 SK_USE_FREETYPE_EMBOLDEN # ditto
Cary Clark8032b982017-07-28 11:04:54 -040033 SK_BUILD_FOR_ANDROID_FRAMEWORK # ditto
Cary Clarkac47b882018-01-11 10:35:44 -050034 SK_BUILD_FOR_MAC # ditto
35 SK_BUILD_FOR_IOS # ditto
Cary Clarka560c472017-11-27 10:44:06 -050036 SK_SUPPORT_GPU # ditto
Cary Clarkac47b882018-01-11 10:35:44 -050037 SK_HAS_JPEG_LIBRARY # ditto
38 SK_HAS_PNG_LIBRARY # ditto
39 SK_HAS_WEBP_LIBRARY # ditto
Cary Clark2d4bf5f2018-04-16 08:37:38 -040040 SK_IGNORE_GPU_DITHER # ditto
Cary Clark06c20f32018-03-20 15:53:27 -040041 SK_PMCOLOR_BYTE_ORDER # ditto
Cary Clark8032b982017-07-28 11:04:54 -040042
43# FreeType related
44FT_LOAD_TARGET_LIGHT
45FT_LOAD_TARGET_NORMAL
46FT_LOAD_TARGET_LCD
47FT_LOAD_TARGET_LCD_V
48FT_LOAD_NO_HINTING
49FT_Load_Glyph
50
51#External ##
52
Ruiqi Maoc97a3392018-08-15 10:44:19 -040053# this jargon requires a substitute to space the phrase.
54#Topic Little_Endian
Cary Clark5538c132018-06-14 12:28:14 -040055#Substitute little endian
56##
57
58#Topic Big_Endian
59#Substitute big endian
60##
61
Ruiqi Maoc97a3392018-08-15 10:44:19 -040062#Topic YUV_Component_Y
Cary Clark5538c132018-06-14 12:28:14 -040063#Substitute YUV component y
64##
65
Ruiqi Maoc97a3392018-08-15 10:44:19 -040066#Topic YUV_Component_U
Cary Clark5538c132018-06-14 12:28:14 -040067#Substitute YUV component u
68##
69
70#Topic YUV_Component_V
71#Substitute YUV component v
72##
73
74#Topic UV_Mapping
75#Substitute UV mapping
76##
77
Ruiqi Maoc97a3392018-08-15 10:44:19 -040078#Topic Multi_Sample_Anti_Aliasing
Cary Clark5538c132018-06-14 12:28:14 -040079#Substitute multi-sample anti-aliasing
80##
81
82#Topic GPU_Share_Group
83#Substitute GPU share group
84##
85
Ruiqi Maoc97a3392018-08-15 10:44:19 -040086#Topic Bezier_Curve
Cary Clark5538c132018-06-14 12:28:14 -040087#Substitute Bezier cruve
88##
89
Ruiqi Maoc97a3392018-08-15 10:44:19 -040090#Topic Coons_Patch
Cary Clark5538c132018-06-14 12:28:14 -040091#Substitute Coons patch
92##
93
Ruiqi Maoc97a3392018-08-15 10:44:19 -040094#Topic Cartesian_Coordinate
Cary Clark5538c132018-06-14 12:28:14 -040095#Substitute Cartesian coordinate
96##
97
Ruiqi Maoc97a3392018-08-15 10:44:19 -040098#Topic Euclidean_Distance
Cary Clark5538c132018-06-14 12:28:14 -040099#Substitute Euclidean distance
100##
101
Ruiqi Maoc97a3392018-08-15 10:44:19 -0400102#Topic Euclidean_Space
Cary Clark5538c132018-06-14 12:28:14 -0400103#Substitute Euclidean space
104##
105
Ruiqi Maoc97a3392018-08-15 10:44:19 -0400106#Topic HTML_Gray
Cary Clark5538c132018-06-14 12:28:14 -0400107#Substitute HTML gray
108##
109
Ruiqi Maoc97a3392018-08-15 10:44:19 -0400110#Topic HTML_Silver
Cary Clark5538c132018-06-14 12:28:14 -0400111#Substitute HTML silver
112##
113
Ruiqi Maoc97a3392018-08-15 10:44:19 -0400114#Topic HTML_Lime
Cary Clark5538c132018-06-14 12:28:14 -0400115#Substitute HTML lime
116##
117
Ruiqi Maoc97a3392018-08-15 10:44:19 -0400118#Topic HTML_Green
Cary Clark5538c132018-06-14 12:28:14 -0400119#Substitute HTML green
120##
121
Ruiqi Maoc97a3392018-08-15 10:44:19 -0400122#Topic HTML_Aqua
Cary Clark5538c132018-06-14 12:28:14 -0400123#Substitute HTML aqua
124##
125
126#Topic HTML_Fuchsia
127#Substitute HTML fuchsia
128##
129
Ruiqi Maoc97a3392018-08-15 10:44:19 -0400130#Topic SVG_lightgray
Cary Clark5538c132018-06-14 12:28:14 -0400131#Substitute SVG light gray
132##
133
134#Topic SVG_darkgray
135#Substitute SVG dark gray
136##
137
138# start of topics to be documented in the future
139
Cary Clarkce101242017-09-01 15:51:02 -0400140#Topic Alias
Cary Clark137b8742018-05-30 09:21:49 -0400141#Alias Aliased ##
142#Alias Aliasing ##
Cary Clarkce101242017-09-01 15:51:02 -0400143##
144
Cary Clark8032b982017-07-28 11:04:54 -0400145#Topic Arc
Cary Clark137b8742018-05-30 09:21:49 -0400146#Alias Arcs ##
Cary Clark8032b982017-07-28 11:04:54 -0400147#Topic ##
148
Cary Clarka560c472017-11-27 10:44:06 -0500149#Topic Backend_Semaphore
Cary Clark137b8742018-05-30 09:21:49 -0400150#Alias Backend_Semaphores ##
Cary Clarka560c472017-11-27 10:44:06 -0500151#Class GrBackendSemaphore
Cary Clarka560c472017-11-27 10:44:06 -0500152##
153##
154
Cary Clark8032b982017-07-28 11:04:54 -0400155#Topic BBH_Factory
156#Class SkBBHFactory
157##
158##
159
Cary Clark8032b982017-07-28 11:04:54 -0400160
161#Topic Circle
Cary Clark137b8742018-05-30 09:21:49 -0400162#Alias Circles ##
Cary Clark8032b982017-07-28 11:04:54 -0400163#Topic ##
164
165#Topic Clip_Op
166#EnumClass SkClipOp
167 #Const kDifference 0
168 ##
169 #Const kIntersect 1
170 ##
171##
172##
173
Cary Clark8032b982017-07-28 11:04:54 -0400174#Topic Color_Filter
175#Class SkColorFilter
176#Class ##
Cary Clark682c58d2018-05-16 07:07:07 -0400177##
Cary Clark8032b982017-07-28 11:04:54 -0400178
179#Topic Color_Space
Cary Clarkd0530ba2017-09-14 11:25:39 -0400180#Class SkColorSpace
181 #Method static sk_sp<SkColorSpace> MakeSRGBLinear()
182 ##
Cary Clark681287e2018-03-16 11:34:15 -0400183 #Method bool gammaCloseToSRGB() const
184 ##
Cary Clark06c20f32018-03-20 15:53:27 -0400185 #Method static bool Equals(const SkColorSpace* src, const SkColorSpace* dst)
186 ##
Cary Clarkd0530ba2017-09-14 11:25:39 -0400187##
Cary Clark8032b982017-07-28 11:04:54 -0400188##
189
Cary Clark2ade9972017-11-02 17:49:34 -0400190#Topic Create_Color_Space_Xform_Canvas
Cary Clarkfd32e722018-11-16 14:36:02 -0500191#Method std::unique_ptr<SkCanvas> SkCreateColorSpaceXformCanvas(SkCanvas* target,
192 sk_sp<SkColorSpace> targetCS)
Cary Clark2ade9972017-11-02 17:49:34 -0400193##
194##
195
Cary Clarkce101242017-09-01 15:51:02 -0400196#Topic Core_Graphics
197#Substitute Core Graphics
198##
199
200#Topic Core_Text
201#Substitute Core Text
202##
203
Cary Clark8032b982017-07-28 11:04:54 -0400204#Topic Curve
Cary Clark137b8742018-05-30 09:21:49 -0400205#Alias Curves ##
Cary Clark8032b982017-07-28 11:04:54 -0400206##
207
208#Topic Data
Cary Clarka560c472017-11-27 10:44:06 -0500209#Class SkData
210##
Cary Clark8032b982017-07-28 11:04:54 -0400211##
212
Cary Clark94732662018-03-12 08:09:48 -0400213#Topic Debug_Canvas
214#Class SkDebugCanvas
215##
216##
217
Cary Clark7fc1d122017-10-09 14:07:42 -0400218#Topic Debugging
Cary Clarkfd32e722018-11-16 14:36:02 -0500219#Method void SkDebugf(const char format[], ...)
Cary Clark7fc1d122017-10-09 14:07:42 -0400220##
221##
222
Cary Clarka560c472017-11-27 10:44:06 -0500223#Topic Deferred_Display_List
224#Class SkDeferredDisplayList
225##
226#Subtopic Recorder
227#Class SkDeferredDisplayListRecorder
228##
229##
230##
231
Cary Clark224c7002018-06-27 11:00:21 -0400232#Topic Deserial_Procs
233#Struct SkDeserialProcs
Cary Clark09d80c02018-10-31 12:14:03 -0400234#Member SkDeserialPictureProc fPictureProc
235##
236#Member void* fPictureCtx
237##
238#Member SkDeserialTypefaceProc fTypefaceProc
239##
240#Member void* fTypefaceCtx
241##
Cary Clark224c7002018-06-27 11:00:21 -0400242##
243##
244
Cary Clark8032b982017-07-28 11:04:54 -0400245#Topic Device
246#Class SkBaseDevice
247##
Cary Clark682c58d2018-05-16 07:07:07 -0400248##
Cary Clark8032b982017-07-28 11:04:54 -0400249
250#Topic Document
251#Class SkDocument
252 #Method SkCanvas* beginPage(SkScalar width, SkScalar height,
253 const SkRect* content = NULL)
254 ##
255##
256#Subtopic PDF
257##
258##
259
Cary Clarkce101242017-09-01 15:51:02 -0400260#Topic Draw_Layer
261##
262
Cary Clark8032b982017-07-28 11:04:54 -0400263#Topic Draw_Looper
264#Class SkDrawLooper
265#Class ##
Cary Clark682c58d2018-05-16 07:07:07 -0400266##
Cary Clark8032b982017-07-28 11:04:54 -0400267
268#Topic Drawable
269#Class SkDrawable
270 #Method void draw(SkCanvas*, const SkMatrix* = NULL)
271 ##
272##
273##
274
Cary Clark682c58d2018-05-16 07:07:07 -0400275# to be in topic Encoded_Image_Format
Cary Clarkac47b882018-01-11 10:35:44 -0500276#EnumClass SkEncodedImageFormat
277 #Const kUnknown 0
278 ##
279 #Const kBMP 1
280 ##
281 #Const kGIF 2
282 ##
283 #Const kICO 3
284 ##
285 #Const kJPEG 4
286 ##
287 #Const kPNG 5
288 ##
289 #Const kWBMP 6
290 ##
291 #Const kWEBP 7
292 ##
293 #Const kPKM 8
294 ##
295 #Const kKTX 9
296 ##
297 #Const kASTC 10
298 ##
299 #Const kDNG 11
300 ##
301 #Const kHEIF 12
302 ##
303##
Cary Clark682c58d2018-05-16 07:07:07 -0400304# end of topic Encoded_Image_Format
Cary Clarkac47b882018-01-11 10:35:44 -0500305
Cary Clark8032b982017-07-28 11:04:54 -0400306#Topic Filter_Quality
307#Enum SkFilterQuality
308 #Const kNone_SkFilterQuality 0
309 ##
310 #Const kLow_SkFilterQuality 1
311 ##
312 #Const kMedium_SkFilterQuality 2
313 ##
314 #Const kHigh_SkFilterQuality 3
315 ##
316#Enum ##
Cary Clarkd0530ba2017-09-14 11:25:39 -0400317#Subtopic Nearest_Neighbor
318#Substitute nearest neighbor filter
319##
320#Subtopic Bilerp
321#Substitute bilerp filter
322##
323#Subtopic MipMap
324#Substitute mip-map filter
325##
326#Subtopic BiCubic
327#Substitute bicubic filter
328##
Cary Clark8032b982017-07-28 11:04:54 -0400329#Topic ##
330
Cary Clark3e73dcf2018-12-06 08:41:14 -0500331#Topic Text_Encoding
Cary Clark14768f62018-10-29 20:33:51 -0400332#Enum SkTextEncoding
333#Const kUTF8_SkTextEncoding 0
334##
335#Const kUTF16_SkTextEncoding 1
336##
337#Const kUTF32_SkTextEncoding 2
338##
339#Const kGlyphID_SkTextEncoding 3
340##
Mike Reed0f9d33e2018-12-05 10:54:05 -0500341TextEncoding determines whether text specifies character codes and their encoded
342size, or glyph indices. Characters are encoded as specified by the
343#A Unicode standard # https://unicode.org/standard/standard.html ##
344.
345
346Character codes encoded size are specified by UTF-8, UTF-16, or UTF-32.
347All character code formats are able to represent all of Unicode, differing only
348in the total storage required.
349
350#A UTF-8 (RFC 3629) # https://tools.ietf.org/html/rfc3629 ##
351encodes each character as one or more 8-bit bytes.
352
353#A UTF-16 (RFC 2781) # https://tools.ietf.org/html/rfc2781 ##
354encodes each character as one or two 16-bit words.
355
356#A UTF-32 # https://www.unicode.org/versions/Unicode5.0.0/ch03.pdf ##
357encodes each character as one 32-bit word.
358
359Font_Manager uses font data to convert character code points into glyph indices.
360A glyph index is a 16-bit word.
Cary Clark3e73dcf2018-12-06 08:41:14 -0500361#Enum SkTextEncoding ##
362#Topic Text_Encoding ##
Cary Clarkcb6bef02018-11-29 12:05:25 -0500363
Cary Clark3e73dcf2018-12-06 08:41:14 -0500364#Topic Font_Hinting
365#Line # glyph outline adjustment ##
Cary Clark885f1072018-11-08 13:31:39 -0500366#EnumClass SkFontHinting
367#Const kNone 0
Cary Clark4a23bbf2018-11-08 16:00:33 -0500368#Line # glyph outlines unchanged ##
369 Leaves glyph outlines unchanged from their native representation.
370 With FreeType, this is equivalent to the FT_LOAD_NO_HINTING
371 bit-field constant supplied to FT_Load_Glyph, which indicates that the vector
372 outline being loaded should not be fitted to the pixel grid but simply scaled
373 to 26.6 fractional pixels.
Cary Clark11407e52018-11-05 21:26:13 -0500374##
Cary Clark885f1072018-11-08 13:31:39 -0500375#Const kSlight 1
Cary Clark4a23bbf2018-11-08 16:00:33 -0500376#Line # minimal modification to improve contrast ##
377 Modifies glyph outlines minimally to improve contrast.
378 With FreeType, this is equivalent in spirit to the
379 FT_LOAD_TARGET_LIGHT value supplied to FT_Load_Glyph. It chooses a
380 lighter hinting algorithm for non-monochrome modes.
381 Generated Glyphs may be fuzzy but better resemble their original shape.
Cary Clark11407e52018-11-05 21:26:13 -0500382##
Cary Clark885f1072018-11-08 13:31:39 -0500383#Const kNormal 2
Cary Clark4a23bbf2018-11-08 16:00:33 -0500384#Line # glyph outlines modified to improve contrast ##
385 Modifies glyph outlines to improve contrast. This is the default.
386 With FreeType, this supplies FT_LOAD_TARGET_NORMAL to FT_Load_Glyph,
387 choosing the default hinting algorithm, which is optimized for standard
388 gray-level rendering.
Cary Clark11407e52018-11-05 21:26:13 -0500389##
Cary Clark885f1072018-11-08 13:31:39 -0500390#Const kFull 3
Cary Clark4a23bbf2018-11-08 16:00:33 -0500391#Line # modifies glyph outlines for maximum contrast ##
392 Modifies glyph outlines for maximum contrast. With FreeType, this selects
393 FT_LOAD_TARGET_LCD or FT_LOAD_TARGET_LCD_V if kLCDRenderText_Flag is set.
394 FT_LOAD_TARGET_LCD is a variant of FT_LOAD_TARGET_NORMAL optimized for
395 horizontally decimated LCD displays; FT_LOAD_TARGET_LCD_V is a
396 variant of FT_LOAD_TARGET_NORMAL optimized for vertically decimated LCD displays.
Cary Clark11407e52018-11-05 21:26:13 -0500397##
Cary Clark3e73dcf2018-12-06 08:41:14 -0500398#EnumClass SkFontHinting ##
399#Topic Font_Hinting ##
Cary Clarkcb6bef02018-11-29 12:05:25 -0500400
Cary Clark3e73dcf2018-12-06 08:41:14 -0500401#Topic Font_Metrics
Cary Clark7e69c8f2018-11-06 20:40:45 -0500402#Struct SkFontMetrics
403#Line # values computed by Font_Manager using Typeface ##
404
405 SkFontMetrics is filled out by SkPaint::getFontMetrics. SkFontMetrics contents
406 reflect the values
407 computed by Font_Manager using Typeface. Values are set to zero if they are
408 not available.
409
410 All vertical values are relative to the baseline, on a y-axis pointing down.
411 Zero is on the baseline, negative values are above the baseline, and positive
412 values are below the baseline.
413
414 fUnderlineThickness and fUnderlinePosition have a bit set in fFlags if their values
415 are valid, since their value may be zero.
416
417 fStrikeoutThickness and fStrikeoutPosition have a bit set in fFlags if their values
418 are valid, since their value may be zero.
419
420 #Enum FontMetricsFlags
421 #Line # valid Font_Metrics ##
422
423 FontMetricsFlags are set in fFlags when underline and strikeout metrics are valid;
424 the underline or strikeout metric may be valid and zero.
425 Fonts with embedded bitmaps may not have valid underline or strikeout metrics.
426
427 #Const kUnderlineThicknessIsValid_Flag 0x0001
428 #Line # set if fUnderlineThickness is valid ##
429 ##
430 #Const kUnderlinePositionIsValid_Flag 0x0002
431 #Line # set if fUnderlinePosition is valid ##
432 ##
433 #Const kStrikeoutThicknessIsValid_Flag 0x0004
434 #Line # set if fStrikeoutThickness is valid ##
435 ##
436 #Const kStrikeoutPositionIsValid_Flag 0x0008
437 #Line # set if fStrikeoutPosition is valid ##
438 ##
439
440 #Enum ##
441
442 #Member uint32_t fFlags
443 #Line # is set to FontMetricsFlags when metrics are valid ##
444 ##
445
446 #Member SkScalar fTop
447 #Line # extent above baseline ##
448 Greatest extent above the baseline for any glyph.
449 Typically less than zero.
450 ##
451
452 #Member SkScalar fAscent
453 #Line # distance to reserve above baseline ##
454 Recommended distance above the baseline to reserve for a line of text.
455 Typically less than zero.
456 ##
457
458 #Member SkScalar fDescent
459 #Line # distance to reserve below baseline ##
460 Recommended distance below the baseline to reserve for a line of text.
461 Typically greater than zero.
462 ##
463
464 #Member SkScalar fBottom
465 #Line # extent below baseline ##
466 Greatest extent below the baseline for any glyph.
467 Typically greater than zero.
468 ##
469
470 #Member SkScalar fLeading
471 #Line # distance to add between lines ##
472 Recommended distance to add between lines of text.
473 Typically greater than or equal to zero.
474 ##
475
476 #Member SkScalar fAvgCharWidth
477 #Line # average character width ##
478 Average character width, if it is available.
479 Zero if no average width is stored in the font.
480 ##
481
482 #Member SkScalar fMaxCharWidth
483 #Line # maximum character width ##
484 ##
485
486 #Member SkScalar fXMin
487 #Line # minimum x ##
488 Minimum bounding box x-axis value for all Glyphs.
489 Typically less than zero.
490 ##
491
492 #Member SkScalar fXMax
493 #Line # maximum x ##
494 Maximum bounding box x-axis value for all Glyphs.
495 Typically greater than zero.
496 ##
497
498 #Member SkScalar fXHeight
499 #Line # height of lower-case 'x' ##
500 May be zero if no lower-case height is stored in the font.
501 ##
502
503 #Member SkScalar fCapHeight
504 #Line # height of an upper-case letter ##
505 May be zero if no upper-case height is stored in the font.
506 ##
507
508 #Member SkScalar fUnderlineThickness
509 #Line # underline thickness ##
510 If the metric is valid, the kUnderlineThicknessIsValid_Flag is set in fFlags.
511 If kUnderlineThicknessIsValid_Flag is clear, fUnderlineThickness is zero.
512 ##
513
514 #Member SkScalar fUnderlinePosition
515 #Line # underline position relative to baseline ##
516 Position of the top of the underline stroke relative to the baseline.
517 Typically positive when valid.
518
519 If the metric is valid, the kUnderlinePositionIsValid_Flag is set in fFlags.
520 If kUnderlinePositionIsValid_Flag is clear, fUnderlinePosition is zero.
521 ##
522
523 #Member SkScalar fStrikeoutThickness
524 #Line # strikeout thickness ##
525
526 If the metric is valid, the kStrikeoutThicknessIsValid_Flag is set in fFlags.
527 If kStrikeoutThicknessIsValid_Flag is clear, fStrikeoutThickness is zero.
528 ##
529
530 #Member SkScalar fStrikeoutPosition
531 #Line # strikeout position relative to baseline ##
532 Position of the bottom of the strikeout stroke relative to the baseline.
533 Typically negative when valid.
534
535 If the metric is valid, the kStrikeoutPositionIsValid_Flag is set in fFlags.
536 If kStrikeoutPositionIsValid_Flag is clear, fStrikeoutPosition is zero.
537 ##
538
539 #Method bool hasUnderlineThickness(SkScalar* thickness) const
540 #Line # returns underline thickness if set ##
541
542#NoExample
543 ##
544 ##
545
546 #Method bool hasUnderlinePosition(SkScalar* position) const
547 #Line # returns underline position if set ##
548
549#NoExample
550 ##
551 ##
552
553 #Method bool hasStrikeoutThickness(SkScalar* thickness) const
554 #Line # returns strikeout thickness if set ##
555
556#NoExample
557 ##
558 ##
559
560 #Method bool hasStrikeoutPosition(SkScalar* position) const
561 #Line # returns strikeout position if set ##
562
563#NoExample
564 ##
565 ##
566
567#Struct ##
Cary Clark8032b982017-07-28 11:04:54 -0400568#Topic ##
569
570#Topic Font_Manager
571#Topic ##
572
573#Topic Glyph
Cary Clarkd2ca79c2018-08-10 13:09:13 -0400574#Subtopic ID
575##
Cary Clark137b8742018-05-30 09:21:49 -0400576#Alias Glyphs ##
Cary Clark8032b982017-07-28 11:04:54 -0400577##
578
Cary Clarkbad5ad72017-08-03 17:14:08 -0400579#Topic GPU_Context
580#Substitute GPU context
Cary Clark2ade9972017-11-02 17:49:34 -0400581#Class GrContext
Cary Clark77b3f3a2018-11-07 14:59:03 -0500582#Method void abandonContext()
583##
Cary Clark2ade9972017-11-02 17:49:34 -0400584#Method void flush()
585##
586##
Cary Clarkbad5ad72017-08-03 17:14:08 -0400587##
588
589#Topic GPU_Surface
590#Substitute GPU surface
591##
592
Cary Clark61ca7c52018-01-02 11:34:14 -0500593#Topic GPU_Texture
594#Substitute GPU texture
595##
596
Cary Clarkce101242017-09-01 15:51:02 -0400597#Topic HTML_Canvas
598 #Substitute HTML Canvas
599 #Subtopic ArcTo
600 #Substitute HTML Canvas arcTo
601 ##
602##
603
Cary Clark8032b982017-07-28 11:04:54 -0400604#Topic Image_Filter
Cary Clark8032b982017-07-28 11:04:54 -0400605#Class SkImageFilter
606#Class ##
607#Topic ##
608
Cary Clark682c58d2018-05-16 07:07:07 -0400609#Class SkImageGenerator
610##
611
Cary Clark8032b982017-07-28 11:04:54 -0400612#Topic Image_Scaling
613##
614
Cary Clark154beea2017-10-26 07:58:48 -0400615#Topic ISize
616#Struct SkISize
Cary Clark09d80c02018-10-31 12:14:03 -0400617#Method int32_t width() const
618##
619#Method int32_t height() const
620##
Cary Clark154beea2017-10-26 07:58:48 -0400621##
622##
623
Cary Clark682c58d2018-05-16 07:07:07 -0400624#Topic Left_Side_Bearing
Cary Clarkce101242017-09-01 15:51:02 -0400625##
626
Cary Clark8032b982017-07-28 11:04:54 -0400627#Topic Line
Cary Clark137b8742018-05-30 09:21:49 -0400628#Alias Lines ##
Cary Clark8032b982017-07-28 11:04:54 -0400629#Topic ##
630
Cary Clark682c58d2018-05-16 07:07:07 -0400631# to be in Topic Malloc_Pixel_Ref
Cary Clarkbc5697d2017-10-04 14:31:33 -0400632#Class SkMallocPixelRef
633 #Method static sk_sp<SkPixelRef> MakeZeroed(const SkImageInfo&, size_t rowBytes)
634 ##
635 #Method static sk_sp<SkPixelRef> MakeAllocate(const SkImageInfo&, size_t rowBytes)
636 ##
637##
Cary Clark682c58d2018-05-16 07:07:07 -0400638# end of Topic Malloc_Pixel_Ref
639
640#Struct SkMask
Cary Clarkbc5697d2017-10-04 14:31:33 -0400641##
642
Cary Clark8032b982017-07-28 11:04:54 -0400643#Topic Mask_Alpha
644#Topic ##
645
646#Topic Mask_Filter
647#Class SkMaskFilter
648#Class ##
649#Topic ##
650
Cary Clark682c58d2018-05-16 07:07:07 -0400651# to be in Topic Math
Cary Clark77b3f3a2018-11-07 14:59:03 -0500652 #Method Luminosity(dstColor)
653 # this permits using Luminosity() in documentation
Cary Clark09d80c02018-10-31 12:14:03 -0400654 ##
Cary Clark77b3f3a2018-11-07 14:59:03 -0500655 #Method Saturation(dstColor)
656 # this permits using Saturation() in documentation
657 ##
658 #Method SetLuminosity(srcSaturation, dstLuminosity)
659 # this permits using SetLuminosity() in documentation
660 ##
661 #Method SetSaturation(srcSaturation, dstSaturation)
662 # this permits using SetSaturation() in documentation
Cary Clarkd0530ba2017-09-14 11:25:39 -0400663 ##
Cary Clarkbc5697d2017-10-04 14:31:33 -0400664 #Method SkIntToScalar(x)
665 ##
666 #Method SkScalarRoundToInt(x)
667 ##
668 #Method SkScalarFloorToInt(x)
669 ##
670 #Method SkScalarCeilToInt(x)
671 ##
672 #Method SkScalarFloorToScalar(x)
673 ##
674 #Method SkScalarCeilToScalar(x)
675 ##
Cary Clark7fc1d122017-10-09 14:07:42 -0400676 #Method SkScalarIsFinite(x)
677 ##
678 #Method SkScalarIsNaN(x)
679 ##
680 #Method template <typename D, typename S> inline bool SkTFitsIn(S s)
681 ##
Cary Clark77b3f3a2018-11-07 14:59:03 -0500682 #Method float abs(float x)
683 # this permits using abs(x) in documentation
684 ##
685 #Method float max(float x)
686 # this permits using max(x) in documentation
687 ##
688 #Method float min(float x)
689 # this permits using max(x) in documentation
690 ##
691 #Method float sizeof(float x)
692 # this permits using sizeof(x) in documentation
693 ##
694 #Method float sqrt(float x)
695 # this permits using sqrt(x) in documentation
696 ##
697 #Method static inline bool sk_64_isS32(int64_t value)
698 ##
Cary Clark682c58d2018-05-16 07:07:07 -0400699# end of Topic Math
Cary Clarkd0530ba2017-09-14 11:25:39 -0400700
Cary Clark2ade9972017-11-02 17:49:34 -0400701#Topic Meta_Data
702#Class SkMetaData
703##
704##
705
Cary Clarkbc5697d2017-10-04 14:31:33 -0400706#Topic Mip_Map
Cary Clark5538c132018-06-14 12:28:14 -0400707#Substitute mip map
Cary Clarkbc5697d2017-10-04 14:31:33 -0400708##
Cary Clark8032b982017-07-28 11:04:54 -0400709
710#Topic Nine_Patch
711##
712
Cary Clark09d80c02018-10-31 12:14:03 -0400713# to be in Topic Number_Types ?
Cary Clarka560c472017-11-27 10:44:06 -0500714 #Typedef uint16_t SkGlyphID
Cary Clark8032b982017-07-28 11:04:54 -0400715 #Typedef ##
Cary Clark682c58d2018-05-16 07:07:07 -0400716 #Topic Scalar
Cary Clarkd2ca79c2018-08-10 13:09:13 -0400717 #Alias Scalars ##
Cary Clarka560c472017-11-27 10:44:06 -0500718 #Typedef float SkScalar
Cary Clark8032b982017-07-28 11:04:54 -0400719 #Typedef ##
Cary Clark7fc1d122017-10-09 14:07:42 -0400720 ##
Cary Clark884dd7d2017-10-11 10:37:52 -0400721 #Const SK_MinS32FitsInFloat
722 to be written
723 ##
724 #Const SK_MaxS32FitsInFloat
725 to be written
726 ##
Cary Clark7fc1d122017-10-09 14:07:42 -0400727 #Const SK_ScalarMin
728 to be written
729 ##
Cary Clark8032b982017-07-28 11:04:54 -0400730 #Const SK_ScalarMax
731 to be written
732 ##
733 #Const SK_ScalarInfinity
734 to be written
735 ##
736 #Const SK_ScalarNegativeInfinity
737 to be written
738 ##
739 #Const SK_ScalarNaN
740 to be written
741 ##
Cary Clark682c58d2018-05-16 07:07:07 -0400742 #Const SK_ScalarNearlyZero
743 to be written
744 ##
Cary Clark7fc1d122017-10-09 14:07:42 -0400745 #Const SK_MinS32
746 to be written
747 ##
748 #Const SK_MaxS32
749 to be written
750 ##
Cary Clarka560c472017-11-27 10:44:06 -0500751 #Typedef int32_t SkUnichar
Cary Clark8032b982017-07-28 11:04:54 -0400752 #Typedef ##
Cary Clarka560c472017-11-27 10:44:06 -0500753 #Typedef unsigned U8CPU
Cary Clark8032b982017-07-28 11:04:54 -0400754 #Typedef ##
Cary Clark682c58d2018-05-16 07:07:07 -0400755# end of Topic Number_Types
Cary Clark8032b982017-07-28 11:04:54 -0400756
Cary Clarkce101242017-09-01 15:51:02 -0400757#Topic OS_X
758#Substitute OS X
759##
760
Cary Clark8032b982017-07-28 11:04:54 -0400761#Topic Oval
Cary Clark137b8742018-05-30 09:21:49 -0400762#Alias Ovals ##
Cary Clark8032b982017-07-28 11:04:54 -0400763#Topic ##
764
765#Topic Paint_Defaults
766#Const SkPaintDefaults_Flags 0
767##
768#Const SkPaintDefaults_Hinting 2
769##
770#Const SkPaintDefaults_TextSize 12
771##
772#Const SkPaintDefaults_MiterLimit 4
773##
774#Topic ##
775
776#Topic Patch
Cary Clark137b8742018-05-30 09:21:49 -0400777#Alias Patches ##
Cary Clark8032b982017-07-28 11:04:54 -0400778#Topic ##
779
780#Topic Path_Effect
781 #Class SkPathEffect
782 #Class ##
783#Topic ##
784
Cary Clark682c58d2018-05-16 07:07:07 -0400785# to be in Topic Path_Measure
Cary Clark8032b982017-07-28 11:04:54 -0400786 #Class SkPathMeasure
787 #Method void dump() const
788 ##
789 ##
Cary Clark682c58d2018-05-16 07:07:07 -0400790# end of Topic Path_Measure
Cary Clark8032b982017-07-28 11:04:54 -0400791
792#Topic PathOps
Cary Clark682c58d2018-05-16 07:07:07 -0400793 #Enum SkPathOp
794 ##
Cary Clarkfd32e722018-11-16 14:36:02 -0500795 #Method bool Op(const SkPath& one, const SkPath& two, SkPathOp op, SkPath* result)
Cary Clark8032b982017-07-28 11:04:54 -0400796 ##
797#Topic ##
798
Cary Clark224c7002018-06-27 11:00:21 -0400799#Topic Picture_Recorder
Cary Clark8032b982017-07-28 11:04:54 -0400800 #Class SkPictureRecorder
801 #Method SkCanvas* beginRecording(const SkRect& bounds,
802 SkBBHFactory* bbhFactory = NULL,
803 uint32_t recordFlags = 0)
804 ##
805 ##
806##
Cary Clark8032b982017-07-28 11:04:54 -0400807
808#Topic Pixel
809#Subtopic Storage
810##
811##
812
Cary Clarkbc5697d2017-10-04 14:31:33 -0400813#Topic Pixel_Ref
Cary Clarkd0530ba2017-09-14 11:25:39 -0400814#Class SkPixelRef
Cary Clarkbc5697d2017-10-04 14:31:33 -0400815 #Method int width() const
816 ##
817 #Method int height() const
818 ##
819 #Method bool isImmutable() const
820 ##
821 #Method void setImmutable()
822 ##
Cary Clarkd0530ba2017-09-14 11:25:39 -0400823##
Cary Clarkbad5ad72017-08-03 17:14:08 -0400824##
825
Cary Clarkd0530ba2017-09-14 11:25:39 -0400826#Enum SkPixelGeometry
Cary Clark8032b982017-07-28 11:04:54 -0400827##
828
Cary Clark154beea2017-10-26 07:58:48 -0400829#Topic Point3
830#Struct SkPoint3
831##
832#Topic ##
833
Cary Clarkce101242017-09-01 15:51:02 -0400834#Topic PostScript
835#Substitute PostScript
836#Subtopic Arct
837#Substitute PostScript arct
838##
839##
840
841#Topic Premultiply
Cary Clark137b8742018-05-30 09:21:49 -0400842#Alias Premultiplied ##
Cary Clark80247e52018-07-11 16:18:41 -0400843#Alias Premultiplies ##
Cary Clarkce101242017-09-01 15:51:02 -0400844##
845
846#Topic Raster_Engine
847##
848
Cary Clark8032b982017-07-28 11:04:54 -0400849#Topic Raster_Handle_Allocator
850#Class SkRasterHandleAllocator
Cary Clark682c58d2018-05-16 07:07:07 -0400851 #Typedef void* Handle
852 ##
Cary Clark8032b982017-07-28 11:04:54 -0400853 #Struct Rec
854 ##
855 #Method static std::unique_ptr<SkCanvas> MakeCanvas(std::unique_ptr<SkRasterHandleAllocator>, const SkImageInfo&, const Rec* rec = nullptr)
856 ##
857##
858##
859
Cary Clark2f466242017-12-11 16:03:17 -0500860#Topic Raster_Bitmap
861##
862
Cary Clarkbad5ad72017-08-03 17:14:08 -0400863#Topic Raster_Surface
864##
865
Cary Clark682c58d2018-05-16 07:07:07 -0400866# to be in Topic Rasterizer
Cary Clark8032b982017-07-28 11:04:54 -0400867#Class SkRasterizer
868#Class ##
Cary Clark682c58d2018-05-16 07:07:07 -0400869# end of Topic Rasterizer
Cary Clark8032b982017-07-28 11:04:54 -0400870
Cary Clark8032b982017-07-28 11:04:54 -0400871#Topic Reference_Count
Cary Clarkbc5697d2017-10-04 14:31:33 -0400872#Class SkRefCnt
873#Class ##
Cary Clarkcb6bef02018-11-29 12:05:25 -0500874
875#Template SkNVRefCnt
876##
Cary Clark09d80c02018-10-31 12:14:03 -0400877##
878
879#Topic Smart_Pointer
Cary Clark8032b982017-07-28 11:04:54 -0400880#Class sk_sp
881#Class ##
882#Topic ##
883
Cary Clarka560c472017-11-27 10:44:06 -0500884#Topic Render_Target
885#Class GrRenderTarget
886##
887##
888
Cary Clarkce101242017-09-01 15:51:02 -0400889#Topic Right_Side_Bearing
890##
891
Cary Clark8032b982017-07-28 11:04:54 -0400892#Topic RSXform
893#Struct SkRSXform
Cary Clark09d80c02018-10-31 12:14:03 -0400894#Member SkScalar fSCos
895##
896#Member SkScalar fSSin
897##
898#Member SkScalar fTx
899##
900#Member SkScalar fTy
901##
Cary Clark8032b982017-07-28 11:04:54 -0400902##
903##
904
Cary Clark224c7002018-06-27 11:00:21 -0400905#Topic Serial_Procs
906#Struct SkSerialProcs
Cary Clark09d80c02018-10-31 12:14:03 -0400907#Member SkSerialPictureProc fPictureProc
908##
909#Member void* fPictureCtx
910##
911#Member SkSerialTypefaceProc fTypefaceProc
912##
913#Member void* fTypefaceCtx
914##
Cary Clark224c7002018-06-27 11:00:21 -0400915##
916##
917
Cary Clark8032b982017-07-28 11:04:54 -0400918#Topic Shader
919#Class SkShader
920 #Enum TileMode
921 #Const kClamp_TileMode 0
922 ##
Cary Clark61dfc3a2018-01-03 08:37:53 -0500923 #Const kRepeat_TileMode 1
924 ##
925 #Const kMirror_TileMode 2
926 ##
Cary Clark8032b982017-07-28 11:04:54 -0400927 ##
928 #Method static sk_sp<SkShader> MakeBitmapShader(const SkBitmap& src, TileMode tmx, TileMode tmy,
929 const SkMatrix* localMatrix = nullptr)
930 ##
Cary Clark224c7002018-06-27 11:00:21 -0400931 #Method static sk_sp<SkShader> MakeCompose(sk_sp<SkShader> dst, sk_sp<SkShader> src,
932 SkBlendMode mode, float lerp = 1)
933 ##
Cary Clark8032b982017-07-28 11:04:54 -0400934#Class ##
Cary Clark8032b982017-07-28 11:04:54 -0400935#Topic ##
936
Cary Clarkbc5697d2017-10-04 14:31:33 -0400937#Topic Size
Cary Clark154beea2017-10-26 07:58:48 -0400938#Struct SkSize
Cary Clark09d80c02018-10-31 12:14:03 -0400939#Method int32_t width() const
940##
941#Method int32_t height() const
942##
Cary Clark154beea2017-10-26 07:58:48 -0400943##
Cary Clarkbc5697d2017-10-04 14:31:33 -0400944##
945
Cary Clark8032b982017-07-28 11:04:54 -0400946#Topic Sprite
Cary Clark137b8742018-05-30 09:21:49 -0400947#Alias Sprites ##
Cary Clark8032b982017-07-28 11:04:54 -0400948#Topic ##
949
Cary Clarkd2ca79c2018-08-10 13:09:13 -0400950#Topic Stream_Asset
951#Class SkStreamAsset
Cary Clark682c58d2018-05-16 07:07:07 -0400952##
Cary Clarkd2ca79c2018-08-10 13:09:13 -0400953#Topic ##
Cary Clark8032b982017-07-28 11:04:54 -0400954
955#Topic String
956#Class SkString
957#Class ##
958#Topic ##
959
Cary Clarkce101242017-09-01 15:51:02 -0400960#Topic Supersampling
961##
962
Cary Clarka560c472017-11-27 10:44:06 -0500963#Topic Surface_Characterization
964#Class SkSurfaceCharacterization
Cary Clark8032b982017-07-28 11:04:54 -0400965##
Cary Clarka560c472017-11-27 10:44:06 -0500966##
967
968#Topic Surface_Properties
Cary Clark8032b982017-07-28 11:04:54 -0400969 #Class SkSurfaceProps
Cary Clark2a8c48b2018-02-15 17:31:24 -0500970 #Subtopic Legacy_Font_Host
Cary Clark8032b982017-07-28 11:04:54 -0400971 #Enum InitType
972 #Const kLegacyFontHost_InitType 0
973 ##
974 ##
Cary Clarkbad5ad72017-08-03 17:14:08 -0400975 #Topic ##
Cary Clark8032b982017-07-28 11:04:54 -0400976 ##
977##
Cary Clark8032b982017-07-28 11:04:54 -0400978
979#Topic SVG
980#Subtopic Canvas
981##
982#Subtopic Arc
983##
Cary Clark09d80c02018-10-31 12:14:03 -0400984#Subtopic Sweep_Flag
985#Substitute SVG sweep-flag
986##
Cary Clark8032b982017-07-28 11:04:54 -0400987##
988
989#Topic Text
990#Topic ##
991
Cary Clarka560c472017-11-27 10:44:06 -0500992#Topic Texture
993#Class GrBackendTexture
Cary Clarkba75aee2018-04-05 08:18:41 -0400994 #Method bool isValid() const
995 ##
Cary Clarka560c472017-11-27 10:44:06 -0500996##
997##
998
Robert Phillipsb6df1c12018-10-05 10:31:34 -0400999#Topic YUV_Planes
1000#Class SkYUVAIndex
1001##
1002##
1003
Robert Phillips8caf85f2018-04-05 09:30:38 -04001004#Topic RenderTarget
1005#Class GrBackendRenderTarget
1006 #Method bool isValid() const
1007 ##
1008##
1009##
1010
Cary Clark681287e2018-03-16 11:34:15 -04001011#Topic Transfer_Mode
1012##
1013
Cary Clark8032b982017-07-28 11:04:54 -04001014#Topic Typeface
Cary Clarkd2ca79c2018-08-10 13:09:13 -04001015#Subtopic ID
1016#Typedef uint32_t SkFontID
1017##
1018##
Cary Clark8032b982017-07-28 11:04:54 -04001019#Class SkTypeface
Cary Clarkd2ca79c2018-08-10 13:09:13 -04001020 #Method SkFontID uniqueID() const
1021 ##
Cary Clark8032b982017-07-28 11:04:54 -04001022#Class ##
1023#Topic ##
1024
Cary Clark682c58d2018-05-16 07:07:07 -04001025# to be defined in types
Cary Clarka560c472017-11-27 10:44:06 -05001026 #Typedef intptr_t GrBackendObject
1027 #Typedef ##
1028
Cary Clark5538c132018-06-14 12:28:14 -04001029 #EnumClass GrMipMapped
1030 #Const kNo 0
1031 ##
1032 #Const kYes 1
1033 ##
1034 #EnumClass ##
1035
Cary Clarka560c472017-11-27 10:44:06 -05001036 #Enum GrSurfaceOrigin
Cary Clark682c58d2018-05-16 07:07:07 -04001037 #Const kBottomLeft_GrSurfaceOrigin 0
Cary Clarka560c472017-11-27 10:44:06 -05001038 ##
1039 #Const kTopLeft_GrSurfaceOrigin 1
1040 ##
1041 #Enum ##
1042
Cary Clarka560c472017-11-27 10:44:06 -05001043 #EnumClass SkBudgeted
1044 #Const kNo 0
1045 ##
1046 #Const kYes 1
1047 ##
1048 #EnumClass ##
Cary Clarka560c472017-11-27 10:44:06 -05001049
1050 #EnumClass GrSemaphoresSubmitted
1051 #Const kNo 0
1052 ##
1053 #Const kYes 1
1054 ##
1055 #EnumClass ##
Cary Clark682c58d2018-05-16 07:07:07 -04001056# end of defined in types
Cary Clarka560c472017-11-27 10:44:06 -05001057
Cary Clarkce101242017-09-01 15:51:02 -04001058#Topic Unpremultiply
Cary Clark137b8742018-05-30 09:21:49 -04001059#Alias Unpremultiplied ##
Cary Clarkce101242017-09-01 15:51:02 -04001060##
1061
Cary Clark8032b982017-07-28 11:04:54 -04001062#Topic Vertices
Cary Clark682c58d2018-05-16 07:07:07 -04001063#Class SkVertices
Ruiqi Maoc97a3392018-08-15 10:44:19 -04001064#Class Bone
1065##
Cary Clark682c58d2018-05-16 07:07:07 -04001066##
Cary Clark8032b982017-07-28 11:04:54 -04001067#Subtopic Colors
1068##
1069#Subtopic Texs
1070##
1071#Topic ##
1072
Cary Clark224c7002018-06-27 11:00:21 -04001073#Topic Xfermode_Image_Filter
1074#Class SkXfermodeImageFilter
1075##
1076##