125 {
128
129#ifndef FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES
131#endif
132
133
134 if ( !
ft_strcmp( property_name,
"fallback-script" ) )
135 {
138
139
140#ifdef FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES
141 if ( value_is_string )
142 return FT_THROW( Invalid_Argument );
143#endif
144
146
147
148
149
151 {
153
154
157 {
159 break;
160 }
161 }
162
164 {
165 FT_TRACE0((
"af_property_set: Invalid value %d for property `%s'\n",
166 fallback_script, property_name ));
167 return FT_THROW( Invalid_Argument );
168 }
169
171 }
172 else if ( !
ft_strcmp( property_name,
"default-script" ) )
173 {
175
176
177#ifdef FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES
178 if ( value_is_string )
179 return FT_THROW( Invalid_Argument );
180#endif
181
183
184 module->default_script = *default_script;
185
187 }
188 else if ( !
ft_strcmp( property_name,
"increase-x-height" ) )
189 {
192
193
194#ifdef FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES
195 if ( value_is_string )
196 return FT_THROW( Invalid_Argument );
197#endif
198
200
204
206 }
207#ifdef AF_CONFIG_OPTION_USE_WARPER
208 else if ( !
ft_strcmp( property_name,
"warping" ) )
209 {
210#ifdef FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES
211 if ( value_is_string )
212 {
213 const char*
s = (
const char*)
value;
215
216
221 else
222 return FT_THROW( Invalid_Argument );
223 }
224 else
225#endif
226 {
228
229
230 module->warping = *warping;
231 }
232
234 }
235#endif
236 else if ( !
ft_strcmp( property_name,
"darkening-parameters" ) )
237 {
240
241#ifdef FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES
243
244
245 if ( value_is_string )
246 {
247 const char*
s = (
const char*)
value;
248 char* ep;
250
251
252
253 for (
i = 0;
i < 7;
i++ )
254 {
256 if ( *ep !=
',' ||
s == ep )
257 return FT_THROW( Invalid_Argument );
258
260 }
261
263 if ( !( *ep ==
'\0' || *ep ==
' ' ) ||
s == ep )
264 return FT_THROW( Invalid_Argument );
265
266 darken_params = dp;
267 }
268 else
269#endif
271
272 x1 = darken_params[0];
273 y1 = darken_params[1];
274 x2 = darken_params[2];
275 y2 = darken_params[3];
276 x3 = darken_params[4];
277 y3 = darken_params[5];
278 x4 = darken_params[6];
279 y4 = darken_params[7];
280
281 if (
x1 < 0 ||
x2 < 0 || x3 < 0 || x4 < 0 ||
282 y1 < 0 ||
y2 < 0 || y3 < 0 || y4 < 0 ||
283 x1 >
x2 ||
x2 > x3 || x3 > x4 ||
284 y1 > 500 ||
y2 > 500 || y3 > 500 || y4 > 500 )
285 return FT_THROW( Invalid_Argument );
286
291 module->darken_params[4] = x3;
292 module->darken_params[5] = y3;
293 module->darken_params[6] = x4;
294 module->darken_params[7] = y4;
295
297 }
298 else if ( !
ft_strcmp( property_name,
"no-stem-darkening" ) )
299 {
300#ifdef FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES
301 if ( value_is_string )
302 {
303 const char*
s = (
const char*)
value;
305
306
307 if ( !nsd )
309 else
311 }
312 else
313#endif
314 {
316
317
318 module->no_stem_darkening = *no_stem_darkening;
319 }
320
322 }
323
324 FT_TRACE0((
"af_property_set: missing property `%s'\n",
325 property_name ));
326 return FT_THROW( Missing_Property );
327 }
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