Index: xfa/fxgraphics/cfx_pattern.cpp |
diff --git a/xfa/fxgraphics/cfx_pattern.cpp b/xfa/fxgraphics/cfx_pattern.cpp |
new file mode 100644 |
index 0000000000000000000000000000000000000000..cd0fd4e36e5fd765571ba7caa6e75f8c518ffe16 |
--- /dev/null |
+++ b/xfa/fxgraphics/cfx_pattern.cpp |
@@ -0,0 +1,57 @@ |
+// Copyright 2016 PDFium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
+ |
+#include "xfa/fxgraphics/cfx_pattern.h" |
+ |
+CFX_Pattern::CFX_Pattern() : m_type(FX_PATTERN_None) { |
+ m_matrix.SetIdentity(); |
+} |
+ |
+CFX_Pattern::~CFX_Pattern() { |
+ m_type = FX_PATTERN_None; |
+} |
+ |
+FX_ERR CFX_Pattern::Create(CFX_DIBitmap* bitmap, |
+ const FX_FLOAT xStep, |
+ const FX_FLOAT yStep, |
+ CFX_Matrix* matrix) { |
+ if (!bitmap) |
+ return FX_ERR_Parameter_Invalid; |
+ if (m_type != FX_PATTERN_None) |
+ return FX_ERR_Property_Invalid; |
+ |
+ m_type = FX_PATTERN_Bitmap; |
+ m_bitmapInfo.bitmap = bitmap; |
+ m_bitmapInfo.x1Step = xStep; |
+ m_bitmapInfo.y1Step = yStep; |
+ if (matrix) { |
+ m_matrix.Set(matrix->a, matrix->b, matrix->c, matrix->d, matrix->e, |
+ matrix->f); |
+ } |
+ return FX_ERR_Succeeded; |
+} |
+ |
+FX_ERR CFX_Pattern::Create(FX_HatchStyle hatchStyle, |
+ const FX_ARGB foreArgb, |
+ const FX_ARGB backArgb, |
+ CFX_Matrix* matrix) { |
+ if (hatchStyle < FX_HATCHSTYLE_Horizontal || |
+ hatchStyle > FX_HATCHSTYLE_SolidDiamond) { |
+ return FX_ERR_Parameter_Invalid; |
+ } |
+ if (m_type != FX_PATTERN_None) { |
+ return FX_ERR_Property_Invalid; |
+ } |
+ m_type = FX_PATTERN_Hatch; |
+ m_hatchInfo.hatchStyle = hatchStyle; |
+ m_hatchInfo.foreArgb = foreArgb; |
+ m_hatchInfo.backArgb = backArgb; |
+ if (matrix) { |
+ m_matrix.Set(matrix->a, matrix->b, matrix->c, matrix->d, matrix->e, |
+ matrix->f); |
+ } |
+ return FX_ERR_Succeeded; |
+} |