diff options
Diffstat (limited to 'core/fpdfapi')
-rw-r--r-- | core/fpdfapi/fpdf_render/fpdf_render.cpp | 8 | ||||
-rw-r--r-- | core/fpdfapi/fpdf_render/fpdf_render_image.cpp | 25 | ||||
-rw-r--r-- | core/fpdfapi/fpdf_render/fpdf_render_text.cpp | 12 |
3 files changed, 25 insertions, 20 deletions
diff --git a/core/fpdfapi/fpdf_render/fpdf_render.cpp b/core/fpdfapi/fpdf_render/fpdf_render.cpp index 3144191469..365e4c0464 100644 --- a/core/fpdfapi/fpdf_render/fpdf_render.cpp +++ b/core/fpdfapi/fpdf_render/fpdf_render.cpp @@ -455,6 +455,7 @@ FX_BOOL IsAvailableMatrix(const CFX_Matrix& matrix) { } return TRUE; } + FX_BOOL CPDF_RenderStatus::ProcessPath(const CPDF_PathObject* pPathObj, const CFX_Matrix* pObj2Device) { int FillType = pPathObj->m_FillType; @@ -500,10 +501,11 @@ FX_BOOL CPDF_RenderStatus::ProcessPath(const CPDF_PathObject* pPathObj, if (m_Options.m_Flags & RENDER_THINLINE) { graphState.m_LineWidth = 0; } - return m_pDevice->DrawPath(pPathObj->m_Path, &path_matrix, &graphState, - fill_argb, stroke_argb, FillType, 0, NULL, - m_curBlend); + return m_pDevice->DrawPathWithBlend(pPathObj->m_Path, &path_matrix, + &graphState, fill_argb, stroke_argb, + FillType, m_curBlend); } + CPDF_TransferFunc* CPDF_RenderStatus::GetTransferFunc(CPDF_Object* pObj) const { ASSERT(pObj); CPDF_DocRenderData* pDocCache = m_pContext->GetDocument()->GetRenderData(); diff --git a/core/fpdfapi/fpdf_render/fpdf_render_image.cpp b/core/fpdfapi/fpdf_render/fpdf_render_image.cpp index d84c0037fd..f7e57c0fa6 100644 --- a/core/fpdfapi/fpdf_render/fpdf_render_image.cpp +++ b/core/fpdfapi/fpdf_render/fpdf_render_image.cpp @@ -76,7 +76,7 @@ void CPDF_RenderStatus::CompositeDIBitmap(CFX_DIBitmap* pDIBitmap, if (pDIBitmap->IsAlphaMask()) { return; } - m_pDevice->SetDIBits(pDIBitmap, left, top, blend_mode); + m_pDevice->SetDIBitsWithBlend(pDIBitmap, left, top, blend_mode); } else { FX_RECT rect(left, top, left + pDIBitmap->GetWidth(), top + pDIBitmap->GetHeight()); @@ -106,7 +106,8 @@ void CPDF_RenderStatus::CompositeDIBitmap(CFX_DIBitmap* pDIBitmap, if (pDIBitmap->IsAlphaMask()) { return; } - m_pDevice->SetDIBits(pDIBitmap, rect.left, rect.top, blend_mode); + m_pDevice->SetDIBitsWithBlend(pDIBitmap, rect.left, rect.top, + blend_mode); } if (bClone) { delete pClone; @@ -600,8 +601,8 @@ FX_BOOL CPDF_ImageRenderer::DrawPatternImage(const CFX_Matrix* pObj2Device) { bitmap_device1.GetBitmap()->MultiplyAlpha(bitmap_device2.GetBitmap()); bitmap_device1.GetBitmap()->MultiplyAlpha(255); } - m_pRenderStatus->m_pDevice->SetDIBits(bitmap_device1.GetBitmap(), rect.left, - rect.top, m_BlendType); + m_pRenderStatus->m_pDevice->SetDIBitsWithBlend( + bitmap_device1.GetBitmap(), rect.left, rect.top, m_BlendType); return FALSE; } FX_BOOL CPDF_ImageRenderer::DrawMaskedImage() { @@ -695,8 +696,8 @@ FX_BOOL CPDF_ImageRenderer::DrawMaskedImage() { bitmap_device1.GetBitmap()->MultiplyAlpha(m_BitmapAlpha); } } - m_pRenderStatus->m_pDevice->SetDIBits(bitmap_device1.GetBitmap(), rect.left, - rect.top, m_BlendType); + m_pRenderStatus->m_pDevice->SetDIBitsWithBlend( + bitmap_device1.GetBitmap(), rect.left, rect.top, m_BlendType); return FALSE; } @@ -709,9 +710,9 @@ FX_BOOL CPDF_ImageRenderer::StartDIBSource() { m_Flags |= RENDER_FORCE_DOWNSAMPLE; } } - if (m_pRenderStatus->m_pDevice->StartDIBits( + if (m_pRenderStatus->m_pDevice->StartDIBitsWithBlend( m_pDIBSource, m_BitmapAlpha, m_FillArgb, &m_ImageMatrix, m_Flags, - m_DeviceHandle, 0, nullptr, m_BlendType)) { + m_DeviceHandle, m_BlendType)) { if (m_DeviceHandle) { m_Status = 3; return TRUE; @@ -746,16 +747,16 @@ FX_BOOL CPDF_ImageRenderer::StartDIBSource() { int dest_left = dest_width > 0 ? image_rect.left : image_rect.right; int dest_top = dest_height > 0 ? image_rect.top : image_rect.bottom; if (m_pDIBSource->IsOpaqueImage() && m_BitmapAlpha == 255) { - if (m_pRenderStatus->m_pDevice->StretchDIBits( + if (m_pRenderStatus->m_pDevice->StretchDIBitsWithFlagsAndBlend( m_pDIBSource, dest_left, dest_top, dest_width, dest_height, m_Flags, - nullptr, m_BlendType)) { + m_BlendType)) { return FALSE; } } if (m_pDIBSource->IsAlphaMask()) { if (m_BitmapAlpha != 255) m_FillArgb = FXARGB_MUL_ALPHA(m_FillArgb, m_BitmapAlpha); - if (m_pRenderStatus->m_pDevice->StretchBitMask( + if (m_pRenderStatus->m_pDevice->StretchBitMaskWithFlags( m_pDIBSource, dest_left, dest_top, dest_width, dest_height, m_FillArgb, m_Flags)) { return FALSE; @@ -845,7 +846,7 @@ FX_BOOL CPDF_ImageRenderer::Continue(IFX_Pause* pPause) { } else { if (m_BitmapAlpha != 255) pBitmap->MultiplyAlpha(m_BitmapAlpha); - m_Result = m_pRenderStatus->m_pDevice->SetDIBits( + m_Result = m_pRenderStatus->m_pDevice->SetDIBitsWithBlend( pBitmap.get(), m_pTransformer->result().left, m_pTransformer->result().top, m_BlendType); } diff --git a/core/fpdfapi/fpdf_render/fpdf_render_text.cpp b/core/fpdfapi/fpdf_render/fpdf_render_text.cpp index 5bd7c35059..7c2fec7c78 100644 --- a/core/fpdfapi/fpdf_render/fpdf_render_text.cpp +++ b/core/fpdfapi/fpdf_render/fpdf_render_text.cpp @@ -589,6 +589,7 @@ void CPDF_CharPosList::Load(int nChars, } } } + FX_BOOL CPDF_TextRenderer::DrawTextPath(CFX_RenderDevice* pDevice, int nChars, uint32_t* pCharCodes, @@ -604,14 +605,15 @@ FX_BOOL CPDF_TextRenderer::DrawTextPath(CFX_RenderDevice* pDevice, int nFlag) { CFX_FontCache* pCache = pFont->m_pDocument ? pFont->m_pDocument->GetRenderData()->GetFontCache() - : NULL; + : nullptr; CPDF_CharPosList CharPosList; CharPosList.Load(nChars, pCharCodes, pCharPos, pFont, font_size); - return pDevice->DrawTextPath(CharPosList.m_nChars, CharPosList.m_pCharPos, - &pFont->m_Font, pCache, font_size, pText2User, - pUser2Device, pGraphState, fill_argb, - stroke_argb, pClippingPath, nFlag); + return pDevice->DrawTextPathWithFlags( + CharPosList.m_nChars, CharPosList.m_pCharPos, &pFont->m_Font, pCache, + font_size, pText2User, pUser2Device, pGraphState, fill_argb, stroke_argb, + pClippingPath, nFlag); } + void CPDF_TextRenderer::DrawTextString(CFX_RenderDevice* pDevice, int left, int top, |