summaryrefslogtreecommitdiff
path: root/core/fpdfapi
diff options
context:
space:
mode:
Diffstat (limited to 'core/fpdfapi')
-rw-r--r--core/fpdfapi/page/cpdf_textobject.cpp34
-rw-r--r--core/fpdfapi/page/cpdf_textobject.h14
-rw-r--r--core/fpdfapi/render/cpdf_charposlist.cpp18
-rw-r--r--core/fpdfapi/render/cpdf_renderstatus.cpp15
4 files changed, 37 insertions, 44 deletions
diff --git a/core/fpdfapi/page/cpdf_textobject.cpp b/core/fpdfapi/page/cpdf_textobject.cpp
index 74ea6ebc7d..2ca996b2d4 100644
--- a/core/fpdfapi/page/cpdf_textobject.cpp
+++ b/core/fpdfapi/page/cpdf_textobject.cpp
@@ -13,10 +13,6 @@
#include "third_party/base/ptr_util.h"
#include "third_party/base/stl_util.h"
-CPDF_TextObjectItem::CPDF_TextObjectItem() : m_CharCode(0) {}
-
-CPDF_TextObjectItem::~CPDF_TextObjectItem() {}
-
CPDF_TextObject::CPDF_TextObject() {}
CPDF_TextObject::~CPDF_TextObject() {
@@ -28,26 +24,26 @@ int CPDF_TextObject::CountItems() const {
void CPDF_TextObject::GetItemInfo(int index, CPDF_TextObjectItem* pInfo) const {
pInfo->m_CharCode = m_CharCodes[index];
- pInfo->m_Origin = CFX_PointF(index ? m_CharPos[index - 1] : 0, 0);
+ pInfo->m_OriginX = index ? m_CharPos[index - 1] : 0;
+ pInfo->m_OriginY = 0;
if (pInfo->m_CharCode == CPDF_Font::kInvalidCharCode)
return;
CPDF_Font* pFont = m_TextState.GetFont();
- if (!pFont->IsCIDFont())
+ if (!pFont->IsCIDFont()) {
return;
- if (!pFont->AsCIDFont()->IsVertWriting())
+ }
+ if (!pFont->AsCIDFont()->IsVertWriting()) {
return;
-
+ }
uint16_t CID = pFont->AsCIDFont()->CIDFromCharCode(pInfo->m_CharCode);
- pInfo->m_Origin = CFX_PointF(0, pInfo->m_Origin.x);
-
- short vx;
- short vy;
+ pInfo->m_OriginY = pInfo->m_OriginX;
+ pInfo->m_OriginX = 0;
+ short vx, vy;
pFont->AsCIDFont()->GetVertOrigin(CID, vx, vy);
-
FX_FLOAT fontsize = m_TextState.GetFontSize();
- pInfo->m_Origin.x -= fontsize * vx / 1000;
- pInfo->m_Origin.y -= fontsize * vy / 1000;
+ pInfo->m_OriginX -= fontsize * vx / 1000;
+ pInfo->m_OriginY -= fontsize * vy / 1000;
}
int CPDF_TextObject::CountChars() const {
@@ -181,12 +177,12 @@ FX_FLOAT CPDF_TextObject::GetCharWidth(uint32_t charcode) const {
return pCIDFont->GetVertWidth(CID) * fontsize;
}
-CFX_FloatRect CPDF_TextObject::GetRect() const {
- return CFX_FloatRect(m_Left, m_Bottom, m_Right, m_Top);
+FX_FLOAT CPDF_TextObject::GetPosX() const {
+ return m_Pos.x;
}
-CFX_PointF CPDF_TextObject::GetPos() const {
- return CFX_PointF(m_Pos.x, m_Pos.y);
+FX_FLOAT CPDF_TextObject::GetPosY() const {
+ return m_Pos.y;
}
CPDF_Font* CPDF_TextObject::GetFont() const {
diff --git a/core/fpdfapi/page/cpdf_textobject.h b/core/fpdfapi/page/cpdf_textobject.h
index 9e763a164e..bef1b1ebc4 100644
--- a/core/fpdfapi/page/cpdf_textobject.h
+++ b/core/fpdfapi/page/cpdf_textobject.h
@@ -14,13 +14,10 @@
#include "core/fxcrt/fx_string.h"
#include "core/fxcrt/fx_system.h"
-class CPDF_TextObjectItem {
- public:
- CPDF_TextObjectItem();
- ~CPDF_TextObjectItem();
-
+struct CPDF_TextObjectItem {
uint32_t m_CharCode;
- CFX_PointF m_Origin;
+ FX_FLOAT m_OriginX;
+ FX_FLOAT m_OriginY;
};
class CPDF_TextObject : public CPDF_PageObject {
@@ -42,9 +39,8 @@ class CPDF_TextObject : public CPDF_PageObject {
void GetCharInfo(int index, uint32_t* charcode, FX_FLOAT* kerning) const;
void GetCharInfo(int index, CPDF_TextObjectItem* pInfo) const;
FX_FLOAT GetCharWidth(uint32_t charcode) const;
-
- CFX_FloatRect GetRect() const;
- CFX_PointF GetPos() const;
+ FX_FLOAT GetPosX() const;
+ FX_FLOAT GetPosY() const;
CFX_Matrix GetTextMatrix() const;
CPDF_Font* GetFont() const;
FX_FLOAT GetFontSize() const;
diff --git a/core/fpdfapi/render/cpdf_charposlist.cpp b/core/fpdfapi/render/cpdf_charposlist.cpp
index d7f566d5e7..64176fb054 100644
--- a/core/fpdfapi/render/cpdf_charposlist.cpp
+++ b/core/fpdfapi/render/cpdf_charposlist.cpp
@@ -54,20 +54,20 @@ void CPDF_CharPosList::Load(const std::vector<uint32_t>& charCodes,
} else {
charpos.m_FontCharWidth = 0;
}
- charpos.m_Origin = CFX_PointF(iChar ? charPos[iChar - 1] : 0, 0);
+ charpos.m_OriginX = iChar ? charPos[iChar - 1] : 0;
+ charpos.m_OriginY = 0;
charpos.m_bGlyphAdjust = false;
if (!pCIDFont) {
continue;
}
uint16_t CID = pCIDFont->CIDFromCharCode(CharCode);
if (bVertWriting) {
- charpos.m_Origin = CFX_PointF(0, charpos.m_Origin.x);
-
- short vx;
- short vy;
+ charpos.m_OriginY = charpos.m_OriginX;
+ charpos.m_OriginX = 0;
+ short vx, vy;
pCIDFont->GetVertOrigin(CID, vx, vy);
- charpos.m_Origin.x -= FontSize * vx / 1000;
- charpos.m_Origin.y -= FontSize * vy / 1000;
+ charpos.m_OriginX -= FontSize * vx / 1000;
+ charpos.m_OriginY -= FontSize * vy / 1000;
}
const uint8_t* pTransform = pCIDFont->GetCIDTransform(CID);
if (pTransform && !bVert) {
@@ -75,9 +75,9 @@ void CPDF_CharPosList::Load(const std::vector<uint32_t>& charCodes,
charpos.m_AdjustMatrix[2] = pCIDFont->CIDTransformToFloat(pTransform[2]);
charpos.m_AdjustMatrix[1] = pCIDFont->CIDTransformToFloat(pTransform[1]);
charpos.m_AdjustMatrix[3] = pCIDFont->CIDTransformToFloat(pTransform[3]);
- charpos.m_Origin.x +=
+ charpos.m_OriginX +=
pCIDFont->CIDTransformToFloat(pTransform[4]) * FontSize;
- charpos.m_Origin.y +=
+ charpos.m_OriginY +=
pCIDFont->CIDTransformToFloat(pTransform[5]) * FontSize;
charpos.m_bGlyphAdjust = true;
}
diff --git a/core/fpdfapi/render/cpdf_renderstatus.cpp b/core/fpdfapi/render/cpdf_renderstatus.cpp
index 197a244e0b..60b7a49858 100644
--- a/core/fpdfapi/render/cpdf_renderstatus.cpp
+++ b/core/fpdfapi/render/cpdf_renderstatus.cpp
@@ -1828,8 +1828,8 @@ bool CPDF_RenderStatus::ProcessType3Text(CPDF_TextObject* textobj,
continue;
m_pDevice->SetBitMask(&glyph.m_pGlyph->m_Bitmap,
- glyph.m_Origin.x + glyph.m_pGlyph->m_Left,
- glyph.m_Origin.y - glyph.m_pGlyph->m_Top,
+ glyph.m_OriginX + glyph.m_pGlyph->m_Left,
+ glyph.m_OriginY - glyph.m_pGlyph->m_Top,
fill_argb);
}
glyphs.clear();
@@ -1894,7 +1894,8 @@ bool CPDF_RenderStatus::ProcessType3Text(CPDF_TextObject* textobj,
origin_y - pBitmap->m_Top, fill_argb);
} else {
glyphs[iChar].m_pGlyph = pBitmap;
- glyphs[iChar].m_Origin = CFX_Point(origin_x, origin_y);
+ glyphs[iChar].m_OriginX = origin_x;
+ glyphs[iChar].m_OriginY = origin_y;
}
} else {
CFX_Matrix image_matrix = pType3Char->m_ImageMatrix;
@@ -1924,14 +1925,14 @@ bool CPDF_RenderStatus::ProcessType3Text(CPDF_TextObject* textobj,
if (!glyph.m_pGlyph)
continue;
- pdfium::base::CheckedNumeric<int> left = glyph.m_Origin.x;
+ pdfium::base::CheckedNumeric<int> left = glyph.m_OriginX;
left += glyph.m_pGlyph->m_Left;
left -= rect.left;
left *= sa;
if (!left.IsValid())
continue;
- pdfium::base::CheckedNumeric<int> top = glyph.m_Origin.y;
+ pdfium::base::CheckedNumeric<int> top = glyph.m_OriginY;
top -= glyph.m_pGlyph->m_Top;
top -= rect.top;
top *= sd;
@@ -1995,8 +1996,8 @@ void CPDF_RenderStatus::DrawTextPathWithPattern(const CPDF_TextObject* textobj,
charpos.m_AdjustMatrix[2], charpos.m_AdjustMatrix[3],
0, 0);
}
- matrix.Concat(CFX_Matrix(font_size, 0, 0, font_size, charpos.m_Origin.x,
- charpos.m_Origin.y));
+ matrix.Concat(CFX_Matrix(font_size, 0, 0, font_size, charpos.m_OriginX,
+ charpos.m_OriginY));
path.m_Path.Append(pPath, &matrix);
path.m_Matrix = *pTextMatrix;
path.m_bStroke = bStroke;