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

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

Issue 2311313002: Make ColorStateData private to CPDF_ColorState (Closed)
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
« no previous file with comments | « core/fpdfapi/fpdf_page/cpdf_colorstatedata.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
11 #include "core/fpdfapi/fpdf_font/cpdf_type3char.h" 11 #include "core/fpdfapi/fpdf_font/cpdf_type3char.h"
12 #include "core/fpdfapi/fpdf_font/cpdf_type3font.h" 12 #include "core/fpdfapi/fpdf_font/cpdf_type3font.h"
13 #include "core/fpdfapi/fpdf_page/cpdf_colorstatedata.h"
14 #include "core/fpdfapi/fpdf_page/cpdf_graphicstates.h" 13 #include "core/fpdfapi/fpdf_page/cpdf_graphicstates.h"
15 #include "core/fpdfapi/fpdf_page/include/cpdf_form.h" 14 #include "core/fpdfapi/fpdf_page/include/cpdf_form.h"
16 #include "core/fpdfapi/fpdf_page/include/cpdf_formobject.h" 15 #include "core/fpdfapi/fpdf_page/include/cpdf_formobject.h"
17 #include "core/fpdfapi/fpdf_page/include/cpdf_image.h" 16 #include "core/fpdfapi/fpdf_page/include/cpdf_image.h"
18 #include "core/fpdfapi/fpdf_page/include/cpdf_imageobject.h" 17 #include "core/fpdfapi/fpdf_page/include/cpdf_imageobject.h"
19 #include "core/fpdfapi/fpdf_page/include/cpdf_page.h" 18 #include "core/fpdfapi/fpdf_page/include/cpdf_page.h"
20 #include "core/fpdfapi/fpdf_page/include/cpdf_pageobject.h" 19 #include "core/fpdfapi/fpdf_page/include/cpdf_pageobject.h"
21 #include "core/fpdfapi/fpdf_page/include/cpdf_pathobject.h" 20 #include "core/fpdfapi/fpdf_page/include/cpdf_pathobject.h"
22 #include "core/fpdfapi/fpdf_page/include/cpdf_textobject.h" 21 #include "core/fpdfapi/fpdf_page/include/cpdf_textobject.h"
23 #include "core/fpdfapi/fpdf_page/pageint.h" 22 #include "core/fpdfapi/fpdf_page/pageint.h"
(...skipping 479 matching lines...) Expand 10 before | Expand all | Expand 10 after
503 } 502 }
504 503
505 CPDF_TransferFunc* CPDF_RenderStatus::GetTransferFunc(CPDF_Object* pObj) const { 504 CPDF_TransferFunc* CPDF_RenderStatus::GetTransferFunc(CPDF_Object* pObj) const {
506 ASSERT(pObj); 505 ASSERT(pObj);
507 CPDF_DocRenderData* pDocCache = m_pContext->GetDocument()->GetRenderData(); 506 CPDF_DocRenderData* pDocCache = m_pContext->GetDocument()->GetRenderData();
508 return pDocCache ? pDocCache->GetTransferFunc(pObj) : nullptr; 507 return pDocCache ? pDocCache->GetTransferFunc(pObj) : nullptr;
509 } 508 }
510 509
511 FX_ARGB CPDF_RenderStatus::GetFillArgb(CPDF_PageObject* pObj, 510 FX_ARGB CPDF_RenderStatus::GetFillArgb(CPDF_PageObject* pObj,
512 FX_BOOL bType3) const { 511 FX_BOOL bType3) const {
513 const CPDF_ColorStateData* pColorData = pObj->m_ColorState.GetObject(); 512 const CPDF_ColorState* pColorState = &pObj->m_ColorState;
514 if (m_pType3Char && !bType3 && 513 if (m_pType3Char && !bType3 &&
515 (!m_pType3Char->m_bColored || 514 (!m_pType3Char->m_bColored ||
516 (m_pType3Char->m_bColored && 515 (m_pType3Char->m_bColored &&
517 (!pColorData || pColorData->m_FillColor.IsNull())))) { 516 (!*pColorState || pColorState->GetFillColor()->IsNull())))) {
518 return m_T3FillColor; 517 return m_T3FillColor;
519 } 518 }
520 if (!pColorData || pColorData->m_FillColor.IsNull()) { 519 if (!*pColorState || pColorState->GetFillColor()->IsNull())
521 pColorData = m_InitialStates.m_ColorState.GetObject(); 520 pColorState = &m_InitialStates.m_ColorState;
522 } 521
523 FX_COLORREF rgb = pColorData->m_FillRGB; 522 FX_COLORREF rgb = pColorState->GetFillRGB();
524 if (rgb == (uint32_t)-1) { 523 if (rgb == (uint32_t)-1)
525 return 0; 524 return 0;
526 } 525
527 int32_t alpha = 526 int32_t alpha =
528 static_cast<int32_t>((pObj->m_GeneralState.GetFillAlpha() * 255)); 527 static_cast<int32_t>((pObj->m_GeneralState.GetFillAlpha() * 255));
529 if (pObj->m_GeneralState.GetTR()) { 528 if (pObj->m_GeneralState.GetTR()) {
530 if (!pObj->m_GeneralState.GetTransferFunc()) { 529 if (!pObj->m_GeneralState.GetTransferFunc()) {
531 pObj->m_GeneralState.SetTransferFunc( 530 pObj->m_GeneralState.SetTransferFunc(
532 GetTransferFunc(pObj->m_GeneralState.GetTR())); 531 GetTransferFunc(pObj->m_GeneralState.GetTR()));
533 } 532 }
534 if (pObj->m_GeneralState.GetTransferFunc()) 533 if (pObj->m_GeneralState.GetTransferFunc())
535 rgb = pObj->m_GeneralState.GetTransferFunc()->TranslateColor(rgb); 534 rgb = pObj->m_GeneralState.GetTransferFunc()->TranslateColor(rgb);
536 } 535 }
537 return m_Options.TranslateColor(ArgbEncode(alpha, rgb)); 536 return m_Options.TranslateColor(ArgbEncode(alpha, rgb));
538 } 537 }
539 538
540 FX_ARGB CPDF_RenderStatus::GetStrokeArgb(CPDF_PageObject* pObj) const { 539 FX_ARGB CPDF_RenderStatus::GetStrokeArgb(CPDF_PageObject* pObj) const {
541 const CPDF_ColorStateData* pColorData = pObj->m_ColorState.GetObject(); 540 const CPDF_ColorState* pColorState = &pObj->m_ColorState;
542 if (m_pType3Char && (!m_pType3Char->m_bColored || 541 if (m_pType3Char &&
543 (m_pType3Char->m_bColored && 542 (!m_pType3Char->m_bColored ||
544 (!pColorData || pColorData->m_StrokeColor.IsNull())))) { 543 (m_pType3Char->m_bColored &&
544 (!*pColorState || pColorState->GetStrokeColor()->IsNull())))) {
545 return m_T3FillColor; 545 return m_T3FillColor;
546 } 546 }
547 if (!pColorData || pColorData->m_StrokeColor.IsNull()) { 547 if (!*pColorState || pColorState->GetStrokeColor()->IsNull())
548 pColorData = m_InitialStates.m_ColorState.GetObject(); 548 pColorState = &m_InitialStates.m_ColorState;
549 } 549
550 FX_COLORREF rgb = pColorData->m_StrokeRGB; 550 FX_COLORREF rgb = pColorState->GetStrokeRGB();
551 if (rgb == (uint32_t)-1) { 551 if (rgb == (uint32_t)-1)
552 return 0; 552 return 0;
553 } 553
554 int32_t alpha = static_cast<int32_t>(pObj->m_GeneralState.GetStrokeAlpha() * 554 int32_t alpha = static_cast<int32_t>(pObj->m_GeneralState.GetStrokeAlpha() *
555 255); // not rounded. 555 255); // not rounded.
556 if (pObj->m_GeneralState.GetTR()) { 556 if (pObj->m_GeneralState.GetTR()) {
557 if (!pObj->m_GeneralState.GetTransferFunc()) { 557 if (!pObj->m_GeneralState.GetTransferFunc()) {
558 pObj->m_GeneralState.SetTransferFunc( 558 pObj->m_GeneralState.SetTransferFunc(
559 GetTransferFunc(pObj->m_GeneralState.GetTR())); 559 GetTransferFunc(pObj->m_GeneralState.GetTR()));
560 } 560 }
561 if (pObj->m_GeneralState.GetTransferFunc()) 561 if (pObj->m_GeneralState.GetTransferFunc())
562 rgb = pObj->m_GeneralState.GetTransferFunc()->TranslateColor(rgb); 562 rgb = pObj->m_GeneralState.GetTransferFunc()->TranslateColor(rgb);
563 } 563 }
(...skipping 713 matching lines...) Expand 10 before | Expand all | Expand 10 after
1277 m_pDevice->StretchDIBits(m_pBitmapDevice->GetBitmap(), m_Rect.left, 1277 m_pDevice->StretchDIBits(m_pBitmapDevice->GetBitmap(), m_Rect.left,
1278 m_Rect.top, m_Rect.Width(), m_Rect.Height()); 1278 m_Rect.top, m_Rect.Width(), m_Rect.Height());
1279 } 1279 }
1280 } 1280 }
1281 1281
1282 #if defined _SKIA_SUPPORT_ 1282 #if defined _SKIA_SUPPORT_
1283 void CPDF_RenderStatus::DebugVerifyDeviceIsPreMultiplied() const { 1283 void CPDF_RenderStatus::DebugVerifyDeviceIsPreMultiplied() const {
1284 m_pDevice->DebugVerifyBitmapIsPreMultiplied(); 1284 m_pDevice->DebugVerifyBitmapIsPreMultiplied();
1285 } 1285 }
1286 #endif 1286 #endif
OLDNEW
« no previous file with comments | « core/fpdfapi/fpdf_page/cpdf_colorstatedata.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698