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