Index: core/fxge/ge/fx_ge_text.cpp |
diff --git a/core/fxge/ge/fx_ge_text.cpp b/core/fxge/ge/fx_ge_text.cpp |
index f2867aaf11937e753d474aa49a92b2f3a8372f72..aeac66b4b07ed35090bd2d8b1f1ff6a644c96a23 100644 |
--- a/core/fxge/ge/fx_ge_text.cpp |
+++ b/core/fxge/ge/fx_ge_text.cpp |
@@ -427,9 +427,7 @@ FX_BOOL CFX_RenderDevice::DrawNormalText(int nChars, |
FX_FLOAT font_size, |
const CFX_Matrix* pText2Device, |
uint32_t fill_color, |
- uint32_t text_flags, |
- int alpha_flag, |
- void* pIccTransform) { |
+ uint32_t text_flags) { |
int nativetext_flags = text_flags; |
if (m_DeviceClass != FXDC_DISPLAY) { |
if (!(text_flags & FXTEXT_PRINTGRAPHICTEXT)) { |
@@ -445,16 +443,12 @@ FX_BOOL CFX_RenderDevice::DrawNormalText(int nChars, |
if (should_call_draw_device_text && |
m_pDeviceDriver->DrawDeviceText(nChars, pCharPos, pFont, pCache, |
pText2Device, font_size, fill_color, |
- alpha_flag, pIccTransform)) { |
+ 0, nullptr)) { |
return TRUE; |
} |
} |
- int alpha = FXGETFLAG_COLORTYPE(alpha_flag) |
- ? FXGETFLAG_ALPHA_FILL(alpha_flag) |
- : FXARGB_A(fill_color); |
- if (alpha < 255) { |
+ if (FXARGB_A(fill_color) < 255) |
return FALSE; |
- } |
} else if (!(text_flags & FXTEXT_NO_NATIVETEXT)) { |
bool should_call_draw_device_text = true; |
#if _FXM_PLATFORM_ == _FXM_PLATFORM_APPLE_ |
@@ -465,8 +459,8 @@ FX_BOOL CFX_RenderDevice::DrawNormalText(int nChars, |
#endif |
if (should_call_draw_device_text && |
m_pDeviceDriver->DrawDeviceText(nChars, pCharPos, pFont, pCache, |
- pText2Device, font_size, fill_color, |
- alpha_flag, pIccTransform)) { |
+ pText2Device, font_size, fill_color, 0, |
+ nullptr)) { |
return TRUE; |
} |
} |
@@ -484,9 +478,9 @@ FX_BOOL CFX_RenderDevice::DrawNormalText(int nChars, |
(pFont->GetSubstFont()->m_SubstFlags & FXFONT_SUBST_GLYPHPATH)) { |
int nPathFlags = |
(text_flags & FXTEXT_NOSMOOTH) == 0 ? 0 : FXFILL_NOPATHSMOOTH; |
- return DrawTextPath(nChars, pCharPos, pFont, pCache, font_size, |
- pText2Device, NULL, NULL, fill_color, 0, NULL, |
- nPathFlags, alpha_flag, pIccTransform); |
+ return DrawTextPathWithFlags(nChars, pCharPos, pFont, pCache, font_size, |
+ pText2Device, nullptr, nullptr, fill_color, |
+ 0, nullptr, nPathFlags); |
} |
} |
int anti_alias = FXFT_RENDER_MODE_MONO; |
@@ -621,7 +615,7 @@ FX_BOOL CFX_RenderDevice::DrawNormalText(int nChars, |
int g = 0; |
int b = 0; |
if (anti_alias == FXFT_RENDER_MODE_LCD) { |
- Color2Argb(fill_color, fill_color, alpha_flag | (1 << 24), pIccTransform); |
+ Color2Argb(fill_color, fill_color, (1 << 24), nullptr); |
ArgbDecode(fill_color, a, r, g, b); |
} |
for (const FXTEXT_GLYPHPOS& glyph : glyphs) { |
@@ -635,8 +629,8 @@ FX_BOOL CFX_RenderDevice::DrawNormalText(int nChars, |
int nrows = pGlyph->GetHeight(); |
if (anti_alias == FXFT_RENDER_MODE_NORMAL) { |
if (!bitmap.CompositeMask(left, top, ncols, nrows, pGlyph, fill_color, 0, |
- 0, FXDIB_BLEND_NORMAL, nullptr, FALSE, |
- alpha_flag, pIccTransform)) { |
+ 0, FXDIB_BLEND_NORMAL, nullptr, FALSE, 0, |
+ nullptr)) { |
return FALSE; |
} |
continue; |
@@ -653,34 +647,29 @@ FX_BOOL CFX_RenderDevice::DrawNormalText(int nChars, |
DrawNormalTextHelper(&bitmap, pGlyph, nrows, left, top, start_col, end_col, |
bNormal, bBGRStripe, x_subpixel, a, r, g, b); |
} |
- if (bitmap.IsAlphaMask()) { |
- SetBitMask(&bitmap, bmp_rect.left, bmp_rect.top, fill_color, alpha_flag, |
- pIccTransform); |
- } else { |
+ if (bitmap.IsAlphaMask()) |
+ SetBitMask(&bitmap, bmp_rect.left, bmp_rect.top, fill_color); |
+ else |
SetDIBits(&bitmap, bmp_rect.left, bmp_rect.top); |
- } |
- |
return TRUE; |
} |
-FX_BOOL CFX_RenderDevice::DrawTextPath(int nChars, |
- const FXTEXT_CHARPOS* pCharPos, |
- CFX_Font* pFont, |
- CFX_FontCache* pCache, |
- FX_FLOAT font_size, |
- const CFX_Matrix* pText2User, |
- const CFX_Matrix* pUser2Device, |
- const CFX_GraphStateData* pGraphState, |
- uint32_t fill_color, |
- FX_ARGB stroke_color, |
- CFX_PathData* pClippingPath, |
- int nFlag, |
- int alpha_flag, |
- void* pIccTransform, |
- int blend_type) { |
- if (!pCache) { |
+FX_BOOL CFX_RenderDevice::DrawTextPathWithFlags( |
+ int nChars, |
+ const FXTEXT_CHARPOS* pCharPos, |
+ CFX_Font* pFont, |
+ CFX_FontCache* pCache, |
+ FX_FLOAT font_size, |
+ const CFX_Matrix* pText2User, |
+ const CFX_Matrix* pUser2Device, |
+ const CFX_GraphStateData* pGraphState, |
+ uint32_t fill_color, |
+ FX_ARGB stroke_color, |
+ CFX_PathData* pClippingPath, |
+ int nFlag) { |
+ if (!pCache) |
pCache = CFX_GEModule::Get()->GetFontCache(); |
- } |
+ |
CFX_FaceCache* pFaceCache = pCache->GetCachedFace(pFont); |
FX_FONTCACHE_DEFINE(pCache, pFont); |
for (int iChar = 0; iChar < nChars; iChar++) { |
@@ -693,37 +682,25 @@ FX_BOOL CFX_RenderDevice::DrawTextPath(int nChars, |
charpos.m_OriginY); |
const CFX_PathData* pPath = pFaceCache->LoadGlyphPath( |
pFont, charpos.m_GlyphIndex, charpos.m_FontCharWidth); |
- if (!pPath) { |
+ if (!pPath) |
continue; |
- } |
+ |
matrix.Concat(*pText2User); |
CFX_PathData TransformedPath(*pPath); |
TransformedPath.Transform(&matrix); |
- FX_BOOL bHasAlpha = FXGETFLAG_COLORTYPE(alpha_flag) |
- ? (FXGETFLAG_ALPHA_FILL(alpha_flag) || |
- FXGETFLAG_ALPHA_STROKE(alpha_flag)) |
- : (fill_color || stroke_color); |
- if (bHasAlpha) { |
+ if (fill_color || stroke_color) { |
int fill_mode = nFlag; |
- if (FXGETFLAG_COLORTYPE(alpha_flag)) { |
- if (FXGETFLAG_ALPHA_FILL(alpha_flag)) { |
- fill_mode |= FXFILL_WINDING; |
- } |
- } else { |
- if (fill_color) { |
- fill_mode |= FXFILL_WINDING; |
- } |
- } |
+ if (fill_color) |
+ fill_mode |= FXFILL_WINDING; |
fill_mode |= FX_FILL_TEXT_MODE; |
- if (!DrawPath(&TransformedPath, pUser2Device, pGraphState, fill_color, |
- stroke_color, fill_mode, alpha_flag, pIccTransform, |
- blend_type)) { |
+ if (!DrawPathWithBlend(&TransformedPath, pUser2Device, pGraphState, |
+ fill_color, stroke_color, fill_mode, |
+ FXDIB_BLEND_NORMAL)) { |
return FALSE; |
} |
} |
- if (pClippingPath) { |
+ if (pClippingPath) |
pClippingPath->Append(&TransformedPath, pUser2Device); |
- } |
} |
return TRUE; |
} |