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_gif.h
Go to the documentation of this file.
1
// Copyright 2014 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_FXCODEC_GIF_CFX_GIF_H_
8
#
define
CORE_FXCODEC_GIF_CFX_GIF_H_
9
10
#
include
<
stdint
.
h
>
11
12
#
include
<
memory
>
13
#
include
<
vector
>
14
15
#
include
"core/fxcrt/data_vector.h"
16
17
extern
const
char
kGifSignature87
[];
18
extern
const
char
kGifSignature89
[];
19
20
#
define
GIF_SIG_EXTENSION
0x21
21
#
define
GIF_SIG_IMAGE
0x2C
22
#
define
GIF_SIG_TRAILER
0x3B
23
#
define
GIF_BLOCK_GCE
0xF9
24
#
define
GIF_BLOCK_PTE
0x01
25
#
define
GIF_BLOCK_CE
0xFE
26
#
define
GIF_BLOCK_TERMINAL
0x00
27
#
define
GIF_MAX_LZW_EXP
12
28
#
define
GIF_MAX_LZW_CODE
4096
29
#
define
GIF_D_STATUS_SIG
0x01
30
#
define
GIF_D_STATUS_TAIL
0x02
31
#
define
GIF_D_STATUS_EXT
0x03
32
#
define
GIF_D_STATUS_EXT_CE
0x05
33
#
define
GIF_D_STATUS_EXT_GCE
0x06
34
#
define
GIF_D_STATUS_EXT_PTE
0x07
35
#
define
GIF_D_STATUS_EXT_UNE
0x08
36
#
define
GIF_D_STATUS_IMG_INFO
0x09
37
#
define
GIF_D_STATUS_IMG_DATA
0x0A
38
39
#
pragma
pack
(
1
)
40
struct
CFX_GifGlobalFlags
{
41
uint8_t
pal_bits
: 3;
42
uint8_t
sort_flag
: 1;
43
uint8_t
color_resolution
: 3;
44
uint8_t
global_pal
: 1;
45
};
46
47
struct
CFX_GifLocalFlags
{
48
uint8_t
pal_bits
: 3;
49
uint8_t
reserved
: 2;
50
uint8_t
sort_flag
: 1;
51
uint8_t
interlace
: 1;
52
uint8_t
local_pal
: 1;
53
};
54
55
struct
CFX_GifHeader
{
56
char
signature
[6];
57
};
58
59
struct
CFX_GifLocalScreenDescriptor
{
60
uint16_t
width
;
61
uint16_t
height
;
62
CFX_GifGlobalFlags
global_flags
;
63
uint8_t
bc_index
;
64
uint8_t
pixel_aspect
;
65
};
66
67
struct
CFX_GifImageInfo
{
68
uint16_t
left
;
69
uint16_t
top
;
70
uint16_t
width
;
71
uint16_t
height
;
72
CFX_GifLocalFlags
local_flags
;
73
};
74
75
struct
CFX_GifControlExtensionFlags
{
76
uint8_t
transparency
: 1;
77
uint8_t
user_input
: 1;
78
uint8_t
disposal_method
: 3;
79
uint8_t
reserved
: 3;
80
};
81
82
struct
CFX_GifGraphicControlExtension
{
83
uint8_t
block_size
;
84
CFX_GifControlExtensionFlags
gce_flags
;
85
uint16_t
delay_time
;
86
uint8_t
trans_index
;
87
};
88
89
struct
CFX_GifPlainTextExtension
{
90
uint8_t
block_size
;
91
uint16_t
grid_left
;
92
uint16_t
grid_top
;
93
uint16_t
grid_width
;
94
uint16_t
grid_height
;
95
uint8_t
char_width
;
96
uint8_t
char_height
;
97
uint8_t
fc_index
;
98
uint8_t
bc_index
;
99
};
100
101
struct
GifApplicationExtension
{
102
uint8_t
block_size
;
103
uint8_t
app_identify
[8];
104
uint8_t
app_authentication
[3];
105
};
106
107
struct
CFX_GifPalette
{
108
uint8_t
r
;
109
uint8_t
g
;
110
uint8_t
b
;
111
};
112
#
pragma
pack
(
)
113
114
struct
CFX_GifImage
{
115
CFX_GifImage
();
116
~
CFX_GifImage
();
117
118
std
::
unique_ptr
<
CFX_GifGraphicControlExtension
>
image_GCE
;
119
std
::
vector
<
CFX_GifPalette
>
local_palettes
;
120
DataVector
<
uint8_t
>
row_buffer
;
121
CFX_GifImageInfo
image_info
;
122
uint8_t
local_palette_exp
;
123
uint8_t
code_exp
;
124
uint32_t
data_pos
;
125
int32_t
row_num
;
126
};
127
128
#
endif
// CORE_FXCODEC_GIF_CFX_GIF_H_
kGifSignature87
const char kGifSignature87[]
Definition
cfx_gif.cpp:9
kGifSignature89
const char kGifSignature89[]
Definition
cfx_gif.cpp:10
CFX_GifControlExtensionFlags
Definition
cfx_gif.h:75
CFX_GifControlExtensionFlags::transparency
uint8_t transparency
Definition
cfx_gif.h:76
CFX_GifControlExtensionFlags::disposal_method
uint8_t disposal_method
Definition
cfx_gif.h:78
CFX_GifControlExtensionFlags::reserved
uint8_t reserved
Definition
cfx_gif.h:79
CFX_GifControlExtensionFlags::user_input
uint8_t user_input
Definition
cfx_gif.h:77
CFX_GifGlobalFlags
Definition
cfx_gif.h:40
CFX_GifGlobalFlags::global_pal
uint8_t global_pal
Definition
cfx_gif.h:44
CFX_GifGlobalFlags::color_resolution
uint8_t color_resolution
Definition
cfx_gif.h:43
CFX_GifGlobalFlags::sort_flag
uint8_t sort_flag
Definition
cfx_gif.h:42
CFX_GifGlobalFlags::pal_bits
uint8_t pal_bits
Definition
cfx_gif.h:41
CFX_GifGraphicControlExtension
Definition
cfx_gif.h:82
CFX_GifGraphicControlExtension::delay_time
uint16_t delay_time
Definition
cfx_gif.h:85
CFX_GifGraphicControlExtension::trans_index
uint8_t trans_index
Definition
cfx_gif.h:86
CFX_GifGraphicControlExtension::block_size
uint8_t block_size
Definition
cfx_gif.h:83
CFX_GifGraphicControlExtension::gce_flags
CFX_GifControlExtensionFlags gce_flags
Definition
cfx_gif.h:84
CFX_GifHeader
Definition
cfx_gif.h:55
CFX_GifHeader::signature
char signature[6]
Definition
cfx_gif.h:56
CFX_GifImageInfo
Definition
cfx_gif.h:67
CFX_GifImageInfo::height
uint16_t height
Definition
cfx_gif.h:71
CFX_GifImageInfo::top
uint16_t top
Definition
cfx_gif.h:69
CFX_GifImageInfo::left
uint16_t left
Definition
cfx_gif.h:68
CFX_GifImageInfo::width
uint16_t width
Definition
cfx_gif.h:70
CFX_GifImageInfo::local_flags
CFX_GifLocalFlags local_flags
Definition
cfx_gif.h:72
CFX_GifImage
Definition
cfx_gif.h:114
CFX_GifImage::code_exp
uint8_t code_exp
Definition
cfx_gif.h:123
CFX_GifImage::~CFX_GifImage
~CFX_GifImage()
CFX_GifImage::image_GCE
std::unique_ptr< CFX_GifGraphicControlExtension > image_GCE
Definition
cfx_gif.h:118
CFX_GifImage::row_buffer
DataVector< uint8_t > row_buffer
Definition
cfx_gif.h:120
CFX_GifImage::data_pos
uint32_t data_pos
Definition
cfx_gif.h:124
CFX_GifImage::CFX_GifImage
CFX_GifImage()
CFX_GifImage::image_info
CFX_GifImageInfo image_info
Definition
cfx_gif.h:121
CFX_GifImage::local_palette_exp
uint8_t local_palette_exp
Definition
cfx_gif.h:122
CFX_GifImage::local_palettes
std::vector< CFX_GifPalette > local_palettes
Definition
cfx_gif.h:119
CFX_GifImage::row_num
int32_t row_num
Definition
cfx_gif.h:125
CFX_GifLocalFlags
Definition
cfx_gif.h:47
CFX_GifLocalFlags::reserved
uint8_t reserved
Definition
cfx_gif.h:49
CFX_GifLocalFlags::local_pal
uint8_t local_pal
Definition
cfx_gif.h:52
CFX_GifLocalFlags::interlace
uint8_t interlace
Definition
cfx_gif.h:51
CFX_GifLocalFlags::sort_flag
uint8_t sort_flag
Definition
cfx_gif.h:50
CFX_GifLocalFlags::pal_bits
uint8_t pal_bits
Definition
cfx_gif.h:48
CFX_GifLocalScreenDescriptor
Definition
cfx_gif.h:59
CFX_GifLocalScreenDescriptor::pixel_aspect
uint8_t pixel_aspect
Definition
cfx_gif.h:64
CFX_GifLocalScreenDescriptor::height
uint16_t height
Definition
cfx_gif.h:61
CFX_GifLocalScreenDescriptor::width
uint16_t width
Definition
cfx_gif.h:60
CFX_GifLocalScreenDescriptor::global_flags
CFX_GifGlobalFlags global_flags
Definition
cfx_gif.h:62
CFX_GifLocalScreenDescriptor::bc_index
uint8_t bc_index
Definition
cfx_gif.h:63
CFX_GifPalette
Definition
cfx_gif.h:107
CFX_GifPalette::r
uint8_t r
Definition
cfx_gif.h:108
CFX_GifPalette::g
uint8_t g
Definition
cfx_gif.h:109
CFX_GifPalette::b
uint8_t b
Definition
cfx_gif.h:110
CFX_GifPlainTextExtension
Definition
cfx_gif.h:89
CFX_GifPlainTextExtension::grid_width
uint16_t grid_width
Definition
cfx_gif.h:93
CFX_GifPlainTextExtension::grid_top
uint16_t grid_top
Definition
cfx_gif.h:92
CFX_GifPlainTextExtension::bc_index
uint8_t bc_index
Definition
cfx_gif.h:98
CFX_GifPlainTextExtension::char_height
uint8_t char_height
Definition
cfx_gif.h:96
CFX_GifPlainTextExtension::block_size
uint8_t block_size
Definition
cfx_gif.h:90
CFX_GifPlainTextExtension::grid_height
uint16_t grid_height
Definition
cfx_gif.h:94
CFX_GifPlainTextExtension::grid_left
uint16_t grid_left
Definition
cfx_gif.h:91
CFX_GifPlainTextExtension::char_width
uint8_t char_width
Definition
cfx_gif.h:95
CFX_GifPlainTextExtension::fc_index
uint8_t fc_index
Definition
cfx_gif.h:97
GifApplicationExtension
Definition
cfx_gif.h:101
GifApplicationExtension::app_authentication
uint8_t app_authentication[3]
Definition
cfx_gif.h:104
GifApplicationExtension::block_size
uint8_t block_size
Definition
cfx_gif.h:102
GifApplicationExtension::app_identify
uint8_t app_identify[8]
Definition
cfx_gif.h:103
qtwebengine
src
3rdparty
chromium
third_party
pdfium
core
fxcodec
gif
cfx_gif.h
Generated on
for Qt by
1.18.0