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 "public/fpdf_transformpage.h" | 7 #include "public/fpdf_transformpage.h" |
8 | 8 |
9 #include "core/fpdfapi/fpdf_page/include/cpdf_clippath.h" | 9 #include "core/fpdfapi/fpdf_page/include/cpdf_clippath.h" |
10 #include "core/fpdfapi/fpdf_page/include/cpdf_page.h" | 10 #include "core/fpdfapi/fpdf_page/include/cpdf_page.h" |
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
212 // object is already transformed. | 212 // object is already transformed. |
213 if (!pPageObj->IsShading()) | 213 if (!pPageObj->IsShading()) |
214 pPageObj->TransformClipPath(matrix); | 214 pPageObj->TransformClipPath(matrix); |
215 pPageObj->TransformGeneralState(matrix); | 215 pPageObj->TransformGeneralState(matrix); |
216 } | 216 } |
217 | 217 |
218 DLLEXPORT FPDF_CLIPPATH STDCALL FPDF_CreateClipPath(float left, | 218 DLLEXPORT FPDF_CLIPPATH STDCALL FPDF_CreateClipPath(float left, |
219 float bottom, | 219 float bottom, |
220 float right, | 220 float right, |
221 float top) { | 221 float top) { |
| 222 CPDF_Path Path; |
| 223 Path.AppendRect(left, bottom, right, top); |
| 224 |
222 CPDF_ClipPath* pNewClipPath = new CPDF_ClipPath(); | 225 CPDF_ClipPath* pNewClipPath = new CPDF_ClipPath(); |
223 pNewClipPath->GetPrivateCopy(); | 226 pNewClipPath->GetPrivateCopy(); |
224 CPDF_Path Path; | |
225 Path.GetPrivateCopy(); | |
226 Path.AppendRect(left, bottom, right, top); | |
227 pNewClipPath->AppendPath(Path, FXFILL_ALTERNATE, FALSE); | 227 pNewClipPath->AppendPath(Path, FXFILL_ALTERNATE, FALSE); |
228 return pNewClipPath; | 228 return pNewClipPath; |
229 } | 229 } |
230 | 230 |
231 DLLEXPORT void STDCALL FPDF_DestroyClipPath(FPDF_CLIPPATH clipPath) { | 231 DLLEXPORT void STDCALL FPDF_DestroyClipPath(FPDF_CLIPPATH clipPath) { |
232 delete (CPDF_ClipPath*)clipPath; | 232 delete (CPDF_ClipPath*)clipPath; |
233 } | 233 } |
234 | 234 |
235 void OutputPath(CFX_ByteTextBuf& buf, CPDF_Path path) { | 235 void OutputPath(CFX_ByteTextBuf& buf, CPDF_Path path) { |
236 const CFX_PathData* pPathData = path.GetObject(); | 236 const CFX_PathData* pPathData = path.GetObject(); |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
326 } else if (pDirectObj->IsStream()) { | 326 } else if (pDirectObj->IsStream()) { |
327 pContentArray = new CPDF_Array(); | 327 pContentArray = new CPDF_Array(); |
328 pContentArray->AddReference(pDoc, pStream->GetObjNum()); | 328 pContentArray->AddReference(pDoc, pStream->GetObjNum()); |
329 pContentArray->AddReference(pDoc, pDirectObj->GetObjNum()); | 329 pContentArray->AddReference(pDoc, pDirectObj->GetObjNum()); |
330 pPageDic->SetAtReference("Contents", pDoc, | 330 pPageDic->SetAtReference("Contents", pDoc, |
331 pDoc->AddIndirectObject(pContentArray)); | 331 pDoc->AddIndirectObject(pContentArray)); |
332 } | 332 } |
333 } | 333 } |
334 } | 334 } |
335 } | 335 } |
OLD | NEW |