Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(365)

Side by Side Diff: core/fpdfapi/fpdf_render/fpdf_render.cpp

Issue 2294553002: Revert "Use ->() in CPDF_ColorState" (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
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 const CPDF_ColorStateData* pColorData =
198 m_InitialStates.m_ColorState.GetObject(); 198 m_InitialStates.m_ColorState.GetObject();
199 const CPDF_ColorStateData* pParentData = 199 const CPDF_ColorStateData* pParentData =
200 pParentState->m_InitialStates.m_ColorState.GetObject(); 200 pParentState->m_InitialStates.m_ColorState.GetObject();
201 if (!pColorData || pColorData->GetFillColor()->IsNull()) { 201 if (!pColorData || pColorData->m_FillColor.IsNull()) {
202 m_InitialStates.m_ColorState.MakePrivateCopy(); 202 m_InitialStates.m_ColorState.MakePrivateCopy();
203 m_InitialStates.m_ColorState->SetFillRGB(pParentData->GetFillRGB()); 203 m_InitialStates.m_ColorState->m_FillRGB = pParentData->m_FillRGB;
204 m_InitialStates.m_ColorState->GetFillColor()->Copy( 204 m_InitialStates.m_ColorState->m_FillColor.Copy(
205 pParentData->GetFillColor()); 205 &pParentData->m_FillColor);
206 } 206 }
207 if (!pColorData || pColorData->GetStrokeColor()->IsNull()) { 207 if (!pColorData || pColorData->m_StrokeColor.IsNull()) {
208 m_InitialStates.m_ColorState.MakePrivateCopy(); 208 m_InitialStates.m_ColorState.MakePrivateCopy();
209 m_InitialStates.m_ColorState->SetStrokeRGB(pParentData->GetFillRGB()); 209 m_InitialStates.m_ColorState->m_StrokeRGB = pParentData->m_FillRGB;
210 m_InitialStates.m_ColorState->GetStrokeColor()->Copy( 210 m_InitialStates.m_ColorState->m_StrokeColor.Copy(
211 pParentData->GetStrokeColor()); 211 &pParentData->m_StrokeColor);
212 } 212 }
213 } 213 }
214 } else { 214 } else {
215 m_InitialStates.DefaultStates(); 215 m_InitialStates.DefaultStates();
216 } 216 }
217 m_pImageRenderer.reset(); 217 m_pImageRenderer.reset();
218 m_Transparency = transparency; 218 m_Transparency = transparency;
219 return TRUE; 219 return TRUE;
220 } 220 }
221 void CPDF_RenderStatus::RenderObjectList( 221 void CPDF_RenderStatus::RenderObjectList(
(...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after
507 ASSERT(pObj); 507 ASSERT(pObj);
508 CPDF_DocRenderData* pDocCache = m_pContext->GetDocument()->GetRenderData(); 508 CPDF_DocRenderData* pDocCache = m_pContext->GetDocument()->GetRenderData();
509 return pDocCache ? pDocCache->GetTransferFunc(pObj) : nullptr; 509 return pDocCache ? pDocCache->GetTransferFunc(pObj) : nullptr;
510 } 510 }
511 FX_ARGB CPDF_RenderStatus::GetFillArgb(const CPDF_PageObject* pObj, 511 FX_ARGB CPDF_RenderStatus::GetFillArgb(const CPDF_PageObject* pObj,
512 FX_BOOL bType3) const { 512 FX_BOOL bType3) const {
513 const CPDF_ColorStateData* pColorData = pObj->m_ColorState.GetObject(); 513 const CPDF_ColorStateData* pColorData = pObj->m_ColorState.GetObject();
514 if (m_pType3Char && !bType3 && 514 if (m_pType3Char && !bType3 &&
515 (!m_pType3Char->m_bColored || 515 (!m_pType3Char->m_bColored ||
516 (m_pType3Char->m_bColored && 516 (m_pType3Char->m_bColored &&
517 (!pColorData || pColorData->GetFillColor()->IsNull())))) { 517 (!pColorData || pColorData->m_FillColor.IsNull())))) {
518 return m_T3FillColor; 518 return m_T3FillColor;
519 } 519 }
520 if (!pColorData || pColorData->GetFillColor()->IsNull()) { 520 if (!pColorData || pColorData->m_FillColor.IsNull()) {
521 pColorData = m_InitialStates.m_ColorState.GetObject(); 521 pColorData = m_InitialStates.m_ColorState.GetObject();
522 } 522 }
523 FX_COLORREF rgb = pColorData->GetFillRGB(); 523 FX_COLORREF rgb = pColorData->m_FillRGB;
524 if (rgb == (uint32_t)-1) { 524 if (rgb == (uint32_t)-1) {
525 return 0; 525 return 0;
526 } 526 }
527 const CPDF_GeneralStateData* pGeneralData = pObj->m_GeneralState.GetObject(); 527 const CPDF_GeneralStateData* pGeneralData = pObj->m_GeneralState.GetObject();
528 int alpha; 528 int alpha;
529 if (pGeneralData) { 529 if (pGeneralData) {
530 alpha = (int32_t)(pGeneralData->m_FillAlpha * 255); 530 alpha = (int32_t)(pGeneralData->m_FillAlpha * 255);
531 if (pGeneralData->m_pTR) { 531 if (pGeneralData->m_pTR) {
532 if (!pGeneralData->m_pTransferFunc) { 532 if (!pGeneralData->m_pTransferFunc) {
533 ((CPDF_GeneralStateData*)pGeneralData)->m_pTransferFunc = 533 ((CPDF_GeneralStateData*)pGeneralData)->m_pTransferFunc =
534 GetTransferFunc(pGeneralData->m_pTR); 534 GetTransferFunc(pGeneralData->m_pTR);
535 } 535 }
536 if (pGeneralData->m_pTransferFunc) { 536 if (pGeneralData->m_pTransferFunc) {
537 rgb = pGeneralData->m_pTransferFunc->TranslateColor(rgb); 537 rgb = pGeneralData->m_pTransferFunc->TranslateColor(rgb);
538 } 538 }
539 } 539 }
540 } else { 540 } else {
541 alpha = 255; 541 alpha = 255;
542 } 542 }
543 return m_Options.TranslateColor(ArgbEncode(alpha, rgb)); 543 return m_Options.TranslateColor(ArgbEncode(alpha, rgb));
544 } 544 }
545 FX_ARGB CPDF_RenderStatus::GetStrokeArgb(const CPDF_PageObject* pObj) const { 545 FX_ARGB CPDF_RenderStatus::GetStrokeArgb(const CPDF_PageObject* pObj) const {
546 const CPDF_ColorStateData* pColorData = pObj->m_ColorState.GetObject(); 546 const CPDF_ColorStateData* pColorData = pObj->m_ColorState.GetObject();
547 if (m_pType3Char && 547 if (m_pType3Char && (!m_pType3Char->m_bColored ||
548 (!m_pType3Char->m_bColored || 548 (m_pType3Char->m_bColored &&
549 (m_pType3Char->m_bColored && 549 (!pColorData || pColorData->m_StrokeColor.IsNull())))) {
550 (!pColorData || pColorData->GetStrokeColor()->IsNull())))) {
551 return m_T3FillColor; 550 return m_T3FillColor;
552 } 551 }
553 if (!pColorData || pColorData->GetStrokeColor()->IsNull()) { 552 if (!pColorData || pColorData->m_StrokeColor.IsNull()) {
554 pColorData = m_InitialStates.m_ColorState.GetObject(); 553 pColorData = m_InitialStates.m_ColorState.GetObject();
555 } 554 }
556 FX_COLORREF rgb = pColorData->GetStrokeRGB(); 555 FX_COLORREF rgb = pColorData->m_StrokeRGB;
557 if (rgb == (uint32_t)-1) { 556 if (rgb == (uint32_t)-1) {
558 return 0; 557 return 0;
559 } 558 }
560 const CPDF_GeneralStateData* pGeneralData = pObj->m_GeneralState.GetObject(); 559 const CPDF_GeneralStateData* pGeneralData = pObj->m_GeneralState.GetObject();
561 int alpha; 560 int alpha;
562 if (pGeneralData) { 561 if (pGeneralData) {
563 alpha = (int32_t)(pGeneralData->m_StrokeAlpha * 255); 562 alpha = (int32_t)(pGeneralData->m_StrokeAlpha * 255);
564 if (pGeneralData->m_pTR) { 563 if (pGeneralData->m_pTR) {
565 if (!pGeneralData->m_pTransferFunc) { 564 if (!pGeneralData->m_pTransferFunc) {
566 ((CPDF_GeneralStateData*)pGeneralData)->m_pTransferFunc = 565 ((CPDF_GeneralStateData*)pGeneralData)->m_pTransferFunc =
(...skipping 345 matching lines...) Expand 10 before | Expand all | Expand 10 after
912 } 911 }
913 CPDF_GraphicStates* CPDF_RenderStatus::CloneObjStates( 912 CPDF_GraphicStates* CPDF_RenderStatus::CloneObjStates(
914 const CPDF_GraphicStates* pSrcStates, 913 const CPDF_GraphicStates* pSrcStates,
915 FX_BOOL bStroke) { 914 FX_BOOL bStroke) {
916 if (!pSrcStates) { 915 if (!pSrcStates) {
917 return nullptr; 916 return nullptr;
918 } 917 }
919 CPDF_GraphicStates* pStates = new CPDF_GraphicStates; 918 CPDF_GraphicStates* pStates = new CPDF_GraphicStates;
920 pStates->CopyStates(*pSrcStates); 919 pStates->CopyStates(*pSrcStates);
921 const CPDF_Color* pObjColor = bStroke 920 const CPDF_Color* pObjColor = bStroke
922 ? pSrcStates->m_ColorState->GetStrokeColor() 921 ? pSrcStates->m_ColorState.GetStrokeColor()
923 : pSrcStates->m_ColorState->GetFillColor(); 922 : pSrcStates->m_ColorState.GetFillColor();
924 if (!pObjColor->IsNull()) { 923 if (!pObjColor->IsNull()) {
925 pStates->m_ColorState.MakePrivateCopy(); 924 pStates->m_ColorState.MakePrivateCopy();
926 pStates->m_ColorState->SetFillRGB( 925 pStates->m_ColorState->m_FillRGB =
927 bStroke ? pSrcStates->m_ColorState->GetStrokeRGB() 926 bStroke ? pSrcStates->m_ColorState->m_StrokeRGB
928 : pSrcStates->m_ColorState->GetFillRGB()); 927 : pSrcStates->m_ColorState->m_FillRGB;
929 pStates->m_ColorState->SetStrokeRGB(pStates->m_ColorState->GetFillRGB()); 928 pStates->m_ColorState->m_StrokeRGB = pStates->m_ColorState->m_FillRGB;
930 } 929 }
931 return pStates; 930 return pStates;
932 } 931 }
933 932
934 CPDF_RenderContext::CPDF_RenderContext(CPDF_Page* pPage) 933 CPDF_RenderContext::CPDF_RenderContext(CPDF_Page* pPage)
935 : m_pDocument(pPage->m_pDocument), 934 : m_pDocument(pPage->m_pDocument),
936 m_pPageResources(pPage->m_pPageResources), 935 m_pPageResources(pPage->m_pPageResources),
937 m_pPageCache(pPage->GetRenderCache()) {} 936 m_pPageCache(pPage->GetRenderCache()) {}
938 937
939 CPDF_RenderContext::CPDF_RenderContext(CPDF_Document* pDoc, 938 CPDF_RenderContext::CPDF_RenderContext(CPDF_Document* pDoc,
(...skipping 358 matching lines...) Expand 10 before | Expand all | Expand 10 after
1298 m_pDevice->StretchDIBits(m_pBitmapDevice->GetBitmap(), m_Rect.left, 1297 m_pDevice->StretchDIBits(m_pBitmapDevice->GetBitmap(), m_Rect.left,
1299 m_Rect.top, m_Rect.Width(), m_Rect.Height()); 1298 m_Rect.top, m_Rect.Width(), m_Rect.Height());
1300 } 1299 }
1301 } 1300 }
1302 1301
1303 #if defined _SKIA_SUPPORT_ 1302 #if defined _SKIA_SUPPORT_
1304 void CPDF_RenderStatus::DebugVerifyDeviceIsPreMultiplied() const { 1303 void CPDF_RenderStatus::DebugVerifyDeviceIsPreMultiplied() const {
1305 m_pDevice->DebugVerifyBitmapIsPreMultiplied(); 1304 m_pDevice->DebugVerifyBitmapIsPreMultiplied();
1306 } 1305 }
1307 #endif 1306 #endif
OLDNEW
« no previous file with comments | « core/fpdfapi/fpdf_page/fpdf_page_parser_old.cpp ('k') | core/fpdfapi/fpdf_render/fpdf_render_image.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698