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 ad5dc58a1c0735b1c8c90b9c28b1862989b06474..26138a9fbf1a9d5281eab33e789f0d775a08ea40 100644 |
--- a/core/src/fpdfapi/fpdf_render/fpdf_render_text.cpp |
+++ b/core/src/fpdfapi/fpdf_render/fpdf_render_text.cpp |
@@ -9,7 +9,7 @@ |
#include "../../../include/fpdfapi/fpdf_pageobj.h" |
#include "../fpdf_page/pageint.h" |
#include "render_int.h" |
-extern FX_BOOL IsAvailableMatrix(const CFX_AffineMatrix& matrix); |
+extern bool IsAvailableMatrix(const CFX_AffineMatrix& matrix); |
CPDF_Type3Cache::~CPDF_Type3Cache() |
{ |
FX_POSITION pos = m_SizeMap.GetStartPosition(); |
@@ -76,28 +76,28 @@ void CPDF_Type3Glyphs::AdjustBlue(FX_FLOAT top, FX_FLOAT bottom, int& top_line, |
top_line = _AdjustBlue(top, m_TopBlueCount, m_TopBlue); |
bottom_line = _AdjustBlue(bottom, m_BottomBlueCount, m_BottomBlue); |
} |
-static FX_BOOL _IsScanLine1bpp(uint8_t* pBuf, int width) |
+static bool _IsScanLine1bpp(uint8_t* pBuf, int width) |
{ |
int size = width / 8; |
for (int i = 0; i < size; i ++) |
if (pBuf[i]) { |
- return TRUE; |
+ return true; |
} |
if (width % 8) |
if (pBuf[width / 8] & (0xff << (8 - width % 8))) { |
- return TRUE; |
+ return true; |
} |
- return FALSE; |
+ return false; |
} |
-static FX_BOOL _IsScanLine8bpp(uint8_t* pBuf, int width) |
+static bool _IsScanLine8bpp(uint8_t* pBuf, int width) |
{ |
for (int i = 0; i < width; i ++) |
if (pBuf[i] > 0x40) { |
- return TRUE; |
+ return true; |
} |
- return FALSE; |
+ return false; |
} |
-static int _DetectFirstLastScan(const CFX_DIBitmap* pBitmap, FX_BOOL bFirst) |
+static int _DetectFirstLastScan(const CFX_DIBitmap* pBitmap, bool bFirst) |
{ |
int height = pBitmap->GetHeight(), pitch = pBitmap->GetPitch(), width = pBitmap->GetWidth(); |
int bpp = pBitmap->GetBPP(); |
@@ -137,12 +137,12 @@ CFX_GlyphBitmap* CPDF_Type3Cache::RenderGlyph(CPDF_Type3Glyphs* pSize, FX_DWORD |
int left, top; |
if (FXSYS_fabs(image_matrix.b) < FXSYS_fabs(image_matrix.a) / 100 && FXSYS_fabs(image_matrix.c) < FXSYS_fabs(image_matrix.d) / 100) { |
int top_line, bottom_line; |
- top_line = _DetectFirstLastScan(pBitmap, TRUE); |
- bottom_line = _DetectFirstLastScan(pBitmap, FALSE); |
+ top_line = _DetectFirstLastScan(pBitmap, true); |
+ bottom_line = _DetectFirstLastScan(pBitmap, false); |
if (top_line == 0 && bottom_line == pBitmap->GetHeight() - 1) { |
FX_FLOAT top_y = image_matrix.d + image_matrix.f; |
FX_FLOAT bottom_y = image_matrix.f; |
- FX_BOOL bFlipped = top_y > bottom_y; |
+ bool bFlipped = top_y > bottom_y; |
if (bFlipped) { |
FX_FLOAT temp = top_y; |
top_y = bottom_y; |
@@ -185,76 +185,76 @@ void _CPDF_UniqueKeyGen::Generate(int count, ...) |
va_end(argList); |
m_KeyLen = count * sizeof(FX_DWORD); |
} |
-FX_BOOL CPDF_RenderStatus::ProcessText(const CPDF_TextObject* textobj, const CFX_AffineMatrix* pObj2Device, CFX_PathData* pClippingPath) |
+bool CPDF_RenderStatus::ProcessText(const CPDF_TextObject* textobj, const CFX_AffineMatrix* pObj2Device, CFX_PathData* pClippingPath) |
{ |
if(textobj->m_nChars == 0) { |
- return TRUE; |
+ return true; |
} |
int text_render_mode = textobj->m_TextState.GetObject()->m_TextMode; |
if (text_render_mode == 3) { |
- return TRUE; |
+ return true; |
} |
CPDF_Font* pFont = textobj->m_TextState.GetFont(); |
if (pFont->GetFontType() == PDFFONT_TYPE3) { |
return ProcessType3Text(textobj, pObj2Device); |
} |
- FX_BOOL bFill = FALSE, bStroke = FALSE, bClip = FALSE; |
+ bool bFill = false, bStroke = false, bClip = false; |
if (pClippingPath) { |
- bClip = TRUE; |
+ bClip = true; |
} else { |
switch (text_render_mode) { |
case 0: |
case 4: |
- bFill = TRUE; |
+ bFill = true; |
break; |
case 1: |
case 5: |
if (pFont->GetFace() == NULL && !(pFont->GetSubstFont()->m_SubstFlags & FXFONT_SUBST_GLYPHPATH)) { |
- bFill = TRUE; |
+ bFill = true; |
} else { |
- bStroke = TRUE; |
+ bStroke = true; |
} |
break; |
case 2: |
case 6: |
if (pFont->GetFace() == NULL && !(pFont->GetSubstFont()->m_SubstFlags & FXFONT_SUBST_GLYPHPATH)) { |
- bFill = TRUE; |
+ bFill = true; |
} else { |
- bFill = bStroke = TRUE; |
+ bFill = bStroke = true; |
} |
break; |
case 3: |
case 7: |
- return TRUE; |
+ return true; |
default: |
- bFill = TRUE; |
+ bFill = true; |
} |
} |
FX_ARGB stroke_argb = 0, fill_argb = 0; |
- FX_BOOL bPattern = FALSE; |
+ bool bPattern = false; |
if (bStroke) { |
if (textobj->m_ColorState.GetStrokeColor()->IsPattern()) { |
- bPattern = TRUE; |
+ bPattern = true; |
} else { |
stroke_argb = GetStrokeArgb(textobj); |
} |
} |
if (bFill) { |
if (textobj->m_ColorState.GetFillColor()->IsPattern()) { |
- bPattern = TRUE; |
+ bPattern = true; |
} else { |
fill_argb = GetFillArgb(textobj); |
} |
} |
CFX_AffineMatrix text_matrix; |
textobj->GetTextMatrix(&text_matrix); |
- if(IsAvailableMatrix(text_matrix) == FALSE) { |
- return TRUE; |
+ if(IsAvailableMatrix(text_matrix) == false) { |
+ return true; |
} |
FX_FLOAT font_size = textobj->m_TextState.GetFontSize(); |
if (bPattern) { |
DrawTextPathWithPattern(textobj, pObj2Device, pFont, font_size, &text_matrix, bFill, bStroke); |
- return TRUE; |
+ return true; |
} |
if (bClip || bStroke) { |
const CFX_AffineMatrix* pDeviceMatrix = pObj2Device; |
@@ -293,7 +293,7 @@ CPDF_Type3Cache* CPDF_RenderStatus::GetCachedType3(CPDF_Type3Font* pFont) |
if (pFont->m_pDocument == NULL) { |
return NULL; |
} |
- pFont->m_pDocument->GetPageData()->GetFont(pFont->GetFontDict(), FALSE); |
+ pFont->m_pDocument->GetPageData()->GetFont(pFont->GetFontDict(), false); |
return pFont->m_pDocument->GetRenderData()->GetCachedType3(pFont); |
} |
static void ReleaseCachedType3(CPDF_Type3Font* pFont) |
@@ -304,10 +304,10 @@ static void ReleaseCachedType3(CPDF_Type3Font* pFont) |
pFont->m_pDocument->GetRenderData()->ReleaseCachedType3(pFont); |
pFont->m_pDocument->GetPageData()->ReleaseFont(pFont->GetFontDict()); |
} |
-FX_BOOL CPDF_Type3Char::LoadBitmap(CPDF_RenderContext* pContext) |
+bool CPDF_Type3Char::LoadBitmap(CPDF_RenderContext* pContext) |
{ |
if (m_pBitmap != NULL || m_pForm == NULL) { |
- return TRUE; |
+ return true; |
} |
if (m_pForm->CountObjects() == 1 && !m_bColored) { |
CPDF_PageObject *pPageObj = m_pForm->GetObjectAt(m_pForm->GetFirstObjectPosition()); |
@@ -321,10 +321,10 @@ FX_BOOL CPDF_Type3Char::LoadBitmap(CPDF_RenderContext* pContext) |
} |
delete m_pForm; |
m_pForm = NULL; |
- return TRUE; |
+ return true; |
} |
} |
- return FALSE; |
+ return false; |
} |
class CPDF_RefType3Cache |
{ |
@@ -343,12 +343,12 @@ public: |
FX_DWORD m_dwCount; |
CPDF_Type3Font* m_pType3Font; |
}; |
-FX_BOOL CPDF_RenderStatus::ProcessType3Text(const CPDF_TextObject* textobj, const CFX_AffineMatrix* pObj2Device) |
+bool CPDF_RenderStatus::ProcessType3Text(const CPDF_TextObject* textobj, const CFX_AffineMatrix* pObj2Device) |
{ |
CPDF_Type3Font* pType3Font = textobj->m_TextState.GetFont()->GetType3Font(); |
for (int j = 0; j < m_Type3FontCache.GetSize(); j++) |
if ((CPDF_Type3Font*)m_Type3FontCache.GetAt(j) == pType3Font) { |
- return TRUE; |
+ return true; |
} |
CFX_Matrix dCTM = m_pDevice->GetCTM(); |
FX_FLOAT sa = FXSYS_fabs(dCTM.a); |
@@ -358,14 +358,14 @@ FX_BOOL CPDF_RenderStatus::ProcessType3Text(const CPDF_TextObject* textobj, cons |
CFX_AffineMatrix 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); |
+ FX_ARGB fill_argb = GetFillArgb(textobj, true); |
int fill_alpha = FXARGB_A(fill_argb); |
int device_class = m_pDevice->GetDeviceClass(); |
FXTEXT_GLYPHPOS* pGlyphAndPos = NULL; |
if (device_class == FXDC_DISPLAY) { |
pGlyphAndPos = FX_Alloc(FXTEXT_GLYPHPOS, textobj->m_nChars); |
} else if (fill_alpha < 255) { |
- return FALSE; |
+ return false; |
} |
CPDF_RefType3Cache refTypeCache(pType3Font); |
FX_DWORD *pChars = textobj->m_pCharCodes; |
@@ -399,7 +399,7 @@ FX_BOOL CPDF_RenderStatus::ProcessType3Text(const CPDF_TextObject* textobj, cons |
FX_Free(pGlyphAndPos); |
pGlyphAndPos = NULL; |
} |
- CPDF_GraphicStates* pStates = CloneObjStates(textobj, FALSE); |
+ CPDF_GraphicStates* pStates = CloneObjStates(textobj, false); |
CPDF_RenderOptions Options = m_Options; |
Options.m_Flags |= RENDER_FORCE_HALFTONE | RENDER_RECT_AA; |
Options.m_Flags &= ~RENDER_FORCE_DOWNSAMPLE; |
@@ -410,7 +410,7 @@ FX_BOOL CPDF_RenderStatus::ProcessType3Text(const CPDF_TextObject* textobj, cons |
if (fill_alpha == 255) { |
CPDF_RenderStatus status; |
status.Initialize(m_pContext, m_pDevice, NULL, NULL, this, pStates, &Options, |
- pType3Char->m_pForm->m_Transparency, m_bDropObjects, pFormResource, FALSE, pType3Char, fill_argb); |
+ pType3Char->m_pForm->m_Transparency, m_bDropObjects, pFormResource, false, pType3Char, fill_argb); |
status.m_Type3FontCache.Append(m_Type3FontCache); |
status.m_Type3FontCache.Add(pType3Font); |
m_pDevice->SaveState(); |
@@ -422,12 +422,12 @@ FX_BOOL CPDF_RenderStatus::ProcessType3Text(const CPDF_TextObject* textobj, cons |
FX_RECT rect = rect_f.GetOutterRect(); |
CFX_FxgeDevice bitmap_device; |
if (!bitmap_device.Create((int)(rect.Width() * sa), (int)(rect.Height() * sd), FXDIB_Argb)) { |
- return TRUE; |
+ return true; |
} |
bitmap_device.GetBitmap()->Clear(0); |
CPDF_RenderStatus status; |
status.Initialize(m_pContext, &bitmap_device, NULL, NULL, this, pStates, &Options, |
- pType3Char->m_pForm->m_Transparency, m_bDropObjects, pFormResource, FALSE, pType3Char, fill_argb); |
+ pType3Char->m_pForm->m_Transparency, m_bDropObjects, pFormResource, false, pType3Char, fill_argb); |
status.m_Type3FontCache.Append(m_Type3FontCache); |
status.m_Type3FontCache.Add(pType3Font); |
matrix.TranslateI(-rect.left, -rect.top); |
@@ -457,11 +457,11 @@ FX_BOOL CPDF_RenderStatus::ProcessType3Text(const CPDF_TextObject* textobj, cons |
CFX_AffineMatrix image_matrix = pType3Char->m_ImageMatrix; |
image_matrix.Concat(matrix); |
CPDF_ImageRenderer renderer; |
- if (renderer.Start(this, pType3Char->m_pBitmap, fill_argb, 255, &image_matrix, 0, FALSE)) { |
+ if (renderer.Start(this, pType3Char->m_pBitmap, fill_argb, 255, &image_matrix, 0, false)) { |
renderer.Continue(NULL); |
} |
if (!renderer.m_Result) { |
- return FALSE; |
+ return false; |
} |
} |
} |
@@ -471,7 +471,7 @@ FX_BOOL CPDF_RenderStatus::ProcessType3Text(const CPDF_TextObject* textobj, cons |
CFX_DIBitmap bitmap; |
if (!bitmap.Create((int)(rect.Width() * sa), (int)(rect.Height() * sd), FXDIB_8bppMask)) { |
FX_Free(pGlyphAndPos); |
- return TRUE; |
+ return true; |
} |
bitmap.Clear(0); |
for (int iChar = 0; iChar < textobj->m_nChars; iChar ++) { |
@@ -487,7 +487,7 @@ FX_BOOL CPDF_RenderStatus::ProcessType3Text(const CPDF_TextObject* textobj, cons |
m_pDevice->SetBitMask(&bitmap, rect.left, rect.top, fill_argb); |
FX_Free(pGlyphAndPos); |
} |
- return TRUE; |
+ return true; |
} |
class CPDF_CharPosList |
{ |
@@ -515,13 +515,13 @@ void CPDF_CharPosList::Load(int nChars, FX_DWORD* pCharCodes, FX_FLOAT* pCharPos |
m_pCharPos = FX_Alloc(FXTEXT_CHARPOS, nChars); |
m_nChars = 0; |
CPDF_CIDFont* pCIDFont = pFont->GetCIDFont(); |
- FX_BOOL bVertWriting = pCIDFont && pCIDFont->IsVertWriting(); |
+ bool bVertWriting = pCIDFont && pCIDFont->IsVertWriting(); |
for (int iChar = 0; iChar < nChars; iChar ++) { |
FX_DWORD CharCode = nChars == 1 ? (FX_DWORD)(uintptr_t)pCharCodes : pCharCodes[iChar]; |
if (CharCode == (FX_DWORD) - 1) { |
continue; |
} |
- FX_BOOL bVert = FALSE; |
+ bool bVert = false; |
FXTEXT_CHARPOS& charpos = m_pCharPos[m_nChars++]; |
if (pCIDFont) { |
charpos.m_bFontStyle = pCIDFont->IsFontStyleFromCharCode(CharCode); |
@@ -537,7 +537,7 @@ void CPDF_CharPosList::Load(int nChars, FX_DWORD* pCharCodes, FX_FLOAT* pCharPos |
} |
charpos.m_OriginX = iChar ? pCharPos[iChar - 1] : 0; |
charpos.m_OriginY = 0; |
- charpos.m_bGlyphAdjust = FALSE; |
+ charpos.m_bGlyphAdjust = false; |
if (pCIDFont == NULL) { |
continue; |
} |
@@ -558,11 +558,11 @@ void CPDF_CharPosList::Load(int nChars, FX_DWORD* pCharCodes, FX_FLOAT* pCharPos |
charpos.m_AdjustMatrix[3] = _CIDTransformToFloat(pTransform[3]); |
charpos.m_OriginX += _CIDTransformToFloat(pTransform[4]) * FontSize; |
charpos.m_OriginY += _CIDTransformToFloat(pTransform[5]) * FontSize; |
- charpos.m_bGlyphAdjust = TRUE; |
+ charpos.m_bGlyphAdjust = true; |
} |
} |
} |
-FX_BOOL CPDF_TextRenderer::DrawTextPath(CFX_RenderDevice* pDevice, int nChars, FX_DWORD* pCharCodes, FX_FLOAT* pCharPos, |
+bool CPDF_TextRenderer::DrawTextPath(CFX_RenderDevice* pDevice, int nChars, FX_DWORD* pCharCodes, FX_FLOAT* pCharPos, |
CPDF_Font* pFont, FX_FLOAT font_size, |
const CFX_AffineMatrix* pText2User, const CFX_AffineMatrix* pUser2Device, |
const CFX_GraphStateData* pGraphState, |
@@ -632,7 +632,7 @@ void CPDF_TextRenderer::DrawTextString(CFX_RenderDevice* pDevice, FX_FLOAT origi |
FX_Free(pCharPos); |
} |
} |
-FX_BOOL CPDF_TextRenderer::DrawNormalText(CFX_RenderDevice* pDevice, int nChars, FX_DWORD* pCharCodes, FX_FLOAT* pCharPos, |
+bool CPDF_TextRenderer::DrawNormalText(CFX_RenderDevice* pDevice, int nChars, FX_DWORD* pCharCodes, FX_FLOAT* pCharPos, |
CPDF_Font* pFont, FX_FLOAT font_size, |
const CFX_AffineMatrix* pText2Device, |
FX_ARGB fill_argb, const CPDF_RenderOptions* pOptions) |
@@ -671,13 +671,13 @@ FX_BOOL CPDF_TextRenderer::DrawNormalText(CFX_RenderDevice* pDevice, int nChars, |
} |
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) |
+ const CFX_AffineMatrix* pTextMatrix, bool bFill, bool bStroke) |
{ |
if (!bStroke) { |
CPDF_PathObject path; |
CPDF_TextObject* pCopy = new CPDF_TextObject; |
pCopy->Copy(textobj); |
- path.m_bStroke = FALSE; |
+ path.m_bStroke = false; |
path.m_FillType = FXFILL_WINDING; |
path.m_ClipPath.AppendTexts(&pCopy, 1); |
path.m_ColorState = textobj->m_ColorState; |