diff options
Diffstat (limited to 'xfa/fxgraphics/cagg_graphics.cpp')
-rw-r--r-- | xfa/fxgraphics/cagg_graphics.cpp | 32 |
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; +} |