diff options
Diffstat (limited to 'core/fxge/dib/cfx_dibextractor.cpp')
-rw-r--r-- | core/fxge/dib/cfx_dibextractor.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/core/fxge/dib/cfx_dibextractor.cpp b/core/fxge/dib/cfx_dibextractor.cpp new file mode 100644 index 0000000000..8de69e2e3b --- /dev/null +++ b/core/fxge/dib/cfx_dibextractor.cpp @@ -0,0 +1,27 @@ +// Copyright 2017 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 "core/fxge/dib/cfx_dibextractor.h" + +#include "core/fxge/dib/cfx_dibsource.h" + +CFX_DIBExtractor::CFX_DIBExtractor(const CFX_RetainPtr<CFX_DIBSource>& pSrc) { + if (!pSrc->GetBuffer()) { + m_pBitmap = pSrc->Clone(); + return; + } + CFX_RetainPtr<CFX_DIBSource> pOldSrc(pSrc); + m_pBitmap = pdfium::MakeRetain<CFX_DIBitmap>(); + if (!m_pBitmap->Create(pOldSrc->GetWidth(), pOldSrc->GetHeight(), + pOldSrc->GetFormat(), pOldSrc->GetBuffer())) { + m_pBitmap.Reset(); + return; + } + m_pBitmap->SetPalette(pOldSrc->GetPalette()); + m_pBitmap->SetAlphaMask(pOldSrc->m_pAlphaMask); +} + +CFX_DIBExtractor::~CFX_DIBExtractor() {} |