OLD | NEW |
1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
6 | 6 |
7 #include "../../../include/fpdfapi/fpdf_module.h" | 7 #include "../../../include/fpdfapi/fpdf_module.h" |
8 #include "../../../include/fpdfapi/fpdf_render.h" | 8 #include "../../../include/fpdfapi/fpdf_render.h" |
9 #include "../../../include/fxge/fx_ge.h" | 9 #include "../../../include/fxge/fx_ge.h" |
10 #include "../fpdf_page/pageint.h" | 10 #include "../fpdf_page/pageint.h" |
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
195 m_bLoadMask = FALSE; | 195 m_bLoadMask = FALSE; |
196 m_pType3Char = NULL; | 196 m_pType3Char = NULL; |
197 m_T3FillColor = 0; | 197 m_T3FillColor = 0; |
198 m_pFormResource = NULL; | 198 m_pFormResource = NULL; |
199 m_pPageResource = NULL; | 199 m_pPageResource = NULL; |
200 m_curBlend = FXDIB_BLEND_NORMAL; | 200 m_curBlend = FXDIB_BLEND_NORMAL; |
201 } | 201 } |
202 | 202 |
203 CPDF_RenderStatus::~CPDF_RenderStatus() | 203 CPDF_RenderStatus::~CPDF_RenderStatus() |
204 { | 204 { |
205 if (m_pObjectRenderer) { | 205 delete m_pObjectRenderer; |
206 delete m_pObjectRenderer; | |
207 } | |
208 } | 206 } |
209 | 207 |
210 FX_BOOL CPDF_RenderStatus::Initialize(CPDF_RenderContext* pContext, CFX_RenderDe
vice* pDevice, | 208 FX_BOOL CPDF_RenderStatus::Initialize(CPDF_RenderContext* pContext, CFX_RenderDe
vice* pDevice, |
211 const CFX_AffineMatrix* pDeviceMatrix, con
st CPDF_PageObject* pStopObj, | 209 const CFX_AffineMatrix* pDeviceMatrix, con
st CPDF_PageObject* pStopObj, |
212 const CPDF_RenderStatus* pParentState, con
st CPDF_GraphicStates* pInitialStates, | 210 const CPDF_RenderStatus* pParentState, con
st CPDF_GraphicStates* pInitialStates, |
213 const CPDF_RenderOptions* pOptions, int tr
ansparency, FX_BOOL bDropObjects, | 211 const CPDF_RenderOptions* pOptions, int tr
ansparency, FX_BOOL bDropObjects, |
214 CPDF_Dictionary* pFormResource, FX_BOOL bS
tdCS, CPDF_Type3Char* pType3Char, | 212 CPDF_Dictionary* pFormResource, FX_BOOL bS
tdCS, CPDF_Type3Char* pType3Char, |
215 FX_ARGB fill_color, FX_DWORD GroupFamily, | 213 FX_ARGB fill_color, FX_DWORD GroupFamily, |
216 FX_BOOL bLoadMask) | 214 FX_BOOL bLoadMask) |
217 { | 215 { |
(...skipping 440 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
658 delete pTextClippingPath; | 656 delete pTextClippingPath; |
659 pTextClippingPath = NULL; | 657 pTextClippingPath = NULL; |
660 } | 658 } |
661 } else { | 659 } else { |
662 if (pTextClippingPath == NULL) { | 660 if (pTextClippingPath == NULL) { |
663 pTextClippingPath = new CFX_PathData; | 661 pTextClippingPath = new CFX_PathData; |
664 } | 662 } |
665 ProcessText(pText, pObj2Device, pTextClippingPath); | 663 ProcessText(pText, pObj2Device, pTextClippingPath); |
666 } | 664 } |
667 } | 665 } |
668 if (pTextClippingPath) { | 666 delete pTextClippingPath; |
669 delete pTextClippingPath; | |
670 } | |
671 } | 667 } |
672 void CPDF_RenderStatus::DrawClipPath(CPDF_ClipPath ClipPath, const CFX_AffineMat
rix* pObj2Device) | 668 void CPDF_RenderStatus::DrawClipPath(CPDF_ClipPath ClipPath, const CFX_AffineMat
rix* pObj2Device) |
673 { | 669 { |
674 if (ClipPath.IsNull()) { | 670 if (ClipPath.IsNull()) { |
675 return; | 671 return; |
676 } | 672 } |
677 int fill_mode = 0; | 673 int fill_mode = 0; |
678 if (m_Options.m_Flags & RENDER_NOPATHSMOOTH) { | 674 if (m_Options.m_Flags & RENDER_NOPATHSMOOTH) { |
679 fill_mode |= FXFILL_NOPATHSMOOTH; | 675 fill_mode |= FXFILL_NOPATHSMOOTH; |
680 } | 676 } |
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
852 pTextMask = NULL; | 848 pTextMask = NULL; |
853 } | 849 } |
854 if (Transparency & PDFTRANS_GROUP && group_alpha != 1.0f) { | 850 if (Transparency & PDFTRANS_GROUP && group_alpha != 1.0f) { |
855 bitmap->MultiplyAlpha((int32_t)(group_alpha * 255)); | 851 bitmap->MultiplyAlpha((int32_t)(group_alpha * 255)); |
856 } | 852 } |
857 Transparency = m_Transparency; | 853 Transparency = m_Transparency; |
858 if (pPageObj->m_Type == PDFPAGE_FORM) { | 854 if (pPageObj->m_Type == PDFPAGE_FORM) { |
859 Transparency |= PDFTRANS_GROUP; | 855 Transparency |= PDFTRANS_GROUP; |
860 } | 856 } |
861 CompositeDIBitmap(bitmap, rect.left, rect.top, 0, 255, blend_type, Transpare
ncy); | 857 CompositeDIBitmap(bitmap, rect.left, rect.top, 0, 255, blend_type, Transpare
ncy); |
862 if (oriDevice) { | 858 delete oriDevice; |
863 delete oriDevice; | |
864 } | |
865 return TRUE; | 859 return TRUE; |
866 } | 860 } |
867 CFX_DIBitmap* CPDF_RenderStatus::GetBackdrop(const CPDF_PageObject* pObj, const
FX_RECT& rect, int& left, int& top, | 861 CFX_DIBitmap* CPDF_RenderStatus::GetBackdrop(const CPDF_PageObject* pObj, const
FX_RECT& rect, int& left, int& top, |
868 FX_BOOL bBackAlphaRequired) | 862 FX_BOOL bBackAlphaRequired) |
869 { | 863 { |
870 FX_RECT bbox = rect; | 864 FX_RECT bbox = rect; |
871 bbox.Intersect(m_pDevice->GetClipBox()); | 865 bbox.Intersect(m_pDevice->GetClipBox()); |
872 left = bbox.left; | 866 left = bbox.left; |
873 top = bbox.top; | 867 top = bbox.top; |
874 CFX_Matrix deviceCTM = m_pDevice->GetCTM(); | 868 CFX_Matrix deviceCTM = m_pDevice->GetCTM(); |
(...skipping 389 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1264 } | 1258 } |
1265 CPDF_DeviceBuffer::CPDF_DeviceBuffer() | 1259 CPDF_DeviceBuffer::CPDF_DeviceBuffer() |
1266 { | 1260 { |
1267 m_pBitmap = NULL; | 1261 m_pBitmap = NULL; |
1268 m_pDevice = NULL; | 1262 m_pDevice = NULL; |
1269 m_pContext = NULL; | 1263 m_pContext = NULL; |
1270 m_pObject = NULL; | 1264 m_pObject = NULL; |
1271 } | 1265 } |
1272 CPDF_DeviceBuffer::~CPDF_DeviceBuffer() | 1266 CPDF_DeviceBuffer::~CPDF_DeviceBuffer() |
1273 { | 1267 { |
1274 if (m_pBitmap) { | 1268 delete m_pBitmap; |
1275 delete m_pBitmap; | |
1276 } | |
1277 } | 1269 } |
1278 FX_BOOL CPDF_DeviceBuffer::Initialize(CPDF_RenderContext* pContext, CFX_RenderDe
vice* pDevice, FX_RECT* pRect, | 1270 FX_BOOL CPDF_DeviceBuffer::Initialize(CPDF_RenderContext* pContext, CFX_RenderDe
vice* pDevice, FX_RECT* pRect, |
1279 const CPDF_PageObject* pObj, int max_dpi) | 1271 const CPDF_PageObject* pObj, int max_dpi) |
1280 { | 1272 { |
1281 m_pDevice = pDevice; | 1273 m_pDevice = pDevice; |
1282 m_pContext = pContext; | 1274 m_pContext = pContext; |
1283 m_Rect = *pRect; | 1275 m_Rect = *pRect; |
1284 m_pObject = pObj; | 1276 m_pObject = pObj; |
1285 m_Matrix.TranslateI(-pRect->left, -pRect->top); | 1277 m_Matrix.TranslateI(-pRect->left, -pRect->top); |
1286 #if _FXM_PLATFORM_ != _FXM_PLATFORM_APPLE_ | 1278 #if _FXM_PLATFORM_ != _FXM_PLATFORM_APPLE_ |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1323 buffer.CompositeBitmap(0, 0, buffer.GetWidth(), buffer.GetHeight(), m_pB
itmap, 0, 0); | 1315 buffer.CompositeBitmap(0, 0, buffer.GetWidth(), buffer.GetHeight(), m_pB
itmap, 0, 0); |
1324 m_pDevice->StretchDIBits(&buffer, m_Rect.left, m_Rect.top, m_Rect.Width(
), m_Rect.Height()); | 1316 m_pDevice->StretchDIBits(&buffer, m_Rect.left, m_Rect.top, m_Rect.Width(
), m_Rect.Height()); |
1325 } | 1317 } |
1326 } | 1318 } |
1327 CPDF_ScaledRenderBuffer::CPDF_ScaledRenderBuffer() | 1319 CPDF_ScaledRenderBuffer::CPDF_ScaledRenderBuffer() |
1328 { | 1320 { |
1329 m_pBitmapDevice = NULL; | 1321 m_pBitmapDevice = NULL; |
1330 } | 1322 } |
1331 CPDF_ScaledRenderBuffer::~CPDF_ScaledRenderBuffer() | 1323 CPDF_ScaledRenderBuffer::~CPDF_ScaledRenderBuffer() |
1332 { | 1324 { |
1333 if (m_pBitmapDevice) { | 1325 delete m_pBitmapDevice; |
1334 delete m_pBitmapDevice; | |
1335 } | |
1336 } | 1326 } |
1337 #define _FPDFAPI_IMAGESIZE_LIMIT_ (30 * 1024 * 1024) | 1327 #define _FPDFAPI_IMAGESIZE_LIMIT_ (30 * 1024 * 1024) |
1338 FX_BOOL CPDF_ScaledRenderBuffer::Initialize(CPDF_RenderContext* pContext, CFX_Re
nderDevice* pDevice, FX_RECT* pRect, | 1328 FX_BOOL CPDF_ScaledRenderBuffer::Initialize(CPDF_RenderContext* pContext, CFX_Re
nderDevice* pDevice, FX_RECT* pRect, |
1339 const CPDF_PageObject* pObj, const CPDF_RenderOptions *pOptions, int max
_dpi) | 1329 const CPDF_PageObject* pObj, const CPDF_RenderOptions *pOptions, int max
_dpi) |
1340 { | 1330 { |
1341 FXSYS_assert(pRect != NULL); | 1331 FXSYS_assert(pRect != NULL); |
1342 m_pDevice = pDevice; | 1332 m_pDevice = pDevice; |
1343 if (m_pDevice->GetDeviceCaps(FXDC_RENDER_CAPS) & FXRC_GET_BITS) { | 1333 if (m_pDevice->GetDeviceCaps(FXDC_RENDER_CAPS) & FXRC_GET_BITS) { |
1344 return TRUE; | 1334 return TRUE; |
1345 } | 1335 } |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1401 CPDF_ContentMarkItem& item = pData->GetItem(i); | 1391 CPDF_ContentMarkItem& item = pData->GetItem(i); |
1402 if (item.GetName() == FX_BSTRC("OC") && item.GetParamType() == CPDF_Cont
entMarkItem::PropertiesDict) { | 1392 if (item.GetName() == FX_BSTRC("OC") && item.GetParamType() == CPDF_Cont
entMarkItem::PropertiesDict) { |
1403 CPDF_Dictionary* pOCG = (CPDF_Dictionary*)item.GetParam(); | 1393 CPDF_Dictionary* pOCG = (CPDF_Dictionary*)item.GetParam(); |
1404 if (!CheckOCGVisible(pOCG)) { | 1394 if (!CheckOCGVisible(pOCG)) { |
1405 return FALSE; | 1395 return FALSE; |
1406 } | 1396 } |
1407 } | 1397 } |
1408 } | 1398 } |
1409 return TRUE; | 1399 return TRUE; |
1410 } | 1400 } |
OLD | NEW |