[Skia] Enable fxge.SkiaStateText for Skia Currently fxge.SkiaStateText fails because `font` doesn't contain any data and CFX_SkiaDeviceDriver::DrawDeviceText() becomes a no-op. This CL makes `font` load data from "Noto Sans CJK JP" and draw a glyph at a larger font size, so that we can make sure the position (0, 0) will be painted. This CL also disables anti-aliasing for text rendering, so that any painted area will be filled with one expected color instead of transitional colors. Bug: pdfium:1500 Change-Id: I4e63e5be0d18bf47cebd1b7b818644b3b1e030c2 Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/109830 Commit-Queue: Nigi <nigi@chromium.org> Reviewed-by: Lei Zhang <thestig@chromium.org>
diff --git a/core/fxge/skia/fx_skia_device_embeddertest.cpp b/core/fxge/skia/fx_skia_device_embeddertest.cpp index 8fba0e4..ca38a1e 100644 --- a/core/fxge/skia/fx_skia_device_embeddertest.cpp +++ b/core/fxge/skia/fx_skia_device_embeddertest.cpp
@@ -10,6 +10,7 @@ #include "core/fpdfapi/page/cpdf_page.h" #include "core/fpdfapi/render/cpdf_pagerendercontext.h" +#include "core/fxcrt/fx_codepage.h" #include "core/fxge/cfx_defaultrenderdevice.h" #include "core/fxge/cfx_fillrenderoptions.h" #include "core/fxge/cfx_font.h" @@ -59,11 +60,14 @@ void CommonTest(CFX_SkiaDeviceDriver* driver, const State& state) { TextCharPos charPos[1]; charPos[0].m_Origin = CFX_PointF(0, 1); - charPos[0].m_GlyphIndex = 1; + charPos[0].m_GlyphIndex = 0; charPos[0].m_FontCharWidth = 4; CFX_Font font; - float fontSize = 1; + font.LoadSubst("Courier", /*bTrueType=*/true, /*flags=*/0, + /*weight=*/400, /*italic_angle=*/0, FX_CodePage::kShiftJIS, + /*bVertical=*/false); + float fontSize = 20; CFX_Path clipPath; CFX_Path clipPath2; clipPath.AppendRect(0, 0, 3, 1); @@ -78,7 +82,10 @@ CFX_Matrix matrix2; matrix2.Translate(1, 0); CFX_GraphStateData graphState; - static constexpr CFX_TextRenderOptions kTextOptions; + // Turn off anti-aliasing so that pixels with transitional colors can be + // avoided. + static constexpr CFX_TextRenderOptions kTextOptions( + CFX_TextRenderOptions::kAliasing); if (state.m_save == State::Save::kYes) driver->SaveState(); if (state.m_clip != State::Clip::kNo) @@ -221,8 +228,7 @@ State::Graphic::kPath, 0xFF112233}); } -// TODO(crbug.com/pdfium/11): Fix this test and enable. -TEST(fxge, DISABLED_SkiaStateText) { +TEST(fxge, SkiaStateText) { if (!CFX_DefaultRenderDevice::SkiaIsDefaultRenderer()) return;