Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
cfx_defaultrenderdevice.cpp
Go to the documentation of this file.
1
// Copyright 2022 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
#
include
"core/fxge/cfx_defaultrenderdevice.h"
6
7
#
include
<
utility
>
8
9
#
include
"core/fxge/agg/cfx_agg_devicedriver.h"
10
#
include
"core/fxge/dib/cfx_dibitmap.h"
11
12
#
if
defined
(
PDF_USE_SKIA
)
13
#
include
"core/fxge/skia/fx_skia_device.h"
14
#
endif
15
16
namespace
{
17
18
// When build variant is Skia then it is assumed as the default, but might be
19
// overridden at runtime.
20
#
if
defined
(
PDF_USE_SKIA
)
21
CFX_DefaultRenderDevice::RendererType g_renderer_type =
22
CFX_DefaultRenderDevice::kDefaultRenderer;
23
#
endif
24
25
}
// namespace
26
27
// static
28
bool
CFX_DefaultRenderDevice::
UseSkiaRenderer
() {
29
#
if
defined
(
PDF_USE_SKIA
)
30
return
g_renderer_type == RendererType::kSkia;
31
#
else
32
return
false
;
33
#
endif
34
}
35
36
#
if
defined
(
PDF_USE_SKIA
)
37
// static
38
void
CFX_DefaultRenderDevice::SetRendererType(RendererType renderer_type) {
39
g_renderer_type = renderer_type;
40
}
41
#
endif
42
43
CFX_DefaultRenderDevice::
CFX_DefaultRenderDevice
() =
default
;
44
45
CFX_DefaultRenderDevice::~
CFX_DefaultRenderDevice
() =
default
;
46
47
bool
CFX_DefaultRenderDevice::
Attach
(
RetainPtr
<CFX_DIBitmap> pBitmap) {
48
return
AttachWithRgbByteOrder
(
std
::move(pBitmap)
,
false
)
;
49
}
50
51
bool
CFX_DefaultRenderDevice::
AttachWithRgbByteOrder
(
52
RetainPtr
<CFX_DIBitmap> pBitmap,
53
bool
bRgbByteOrder) {
54
return
AttachImpl(
std
::move(pBitmap), bRgbByteOrder,
nullptr
,
false
);
55
}
56
57
bool
CFX_DefaultRenderDevice::
AttachWithBackdropAndGroupKnockout
(
58
RetainPtr
<CFX_DIBitmap> pBitmap,
59
RetainPtr
<CFX_DIBitmap> pBackdropBitmap,
60
bool
bGroupKnockout) {
61
return
AttachImpl(
std
::move(pBitmap),
false
,
std
::move(pBackdropBitmap),
62
bGroupKnockout);
63
}
64
65
bool
CFX_DefaultRenderDevice::CFX_DefaultRenderDevice::AttachImpl(
66
RetainPtr
<CFX_DIBitmap> pBitmap,
67
bool
bRgbByteOrder,
68
RetainPtr
<CFX_DIBitmap> pBackdropBitmap,
69
bool
bGroupKnockout) {
70
#
if
defined
(
PDF_USE_SKIA
)
71
if
(UseSkiaRenderer()) {
72
return
AttachSkiaImpl(std::move(pBitmap), bRgbByteOrder,
73
std::move(pBackdropBitmap), bGroupKnockout);
74
}
75
#
endif
76
return
AttachAggImpl(
std
::move(pBitmap), bRgbByteOrder,
77
std
::move(pBackdropBitmap), bGroupKnockout);
78
}
79
80
bool
CFX_DefaultRenderDevice::
Create
(
int
width,
81
int
height,
82
FXDIB_Format
format) {
83
return
CreateWithBackdrop
(width, height, format,
nullptr
);
84
}
85
86
bool
CFX_DefaultRenderDevice::
CreateWithBackdrop
(
87
int
width,
88
int
height,
89
FXDIB_Format
format,
90
RetainPtr
<CFX_DIBitmap> backdrop) {
91
#
if
defined
(
PDF_USE_SKIA
)
92
if
(UseSkiaRenderer()) {
93
return
CreateSkia(width, height, format, backdrop);
94
}
95
#
endif
96
return
CreateAgg(width, height, format, backdrop);
97
}
98
99
void
CFX_DefaultRenderDevice::
Clear
(uint32_t color) {
100
#
if
defined
(
PDF_USE_SKIA
)
101
if
(UseSkiaRenderer()) {
102
static_cast
<CFX_SkiaDeviceDriver*>(GetDeviceDriver())->Clear(color);
103
return
;
104
}
105
#
endif
106
static_cast
<
pdfium
::CFX_AggDeviceDriver*>(
GetDeviceDriver
())
->
Clear
(
color
)
;
107
}
CFX_DefaultRenderDevice::UseSkiaRenderer
static bool UseSkiaRenderer()
Definition
cfx_defaultrenderdevice.cpp:28
CFX_DefaultRenderDevice::Attach
bool Attach(RetainPtr< CFX_DIBitmap > pBitmap)
Definition
cfx_defaultrenderdevice.cpp:47
CFX_DefaultRenderDevice::~CFX_DefaultRenderDevice
~CFX_DefaultRenderDevice() override
CFX_DefaultRenderDevice::AttachWithBackdropAndGroupKnockout
bool AttachWithBackdropAndGroupKnockout(RetainPtr< CFX_DIBitmap > pBitmap, RetainPtr< CFX_DIBitmap > pBackdropBitmap, bool bGroupKnockout)
Definition
cfx_defaultrenderdevice.cpp:57
CFX_DefaultRenderDevice::AttachWithRgbByteOrder
bool AttachWithRgbByteOrder(RetainPtr< CFX_DIBitmap > pBitmap, bool bRgbByteOrder)
Definition
cfx_defaultrenderdevice.cpp:51
CFX_DefaultRenderDevice::CreateWithBackdrop
bool CreateWithBackdrop(int width, int height, FXDIB_Format format, RetainPtr< CFX_DIBitmap > backdrop)
Definition
cfx_defaultrenderdevice.cpp:86
CFX_DefaultRenderDevice::Create
bool Create(int width, int height, FXDIB_Format format)
Definition
cfx_defaultrenderdevice.cpp:80
CFX_DefaultRenderDevice::CFX_DefaultRenderDevice
CFX_DefaultRenderDevice()
CFX_DefaultRenderDevice::Clear
void Clear(uint32_t color)
Definition
cfx_defaultrenderdevice.cpp:99
CFX_RenderDevice::GetDeviceDriver
RenderDeviceDriverIface * GetDeviceDriver() const
Definition
cfx_renderdevice.h:213
fxcrt::RetainPtr
Definition
retain_ptr.h:28
pdfium::CFDETextOutLargeBitmapTest
Definition
cfde_textout_unittest.cpp:117
pdfium::CFX_AggDeviceDriver::Clear
void Clear(uint32_t color)
Definition
cfx_agg_devicedriver.cpp:1105
FXDIB_Format
FXDIB_Format
Definition
fx_dib.h:21
std
[33]
Definition
src_corelib_tools_qhash.cpp:421
qtwebengine
src
3rdparty
chromium
third_party
pdfium
core
fxge
cfx_defaultrenderdevice.cpp
Generated on
for Qt by
1.18.0