OLD | NEW |
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 "core/fxcrt/include/fx_system.h" | 7 #include "core/fxcrt/include/fx_system.h" |
8 | 8 |
9 #if _FX_OS_ == _FX_WIN32_DESKTOP_ || _FX_OS_ == _FX_WIN64_DESKTOP_ | 9 #if _FX_OS_ == _FX_WIN32_DESKTOP_ || _FX_OS_ == _FX_WIN64_DESKTOP_ |
10 | 10 |
11 #include <windows.h> | 11 #include <windows.h> |
12 | 12 |
13 #include <algorithm> | 13 #include <algorithm> |
14 | 14 |
15 #include "core/fxge/dib/dib_int.h" | 15 #include "core/fxge/dib/dib_int.h" |
16 #include "core/fxge/ge/fx_text_int.h" | 16 #include "core/fxge/ge/fx_text_int.h" |
| 17 #include "core/fxge/include/cfx_fontcache.h" |
17 #include "core/fxge/include/cfx_renderdevice.h" | 18 #include "core/fxge/include/cfx_renderdevice.h" |
18 #include "core/fxge/include/cfx_windowsdevice.h" | 19 #include "core/fxge/include/cfx_windowsdevice.h" |
19 #include "core/fxge/include/fx_freetype.h" | 20 #include "core/fxge/include/fx_freetype.h" |
20 #include "core/fxge/win32/win32_int.h" | 21 #include "core/fxge/win32/win32_int.h" |
21 | 22 |
22 #if defined(PDFIUM_PRINT_TEXT_WITH_GDI) | 23 #if defined(PDFIUM_PRINT_TEXT_WITH_GDI) |
23 namespace { | 24 namespace { |
24 | 25 |
25 class ScopedState { | 26 class ScopedState { |
26 public: | 27 public: |
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
191 return FALSE; | 192 return FALSE; |
192 | 193 |
193 return StretchDIBits(pTransformed.get(), color, full_rect.left, full_rect.top, | 194 return StretchDIBits(pTransformed.get(), color, full_rect.left, full_rect.top, |
194 full_rect.Width(), full_rect.Height(), nullptr, 0, | 195 full_rect.Width(), full_rect.Height(), nullptr, 0, |
195 blend_type); | 196 blend_type); |
196 } | 197 } |
197 | 198 |
198 FX_BOOL CGdiPrinterDriver::DrawDeviceText(int nChars, | 199 FX_BOOL CGdiPrinterDriver::DrawDeviceText(int nChars, |
199 const FXTEXT_CHARPOS* pCharPos, | 200 const FXTEXT_CHARPOS* pCharPos, |
200 CFX_Font* pFont, | 201 CFX_Font* pFont, |
| 202 CFX_FontCache* pCache, |
201 const CFX_Matrix* pObject2Device, | 203 const CFX_Matrix* pObject2Device, |
202 FX_FLOAT font_size, | 204 FX_FLOAT font_size, |
203 uint32_t color) { | 205 uint32_t color) { |
204 #if defined(PDFIUM_PRINT_TEXT_WITH_GDI) | 206 #if defined(PDFIUM_PRINT_TEXT_WITH_GDI) |
205 if (!g_pdfium_print_text_with_gdi) | 207 if (!g_pdfium_print_text_with_gdi) |
206 return FALSE; | 208 return FALSE; |
207 | 209 |
208 if (nChars < 1 || !pFont || !pFont->IsEmbedded() || !pFont->IsTTFont()) | 210 if (nChars < 1 || !pFont || !pFont->IsEmbedded() || !pFont->IsTTFont()) |
209 return FALSE; | 211 return FALSE; |
210 | 212 |
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
322 // Try to get the font and draw again. | 324 // Try to get the font and draw again. |
323 g_pdfium_typeface_accessible_func(&lf, wsText.c_str(), nChars); | 325 g_pdfium_typeface_accessible_func(&lf, wsText.c_str(), nChars); |
324 return ExtTextOutW(m_hDC, 0, 0, ETO_GLYPH_INDEX, nullptr, wsText.c_str(), | 326 return ExtTextOutW(m_hDC, 0, 0, ETO_GLYPH_INDEX, nullptr, wsText.c_str(), |
325 nChars, nChars > 1 ? &spacing[1] : nullptr); | 327 nChars, nChars > 1 ? &spacing[1] : nullptr); |
326 #else | 328 #else |
327 return FALSE; | 329 return FALSE; |
328 #endif | 330 #endif |
329 } | 331 } |
330 | 332 |
331 #endif // _FX_OS_ == _FX_WIN32_DESKTOP_ || _FX_OS_ == _FX_WIN64_DESKTOP_ | 333 #endif // _FX_OS_ == _FX_WIN32_DESKTOP_ || _FX_OS_ == _FX_WIN64_DESKTOP_ |
OLD | NEW |