[squeak-dev] Re: [Ann] Enhanced StrikeFonts (antiAliasing, subPixel AA)

Juan Vuletich juan at jvuletich.org
Wed Aug 5 16:01:56 UTC 2009


Andreas Raab wrote:
> Andreas Raab wrote:
>>> Note #3. The second pass stuff is done in GrafPort, but not in 
>>> BitBlt. Do you think it is better to move it up to BitBlt?
>>
>> BitBlt, since it's used directly from StrikeFont and not via Canvas.
>
> Or that's what he thought. It turns out this doesn't work since it 
> breaks WarpBlt (which relies on the exact layout of BitBlt). I suppose 
> *that* is the reason why GrafPort got invented to begin with (it 
> always felt strange to me since Morphic had both Canvas and BitBlt and 
> should be happy inbetween the two - but if adding state to BB isn't an 
> option, that would explain GrafPort).
>
> In any case, I pushed the state vars back down to GrafPort (renaming 
> them in the process to avoid Monticello madness) and hopefully 
> everything is fine now. You'll have to use GrafPort to get two-pass 
> rendering but it won't break if you use BitBlt.

I managed to add the behavior back to BitBlt without adding any instance 
variables. It is a bit hacky, as 
#displayString:from:to:at:strikeFont:kern: needs to assume that if rule 
is rgbMul, a second pass is in order. I prefer this, as it would give 
proper rendering when not using a GrafPort / MorphicCanvas.

If you don't object, I'll upload this to the trunk later today.

BTW, as I said in another message, once we fix rgbMul in BitBlt, the 
second pass will only be needed for colored text.

Cheers,
Juan Vuletich

>
> Cheers,
>   - Andreas



More information about the Squeak-dev mailing list