Index: core/src/fpdfapi/fpdf_render/fpdf_render_text.cpp |
diff --git a/core/src/fpdfapi/fpdf_render/fpdf_render_text.cpp b/core/src/fpdfapi/fpdf_render/fpdf_render_text.cpp |
index 8cfa8dc4fbc2f83d92391a93de59917f9b4d1f98..47876a2280223f8270b6615db95621d50a5876be 100644 |
--- a/core/src/fpdfapi/fpdf_render/fpdf_render_text.cpp |
+++ b/core/src/fpdfapi/fpdf_render/fpdf_render_text.cpp |
@@ -18,7 +18,7 @@ CPDF_Type3Cache::~CPDF_Type3Cache() { |
m_SizeMap.clear(); |
} |
CFX_GlyphBitmap* CPDF_Type3Cache::LoadGlyph(FX_DWORD charcode, |
- const CFX_AffineMatrix* pMatrix, |
+ const CFX_Matrix* pMatrix, |
FX_FLOAT retinaScaleX, |
FX_FLOAT retinaScaleY) { |
_CPDF_UniqueKeyGen keygen; |
@@ -126,7 +126,7 @@ static int _DetectFirstLastScan(const CFX_DIBitmap* pBitmap, FX_BOOL bFirst) { |
} |
CFX_GlyphBitmap* CPDF_Type3Cache::RenderGlyph(CPDF_Type3Glyphs* pSize, |
FX_DWORD charcode, |
- const CFX_AffineMatrix* pMatrix, |
+ const CFX_Matrix* pMatrix, |
FX_FLOAT retinaScaleX, |
FX_FLOAT retinaScaleY) { |
const CPDF_Type3Char* pChar = m_pFont->LoadChar(charcode); |
@@ -134,7 +134,7 @@ CFX_GlyphBitmap* CPDF_Type3Cache::RenderGlyph(CPDF_Type3Glyphs* pSize, |
return nullptr; |
CFX_DIBitmap* pBitmap = pChar->m_pBitmap; |
- CFX_AffineMatrix image_matrix, text_matrix; |
+ CFX_Matrix image_matrix, text_matrix; |
image_matrix = pChar->m_ImageMatrix; |
text_matrix.Set(pMatrix->a, pMatrix->b, pMatrix->c, pMatrix->d, 0, 0); |
image_matrix.Concat(text_matrix); |
@@ -194,7 +194,7 @@ void _CPDF_UniqueKeyGen::Generate(int count, ...) { |
m_KeyLen = count * sizeof(FX_DWORD); |
} |
FX_BOOL CPDF_RenderStatus::ProcessText(const CPDF_TextObject* textobj, |
- const CFX_AffineMatrix* pObj2Device, |
+ const CFX_Matrix* pObj2Device, |
CFX_PathData* pClippingPath) { |
if (textobj->m_nChars == 0) { |
return TRUE; |
@@ -257,7 +257,7 @@ FX_BOOL CPDF_RenderStatus::ProcessText(const CPDF_TextObject* textobj, |
fill_argb = GetFillArgb(textobj); |
} |
} |
- CFX_AffineMatrix text_matrix; |
+ CFX_Matrix text_matrix; |
textobj->GetTextMatrix(&text_matrix); |
if (IsAvailableMatrix(text_matrix) == FALSE) { |
return TRUE; |
@@ -269,12 +269,12 @@ FX_BOOL CPDF_RenderStatus::ProcessText(const CPDF_TextObject* textobj, |
return TRUE; |
} |
if (bClip || bStroke) { |
- const CFX_AffineMatrix* pDeviceMatrix = pObj2Device; |
- CFX_AffineMatrix device_matrix; |
+ const CFX_Matrix* pDeviceMatrix = pObj2Device; |
+ CFX_Matrix device_matrix; |
if (bStroke) { |
const FX_FLOAT* pCTM = textobj->m_TextState.GetObject()->m_CTM; |
if (pCTM[0] != 1.0f || pCTM[3] != 1.0f) { |
- CFX_AffineMatrix ctm(pCTM[0], pCTM[1], pCTM[2], pCTM[3], 0, 0); |
+ CFX_Matrix ctm(pCTM[0], pCTM[1], pCTM[2], pCTM[3], 0, 0); |
text_matrix.ConcatInverse(ctm); |
device_matrix.Copy(ctm); |
device_matrix.Concat(*pObj2Device); |
@@ -354,9 +354,8 @@ class CPDF_RefType3Cache { |
FX_DWORD m_dwCount; |
CPDF_Type3Font* m_pType3Font; |
}; |
-FX_BOOL CPDF_RenderStatus::ProcessType3Text( |
- const CPDF_TextObject* textobj, |
- const CFX_AffineMatrix* pObj2Device) { |
+FX_BOOL CPDF_RenderStatus::ProcessType3Text(const CPDF_TextObject* textobj, |
+ const CFX_Matrix* pObj2Device) { |
CPDF_Type3Font* pType3Font = textobj->m_TextState.GetFont()->GetType3Font(); |
for (int j = 0; j < m_Type3FontCache.GetSize(); j++) { |
if (m_Type3FontCache.GetAt(j) == pType3Font) |
@@ -365,9 +364,9 @@ FX_BOOL CPDF_RenderStatus::ProcessType3Text( |
CFX_Matrix dCTM = m_pDevice->GetCTM(); |
FX_FLOAT sa = FXSYS_fabs(dCTM.a); |
FX_FLOAT sd = FXSYS_fabs(dCTM.d); |
- CFX_AffineMatrix text_matrix; |
+ CFX_Matrix text_matrix; |
textobj->GetTextMatrix(&text_matrix); |
- CFX_AffineMatrix char_matrix = pType3Font->GetFontMatrix(); |
+ CFX_Matrix char_matrix = pType3Font->GetFontMatrix(); |
FX_FLOAT font_size = textobj->m_TextState.GetFontSize(); |
char_matrix.Scale(font_size, font_size); |
FX_ARGB fill_argb = GetFillArgb(textobj, TRUE); |
@@ -393,7 +392,7 @@ FX_BOOL CPDF_RenderStatus::ProcessType3Text( |
if (pType3Char == NULL) { |
continue; |
} |
- CFX_AffineMatrix matrix = char_matrix; |
+ CFX_Matrix matrix = char_matrix; |
matrix.e += iChar ? textobj->m_pCharPos[iChar - 1] : 0; |
matrix.Concat(text_matrix); |
matrix.Concat(*pObj2Device); |
@@ -474,7 +473,7 @@ FX_BOOL CPDF_RenderStatus::ProcessType3Text( |
origin_y - pBitmap->m_Top, fill_argb); |
} |
} else { |
- CFX_AffineMatrix image_matrix = pType3Char->m_ImageMatrix; |
+ CFX_Matrix image_matrix = pType3Char->m_ImageMatrix; |
image_matrix.Concat(matrix); |
CPDF_ImageRenderer renderer; |
if (renderer.Start(this, pType3Char->m_pBitmap, fill_argb, 255, |
@@ -597,8 +596,8 @@ FX_BOOL CPDF_TextRenderer::DrawTextPath(CFX_RenderDevice* pDevice, |
FX_FLOAT* pCharPos, |
CPDF_Font* pFont, |
FX_FLOAT font_size, |
- const CFX_AffineMatrix* pText2User, |
- const CFX_AffineMatrix* pUser2Device, |
+ const CFX_Matrix* pText2User, |
+ const CFX_Matrix* pUser2Device, |
const CFX_GraphStateData* pGraphState, |
FX_ARGB fill_argb, |
FX_ARGB stroke_argb, |
@@ -628,7 +627,7 @@ void CPDF_TextRenderer::DrawTextString(CFX_RenderDevice* pDevice, |
FX_FLOAT origin_x = (FX_FLOAT)left; |
FX_FLOAT origin_y = |
(FX_FLOAT)top + font_size * (FX_FLOAT)font_bbox.top / 1000.0f; |
- CFX_AffineMatrix matrix(1.0f, 0, 0, -1.0f, 0, 0); |
+ CFX_Matrix matrix(1.0f, 0, 0, -1.0f, 0, 0); |
DrawTextString(pDevice, origin_x, origin_y, pFont, font_size, &matrix, str, |
argb); |
} |
@@ -637,7 +636,7 @@ void CPDF_TextRenderer::DrawTextString(CFX_RenderDevice* pDevice, |
FX_FLOAT origin_y, |
CPDF_Font* pFont, |
FX_FLOAT font_size, |
- const CFX_AffineMatrix* pMatrix, |
+ const CFX_Matrix* pMatrix, |
const CFX_ByteString& str, |
FX_ARGB fill_argb, |
FX_ARGB stroke_argb, |
@@ -667,7 +666,7 @@ void CPDF_TextRenderer::DrawTextString(CFX_RenderDevice* pDevice, |
cur_pos += pFont->GetCharWidthF(pCharCodes[i]) * font_size / 1000; |
} |
} |
- CFX_AffineMatrix matrix; |
+ CFX_Matrix matrix; |
if (pMatrix) { |
matrix = *pMatrix; |
} |
@@ -692,7 +691,7 @@ FX_BOOL CPDF_TextRenderer::DrawNormalText(CFX_RenderDevice* pDevice, |
FX_FLOAT* pCharPos, |
CPDF_Font* pFont, |
FX_FLOAT font_size, |
- const CFX_AffineMatrix* pText2Device, |
+ const CFX_Matrix* pText2Device, |
FX_ARGB fill_argb, |
const CPDF_RenderOptions* pOptions) { |
CFX_FontCache* pCache = |
@@ -731,14 +730,13 @@ FX_BOOL CPDF_TextRenderer::DrawNormalText(CFX_RenderDevice* pDevice, |
&pFont->m_Font, pCache, font_size, |
pText2Device, fill_argb, FXGE_flags); |
} |
-void CPDF_RenderStatus::DrawTextPathWithPattern( |
- const CPDF_TextObject* textobj, |
- const CFX_AffineMatrix* pObj2Device, |
- CPDF_Font* pFont, |
- FX_FLOAT font_size, |
- const CFX_AffineMatrix* pTextMatrix, |
- FX_BOOL bFill, |
- FX_BOOL bStroke) { |
+void CPDF_RenderStatus::DrawTextPathWithPattern(const CPDF_TextObject* textobj, |
+ const CFX_Matrix* pObj2Device, |
+ CPDF_Font* pFont, |
+ FX_FLOAT font_size, |
+ const CFX_Matrix* pTextMatrix, |
+ FX_BOOL bFill, |
+ FX_BOOL bStroke) { |
if (!bStroke) { |
CPDF_PathObject path; |
CPDF_TextObject* pCopy = new CPDF_TextObject; |
@@ -777,7 +775,7 @@ void CPDF_RenderStatus::DrawTextPathWithPattern( |
CPDF_PathObject path; |
path.m_GraphState = textobj->m_GraphState; |
path.m_ColorState = textobj->m_ColorState; |
- CFX_AffineMatrix matrix; |
+ CFX_Matrix matrix; |
if (charpos.m_bGlyphAdjust) |
matrix.Set(charpos.m_AdjustMatrix[0], charpos.m_AdjustMatrix[1], |
charpos.m_AdjustMatrix[2], charpos.m_AdjustMatrix[3], 0, 0); |