Changeset 769 for trunk/src/3rdparty/harfbuzz/tests/shaping/main.cpp
- Timestamp:
- Aug 2, 2010, 9:27:30 PM (15 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk
- Property svn:mergeinfo changed
/branches/vendor/nokia/qt/4.6.3 (added) merged: 768 /branches/vendor/nokia/qt/current merged: 767 /branches/vendor/nokia/qt/4.6.2 removed
- Property svn:mergeinfo changed
-
trunk/src/3rdparty/harfbuzz/tests/shaping/main.cpp
r561 r769 137 137 } 138 138 139 void hb_getGlyphMetrics(HB_Font font, HB_Glyph glyph, HB_GlyphMetrics *metrics)139 void hb_getGlyphMetrics(HB_Fontlyph, HB_GlyphMetrics *metrics) 140 140 { 141 141 // ### … … 143 143 } 144 144 145 HB_Fixed hb_getFontMetric(HB_Font font, HB_FontMetric metric)145 HB_Fixed hb_getFontMetric(HB_Font) 146 146 { 147 147 return 0; // #### … … 170 170 void cleanupTestCase(); 171 171 private slots: 172 173 172 174 void devanagari(); 173 175 void bengali(); … … 204 206 } 205 207 206 struct ShapeTable { 207 unsigned short unicode[16]; 208 unsigned short glyphs[16]; 208 class Shaper 209 { 210 public: 211 Shaper(FT_Face face, HB_Script script, const QString &str); 212 213 HB_FontRec hbFont; 214 HB_ShaperItem shaper_item; 215 QVarLengthArray<HB_Glyph> hb_glyphs; 216 QVarLengthArray<HB_GlyphAttributes> hb_attributes; 217 QVarLengthArray<HB_Fixed> hb_advances; 218 QVarLengthArray<HB_FixedPoint> hb_offsets; 219 QVarLengthArray<unsigned short> hb_logClusters; 220 209 221 }; 210 222 211 static bool shaping(FT_Face face, const ShapeTable *s, HB_Script script) 212 { 213 QString str = QString::fromUtf16( s->unicode ); 214 223 Shaper::Shaper(FT_Face face, HB_Script script, const QString &str) 224 { 215 225 HB_Face hbFace = HB_NewFace(face, hb_getSFntTable); 216 226 217 HB_FontRec hbFont;218 227 hbFont.klass = &hb_fontClass; 219 228 hbFont.userData = face; … … 223 232 hbFont.y_scale = face->size->metrics.y_scale; 224 233 225 HB_ShaperItem shaper_item;226 234 shaper_item.kerning_applied = false; 227 235 shaper_item.string = reinterpret_cast<const HB_UChar16 *>(str.constData()); … … 238 246 shaper_item.initialGlyphCount = 0; 239 247 240 QVarLengthArray<HB_Glyph> hb_glyphs(shaper_item.num_glyphs);241 QVarLengthArray<HB_GlyphAttributes> hb_attributes(shaper_item.num_glyphs);242 QVarLengthArray<HB_Fixed> hb_advances(shaper_item.num_glyphs);243 QVarLengthArray<HB_FixedPoint> hb_offsets(shaper_item.num_glyphs);244 QVarLengthArray<unsigned short> hb_logClusters(shaper_item.num_glyphs);245 248 246 249 while (1) { … … 264 267 if (HB_ShapeItem(&shaper_item)) 265 268 break; 266 267 269 } 268 270 269 271 HB_FreeFace(hbFace); 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 270 329 271 330 hb_uint32 nglyphs = 0; … … 276 335 } 277 336 278 if( nglyphs != shaper _item.num_glyphs )337 if( nglyphs != shaper_item.num_glyphs ) 279 338 goto error; 280 339 281 340 for (hb_uint32 i = 0; i < nglyphs; ++i) { 282 if ((shaper_item.glyphs[i]&0xffffff) != s->glyphs[i])341 shaper_item.glyphs[i]&0xffffff) != s->glyphs[i]) 283 342 goto error; 284 343 } 285 344 return true; 286 345 error: 287 str = "";346 str = ""; 288 347 const unsigned short *uc = s->unicode; 289 348 while (*uc) { … … 294 353 face->family_name, 295 354 str.toLatin1().constData(), 296 shaper _item.num_glyphs, nglyphs);355 shaper_item.num_glyphs, nglyphs); 297 356 298 357 str = ""; 299 358 hb_uint32 i = 0; 300 while (i < shaper _item.num_glyphs) {301 str += QString("%1 ").arg(shaper_item.glyphs[i], 4, 16);359 while (i < shaper_item.num_glyphs) { 360 shaper_item.glyphs[i], 4, 16); 302 361 ++i; 303 362 } … … 305 364 return false; 306 365 } 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 307 426 308 427 void tst_QScriptEngine::devanagari() … … 1012 1131 { { 0xd2f, 0xd4d, 0xd15, 0xd4d, 0xd15, 0xd41, 0x0 }, 1013 1132 { 0x2ff, 0x0 } }, 1133 1134 1014 1135 1015 1136 { {0}, {0} }
Note:
See TracChangeset
for help on using the changeset viewer.