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

Side by Side Diff: core/fpdfapi/fpdf_render/fpdf_render_text.cpp

Issue 1841313004: Rename _CPDF_UniqueKeyGen to CPDF_UniqueKeyGen (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Created 4 years, 8 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
« no previous file with comments | « no previous file | core/fpdfapi/fpdf_render/render_int.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "core/fpdfapi/fpdf_render/render_int.h" 7 #include "core/fpdfapi/fpdf_render/render_int.h"
8 8
9 #include "core/fpdfapi/fpdf_font/cpdf_cidfont.h" 9 #include "core/fpdfapi/fpdf_font/cpdf_cidfont.h"
10 #include "core/fpdfapi/fpdf_font/cpdf_type3char.h" 10 #include "core/fpdfapi/fpdf_font/cpdf_type3char.h"
11 #include "core/fpdfapi/fpdf_font/cpdf_type3font.h" 11 #include "core/fpdfapi/fpdf_font/cpdf_type3font.h"
12 #include "core/fpdfapi/fpdf_font/include/cpdf_font.h" 12 #include "core/fpdfapi/fpdf_font/include/cpdf_font.h"
13 #include "core/fpdfapi/fpdf_page/cpdf_parseoptions.h" 13 #include "core/fpdfapi/fpdf_page/cpdf_parseoptions.h"
14 #include "core/fpdfapi/fpdf_page/include/cpdf_form.h" 14 #include "core/fpdfapi/fpdf_page/include/cpdf_form.h"
15 #include "core/fpdfapi/fpdf_page/include/cpdf_imageobject.h" 15 #include "core/fpdfapi/fpdf_page/include/cpdf_imageobject.h"
16 #include "core/fpdfapi/fpdf_page/include/cpdf_pageobject.h" 16 #include "core/fpdfapi/fpdf_page/include/cpdf_pageobject.h"
17 #include "core/fpdfapi/fpdf_page/include/cpdf_pathobject.h" 17 #include "core/fpdfapi/fpdf_page/include/cpdf_pathobject.h"
18 #include "core/fpdfapi/fpdf_page/include/cpdf_textobject.h" 18 #include "core/fpdfapi/fpdf_page/include/cpdf_textobject.h"
19 #include "core/fpdfapi/fpdf_page/pageint.h" 19 #include "core/fpdfapi/fpdf_page/pageint.h"
20 #include "core/fpdfapi/fpdf_parser/include/cpdf_dictionary.h" 20 #include "core/fpdfapi/fpdf_parser/include/cpdf_dictionary.h"
21 #include "core/fpdfapi/fpdf_parser/include/cpdf_document.h" 21 #include "core/fpdfapi/fpdf_parser/include/cpdf_document.h"
22 #include "core/fpdfapi/fpdf_render/include/cpdf_renderoptions.h" 22 #include "core/fpdfapi/fpdf_render/include/cpdf_renderoptions.h"
23 #include "core/fpdfapi/fpdf_render/include/cpdf_textrenderer.h" 23 #include "core/fpdfapi/fpdf_render/include/cpdf_textrenderer.h"
24 #include "core/include/fxge/fx_ge.h" 24 #include "core/include/fxge/fx_ge.h"
25 25
26 namespace {
27
28 struct CPDF_UniqueKeyGen {
29 void Generate(int count, ...);
30 FX_CHAR m_Key[128];
31 int m_KeyLen;
32 };
33
34 } // namespace
35
26 CPDF_Type3Cache::~CPDF_Type3Cache() { 36 CPDF_Type3Cache::~CPDF_Type3Cache() {
27 for (const auto& pair : m_SizeMap) { 37 for (const auto& pair : m_SizeMap) {
28 delete pair.second; 38 delete pair.second;
29 } 39 }
30 m_SizeMap.clear(); 40 m_SizeMap.clear();
31 } 41 }
32 CFX_GlyphBitmap* CPDF_Type3Cache::LoadGlyph(uint32_t charcode, 42 CFX_GlyphBitmap* CPDF_Type3Cache::LoadGlyph(uint32_t charcode,
33 const CFX_Matrix* pMatrix, 43 const CFX_Matrix* pMatrix,
34 FX_FLOAT retinaScaleX, 44 FX_FLOAT retinaScaleX,
35 FX_FLOAT retinaScaleY) { 45 FX_FLOAT retinaScaleY) {
36 _CPDF_UniqueKeyGen keygen; 46 CPDF_UniqueKeyGen keygen;
37 keygen.Generate( 47 keygen.Generate(
38 4, FXSYS_round(pMatrix->a * 10000), FXSYS_round(pMatrix->b * 10000), 48 4, FXSYS_round(pMatrix->a * 10000), FXSYS_round(pMatrix->b * 10000),
39 FXSYS_round(pMatrix->c * 10000), FXSYS_round(pMatrix->d * 10000)); 49 FXSYS_round(pMatrix->c * 10000), FXSYS_round(pMatrix->d * 10000));
40 CFX_ByteStringC FaceGlyphsKey(keygen.m_Key, keygen.m_KeyLen); 50 CFX_ByteStringC FaceGlyphsKey(keygen.m_Key, keygen.m_KeyLen);
41 CPDF_Type3Glyphs* pSizeCache; 51 CPDF_Type3Glyphs* pSizeCache;
42 auto it = m_SizeMap.find(FaceGlyphsKey); 52 auto it = m_SizeMap.find(FaceGlyphsKey);
43 if (it == m_SizeMap.end()) { 53 if (it == m_SizeMap.end()) {
44 pSizeCache = new CPDF_Type3Glyphs; 54 pSizeCache = new CPDF_Type3Glyphs;
45 m_SizeMap[FaceGlyphsKey] = pSizeCache; 55 m_SizeMap[FaceGlyphsKey] = pSizeCache;
46 } else { 56 } else {
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
180 if (!pResBitmap) { 190 if (!pResBitmap) {
181 return NULL; 191 return NULL;
182 } 192 }
183 CFX_GlyphBitmap* pGlyph = new CFX_GlyphBitmap; 193 CFX_GlyphBitmap* pGlyph = new CFX_GlyphBitmap;
184 pGlyph->m_Left = left; 194 pGlyph->m_Left = left;
185 pGlyph->m_Top = -top; 195 pGlyph->m_Top = -top;
186 pGlyph->m_Bitmap.TakeOver(pResBitmap); 196 pGlyph->m_Bitmap.TakeOver(pResBitmap);
187 delete pResBitmap; 197 delete pResBitmap;
188 return pGlyph; 198 return pGlyph;
189 } 199 }
190 void _CPDF_UniqueKeyGen::Generate(int count, ...) { 200 void CPDF_UniqueKeyGen::Generate(int count, ...) {
Tom Sepez 2016/03/30 20:08:27 Does this go into the anonymous namespace, too?
dsinclair 2016/03/30 20:25:27 Done.
191 va_list argList; 201 va_list argList;
192 va_start(argList, count); 202 va_start(argList, count);
193 for (int i = 0; i < count; i++) { 203 for (int i = 0; i < count; i++) {
194 int p = va_arg(argList, int); 204 int p = va_arg(argList, int);
195 ((uint32_t*)m_Key)[i] = p; 205 ((uint32_t*)m_Key)[i] = p;
196 } 206 }
197 va_end(argList); 207 va_end(argList);
198 m_KeyLen = count * sizeof(uint32_t); 208 m_KeyLen = count * sizeof(uint32_t);
199 } 209 }
200 FX_BOOL CPDF_RenderStatus::ProcessText(const CPDF_TextObject* textobj, 210 FX_BOOL CPDF_RenderStatus::ProcessText(const CPDF_TextObject* textobj,
(...skipping 566 matching lines...) Expand 10 before | Expand all | Expand 10 after
767 matrix.Concat(font_size, 0, 0, font_size, charpos.m_OriginX, 777 matrix.Concat(font_size, 0, 0, font_size, charpos.m_OriginX,
768 charpos.m_OriginY); 778 charpos.m_OriginY);
769 path.m_Path.New()->Append(pPath, &matrix); 779 path.m_Path.New()->Append(pPath, &matrix);
770 path.m_Matrix = *pTextMatrix; 780 path.m_Matrix = *pTextMatrix;
771 path.m_bStroke = bStroke; 781 path.m_bStroke = bStroke;
772 path.m_FillType = bFill ? FXFILL_WINDING : 0; 782 path.m_FillType = bFill ? FXFILL_WINDING : 0;
773 path.CalcBoundingBox(); 783 path.CalcBoundingBox();
774 ProcessPath(&path, pObj2Device); 784 ProcessPath(&path, pObj2Device);
775 } 785 }
776 } 786 }
OLDNEW
« no previous file with comments | « no previous file | core/fpdfapi/fpdf_render/render_int.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698