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_imagetransformer.h
Go to the documentation of this file.
1
// Copyright 2017 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
#
ifndef
CORE_FXGE_DIB_CFX_IMAGETRANSFORMER_H_
8
#
define
CORE_FXGE_DIB_CFX_IMAGETRANSFORMER_H_
9
10
#
include
<
memory
>
11
12
#
include
"core/fxcrt/fx_coordinates.h"
13
#
include
"core/fxcrt/retain_ptr.h"
14
#
include
"core/fxcrt/unowned_ptr_exclusion.h"
15
#
include
"core/fxge/dib/cfx_bitmapstorer.h"
16
17
class
CFX_DIBBase
;
18
class
CFX_DIBitmap;
19
class
CFX_ImageStretcher
;
20
class
PauseIndicatorIface
;
21
22
class
CFX_ImageTransformer
{
23
public
:
24
struct
BilinearData
{
25
int
res_x
;
26
int
res_y
;
27
int
src_col_l
;
28
int
src_row_l
;
29
int
src_col_r
;
30
int
src_row_r
;
31
int
row_offset_l
;
32
int
row_offset_r
;
33
};
34
35
struct
CalcData
{
36
UNOWNED_PTR_EXCLUSION
CFX_DIBitmap*
bitmap
;
// POD struct.
37
const
CFX_Matrix
&
matrix
;
38
const
uint8_t*
buf
;
39
uint32_t
pitch
;
40
};
41
42
CFX_ImageTransformer
(
RetainPtr
<
const
CFX_DIBBase
> source,
43
const
CFX_Matrix
& matrix,
44
const
FXDIB_ResampleOptions
& options,
45
const
FX_RECT
* pClip);
46
~
CFX_ImageTransformer
();
47
48
bool
Continue
(
PauseIndicatorIface
* pPause);
49
50
const
FX_RECT
&
result
()
const
{
return
m_result; }
51
RetainPtr
<CFX_DIBitmap>
DetachBitmap
();
52
53
private
:
54
enum
class
StretchType {
55
kNone,
56
kNormal,
57
kRotate,
58
kOther,
59
};
60
61
void
ContinueRotate(
PauseIndicatorIface
* pPause);
62
void
ContinueOther(
PauseIndicatorIface
* pPause);
63
64
void
CalcAlpha(
const
CalcData
& calc_data);
65
void
CalcMono(
const
CalcData
& calc_data);
66
void
CalcColor(
const
CalcData
& calc_data,
67
FXDIB_Format
format,
68
int
src_bytes_per_pixel);
69
70
RetainPtr
<
const
CFX_DIBBase
>
const
m_pSrc;
71
const
CFX_Matrix
m_matrix;
72
FX_RECT
m_StretchClip;
73
FX_RECT
m_result;
74
CFX_Matrix
m_dest2stretch;
75
std::unique_ptr<CFX_ImageStretcher> m_Stretcher;
76
CFX_BitmapStorer m_Storer;
77
const
FXDIB_ResampleOptions
m_ResampleOptions;
78
StretchType m_type = StretchType::kNone;
79
};
80
81
#
endif
// CORE_FXGE_DIB_CFX_IMAGETRANSFORMER_H_
CFX_AggClipRgn
Definition
cfx_agg_cliprgn.h:15
CFX_AggImageRenderer
Definition
cfx_agg_imagerenderer.h:23
CFX_AggImageRenderer::Continue
bool Continue(PauseIndicatorIface *pPause)
Definition
cfx_agg_imagerenderer.cpp:97
CFX_AggImageRenderer::~CFX_AggImageRenderer
~CFX_AggImageRenderer()
CFX_AggImageRenderer::CFX_AggImageRenderer
CFX_AggImageRenderer(const RetainPtr< CFX_DIBitmap > &pDevice, const CFX_AggClipRgn *pClipRgn, RetainPtr< const CFX_DIBBase > source, float alpha, uint32_t mask_color, const CFX_Matrix &matrix, const FXDIB_ResampleOptions &options, bool bRgbByteOrder)
Definition
cfx_agg_imagerenderer.cpp:20
CFX_DIBBase
Definition
cfx_dibbase.h:35
CFX_FloatRect::GetOuterRect
FX_RECT GetOuterRect() const
Definition
fx_coordinates.cpp:183
CFX_ImageStretcher
Definition
cfx_imagestretcher.h:22
CFX_ImageTransformer
Definition
cfx_imagetransformer.h:22
CFX_ImageTransformer::~CFX_ImageTransformer
~CFX_ImageTransformer()
CFX_ImageTransformer::CFX_ImageTransformer
CFX_ImageTransformer(RetainPtr< const CFX_DIBBase > source, const CFX_Matrix &matrix, const FXDIB_ResampleOptions &options, const FX_RECT *pClip)
Definition
cfx_imagetransformer.cpp:137
CFX_ImageTransformer::DetachBitmap
RetainPtr< CFX_DIBitmap > DetachBitmap()
Definition
cfx_imagetransformer.cpp:282
CFX_ImageTransformer::Continue
bool Continue(PauseIndicatorIface *pPause)
Definition
cfx_imagetransformer.cpp:217
CFX_ImageTransformer::result
const FX_RECT & result() const
Definition
cfx_imagetransformer.h:50
CFX_Matrix
Definition
fx_coordinates.h:440
CFX_Matrix::d
float d
Definition
fx_coordinates.h:510
CFX_Matrix::a
float a
Definition
fx_coordinates.h:507
CFX_Matrix::c
float c
Definition
fx_coordinates.h:509
CFX_Matrix::GetUnitRect
CFX_FloatRect GetUnitRect() const
Definition
fx_coordinates.cpp:450
CFX_Matrix::CFX_Matrix
CFX_Matrix(const CFX_Matrix &other)=default
CFX_Matrix::b
float b
Definition
fx_coordinates.h:508
PauseIndicatorIface
Definition
pauseindicator_iface.h:10
fxcrt::RetainPtr
Definition
retain_ptr.h:28
FXARGB_MUL_ALPHA
#define FXARGB_MUL_ALPHA(argb, alpha)
Definition
fx_dib.h:200
FXDIB_Format
FXDIB_Format
Definition
fx_dib.h:21
FXSYS_roundf
int FXSYS_roundf(float f)
Definition
fx_system.cpp:100
CFX_ImageTransformer::BilinearData
Definition
cfx_imagetransformer.h:24
CFX_ImageTransformer::BilinearData::src_col_r
int src_col_r
Definition
cfx_imagetransformer.h:29
CFX_ImageTransformer::BilinearData::res_x
int res_x
Definition
cfx_imagetransformer.h:25
CFX_ImageTransformer::BilinearData::src_row_l
int src_row_l
Definition
cfx_imagetransformer.h:28
CFX_ImageTransformer::BilinearData::res_y
int res_y
Definition
cfx_imagetransformer.h:26
CFX_ImageTransformer::BilinearData::src_row_r
int src_row_r
Definition
cfx_imagetransformer.h:30
CFX_ImageTransformer::BilinearData::src_col_l
int src_col_l
Definition
cfx_imagetransformer.h:27
CFX_ImageTransformer::BilinearData::row_offset_l
int row_offset_l
Definition
cfx_imagetransformer.h:31
CFX_ImageTransformer::BilinearData::row_offset_r
int row_offset_r
Definition
cfx_imagetransformer.h:32
CFX_ImageTransformer::CalcData
Definition
cfx_imagetransformer.h:35
CFX_ImageTransformer::CalcData::bitmap
UNOWNED_PTR_EXCLUSION CFX_DIBitmap * bitmap
Definition
cfx_imagetransformer.h:36
CFX_ImageTransformer::CalcData::buf
const uint8_t * buf
Definition
cfx_imagetransformer.h:38
CFX_ImageTransformer::CalcData::matrix
const CFX_Matrix & matrix
Definition
cfx_imagetransformer.h:37
CFX_ImageTransformer::CalcData::pitch
uint32_t pitch
Definition
cfx_imagetransformer.h:39
FXDIB_ResampleOptions
Definition
fx_dib.h:106
FX_RECT
Definition
fx_coordinates.h:144
FX_RECT::Offset
void Offset(int dx, int dy)
Definition
fx_coordinates.h:162
FX_RECT::operator=
FX_RECT & operator=(const FX_RECT &that)=default
FX_RECT::Height
int Height() const
Definition
fx_coordinates.h:152
FX_RECT::Width
int Width() const
Definition
fx_coordinates.h:151
FX_RECT::top
int32_t top
Definition
fx_coordinates.h:179
FX_RECT::SwappedClipBox
FX_RECT SwappedClipBox(int width, int height, bool bFlipX, bool bFlipY) const
Definition
fx_coordinates.cpp:106
FX_RECT::left
int32_t left
Definition
fx_coordinates.h:178
FX_RECT::Intersect
void Intersect(const FX_RECT &src)
Definition
fx_coordinates.cpp:93
FX_RECT::IsEmpty
bool IsEmpty() const
Definition
fx_coordinates.h:153
UNOWNED_PTR_EXCLUSION
#define UNOWNED_PTR_EXCLUSION
Definition
unowned_ptr_exclusion.h:14
qtwebengine
src
3rdparty
chromium
third_party
pdfium
core
fxge
dib
cfx_imagetransformer.h
Generated on
for Qt by
1.18.0