OLD | NEW |
(Empty) | |
| 1 // Copyright 2016 PDFium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. |
| 4 |
| 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
| 6 |
| 7 #include "core/fpdfapi/fpdf_page/cpdf_graphstate.h" |
| 8 |
| 9 #include "core/fpdfapi/fpdf_parser/include/cpdf_array.h" |
| 10 |
| 11 CPDF_GraphState::CPDF_GraphState() {} |
| 12 |
| 13 CPDF_GraphState::CPDF_GraphState(const CPDF_GraphState& that) |
| 14 : m_Ref(that.m_Ref) {} |
| 15 |
| 16 CPDF_GraphState::~CPDF_GraphState() {} |
| 17 |
| 18 void CPDF_GraphState::Emplace() { |
| 19 m_Ref.Emplace(); |
| 20 } |
| 21 |
| 22 void CPDF_GraphState::SetLineDash(CPDF_Array* pArray, |
| 23 FX_FLOAT phase, |
| 24 FX_FLOAT scale) { |
| 25 CFX_GraphStateData* pData = m_Ref.GetPrivateCopy(); |
| 26 pData->m_DashPhase = phase * scale; |
| 27 pData->SetDashCount(static_cast<int>(pArray->GetCount())); |
| 28 for (size_t i = 0; i < pArray->GetCount(); i++) |
| 29 pData->m_DashArray[i] = pArray->GetNumberAt(i) * scale; |
| 30 } |
| 31 |
| 32 FX_FLOAT CPDF_GraphState::GetLineWidth() const { |
| 33 return m_Ref.GetObject()->m_LineWidth; |
| 34 } |
| 35 |
| 36 void CPDF_GraphState::SetLineWidth(FX_FLOAT width) { |
| 37 m_Ref.GetPrivateCopy()->m_LineWidth = width; |
| 38 } |
| 39 |
| 40 CFX_GraphStateData::LineCap CPDF_GraphState::GetLineCap() const { |
| 41 return m_Ref.GetObject()->m_LineCap; |
| 42 } |
| 43 void CPDF_GraphState::SetLineCap(CFX_GraphStateData::LineCap cap) { |
| 44 m_Ref.GetPrivateCopy()->m_LineCap = cap; |
| 45 } |
| 46 |
| 47 CFX_GraphStateData::LineJoin CPDF_GraphState::GetLineJoin() const { |
| 48 return m_Ref.GetObject()->m_LineJoin; |
| 49 } |
| 50 |
| 51 void CPDF_GraphState::SetLineJoin(CFX_GraphStateData::LineJoin join) { |
| 52 m_Ref.GetPrivateCopy()->m_LineJoin = join; |
| 53 } |
| 54 |
| 55 FX_FLOAT CPDF_GraphState::GetMiterLimit() const { |
| 56 return m_Ref.GetObject()->m_MiterLimit; |
| 57 } |
| 58 |
| 59 void CPDF_GraphState::SetMiterLimit(FX_FLOAT limit) { |
| 60 m_Ref.GetPrivateCopy()->m_MiterLimit = limit; |
| 61 } |
OLD | NEW |