ReactOS 0.4.15-dev-7788-g1ad9096
ftpsprop.h File Reference
#include <ft2build.h>
Include dependency graph for ftpsprop.h:

Go to the source code of this file.

Functions

FT_BEGIN_HEADER ps_property_set (FT_Module module, const char *property_name, const void *value, FT_Bool value_is_string)
 
 ps_property_get (FT_Module module, const char *property_name, void *value)
 

Function Documentation

◆ ps_property_get()

ps_property_get ( FT_Module  module,
const char property_name,
void value 
)

Definition at line 231 of file ftpsprop.c.

234 {
237
238
239 if ( !ft_strcmp( property_name, "darkening-parameters" ) )
240 {
241 FT_Int* darken_params = driver->darken_params;
242 FT_Int* val = (FT_Int*)value;
243
244
245 val[0] = darken_params[0];
246 val[1] = darken_params[1];
247 val[2] = darken_params[2];
248 val[3] = darken_params[3];
249 val[4] = darken_params[4];
250 val[5] = darken_params[5];
251 val[6] = darken_params[6];
252 val[7] = darken_params[7];
253
254 return error;
255 }
256
257 else if ( !ft_strcmp( property_name, "hinting-engine" ) )
258 {
259 FT_UInt hinting_engine = driver->hinting_engine;
261
262
263 *val = hinting_engine;
264
265 return error;
266 }
267
268 else if ( !ft_strcmp( property_name, "no-stem-darkening" ) )
269 {
270 FT_Bool no_stem_darkening = driver->no_stem_darkening;
272
273
274 *val = no_stem_darkening;
275
276 return error;
277 }
278
279 FT_TRACE0(( "ps_property_get: missing property `%s'\n",
280 property_name ));
281 return FT_THROW( Missing_Property );
282 }
return FT_Err_Ok
Definition: ftbbox.c:511
#define FT_TRACE0(varformat)
Definition: ftdebug.h:157
#define FT_THROW(e)
Definition: ftdebug.h:213
#define ft_strcmp
Definition: ftstdlib.h:86
FT_BEGIN_HEADER typedef unsigned char FT_Bool
Definition: fttypes.h:108
int FT_Error
Definition: fttypes.h:300
unsigned int FT_UInt
Definition: fttypes.h:231
signed int FT_Int
Definition: fttypes.h:220
GLuint GLfloat * val
Definition: glext.h:7180
#define error(str)
Definition: mkdosfs.c:1605
struct @1664::@1665 driver
FT_BEGIN_HEADER struct PS_DriverRec_ * PS_Driver
Definition: pdh_main.c:94

◆ ps_property_set()

FT_BEGIN_HEADER ps_property_set ( FT_Module  module,
const char property_name,
const void value,
FT_Bool  value_is_string 
)

Definition at line 39 of file ftpsprop.c.

43 {
46
47#ifndef FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES
48 FT_UNUSED( value_is_string );
49#endif
50
51
52 if ( !ft_strcmp( property_name, "darkening-parameters" ) )
53 {
54 FT_Int* darken_params;
55 FT_Int x1, y1, x2, y2, x3, y3, x4, y4;
56
57#ifdef FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES
58 FT_Int dp[8];
59
60
61 if ( value_is_string )
62 {
63 const char* s = (const char*)value;
64 char* ep;
65 int i;
66
67
68 /* eight comma-separated numbers */
69 for ( i = 0; i < 7; i++ )
70 {
71 dp[i] = (FT_Int)ft_strtol( s, &ep, 10 );
72 if ( *ep != ',' || s == ep )
73 return FT_THROW( Invalid_Argument );
74
75 s = ep + 1;
76 }
77
78 dp[7] = (FT_Int)ft_strtol( s, &ep, 10 );
79 if ( !( *ep == '\0' || *ep == ' ' ) || s == ep )
80 return FT_THROW( Invalid_Argument );
81
82 darken_params = dp;
83 }
84 else
85#endif
86 darken_params = (FT_Int*)value;
87
88 x1 = darken_params[0];
89 y1 = darken_params[1];
90 x2 = darken_params[2];
91 y2 = darken_params[3];
92 x3 = darken_params[4];
93 y3 = darken_params[5];
94 x4 = darken_params[6];
95 y4 = darken_params[7];
96
97 if ( x1 < 0 || x2 < 0 || x3 < 0 || x4 < 0 ||
98 y1 < 0 || y2 < 0 || y3 < 0 || y4 < 0 ||
99 x1 > x2 || x2 > x3 || x3 > x4 ||
100 y1 > 500 || y2 > 500 || y3 > 500 || y4 > 500 )
101 return FT_THROW( Invalid_Argument );
102
103 driver->darken_params[0] = x1;
104 driver->darken_params[1] = y1;
105 driver->darken_params[2] = x2;
106 driver->darken_params[3] = y2;
107 driver->darken_params[4] = x3;
108 driver->darken_params[5] = y3;
109 driver->darken_params[6] = x4;
110 driver->darken_params[7] = y4;
111
112 return error;
113 }
114
115 else if ( !ft_strcmp( property_name, "hinting-engine" ) )
116 {
117#if defined( CFF_CONFIG_OPTION_OLD_ENGINE ) || \
118 defined( T1_CONFIG_OPTION_OLD_ENGINE )
119 const char* module_name = module->clazz->module_name;
120#endif
121
122
123#ifdef FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES
124 if ( value_is_string )
125 {
126 const char* s = (const char*)value;
127
128
129 if ( !ft_strcmp( s, "adobe" ) )
130 driver->hinting_engine = FT_HINTING_ADOBE;
131
133 else if ( !ft_strcmp( module_name, "cff" ) &&
134 !ft_strcmp( s, "freetype" ) )
135 driver->hinting_engine = FT_HINTING_FREETYPE;
136#endif
137
138#ifdef T1_CONFIG_OPTION_OLD_ENGINE
139 else if ( ( !ft_strcmp( module_name, "type1" ) ||
140 !ft_strcmp( module_name, "t1cid" ) ) &&
141 !ft_strcmp( s, "freetype" ) )
142 driver->hinting_engine = FT_HINTING_FREETYPE;
143#endif
144
145 else
146 return FT_THROW( Invalid_Argument );
147 }
148 else
149#endif /* FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES */
150 {
151 FT_UInt* hinting_engine = (FT_UInt*)value;
152
153
154 if ( *hinting_engine == FT_HINTING_ADOBE
156 || ( *hinting_engine == FT_HINTING_FREETYPE &&
157 !ft_strcmp( module_name, "cff" ) )
158#endif
159#ifdef T1_CONFIG_OPTION_OLD_ENGINE
160 || ( *hinting_engine == FT_HINTING_FREETYPE &&
161 ( !ft_strcmp( module_name, "type1" ) ||
162 !ft_strcmp( module_name, "t1cid" ) ) )
163#endif
164 )
165 driver->hinting_engine = *hinting_engine;
166 else
167 error = FT_ERR( Unimplemented_Feature );
168
169 return error;
170 }
171 }
172
173 else if ( !ft_strcmp( property_name, "no-stem-darkening" ) )
174 {
175#ifdef FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES
176 if ( value_is_string )
177 {
178 const char* s = (const char*)value;
179 long nsd = ft_strtol( s, NULL, 10 );
180
181
182 if ( !nsd )
183 driver->no_stem_darkening = FALSE;
184 else
185 driver->no_stem_darkening = TRUE;
186 }
187 else
188#endif
189 {
190 FT_Bool* no_stem_darkening = (FT_Bool*)value;
191
192
193 driver->no_stem_darkening = *no_stem_darkening;
194 }
195
196 return error;
197 }
198
199 else if ( !ft_strcmp( property_name, "random-seed" ) )
200 {
201 FT_Int32 random_seed;
202
203
204#ifdef FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES
205 if ( value_is_string )
206 {
207 const char* s = (const char*)value;
208
209
210 random_seed = (FT_Int32)ft_strtol( s, NULL, 10 );
211 }
212 else
213#endif
214 random_seed = *(FT_Int32*)value;
215
216 if ( random_seed < 0 )
217 random_seed = 0;
218
219 driver->random_seed = random_seed;
220
221 return error;
222 }
223
224 FT_TRACE0(( "ps_property_set: missing property `%s'\n",
225 property_name ));
226 return FT_THROW( Missing_Property );
227 }
static LPCWSTR LPCWSTR module_name
Definition: db.cpp:170
#define CFF_CONFIG_OPTION_OLD_ENGINE
Definition: ftoption.h:797
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
#define FT_UNUSED(arg)
Definition: ftconfig.h:101
#define FT_HINTING_FREETYPE
Definition: ftdriver.h:345
#define FT_HINTING_ADOBE
Definition: ftdriver.h:346
#define ft_strtol
Definition: ftstdlib.h:145
#define FT_ERR(e)
Definition: fttypes.h:586
GLdouble s
Definition: gl.h:2039
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
if(dx< 0)
Definition: linetemp.h:194
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG x2
Definition: winddi.h:3710
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG y1
Definition: winddi.h:3709
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG x1
Definition: winddi.h:3708
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG _In_ LONG y2
Definition: winddi.h:3711