Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
cxfa_imagerenderer.cpp
Go to the documentation of this file.
1
// Copyright 2018 The PDFium Authors
2
// Use of this source code is governed by a BSD-style license that can be
3
// found in the LICENSE file.
4
5
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6
7
#
include
"xfa/fxfa/cxfa_imagerenderer.h"
8
9
#
include
<
utility
>
10
11
#
include
"core/fxcrt/check.h"
12
#
include
"core/fxcrt/check_op.h"
13
#
include
"core/fxge/agg/cfx_agg_imagerenderer.h"
14
#
include
"core/fxge/cfx_renderdevice.h"
15
#
include
"core/fxge/dib/cfx_dibitmap.h"
16
17
CXFA_ImageRenderer
::
CXFA_ImageRenderer
(
CFX_RenderDevice
* device,
18
RetainPtr
<CFX_DIBitmap> bitmap,
19
const
CFX_Matrix
& image_to_device)
20
: m_ImageMatrix
(
image_to_device
)
,
21
m_pDevice
(
device
),
22
m_pBitmap
(
std
::
move
(
bitmap
)) {
23
// Assume this always draws into CFX_DefaultRenderDevice.
24
CHECK
(m_pDevice);
25
CHECK
(m_pDevice->GetRenderCaps() &
FXRC_GET_BITS
);
26
CHECK
(m_pBitmap);
27
}
28
29
CXFA_ImageRenderer
::~
CXFA_ImageRenderer
() =
default
;
30
31
bool
CXFA_ImageRenderer
::
Start
() {
32
FXDIB_ResampleOptions
options;
33
options
.
bInterpolateBilinear
=
true
;
34
RenderDeviceDriverIface
::
StartResult
result = m_pDevice->StartDIBits(
35
m_pBitmap,
/*alpha=*/
1.0f,
/*argb=*/
0, m_ImageMatrix, options);
36
if
(result
.
result
==
RenderDeviceDriverIface
::
Result
::
kFailure
) {
37
return
false
;
38
}
39
40
CHECK_EQ
(result
.
result
,
RenderDeviceDriverIface
::
Result
::
kSuccess
);
41
m_DeviceHandle = std::move(result.agg_image_renderer);
42
if
(!m_DeviceHandle) {
43
return
false
;
44
}
45
46
m_State = State::kStarted;
47
return
true
;
48
}
49
50
bool
CXFA_ImageRenderer
::
Continue
() {
51
CHECK_EQ
(m_State, State::kStarted);
52
return
m_pDevice->ContinueDIBits(m_DeviceHandle.get(),
nullptr
);
53
}
CHECK_EQ
#define CHECK_EQ(x, y)
Definition
check_op.h:10
CFX_Matrix
Definition
fx_coordinates.h:440
CFX_Matrix::CFX_Matrix
CFX_Matrix(const CFX_Matrix &other)=default
CFX_RenderDevice
Definition
cfx_renderdevice.h:39
CXFA_ImageRenderer
Definition
cxfa_imagerenderer.h:20
CXFA_ImageRenderer::~CXFA_ImageRenderer
~CXFA_ImageRenderer()
CXFA_ImageRenderer::Continue
bool Continue()
Definition
cxfa_imagerenderer.cpp:50
CXFA_ImageRenderer::Start
bool Start()
Definition
cxfa_imagerenderer.cpp:31
CXFA_ImageRenderer::CXFA_ImageRenderer
CXFA_ImageRenderer(CFX_RenderDevice *device, RetainPtr< CFX_DIBitmap > bitmap, const CFX_Matrix &image_to_device)
Definition
cxfa_imagerenderer.cpp:17
RenderDeviceDriverIface
Definition
renderdevicedriver_iface.h:41
RenderDeviceDriverIface::Result
Result
Definition
renderdevicedriver_iface.h:43
RenderDeviceDriverIface::Result::kFailure
@ kFailure
Definition
renderdevicedriver_iface.h:44
RenderDeviceDriverIface::Result::kSuccess
@ kSuccess
Definition
renderdevicedriver_iface.h:45
fxcrt::RetainPtr
Definition
retain_ptr.h:28
CHECK
#define CHECK(cvref)
Definition
q23utility.cpp:14
FXRC_GET_BITS
#define FXRC_GET_BITS
Definition
render_defines.h:17
FXDIB_ResampleOptions
Definition
fx_dib.h:106
FXDIB_ResampleOptions::bInterpolateBilinear
bool bInterpolateBilinear
Definition
fx_dib.h:111
RenderDeviceDriverIface::StartResult
Definition
renderdevicedriver_iface.h:51
RenderDeviceDriverIface::StartResult::result
const Result result
Definition
renderdevicedriver_iface.h:56
qtwebengine
src
3rdparty
chromium
third_party
pdfium
xfa
fxfa
cxfa_imagerenderer.cpp
Generated on
for Qt by
1.14.0