summaryrefslogtreecommitdiff
path: root/xfa/fxgraphics/cagg_graphics.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'xfa/fxgraphics/cagg_graphics.cpp')
-rw-r--r--xfa/fxgraphics/cagg_graphics.cpp32
1 files changed, 32 insertions, 0 deletions
diff --git a/xfa/fxgraphics/cagg_graphics.cpp b/xfa/fxgraphics/cagg_graphics.cpp
new file mode 100644
index 0000000000..4c9e41fea3
--- /dev/null
+++ b/xfa/fxgraphics/cagg_graphics.cpp
@@ -0,0 +1,32 @@
+// 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/cagg_graphics.h"
+
+CAGG_Graphics::CAGG_Graphics() : m_owner(nullptr) {}
+
+FX_ERR CAGG_Graphics::Create(CFX_Graphics* owner,
+ int32_t width,
+ int32_t height,
+ FXDIB_Format format) {
+ if (owner->m_renderDevice)
+ return FX_ERR_Parameter_Invalid;
+ if (m_owner)
+ return FX_ERR_Property_Invalid;
+
+ CFX_FxgeDevice* device = new CFX_FxgeDevice;
+ device->Create(width, height, format);
+ m_owner = owner;
+ m_owner->m_renderDevice = device;
+ m_owner->m_renderDevice->GetBitmap()->Clear(0xFFFFFFFF);
+ return FX_ERR_Succeeded;
+}
+
+CAGG_Graphics::~CAGG_Graphics() {
+ if (m_owner->m_renderDevice)
+ delete (CFX_FxgeDevice*)m_owner->m_renderDevice;
+ m_owner = nullptr;
+}