vcl/headless/svptext.cxx | 2 +- vcl/inc/textrender.hxx | 2 +- vcl/inc/unx/cairotextrender.hxx | 2 +- vcl/unx/generic/gdi/cairotextrender.cxx | 14 ++++++++++++-- vcl/unx/generic/gdi/font.cxx | 2 +- 5 files changed, 16 insertions(+), 6 deletions(-)
New commits: commit 3ecd8f19a91ed7141304a2080fb11612b5ff30b3 Author: Miklos Vajna <[email protected]> AuthorDate: Thu Jul 26 09:06:21 2018 +0200 Commit: Miklos Vajna <[email protected]> CommitDate: Thu Jul 26 10:22:29 2018 +0200 vcl cairo text renderer: support non-AA text Non-AA lines were already working, but text was always anti-aliased. (Use-case is reference bitmaps in a testsuite, where AA just makes it harder to determine if the expected and actual rendering output match.) Change-Id: I7c5ab4c80675e1a523d67b71f3cd3cbc9c6416c3 Reviewed-on: https://gerrit.libreoffice.org/58035 Reviewed-by: Miklos Vajna <[email protected]> Tested-by: Jenkins diff --git a/vcl/headless/svptext.cxx b/vcl/headless/svptext.cxx index 1e0b578f800b..dbef813cd658 100644 --- a/vcl/headless/svptext.cxx +++ b/vcl/headless/svptext.cxx @@ -108,7 +108,7 @@ std::unique_ptr<SalLayout> SvpSalGraphics::GetTextLayout( ImplLayoutArgs& rArgs, void SvpSalGraphics::DrawTextLayout(const GenericSalLayout& rLayout) { - m_aTextRenderImpl.DrawTextLayout(rLayout); + m_aTextRenderImpl.DrawTextLayout(rLayout, *this); } void SvpSalGraphics::SetTextColor( Color nColor ) diff --git a/vcl/inc/textrender.hxx b/vcl/inc/textrender.hxx index 88de2076aca3..eb86e3b2bcf4 100644 --- a/vcl/inc/textrender.hxx +++ b/vcl/inc/textrender.hxx @@ -63,7 +63,7 @@ public: virtual bool GetGlyphOutline(const GlyphItem&, basegfx::B2DPolyPolygon&) = 0; virtual std::unique_ptr<SalLayout> GetTextLayout( ImplLayoutArgs&, int nFallbackLevel ) = 0; - virtual void DrawTextLayout(const GenericSalLayout&) = 0; + virtual void DrawTextLayout(const GenericSalLayout&, const SalGraphics&) = 0; #if ENABLE_CAIRO_CANVAS virtual SystemFontData GetSysFontData( int nFallbackLevel ) const = 0; #endif // ENABLE_CAIRO_CANVAS diff --git a/vcl/inc/unx/cairotextrender.hxx b/vcl/inc/unx/cairotextrender.hxx index 896a0254b923..65d2bed2918e 100644 --- a/vcl/inc/unx/cairotextrender.hxx +++ b/vcl/inc/unx/cairotextrender.hxx @@ -79,7 +79,7 @@ public: virtual bool GetGlyphOutline(const GlyphItem&, basegfx::B2DPolyPolygon&) override; virtual std::unique_ptr<SalLayout> GetTextLayout( ImplLayoutArgs&, int nFallbackLevel ) override; - virtual void DrawTextLayout(const GenericSalLayout&) override; + virtual void DrawTextLayout(const GenericSalLayout&, const SalGraphics&) override; #if ENABLE_CAIRO_CANVAS virtual SystemFontData GetSysFontData( int nFallbackLevel ) const override; #endif diff --git a/vcl/unx/generic/gdi/cairotextrender.cxx b/vcl/unx/generic/gdi/cairotextrender.cxx index 36d1dc9cf1a0..55316ed9926a 100644 --- a/vcl/unx/generic/gdi/cairotextrender.cxx +++ b/vcl/unx/generic/gdi/cairotextrender.cxx @@ -168,7 +168,7 @@ namespace } } -void CairoTextRender::DrawTextLayout(const GenericSalLayout& rLayout) +void CairoTextRender::DrawTextLayout(const GenericSalLayout& rLayout, const SalGraphics& rGraphics) { const FreetypeFontInstance& rInstance = static_cast<FreetypeFontInstance&>(rLayout.GetFont()); const FreetypeFont& rFont = *rInstance.GetFreetypeFont(); @@ -218,7 +218,17 @@ void CairoTextRender::DrawTextLayout(const GenericSalLayout& rLayout) ImplSVData* pSVData = ImplGetSVData(); if (const cairo_font_options_t* pFontOptions = pSVData->mpDefInst->GetCairoFontOptions()) - cairo_set_font_options(cr, pFontOptions); + { + if (!rGraphics.getAntiAliasB2DDraw()) + { + cairo_font_options_t* pOptions = cairo_font_options_copy(pFontOptions); + cairo_font_options_set_antialias(pOptions, CAIRO_ANTIALIAS_NONE); + cairo_set_font_options(cr, pOptions); + cairo_font_options_destroy(pOptions); + } + else + cairo_set_font_options(cr, pFontOptions); + } double nDX, nDY; getSurfaceOffset(nDX, nDY); diff --git a/vcl/unx/generic/gdi/font.cxx b/vcl/unx/generic/gdi/font.cxx index ae4ef22e21b9..9cdbff3ea69d 100644 --- a/vcl/unx/generic/gdi/font.cxx +++ b/vcl/unx/generic/gdi/font.cxx @@ -55,7 +55,7 @@ X11SalGraphics::GetFontGC() void X11SalGraphics::DrawTextLayout(const GenericSalLayout& rLayout) { - mxTextRenderImpl->DrawTextLayout(rLayout); + mxTextRenderImpl->DrawTextLayout(rLayout, *this); } const FontCharMapRef X11SalGraphics::GetFontCharMap() const _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
