ReactOS
0.4.16-dev-297-gc569aee
Toggle main menu visibility
Main Page
Related Pages
Modules
Namespaces
Namespace List
Namespace Members
All
_
a
b
c
d
e
f
g
h
i
l
m
n
o
p
r
s
t
u
v
w
x
Functions
_
a
b
c
d
e
f
g
h
i
l
m
o
p
r
s
t
u
v
w
Variables
_
c
d
e
f
g
h
i
l
n
o
p
s
t
u
x
Typedefs
_
a
b
c
d
e
f
g
h
i
l
m
o
p
r
s
t
u
v
w
x
Enumerations
_
c
d
f
i
l
m
o
p
s
t
w
x
Enumerator
a
b
c
d
e
f
g
h
i
m
n
o
p
r
s
t
u
v
w
x
Classes
Class List
Class Index
Class Hierarchy
Class Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerations
_
a
b
c
d
e
f
h
i
k
l
m
n
o
p
r
s
t
u
v
w
z
Enumerator
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Properties
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
Related Functions
_
a
b
c
d
e
f
g
h
i
l
m
n
o
p
q
r
s
t
v
x
Files
File List
File Members
All
$
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
$
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Variables
$
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerations
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerator
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Macros
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Examples
ftdebug.h
Go to the documentation of this file.
1
/***************************************************************************/
2
/* */
3
/* ftdebug.h */
4
/* */
5
/* Debugging and logging component (specification). */
6
/* */
7
/* Copyright 1996-2018 by */
8
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
9
/* */
10
/* This file is part of the FreeType project, and may only be used, */
11
/* modified, and distributed under the terms of the FreeType project */
12
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
13
/* this file you indicate that you have read the license and */
14
/* understand and accept it fully. */
15
/* */
16
/* */
17
/* IMPORTANT: A description of FreeType's debugging support can be */
18
/* found in `docs/DEBUG.TXT'. Read it if you need to use or */
19
/* understand this code. */
20
/* */
21
/***************************************************************************/
22
23
24
#ifndef FTDEBUG_H_
25
#define FTDEBUG_H_
26
27
28
#include <ft2build.h>
29
#include FT_CONFIG_CONFIG_H
30
#include FT_FREETYPE_H
31
32
33
FT_BEGIN_HEADER
34
35
36
/* force the definition of FT_DEBUG_LEVEL_ERROR if FT_DEBUG_LEVEL_TRACE */
37
/* is already defined; this simplifies the following #ifdefs */
38
/* */
39
#ifdef FT_DEBUG_LEVEL_TRACE
40
#undef FT_DEBUG_LEVEL_ERROR
41
#define FT_DEBUG_LEVEL_ERROR
42
#endif
43
44
45
/*************************************************************************/
46
/* */
47
/* Define the trace enums as well as the trace levels array when they */
48
/* are needed. */
49
/* */
50
/*************************************************************************/
51
52
#ifdef FT_DEBUG_LEVEL_TRACE
53
54
#define FT_TRACE_DEF( x ) trace_ ## x ,
55
56
/* defining the enumeration */
57
typedef
enum
FT_Trace_
58
{
59
#include FT_INTERNAL_TRACE_H
60
trace_count
61
62
} FT_Trace;
63
64
65
/* defining the array of trace levels, provided by `src/base/ftdebug.c' */
66
extern
int
ft_trace_levels[trace_count];
67
68
#undef FT_TRACE_DEF
69
70
#endif
/* FT_DEBUG_LEVEL_TRACE */
71
72
73
/*************************************************************************/
74
/* */
75
/* Define the FT_TRACE macro */
76
/* */
77
/* IMPORTANT! */
78
/* */
79
/* Each component must define the macro FT_COMPONENT to a valid FT_Trace */
80
/* value before using any TRACE macro. */
81
/* */
82
/*************************************************************************/
83
84
#ifdef FT_DEBUG_LEVEL_TRACE
85
86
#define FT_TRACE( level, varformat ) \
87
do \
88
{ \
89
if ( ft_trace_levels[FT_COMPONENT] >= level ) \
90
FT_Message varformat; \
91
} while ( 0 )
92
93
#else
/* !FT_DEBUG_LEVEL_TRACE */
94
95
#define FT_TRACE( level, varformat ) do { } while ( 0 )
/* nothing */
96
97
#endif
/* !FT_DEBUG_LEVEL_TRACE */
98
99
100
/*************************************************************************/
101
/* */
102
/* <Function> */
103
/* FT_Trace_Get_Count */
104
/* */
105
/* <Description> */
106
/* Return the number of available trace components. */
107
/* */
108
/* <Return> */
109
/* The number of trace components. 0 if FreeType 2 is not built with */
110
/* FT_DEBUG_LEVEL_TRACE definition. */
111
/* */
112
/* <Note> */
113
/* This function may be useful if you want to access elements of */
114
/* the internal `ft_trace_levels' array by an index. */
115
/* */
116
FT_BASE
(
FT_Int
)
117
FT_Trace_Get_Count
(
void
);
118
119
120
/*************************************************************************/
121
/* */
122
/* <Function> */
123
/* FT_Trace_Get_Name */
124
/* */
125
/* <Description> */
126
/* Return the name of a trace component. */
127
/* */
128
/* <Input> */
129
/* The index of the trace component. */
130
/* */
131
/* <Return> */
132
/* The name of the trace component. This is a statically allocated */
133
/* C string, so do not free it after use. NULL if FreeType 2 is not */
134
/* built with FT_DEBUG_LEVEL_TRACE definition. */
135
/* */
136
/* <Note> */
137
/* Use @FT_Trace_Get_Count to get the number of available trace */
138
/* components. */
139
/* */
140
/* This function may be useful if you want to control FreeType 2's */
141
/* debug level in your application. */
142
/* */
143
FT_BASE
(
const
char
* )
144
FT_Trace_Get_Name
(
FT_Int
idx
);
145
146
147
/*************************************************************************/
148
/* */
149
/* You need two opening and closing parentheses! */
150
/* */
151
/* Example: FT_TRACE0(( "Value is %i", foo )) */
152
/* */
153
/* Output of the FT_TRACEX macros is sent to stderr. */
154
/* */
155
/*************************************************************************/
156
157
#define FT_TRACE0( varformat ) FT_TRACE( 0, varformat )
158
#define FT_TRACE1( varformat ) FT_TRACE( 1, varformat )
159
#define FT_TRACE2( varformat ) FT_TRACE( 2, varformat )
160
#define FT_TRACE3( varformat ) FT_TRACE( 3, varformat )
161
#define FT_TRACE4( varformat ) FT_TRACE( 4, varformat )
162
#define FT_TRACE5( varformat ) FT_TRACE( 5, varformat )
163
#define FT_TRACE6( varformat ) FT_TRACE( 6, varformat )
164
#define FT_TRACE7( varformat ) FT_TRACE( 7, varformat )
165
166
167
/*************************************************************************/
168
/* */
169
/* Define the FT_ERROR macro. */
170
/* */
171
/* Output of this macro is sent to stderr. */
172
/* */
173
/*************************************************************************/
174
175
#ifdef FT_DEBUG_LEVEL_ERROR
176
177
#define FT_ERROR( varformat ) FT_Message varformat
178
179
#else
/* !FT_DEBUG_LEVEL_ERROR */
180
181
#define FT_ERROR( varformat ) do { } while ( 0 )
/* nothing */
182
183
#endif
/* !FT_DEBUG_LEVEL_ERROR */
184
185
186
/*************************************************************************/
187
/* */
188
/* Define the FT_ASSERT and FT_THROW macros. The call to `FT_Throw' */
189
/* makes it possible to easily set a breakpoint at this function. */
190
/* */
191
/*************************************************************************/
192
193
#ifdef FT_DEBUG_LEVEL_ERROR
194
195
#define FT_ASSERT( condition ) \
196
do \
197
{ \
198
if ( !( condition ) ) \
199
FT_Panic( "assertion failed on line %d of file %s\n"
, \
200
__LINE__, __FILE__ ); \
201
} while ( 0 )
202
203
#define FT_THROW( e ) \
204
( FT_Throw( FT_ERR_CAT( FT_ERR_PREFIX, e ), \
205
__LINE__, \
206
__FILE__ ) | \
207
FT_ERR_CAT( FT_ERR_PREFIX, e ) )
208
209
#else
/* !FT_DEBUG_LEVEL_ERROR */
210
211
#define FT_ASSERT( condition ) do { } while ( 0 )
212
213
#define FT_THROW( e ) FT_ERR_CAT( FT_ERR_PREFIX, e )
214
215
#endif
/* !FT_DEBUG_LEVEL_ERROR */
216
217
218
/*************************************************************************/
219
/* */
220
/* Define `FT_Message' and `FT_Panic' when needed. */
221
/* */
222
/*************************************************************************/
223
224
#ifdef FT_DEBUG_LEVEL_ERROR
225
226
#include "stdio.h"
/* for vfprintf() */
227
228
/* print a message */
229
FT_BASE
(
void
)
230
FT_Message(
const
char
*
fmt
,
231
... );
232
233
/* print a message and exit */
234
FT_BASE
(
void
)
235
FT_Panic(
const
char
*
fmt
,
236
... );
237
238
/* report file name and line number of an error */
239
FT_BASE
(
int
)
240
FT_Throw(
FT_Error
error
,
241
int
line
,
242
const
char
*
file
);
243
244
#endif
/* FT_DEBUG_LEVEL_ERROR */
245
246
247
FT_BASE
(
void
)
248
ft_debug_init
(
void
);
249
250
FT_END_HEADER
251
252
#endif
/* FTDEBUG_H_ */
253
254
255
/* END */
idx
unsigned int idx
Definition:
utils.c:41
FT_BASE
#define FT_BASE(x)
Definition:
ftconfig.h:408
FT_Trace_Get_Name
FT_Trace_Get_Name(FT_Int idx)
Definition:
ftdebug.c:255
FT_Trace_Get_Count
FT_Trace_Get_Count(void)
Definition:
ftdebug.c:248
ft_debug_init
ft_debug_init(void)
Definition:
ftdebug.c:241
FT_END_HEADER
#define FT_END_HEADER
Definition:
ftheader.h:54
FT_BEGIN_HEADER
#define FT_BEGIN_HEADER
Definition:
ftheader.h:36
FT_Error
int FT_Error
Definition:
fttypes.h:300
FT_Int
signed int FT_Int
Definition:
fttypes.h:220
error
#define error(str)
Definition:
mkdosfs.c:1605
file
Definition:
fci.c:127
fmt
Definition:
dsound.c:943
line
Definition:
parser.c:49
sdk
lib
3rdparty
freetype
include
freetype
internal
ftdebug.h
Generated on Tue Nov 26 2024 06:13:00 for ReactOS by
1.9.6