[racket-dev] draw-text always pixel aligned?

From: David Vanderson (david.vanderson at gmail.com)
Date: Mon Dec 16 10:37:39 EST 2013

That makes sense, but the picture with 'unaligned seems strange 
(attached). It looks like each individual character is being pixel 
aligned, and also the vertical pixel drop doesn't happen until it's 0.7 
pixels down. Does this make sense?

On 12/16/2013 08:15 AM, Matthew Flatt wrote:
> Did you mean to pass 'unaligned instead of 'aligned as the last
> argument to `find-or-create-font`? That should disable pixel alignment.
>
> At Mon, 16 Dec 2013 01:28:23 -0500, David Vanderson wrote:
>> Hello,
>>
>> It seems that draw-text always pixel-aligns its text. In the example
>> below, I draw a black "hello" on top of a red one, with a pixel offset
>> of 0, 0.1, 0.2, . . . 0.9. At least for me, I see no change until 0.5,
>> where the black text jumps a whole pixel (see attached image).
>>
>> Am I missing something? Do others see this behavior?  (I'm on Linux)
>>
>> Thanks,
>> Dave
>>
>>
>> #lang racket/gui
>>
>> (define (draw-text dc offset)
>>     (send dc set-text-foreground "red")
>>     (send dc draw-text "hello" 0 0 #t)
>>     (send dc set-text-foreground "black")
>>     (send dc draw-text "hello" offset offset #t))
>>
>> (define (draw-screen canvas dc)
>>     (send dc set-smoothing 'smoothed)
>>     (send dc set-font
>>           (send the-font-list find-or-create-font
>>                 12 'default 'normal 'normal #f 'smoothed #f 'aligned))
>>     (send dc set-initial-matrix (vector 1 0 0 1 0 0))
>>     (for ((i 10))
>>       (draw-text dc (/ i 10.0))
>>       (send dc translate 50 0)))
>>
>> (define frame (new frame% (label "Test draw-text")))
>>
>> (define canvas
>>     (new canvas%
>>          (parent frame)
>>          (min-width 500)
>>          (min-height 100)
>>          (paint-callback draw-screen)))
>>
>> (send frame show #t)
>

-------------- next part --------------
A non-text attachment was scrubbed...
Name: draw-text2-unaligned.png
Type: image/png
Size: 6976 bytes
Desc: not available
URL: <http://lists.racket-lang.org/dev/archive/attachments/20131216/a0ba256a/attachment-0001.png>

Posted on the dev mailing list.