27#include <fontconfig/fontconfig.h>
35 for (
int y = 0;
y <
test.height(); ++
y) {
36 for (
int x = 0;
x <
test.width(); ++
x) {
39 if (refColor != testColor) {
47FcConfig* build_fontconfig_with_fontfile(
const char* fontFilename) {
48 FcConfig* config = FcConfigCreate();
51 FcConfigSetSysRoot(config,
reinterpret_cast<const FcChar8*
>(
GetResourcePath(
"").c_str()));
53 SkString fontFilePath(
reinterpret_cast<const char*
>(FcConfigGetSysRoot(config)));
54 fontFilePath += fontFilename;
55 FcConfigAppFontAddFile(config,
reinterpret_cast<const FcChar8*
>(fontFilePath.c_str()));
57 FcConfigBuildFonts(config);
64 FcConfig* config = build_fontconfig_with_fontfile(
"/fonts/Distortable.ttf");
69 ERRORF(
reporter,
"Could not find typeface. FcVersion: %d", FcGetVersion());
86 constexpr float kTextSize = 20;
88 std::unique_ptr<SkStreamAsset> distortableStream(
90 if (!distortableStream) {
97 for (
int i = 0; i < 10; ++i) {
101 coordinates[] = {{tag, styleValue}};
103 position = {coordinates, std::size(coordinates)};
112 typeface->makeClone(
SkFontArguments().setVariationDesignPosition(position)), kTextSize);
115 constexpr char text[] =
"abc";
static bool bitmap_compare(const SkBitmap &ref, const SkBitmap &test)
std::unique_ptr< SkStreamAsset > GetResourceAsStream(const char *resource, bool useFileStream)
SkString GetResourcePath(const char *resource)
constexpr SkColor SK_ColorGRAY
constexpr SkColor SK_ColorWHITE
SK_API sk_sp< SkFontMgr > SkFontMgr_New_FontConfig(FcConfig *fc)
#define SkDoubleToScalar(x)
static constexpr SkFourByteTag SkSetFourByteTag(char a, char b, char c, char d)
#define DEF_TEST(name, reporter)
#define REPORTER_ASSERT(r, cond,...)
SkColor getColor(int x, int y) const
void allocN32Pixels(int width, int height, bool isOpaque=false)
void drawColor(SkColor color, SkBlendMode mode=SkBlendMode::kSrcOver)
void drawString(const char str[], SkScalar x, SkScalar y, const SkFont &font, const SkPaint &paint)
sk_sp< SkTypeface > makeFromStream(std::unique_ptr< SkStreamAsset >, int ttcIndex=0) const
sk_sp< SkTypeface > legacyMakeTypeface(const char familyName[], SkFontStyle style) const
void setEdging(Edging edging)
@ kSubpixelAntiAlias
glyph positioned in pixel using transparency
sk_sp< SkFontMgr > fontMgr
static constexpr SkPoint Make(float x, float y)