| 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 "core/fpdfapi/fpdf_render/render_int.h" | 7 #include "core/fpdfapi/fpdf_render/render_int.h" |
| 8 | 8 |
| 9 #include <memory> | 9 #include <memory> |
| 10 | 10 |
| (...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 187 m_bStdCS = bStdCS; | 187 m_bStdCS = bStdCS; |
| 188 m_T3FillColor = fill_color; | 188 m_T3FillColor = fill_color; |
| 189 m_pType3Char = pType3Char; | 189 m_pType3Char = pType3Char; |
| 190 m_GroupFamily = GroupFamily; | 190 m_GroupFamily = GroupFamily; |
| 191 m_bLoadMask = bLoadMask; | 191 m_bLoadMask = bLoadMask; |
| 192 m_pFormResource = pFormResource; | 192 m_pFormResource = pFormResource; |
| 193 m_pPageResource = m_pContext->GetPageResources(); | 193 m_pPageResource = m_pContext->GetPageResources(); |
| 194 if (pInitialStates && !m_pType3Char) { | 194 if (pInitialStates && !m_pType3Char) { |
| 195 m_InitialStates.CopyStates(*pInitialStates); | 195 m_InitialStates.CopyStates(*pInitialStates); |
| 196 if (pParentState) { | 196 if (pParentState) { |
| 197 const CPDF_ColorStateData* pColorData = | 197 if (!m_InitialStates.m_ColorState.HasFillColor()) { |
| 198 m_InitialStates.m_ColorState.GetObject(); | 198 m_InitialStates.m_ColorState.SetFillRGB( |
| 199 const CPDF_ColorStateData* pParentData = | 199 pParentState->m_InitialStates.m_ColorState.GetFillRGB()); |
| 200 pParentState->m_InitialStates.m_ColorState.GetObject(); | 200 m_InitialStates.m_ColorState.GetMutableFillColor()->Copy( |
| 201 if (!pColorData || pColorData->m_FillColor.IsNull()) { | 201 pParentState->m_InitialStates.m_ColorState.GetFillColor()); |
| 202 CPDF_ColorStateData* pData = | |
| 203 m_InitialStates.m_ColorState.GetPrivateCopy(); | |
| 204 pData->m_FillRGB = pParentData->m_FillRGB; | |
| 205 pData->m_FillColor.Copy(&pParentData->m_FillColor); | |
| 206 } | 202 } |
| 207 if (!pColorData || pColorData->m_StrokeColor.IsNull()) { | 203 if (!m_InitialStates.m_ColorState.HasStrokeColor()) { |
| 208 CPDF_ColorStateData* pData = | 204 m_InitialStates.m_ColorState.SetStrokeRGB( |
| 209 m_InitialStates.m_ColorState.GetPrivateCopy(); | 205 pParentState->m_InitialStates.m_ColorState.GetFillRGB()); |
| 210 pData->m_StrokeRGB = pParentData->m_FillRGB; | 206 m_InitialStates.m_ColorState.GetMutableStrokeColor()->Copy( |
| 211 pData->m_StrokeColor.Copy(&pParentData->m_StrokeColor); | 207 pParentState->m_InitialStates.m_ColorState.GetStrokeColor()); |
| 212 } | 208 } |
| 213 } | 209 } |
| 214 } else { | 210 } else { |
| 215 m_InitialStates.DefaultStates(); | 211 m_InitialStates.DefaultStates(); |
| 216 } | 212 } |
| 217 m_pImageRenderer.reset(); | 213 m_pImageRenderer.reset(); |
| 218 m_Transparency = transparency; | 214 m_Transparency = transparency; |
| 219 return TRUE; | 215 return TRUE; |
| 220 } | 216 } |
| 221 void CPDF_RenderStatus::RenderObjectList( | 217 void CPDF_RenderStatus::RenderObjectList( |
| (...skipping 683 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 905 CFX_FxgeDevice device; | 901 CFX_FxgeDevice device; |
| 906 device.Attach(pBuffer, false, nullptr, false); | 902 device.Attach(pBuffer, false, nullptr, false); |
| 907 | 903 |
| 908 FX_RECT rect(0, 0, device.GetWidth(), device.GetHeight()); | 904 FX_RECT rect(0, 0, device.GetWidth(), device.GetHeight()); |
| 909 device.FillRect(&rect, 0xffffffff); | 905 device.FillRect(&rect, 0xffffffff); |
| 910 Render(&device, pObj, pOptions, pFinalMatrix); | 906 Render(&device, pObj, pOptions, pFinalMatrix); |
| 911 } | 907 } |
| 912 CPDF_GraphicStates* CPDF_RenderStatus::CloneObjStates( | 908 CPDF_GraphicStates* CPDF_RenderStatus::CloneObjStates( |
| 913 const CPDF_GraphicStates* pSrcStates, | 909 const CPDF_GraphicStates* pSrcStates, |
| 914 FX_BOOL bStroke) { | 910 FX_BOOL bStroke) { |
| 915 if (!pSrcStates) { | 911 if (!pSrcStates) |
| 916 return nullptr; | 912 return nullptr; |
| 917 } | 913 |
| 918 CPDF_GraphicStates* pStates = new CPDF_GraphicStates; | 914 CPDF_GraphicStates* pStates = new CPDF_GraphicStates; |
| 919 pStates->CopyStates(*pSrcStates); | 915 pStates->CopyStates(*pSrcStates); |
| 920 const CPDF_Color* pObjColor = bStroke | 916 const CPDF_Color* pObjColor = bStroke |
| 921 ? pSrcStates->m_ColorState.GetStrokeColor() | 917 ? pSrcStates->m_ColorState.GetStrokeColor() |
| 922 : pSrcStates->m_ColorState.GetFillColor(); | 918 : pSrcStates->m_ColorState.GetFillColor(); |
| 923 if (!pObjColor->IsNull()) { | 919 if (!pObjColor->IsNull()) { |
| 924 CPDF_ColorStateData* pColorData = pStates->m_ColorState.GetPrivateCopy(); | 920 pStates->m_ColorState.SetFillRGB( |
| 925 pColorData->m_FillRGB = | 921 bStroke ? pSrcStates->m_ColorState.GetStrokeRGB() |
| 926 bStroke ? pSrcStates->m_ColorState.GetObject()->m_StrokeRGB | 922 : pSrcStates->m_ColorState.GetFillRGB()); |
| 927 : pSrcStates->m_ColorState.GetObject()->m_FillRGB; | 923 pStates->m_ColorState.SetStrokeRGB(pStates->m_ColorState.GetFillRGB()); |
| 928 pColorData->m_StrokeRGB = pColorData->m_FillRGB; | |
| 929 } | 924 } |
| 930 return pStates; | 925 return pStates; |
| 931 } | 926 } |
| 932 | 927 |
| 933 CPDF_RenderContext::CPDF_RenderContext(CPDF_Page* pPage) | 928 CPDF_RenderContext::CPDF_RenderContext(CPDF_Page* pPage) |
| 934 : m_pDocument(pPage->m_pDocument), | 929 : m_pDocument(pPage->m_pDocument), |
| 935 m_pPageResources(pPage->m_pPageResources), | 930 m_pPageResources(pPage->m_pPageResources), |
| 936 m_pPageCache(pPage->GetRenderCache()) {} | 931 m_pPageCache(pPage->GetRenderCache()) {} |
| 937 | 932 |
| 938 CPDF_RenderContext::CPDF_RenderContext(CPDF_Document* pDoc, | 933 CPDF_RenderContext::CPDF_RenderContext(CPDF_Document* pDoc, |
| (...skipping 358 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1297 m_pDevice->StretchDIBits(m_pBitmapDevice->GetBitmap(), m_Rect.left, | 1292 m_pDevice->StretchDIBits(m_pBitmapDevice->GetBitmap(), m_Rect.left, |
| 1298 m_Rect.top, m_Rect.Width(), m_Rect.Height()); | 1293 m_Rect.top, m_Rect.Width(), m_Rect.Height()); |
| 1299 } | 1294 } |
| 1300 } | 1295 } |
| 1301 | 1296 |
| 1302 #if defined _SKIA_SUPPORT_ | 1297 #if defined _SKIA_SUPPORT_ |
| 1303 void CPDF_RenderStatus::DebugVerifyDeviceIsPreMultiplied() const { | 1298 void CPDF_RenderStatus::DebugVerifyDeviceIsPreMultiplied() const { |
| 1304 m_pDevice->DebugVerifyBitmapIsPreMultiplied(); | 1299 m_pDevice->DebugVerifyBitmapIsPreMultiplied(); |
| 1305 } | 1300 } |
| 1306 #endif | 1301 #endif |
| OLD | NEW |