void CPDF_RenderStatus::RenderSingleObject( const CPDF_PageObject* pObj, const CFX_AffineMatrix* pObj2Device) { CFX_AutoRestorer<int> restorer(&s_CurrentRecursionDepth); if (++s_CurrentRecursionDepth > kRenderMaxRecursionDepth) { return; } m_pCurObj = pObj; if (m_Options.m_pOCContext && pObj->m_ContentMark.NotNull()) { if (!m_Options.m_pOCContext->CheckObjectVisible(pObj)) { return; } } ProcessClipPath(pObj->m_ClipPath, pObj2Device); if (ProcessTransparency(pObj, pObj2Device)) { return; } ProcessObjectNoClip(pObj, pObj2Device); }
FX_BOOL CPDF_RenderStatus::ContinueSingleObject( const CPDF_PageObject* pObj, const CFX_AffineMatrix* pObj2Device, IFX_Pause* pPause) { if (m_pObjectRenderer) { if (m_pObjectRenderer->Continue(pPause)) return TRUE; if (!m_pObjectRenderer->m_Result) DrawObjWithBackground(pObj, pObj2Device); m_pObjectRenderer.reset(); return FALSE; } m_pCurObj = pObj; if (m_Options.m_pOCContext && pObj->m_ContentMark.NotNull() && !m_Options.m_pOCContext->CheckObjectVisible(pObj)) { return FALSE; } ProcessClipPath(pObj->m_ClipPath, pObj2Device); if (ProcessTransparency(pObj, pObj2Device)) return FALSE; if (pObj->m_Type == PDFPAGE_IMAGE) { m_pObjectRenderer.reset(IPDF_ObjectRenderer::Create(pObj->m_Type)); if (!m_pObjectRenderer->Start(this, pObj, pObj2Device, FALSE)) { if (!m_pObjectRenderer->m_Result) DrawObjWithBackground(pObj, pObj2Device); m_pObjectRenderer.reset(); return FALSE; } return ContinueSingleObject(pObj, pObj2Device, pPause); } ProcessObjectNoClip(pObj, pObj2Device); return FALSE; }
FX_BOOL CPDF_RenderStatus::ContinueSingleObject(CPDF_PageObject* pObj, const CFX_Matrix* pObj2Device, IFX_Pause* pPause) { if (m_pImageRenderer) { if (m_pImageRenderer->Continue(pPause)) return TRUE; if (!m_pImageRenderer->m_Result) DrawObjWithBackground(pObj, pObj2Device); m_pImageRenderer.reset(); return FALSE; } m_pCurObj = pObj; if (m_Options.m_pOCContext && pObj->m_ContentMark && !m_Options.m_pOCContext->CheckObjectVisible(pObj)) { return FALSE; } ProcessClipPath(pObj->m_ClipPath, pObj2Device); if (ProcessTransparency(pObj, pObj2Device)) return FALSE; if (pObj->IsImage()) { m_pImageRenderer.reset(new CPDF_ImageRenderer); if (!m_pImageRenderer->Start(this, pObj, pObj2Device, FALSE)) { if (!m_pImageRenderer->m_Result) DrawObjWithBackground(pObj, pObj2Device); m_pImageRenderer.reset(); return FALSE; } return ContinueSingleObject(pObj, pObj2Device, pPause); } ProcessObjectNoClip(pObj, pObj2Device); return FALSE; }
void CPDF_RenderStatus::RenderSingleObject(CPDF_PageObject* pObj, const CFX_Matrix* pObj2Device) { #if defined _SKIA_SUPPORT_ DebugVerifyDeviceIsPreMultiplied(); #endif CFX_AutoRestorer<int> restorer(&s_CurrentRecursionDepth); if (++s_CurrentRecursionDepth > kRenderMaxRecursionDepth) { return; } m_pCurObj = pObj; if (m_Options.m_pOCContext && pObj->m_ContentMark) { if (!m_Options.m_pOCContext->CheckObjectVisible(pObj)) { return; } } ProcessClipPath(pObj->m_ClipPath, pObj2Device); if (ProcessTransparency(pObj, pObj2Device)) { return; } ProcessObjectNoClip(pObj, pObj2Device); #if defined _SKIA_SUPPORT_ DebugVerifyDeviceIsPreMultiplied(); #endif }