[Bug 33190] Font display problem using text and dc rotation

wine-bugs at winehq.org wine-bugs at winehq.org
Mon Sep 30 03:19:35 CDT 2013


http://bugs.winehq.org/show_bug.cgi?id=33190

--- Comment #11 from Ralf Habacker <ralf.habacker at freenet.de> 2013-09-30 03:19:35 CDT ---

[reply] [-] Description Ralf Habacker 2013-03-12 08:09:10 CDT

We recognized an gdi text display issue using the application Gausz
http://appdb.winehq.org/objectManager.php?sClass=application&iId=13649. 

The problem appears when gdi text is drawn with font rotation *and* display
context rotation. 

The problem do not appear when either font rotation or display context rotation
is zero. 

The application uses CreateIndirectFont to set a fixed size font with optional
set rotation and draws the text with TextOut(). The display context rotation
has been set with SetWorldTransform(). 

We tried to find a test case application, but where not able to reproduce the
problem outside the application. We also tried to debug into wine's code based,
but got lost by the details.

[reply] [-] Comment 1 Ralf Habacker 2013-03-12 08:27:48 CDT

Created attachment 43905 [details]
zero degree - no error

[reply] [-] Comment 2 Ralf Habacker 2013-03-12 08:28:23 CDT

Created attachment 43906 [details]
45 degree dc rotation - showing error

[reply] [-] Comment 3 Ralf Habacker 2013-03-12 08:28:55 CDT

Created attachment 43907 [details]
90 degree rotation - showing error too

[reply] [-] Comment 4 Ralf Habacker 2013-03-12 08:42:00 CDT

>From my observations I would say that there is something wrong with the advance
of the character origin vector, seeable on the '6.0' or 'DN 200' text.

[reply] [-] Comment 5 Ralf Habacker 2013-03-13 03:28:18 CDT

(In reply to comment #0)
> We tried to find a test case application, but where not able to reproduce the
> problem outside the application. We also tried to debug into wine's code based,
> but got lost by the details.

Any hints or inside informations welcome which let us go into the right
direction for providing a test case or to find the bug.

[reply] [-] Comment 6 Alexandre Julliard 2013-03-13 05:18:41 CDT

Most gdi functions, including text, don't properly support GM_ADVANCED yet.

[reply] [-] Comment 7 Ralf Habacker 2013-03-13 06:40:22 CDT

Just for info: We tried crossover linux, which shows the same problem and
reported this bug to Jeremy White from codeWeavers.

[reply] [-] Comment 8 Ralf Habacker 2013-03-13 08:14:19 CDT

Created attachment 43920 [details]
testcase source

Based on the GM_ADVANCED hint I was able to create a test case

[reply] [-] Comment 9 Ralf Habacker 2013-03-13 08:14:39 CDT

Created attachment 43921 [details]
testcase binary

[reply] [-] Comment 10 Ralf Habacker 2013-03-18 04:02:21 CDT

(In reply to comment #6)
> Most gdi functions, including text, don't properly support GM_ADVANCED yet.

One problem with rotated text display seems to be in the implementation of
GetTextExtendExPointW(), which output differs between windows and wine (beside
the general scaling and rounding differences)

Windows
0°  18 34 49 67 85 102 121 138 156 165 182 193 200 218 235 244 262 271 278 295
313 331 349 367 375 393 409 420 437 446 464 482 491 509 526 544 561 579 597 
10° 18 34 49 67 85 102 121 138 156 165 182 193 200 218 235 244 262 271 278 295
313 331 349 367 375 393 409 420 437 446 464 482 500 509 526 544 561 579 597 614 
45° 18 34 49 67 85 102 121 138 156 165 182 193 200 218 235 244 262 271 278 295
313 331 349 367 375 393 409 420 437 446 464 482 500 509 526 544 561 579 597 614 
60° 18 34 49 67 85 102 121 138 156 165 182 193 200 218 235 244 262 271 278 295
313 331 349 367 375 393 409 420 437 446 464 482 500 509 526 544 561 579 597 614 
80° 18 34 50 68 86 104 123 141 159 168 186 197 204 222 240 249 267 276 283 301
319 338 356 374 383 401 417 428 446 455 474 492 510 519 537 555 573 591 609 627 

Wine
0°  13  26  39  52  65  78  92 105 118 125 138 145 151 164 177 184 197 204 210
223 236 250 263 276 283 296 309 316 329 336 350 363 370 383 396 409 422 435 448 
10° 13  26  38  51  64  77  91 103 116 123 136 143 149 162 174 181 194 201 207
220 232 246 259 272 279 292 304 311 324 331 345 357 370 377 390 403 416 428 441
454 
45°  6  13  19  25  32  38  45  52  58  62  68  71  74  81  87  91  97 100 103
110 116 123 129 136 139 146 152 156 162 165 173 179 185 189 195 202 208 214 221
227 
60°  4   7  11  14  18  21  25  28  32  34  37  39  41  44  48  50  53  55  57 
60  64  67  71  74  76  80  83  85  89  91  94  98 101 103 107 110 114 117 121
124 
80°  1   1   2   2   3   3   4   4   5   5   6   6   6   7   7   7   8   8   9 
 9  10  10  11  11  11  12  13  13  13  14  14  15  15  16  16  17  17  18  18 
19 

Looks like that wine use the rotation from the world transformation matrix,
while the windows implementation do not use this rotation.

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.


More information about the wine-bugs mailing list