111 {
114
115#ifndef FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES
117#endif
118
119
120 if ( !
ft_strcmp( property_name,
"fallback-script" ) )
121 {
124
125
126#ifdef FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES
127 if ( value_is_string )
128 return FT_THROW( Invalid_Argument );
129#endif
130
132
133
134
135
137 {
139
140
143 {
145 break;
146 }
147 }
148
150 {
151 FT_TRACE0((
"af_property_set: Invalid value %d for property `%s'\n",
152 fallback_script, property_name ));
153 return FT_THROW( Invalid_Argument );
154 }
155
157 }
158 else if ( !
ft_strcmp( property_name,
"default-script" ) )
159 {
161
162
163#ifdef FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES
164 if ( value_is_string )
165 return FT_THROW( Invalid_Argument );
166#endif
167
169
170 module->default_script = *default_script;
171
173 }
174 else if ( !
ft_strcmp( property_name,
"increase-x-height" ) )
175 {
178
179
180#ifdef FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES
181 if ( value_is_string )
182 return FT_THROW( Invalid_Argument );
183#endif
184
186
190
192 }
193#ifdef AF_CONFIG_OPTION_USE_WARPER
194 else if ( !
ft_strcmp( property_name,
"warping" ) )
195 {
196#ifdef FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES
197 if ( value_is_string )
198 {
199 const char*
s = (
const char*)
value;
201
202
207 else
208 return FT_THROW( Invalid_Argument );
209 }
210 else
211#endif
212 {
214
215
216 module->warping = *warping;
217 }
218
220 }
221#endif
222 else if ( !
ft_strcmp( property_name,
"darkening-parameters" ) )
223 {
226
227#ifdef FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES
229
230
231 if ( value_is_string )
232 {
233 const char*
s = (
const char*)
value;
234 char* ep;
236
237
238
239 for (
i = 0;
i < 7;
i++ )
240 {
242 if ( *ep !=
',' ||
s == ep )
243 return FT_THROW( Invalid_Argument );
244
246 }
247
249 if ( !( *ep ==
'\0' || *ep ==
' ' ) ||
s == ep )
250 return FT_THROW( Invalid_Argument );
251
252 darken_params = dp;
253 }
254 else
255#endif
257
258 x1 = darken_params[0];
259 y1 = darken_params[1];
260 x2 = darken_params[2];
261 y2 = darken_params[3];
262 x3 = darken_params[4];
263 y3 = darken_params[5];
264 x4 = darken_params[6];
265 y4 = darken_params[7];
266
267 if (
x1 < 0 ||
x2 < 0 || x3 < 0 || x4 < 0 ||
268 y1 < 0 ||
y2 < 0 || y3 < 0 || y4 < 0 ||
269 x1 >
x2 ||
x2 > x3 || x3 > x4 ||
270 y1 > 500 ||
y2 > 500 || y3 > 500 || y4 > 500 )
271 return FT_THROW( Invalid_Argument );
272
277 module->darken_params[4] = x3;
278 module->darken_params[5] = y3;
279 module->darken_params[6] = x4;
280 module->darken_params[7] = y4;
281
283 }
284 else if ( !
ft_strcmp( property_name,
"no-stem-darkening" ) )
285 {
286#ifdef FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES
287 if ( value_is_string )
288 {
289 const char*
s = (
const char*)
value;
291
292
293 if ( !nsd )
295 else
297 }
298 else
299#endif
300 {
302
303
304 module->no_stem_darkening = *no_stem_darkening;
305 }
306
308 }
309
310 FT_TRACE0((
"af_property_set: missing property `%s'\n",
311 property_name ));
312 return FT_THROW( Missing_Property );
313 }
GLubyte GLubyte GLubyte GLubyte w
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
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG x2
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG y1
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG x1
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG _In_ LONG y2