Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(848)

Side by Side Diff: core/fxge/ge/fx_ge_text.cpp

Issue 1982263004: Don't use LCD antialiasing if Fontconfig doesn't support hinting (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 PDFium Authors. All rights reserved. 1 // Copyright 2014 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 6
7 #include <limits> 7 #include <limits>
8 8
9 #include "core/fxcodec/include/fx_codec.h" 9 #include "core/fxcodec/include/fx_codec.h"
10 #include "core/fxge/ge/fx_text_int.h" 10 #include "core/fxge/ge/fx_text_int.h"
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after
250 FX_BOOL bNormal = FALSE; 250 FX_BOOL bNormal = FALSE;
251 if ((text_flags & FXTEXT_NOSMOOTH) == 0) { 251 if ((text_flags & FXTEXT_NOSMOOTH) == 0) {
252 if (m_DeviceClass == FXDC_DISPLAY && m_bpp > 1) { 252 if (m_DeviceClass == FXDC_DISPLAY && m_bpp > 1) {
253 FX_BOOL bClearType; 253 FX_BOOL bClearType;
254 if (!pFont->GetFace() && 254 if (!pFont->GetFace() &&
255 !(pFont->GetSubstFont()->m_SubstFlags & FXFONT_SUBST_CLEARTYPE)) { 255 !(pFont->GetSubstFont()->m_SubstFlags & FXFONT_SUBST_CLEARTYPE)) {
256 bClearType = FALSE; 256 bClearType = FALSE;
257 } else { 257 } else {
258 bClearType = text_flags & FXTEXT_CLEARTYPE; 258 bClearType = text_flags & FXTEXT_CLEARTYPE;
259 } 259 }
260 if ((m_RenderCaps & (FXRC_ALPHA_OUTPUT | FXRC_CMYK_OUTPUT))) { 260 if (!CFX_GEModule::Get()->GetFontMgr()->FTLibrarySupportsHinting()) {
261 // Some Freetype implementations (like the one packaged with Fedora) do
262 // not support hinting due to patents 6219025, 6239783, 6307566,
263 // 6225973, 6243070, 6393145, 6421054, 6282327, and 6624828; the latest
264 // one expires 10/7/19. This makes LCD antialiasing very ugly, so we
265 // instead fall back on NORMAL antialiasing.
266 anti_alias = FXFT_RENDER_MODE_NORMAL;
267 } else if ((m_RenderCaps & (FXRC_ALPHA_OUTPUT | FXRC_CMYK_OUTPUT))) {
261 anti_alias = FXFT_RENDER_MODE_LCD; 268 anti_alias = FXFT_RENDER_MODE_LCD;
262 bNormal = TRUE; 269 bNormal = TRUE;
263 } else if (m_bpp < 16) { 270 } else if (m_bpp < 16) {
264 anti_alias = FXFT_RENDER_MODE_NORMAL; 271 anti_alias = FXFT_RENDER_MODE_NORMAL;
265 } else { 272 } else {
266 if (bClearType == FALSE) { 273 if (bClearType == FALSE) {
267 anti_alias = FXFT_RENDER_MODE_LCD; 274 anti_alias = FXFT_RENDER_MODE_LCD;
268 bNormal = TRUE; 275 bNormal = TRUE;
269 } else { 276 } else {
270 anti_alias = FXFT_RENDER_MODE_LCD; 277 anti_alias = FXFT_RENDER_MODE_LCD;
(...skipping 1636 matching lines...) Expand 10 before | Expand all | Expand 10 after
1907 void _CFX_UniqueKeyGen::Generate(int count, ...) { 1914 void _CFX_UniqueKeyGen::Generate(int count, ...) {
1908 va_list argList; 1915 va_list argList;
1909 va_start(argList, count); 1916 va_start(argList, count);
1910 for (int i = 0; i < count; i++) { 1917 for (int i = 0; i < count; i++) {
1911 int p = va_arg(argList, int); 1918 int p = va_arg(argList, int);
1912 ((uint32_t*)m_Key)[i] = p; 1919 ((uint32_t*)m_Key)[i] = p;
1913 } 1920 }
1914 va_end(argList); 1921 va_end(argList);
1915 m_KeyLen = count * sizeof(uint32_t); 1922 m_KeyLen = count * sizeof(uint32_t);
1916 } 1923 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698