1cb93a386Sopenharmony_ci
2cb93a386Sopenharmony_ci---
3cb93a386Sopenharmony_cititle: "Fonts and GM Tests"
4cb93a386Sopenharmony_cilinkTitle: "Fonts and GM Tests"
5cb93a386Sopenharmony_ci
6cb93a386Sopenharmony_ci---
7cb93a386Sopenharmony_ci
8cb93a386Sopenharmony_ci
9cb93a386Sopenharmony_ciOverview
10cb93a386Sopenharmony_ci--------
11cb93a386Sopenharmony_ci
12cb93a386Sopenharmony_ciEach test in the gm directory draws a reference image. Their primary purpose is
13cb93a386Sopenharmony_cito detect when images change unexpectedly, indicating that a rendering bug has
14cb93a386Sopenharmony_cibeen introduced.
15cb93a386Sopenharmony_ci
16cb93a386Sopenharmony_ciThe gm tests have a secondary purpose: they detect when rendering is different
17cb93a386Sopenharmony_ciacross platforms and configurations.
18cb93a386Sopenharmony_ci
19cb93a386Sopenharmony_ciGM font selection
20cb93a386Sopenharmony_ci-----------------
21cb93a386Sopenharmony_ci
22cb93a386Sopenharmony_ciEach gm specifies the typeface to use when drawing text. For now, to set the
23cb93a386Sopenharmony_ciportable typeface on the paint, call:
24cb93a386Sopenharmony_ci
25cb93a386Sopenharmony_ci~~~~
26cb93a386Sopenharmony_ciToolUtils::set_portable_typeface(SkPaint* , const char* name = nullptr,
27cb93a386Sopenharmony_ciSkFontStyle style = SkFontStyle());
28cb93a386Sopenharmony_ci~~~~
29cb93a386Sopenharmony_ci
30cb93a386Sopenharmony_ciTo create a portable typeface, use:
31cb93a386Sopenharmony_ci
32cb93a386Sopenharmony_ci~~~~
33cb93a386Sopenharmony_ciSkTypeface* typeface = ToolUtils::create_portable_typeface(const char* name,
34cb93a386Sopenharmony_ciSkFontStyle style);
35cb93a386Sopenharmony_ci~~~~
36cb93a386Sopenharmony_ci
37cb93a386Sopenharmony_ciEventually, both `set_portable_typeface()` and `create_portable_typeface()` will be
38cb93a386Sopenharmony_ciremoved. Instead, a test-wide `SkFontMgr` will be selected to choose portable
39cb93a386Sopenharmony_cifonts or resource fonts.
40cb93a386Sopenharmony_ci
41