blob: df6dbcf3e0d37e7e54ac22ef77a38763193f2206 [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
Mike Kleina907dcb2019-02-19 10:29:43 -050022
Cary Clark77b3f3a2018-11-07 14:59:03 -050023 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 Clarkbc5697d2017-10-04 14:31:33 -0400701#Topic Mip_Map
Cary Clark5538c132018-06-14 12:28:14 -0400702#Substitute mip map
Cary Clarkbc5697d2017-10-04 14:31:33 -0400703##
Cary Clark8032b982017-07-28 11:04:54 -0400704
705#Topic Nine_Patch
706##
707
Cary Clark09d80c02018-10-31 12:14:03 -0400708# to be in Topic Number_Types ?
Cary Clarka560c472017-11-27 10:44:06 -0500709 #Typedef uint16_t SkGlyphID
Cary Clark8032b982017-07-28 11:04:54 -0400710 #Typedef ##
Cary Clark682c58d2018-05-16 07:07:07 -0400711 #Topic Scalar
Cary Clarkd2ca79c2018-08-10 13:09:13 -0400712 #Alias Scalars ##
Cary Clarka560c472017-11-27 10:44:06 -0500713 #Typedef float SkScalar
Cary Clark8032b982017-07-28 11:04:54 -0400714 #Typedef ##
Cary Clark7fc1d122017-10-09 14:07:42 -0400715 ##
Cary Clark884dd7d2017-10-11 10:37:52 -0400716 #Const SK_MinS32FitsInFloat
717 to be written
718 ##
719 #Const SK_MaxS32FitsInFloat
720 to be written
721 ##
Cary Clark7fc1d122017-10-09 14:07:42 -0400722 #Const SK_ScalarMin
723 to be written
724 ##
Cary Clark8032b982017-07-28 11:04:54 -0400725 #Const SK_ScalarMax
726 to be written
727 ##
728 #Const SK_ScalarInfinity
729 to be written
730 ##
731 #Const SK_ScalarNegativeInfinity
732 to be written
733 ##
734 #Const SK_ScalarNaN
735 to be written
736 ##
Cary Clark682c58d2018-05-16 07:07:07 -0400737 #Const SK_ScalarNearlyZero
738 to be written
739 ##
Cary Clark7fc1d122017-10-09 14:07:42 -0400740 #Const SK_MinS32
741 to be written
742 ##
743 #Const SK_MaxS32
744 to be written
745 ##
Cary Clarka560c472017-11-27 10:44:06 -0500746 #Typedef int32_t SkUnichar
Cary Clark8032b982017-07-28 11:04:54 -0400747 #Typedef ##
Cary Clarka560c472017-11-27 10:44:06 -0500748 #Typedef unsigned U8CPU
Cary Clark8032b982017-07-28 11:04:54 -0400749 #Typedef ##
Cary Clark682c58d2018-05-16 07:07:07 -0400750# end of Topic Number_Types
Cary Clark8032b982017-07-28 11:04:54 -0400751
Cary Clarkce101242017-09-01 15:51:02 -0400752#Topic OS_X
753#Substitute OS X
754##
755
Cary Clark8032b982017-07-28 11:04:54 -0400756#Topic Oval
Cary Clark137b8742018-05-30 09:21:49 -0400757#Alias Ovals ##
Cary Clark8032b982017-07-28 11:04:54 -0400758#Topic ##
759
760#Topic Paint_Defaults
Cary Clark8032b982017-07-28 11:04:54 -0400761#Const SkPaintDefaults_Hinting 2
762##
763#Const SkPaintDefaults_TextSize 12
764##
765#Const SkPaintDefaults_MiterLimit 4
766##
767#Topic ##
768
769#Topic Patch
Cary Clark137b8742018-05-30 09:21:49 -0400770#Alias Patches ##
Cary Clark8032b982017-07-28 11:04:54 -0400771#Topic ##
772
773#Topic Path_Effect
774 #Class SkPathEffect
775 #Class ##
776#Topic ##
777
Cary Clark682c58d2018-05-16 07:07:07 -0400778# to be in Topic Path_Measure
Cary Clark8032b982017-07-28 11:04:54 -0400779 #Class SkPathMeasure
780 #Method void dump() const
781 ##
782 ##
Cary Clark682c58d2018-05-16 07:07:07 -0400783# end of Topic Path_Measure
Cary Clark8032b982017-07-28 11:04:54 -0400784
785#Topic PathOps
Cary Clark682c58d2018-05-16 07:07:07 -0400786 #Enum SkPathOp
787 ##
Cary Clarkfd32e722018-11-16 14:36:02 -0500788 #Method bool Op(const SkPath& one, const SkPath& two, SkPathOp op, SkPath* result)
Cary Clark8032b982017-07-28 11:04:54 -0400789 ##
790#Topic ##
791
Cary Clark224c7002018-06-27 11:00:21 -0400792#Topic Picture_Recorder
Cary Clark8032b982017-07-28 11:04:54 -0400793 #Class SkPictureRecorder
794 #Method SkCanvas* beginRecording(const SkRect& bounds,
795 SkBBHFactory* bbhFactory = NULL,
796 uint32_t recordFlags = 0)
797 ##
798 ##
799##
Cary Clark8032b982017-07-28 11:04:54 -0400800
801#Topic Pixel
802#Subtopic Storage
803##
804##
805
Cary Clarkbc5697d2017-10-04 14:31:33 -0400806#Topic Pixel_Ref
Cary Clarkd0530ba2017-09-14 11:25:39 -0400807#Class SkPixelRef
Cary Clarkbc5697d2017-10-04 14:31:33 -0400808 #Method int width() const
809 ##
810 #Method int height() const
811 ##
812 #Method bool isImmutable() const
813 ##
814 #Method void setImmutable()
815 ##
Cary Clarkd0530ba2017-09-14 11:25:39 -0400816##
Cary Clarkbad5ad72017-08-03 17:14:08 -0400817##
818
Cary Clarkd0530ba2017-09-14 11:25:39 -0400819#Enum SkPixelGeometry
Cary Clark8032b982017-07-28 11:04:54 -0400820##
821
Cary Clark154beea2017-10-26 07:58:48 -0400822#Topic Point3
823#Struct SkPoint3
824##
825#Topic ##
826
Cary Clarkce101242017-09-01 15:51:02 -0400827#Topic PostScript
828#Substitute PostScript
829#Subtopic Arct
830#Substitute PostScript arct
831##
832##
833
834#Topic Premultiply
Cary Clark137b8742018-05-30 09:21:49 -0400835#Alias Premultiplied ##
Cary Clark80247e52018-07-11 16:18:41 -0400836#Alias Premultiplies ##
Cary Clarkce101242017-09-01 15:51:02 -0400837##
838
839#Topic Raster_Engine
840##
841
Cary Clark8032b982017-07-28 11:04:54 -0400842#Topic Raster_Handle_Allocator
843#Class SkRasterHandleAllocator
Cary Clark682c58d2018-05-16 07:07:07 -0400844 #Typedef void* Handle
845 ##
Cary Clark8032b982017-07-28 11:04:54 -0400846 #Struct Rec
847 ##
848 #Method static std::unique_ptr<SkCanvas> MakeCanvas(std::unique_ptr<SkRasterHandleAllocator>, const SkImageInfo&, const Rec* rec = nullptr)
849 ##
850##
851##
852
Cary Clark2f466242017-12-11 16:03:17 -0500853#Topic Raster_Bitmap
854##
855
Cary Clarkbad5ad72017-08-03 17:14:08 -0400856#Topic Raster_Surface
857##
858
Cary Clark682c58d2018-05-16 07:07:07 -0400859# to be in Topic Rasterizer
Cary Clark8032b982017-07-28 11:04:54 -0400860#Class SkRasterizer
861#Class ##
Cary Clark682c58d2018-05-16 07:07:07 -0400862# end of Topic Rasterizer
Cary Clark8032b982017-07-28 11:04:54 -0400863
Cary Clark8032b982017-07-28 11:04:54 -0400864#Topic Reference_Count
Cary Clarkbc5697d2017-10-04 14:31:33 -0400865#Class SkRefCnt
866#Class ##
Cary Clarkcb6bef02018-11-29 12:05:25 -0500867
868#Template SkNVRefCnt
869##
Cary Clark09d80c02018-10-31 12:14:03 -0400870##
871
872#Topic Smart_Pointer
Cary Clark8032b982017-07-28 11:04:54 -0400873#Class sk_sp
874#Class ##
875#Topic ##
876
Cary Clarka560c472017-11-27 10:44:06 -0500877#Topic Render_Target
878#Class GrRenderTarget
879##
880##
881
Cary Clarkce101242017-09-01 15:51:02 -0400882#Topic Right_Side_Bearing
883##
884
Cary Clark8032b982017-07-28 11:04:54 -0400885#Topic RSXform
886#Struct SkRSXform
Cary Clark09d80c02018-10-31 12:14:03 -0400887#Member SkScalar fSCos
888##
889#Member SkScalar fSSin
890##
891#Member SkScalar fTx
892##
893#Member SkScalar fTy
894##
Cary Clark8032b982017-07-28 11:04:54 -0400895##
896##
897
Cary Clark224c7002018-06-27 11:00:21 -0400898#Topic Serial_Procs
899#Struct SkSerialProcs
Cary Clark09d80c02018-10-31 12:14:03 -0400900#Member SkSerialPictureProc fPictureProc
901##
902#Member void* fPictureCtx
903##
904#Member SkSerialTypefaceProc fTypefaceProc
905##
906#Member void* fTypefaceCtx
907##
Cary Clark224c7002018-06-27 11:00:21 -0400908##
909##
910
Cary Clark8032b982017-07-28 11:04:54 -0400911#Topic Shader
912#Class SkShader
913 #Enum TileMode
914 #Const kClamp_TileMode 0
915 ##
Cary Clark61dfc3a2018-01-03 08:37:53 -0500916 #Const kRepeat_TileMode 1
917 ##
918 #Const kMirror_TileMode 2
919 ##
Cary Clark8032b982017-07-28 11:04:54 -0400920 ##
921 #Method static sk_sp<SkShader> MakeBitmapShader(const SkBitmap& src, TileMode tmx, TileMode tmy,
922 const SkMatrix* localMatrix = nullptr)
923 ##
Cary Clark224c7002018-06-27 11:00:21 -0400924 #Method static sk_sp<SkShader> MakeCompose(sk_sp<SkShader> dst, sk_sp<SkShader> src,
925 SkBlendMode mode, float lerp = 1)
926 ##
Cary Clark8032b982017-07-28 11:04:54 -0400927#Class ##
Cary Clark8032b982017-07-28 11:04:54 -0400928#Topic ##
929
Cary Clarkbc5697d2017-10-04 14:31:33 -0400930#Topic Size
Cary Clark154beea2017-10-26 07:58:48 -0400931#Struct SkSize
Cary Clark09d80c02018-10-31 12:14:03 -0400932#Method int32_t width() const
933##
934#Method int32_t height() const
935##
Cary Clark154beea2017-10-26 07:58:48 -0400936##
Cary Clarkbc5697d2017-10-04 14:31:33 -0400937##
938
Cary Clark8032b982017-07-28 11:04:54 -0400939#Topic Sprite
Cary Clark137b8742018-05-30 09:21:49 -0400940#Alias Sprites ##
Cary Clark8032b982017-07-28 11:04:54 -0400941#Topic ##
942
Cary Clarkd2ca79c2018-08-10 13:09:13 -0400943#Topic Stream_Asset
944#Class SkStreamAsset
Cary Clark682c58d2018-05-16 07:07:07 -0400945##
Cary Clarkd2ca79c2018-08-10 13:09:13 -0400946#Topic ##
Cary Clark8032b982017-07-28 11:04:54 -0400947
948#Topic String
949#Class SkString
950#Class ##
951#Topic ##
952
Cary Clarkce101242017-09-01 15:51:02 -0400953#Topic Supersampling
954##
955
Cary Clarka560c472017-11-27 10:44:06 -0500956#Topic Surface_Characterization
957#Class SkSurfaceCharacterization
Cary Clark8032b982017-07-28 11:04:54 -0400958##
Cary Clarka560c472017-11-27 10:44:06 -0500959##
960
961#Topic Surface_Properties
Cary Clark8032b982017-07-28 11:04:54 -0400962 #Class SkSurfaceProps
Cary Clark2a8c48b2018-02-15 17:31:24 -0500963 #Subtopic Legacy_Font_Host
Cary Clark8032b982017-07-28 11:04:54 -0400964 #Enum InitType
965 #Const kLegacyFontHost_InitType 0
966 ##
967 ##
Cary Clarkbad5ad72017-08-03 17:14:08 -0400968 #Topic ##
Cary Clark8032b982017-07-28 11:04:54 -0400969 ##
970##
Cary Clark8032b982017-07-28 11:04:54 -0400971
972#Topic SVG
973#Subtopic Canvas
974##
975#Subtopic Arc
976##
Cary Clark09d80c02018-10-31 12:14:03 -0400977#Subtopic Sweep_Flag
978#Substitute SVG sweep-flag
979##
Cary Clark8032b982017-07-28 11:04:54 -0400980##
981
982#Topic Text
983#Topic ##
984
Cary Clarka560c472017-11-27 10:44:06 -0500985#Topic Texture
986#Class GrBackendTexture
Cary Clarkba75aee2018-04-05 08:18:41 -0400987 #Method bool isValid() const
988 ##
Cary Clarka560c472017-11-27 10:44:06 -0500989##
990##
991
Robert Phillipsb6df1c12018-10-05 10:31:34 -0400992#Topic YUV_Planes
993#Class SkYUVAIndex
994##
995##
996
Robert Phillips8caf85f2018-04-05 09:30:38 -0400997#Topic RenderTarget
998#Class GrBackendRenderTarget
999 #Method bool isValid() const
1000 ##
1001##
1002##
1003
Cary Clark681287e2018-03-16 11:34:15 -04001004#Topic Transfer_Mode
1005##
1006
Cary Clark8032b982017-07-28 11:04:54 -04001007#Topic Typeface
Cary Clarkd2ca79c2018-08-10 13:09:13 -04001008#Subtopic ID
1009#Typedef uint32_t SkFontID
1010##
1011##
Cary Clark8032b982017-07-28 11:04:54 -04001012#Class SkTypeface
Cary Clarkd2ca79c2018-08-10 13:09:13 -04001013 #Method SkFontID uniqueID() const
1014 ##
Cary Clark8032b982017-07-28 11:04:54 -04001015#Class ##
1016#Topic ##
1017
Cary Clark682c58d2018-05-16 07:07:07 -04001018# to be defined in types
Cary Clarka560c472017-11-27 10:44:06 -05001019 #Typedef intptr_t GrBackendObject
1020 #Typedef ##
1021
Cary Clark5538c132018-06-14 12:28:14 -04001022 #EnumClass GrMipMapped
1023 #Const kNo 0
1024 ##
1025 #Const kYes 1
1026 ##
1027 #EnumClass ##
1028
Cary Clarka560c472017-11-27 10:44:06 -05001029 #Enum GrSurfaceOrigin
Cary Clark682c58d2018-05-16 07:07:07 -04001030 #Const kBottomLeft_GrSurfaceOrigin 0
Cary Clarka560c472017-11-27 10:44:06 -05001031 ##
1032 #Const kTopLeft_GrSurfaceOrigin 1
1033 ##
1034 #Enum ##
1035
Cary Clarka560c472017-11-27 10:44:06 -05001036 #EnumClass SkBudgeted
1037 #Const kNo 0
1038 ##
1039 #Const kYes 1
1040 ##
1041 #EnumClass ##
Cary Clarka560c472017-11-27 10:44:06 -05001042
1043 #EnumClass GrSemaphoresSubmitted
1044 #Const kNo 0
1045 ##
1046 #Const kYes 1
1047 ##
1048 #EnumClass ##
Cary Clark682c58d2018-05-16 07:07:07 -04001049# end of defined in types
Cary Clarka560c472017-11-27 10:44:06 -05001050
Cary Clarkce101242017-09-01 15:51:02 -04001051#Topic Unpremultiply
Cary Clark137b8742018-05-30 09:21:49 -04001052#Alias Unpremultiplied ##
Cary Clarkce101242017-09-01 15:51:02 -04001053##
1054
Cary Clark8032b982017-07-28 11:04:54 -04001055#Topic Vertices
Cary Clark682c58d2018-05-16 07:07:07 -04001056#Class SkVertices
Ruiqi Maoc97a3392018-08-15 10:44:19 -04001057#Class Bone
1058##
Cary Clark682c58d2018-05-16 07:07:07 -04001059##
Cary Clark8032b982017-07-28 11:04:54 -04001060#Subtopic Colors
1061##
1062#Subtopic Texs
1063##
1064#Topic ##
1065
Cary Clark224c7002018-06-27 11:00:21 -04001066#Topic Xfermode_Image_Filter
1067#Class SkXfermodeImageFilter
1068##
1069##