Home | History | Annotate | Download | only in render
      1 // Copyright 2016 PDFium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
      6 
      7 #ifndef CORE_FPDFAPI_RENDER_CPDF_TEXTRENDERER_H_
      8 #define CORE_FPDFAPI_RENDER_CPDF_TEXTRENDERER_H_
      9 
     10 #include <vector>
     11 
     12 #include "core/fxcrt/fx_coordinates.h"
     13 #include "core/fxcrt/fx_string.h"
     14 #include "core/fxcrt/fx_system.h"
     15 #include "core/fxge/fx_dib.h"
     16 
     17 class CFX_RenderDevice;
     18 class CFX_GraphStateData;
     19 class CFX_PathData;
     20 class CPDF_RenderOptions;
     21 class CPDF_Font;
     22 
     23 class CPDF_TextRenderer {
     24  public:
     25   static void DrawTextString(CFX_RenderDevice* pDevice,
     26                              float origin_x,
     27                              float origin_y,
     28                              CPDF_Font* pFont,
     29                              float font_size,
     30                              const CFX_Matrix* matrix,
     31                              const ByteString& str,
     32                              FX_ARGB fill_argb,
     33                              const CFX_GraphStateData* pGraphState,
     34                              const CPDF_RenderOptions* pOptions);
     35 
     36   static bool DrawTextPath(CFX_RenderDevice* pDevice,
     37                            const std::vector<uint32_t>& charCodes,
     38                            const std::vector<float>& charPos,
     39                            CPDF_Font* pFont,
     40                            float font_size,
     41                            const CFX_Matrix* pText2User,
     42                            const CFX_Matrix* pUser2Device,
     43                            const CFX_GraphStateData* pGraphState,
     44                            FX_ARGB fill_argb,
     45                            FX_ARGB stroke_argb,
     46                            CFX_PathData* pClippingPath,
     47                            int nFlag);
     48 
     49   static bool DrawNormalText(CFX_RenderDevice* pDevice,
     50                              const std::vector<uint32_t>& charCodes,
     51                              const std::vector<float>& charPos,
     52                              CPDF_Font* pFont,
     53                              float font_size,
     54                              const CFX_Matrix* pText2Device,
     55                              FX_ARGB fill_argb,
     56                              const CPDF_RenderOptions* pOptions);
     57 };
     58 
     59 #endif  // CORE_FPDFAPI_RENDER_CPDF_TEXTRENDERER_H_
     60