Hi Uwog,
> > On win32 zooming is meant to be done by changing the relative extents
> > of the viewport and of the window; adopting this mechanism should not
> > only get rid of the hinting problem, but we would get completely rid
> > of the tlu -> tdu conversions, since by setting the extents of window
> > and viewport appropriately will allow us to feed the win32 API our
> > layout units.
>
> [disclaimer: it's early, I can't formulate this as I would like]
>
> I don't know if you want to do this.
>
> For a start, this might result in different representations from other
> platforms.
Yes, it might. But then this problem is not limited to the zoom;
chances are that the FreeType renderer on Linux will render the same
font differently than the renderer built into win32 or Mac (or that
your Times New Roman font on Linux is different from that on winXP).
It seems to me that correct behaviour on a given platform needs to be
given priority over identical behaviour across platforms -- the
number of people who use AW on several different platforms is going
to be limited, and even then, such folk are more likely to be
bothered by poor readability at, say 200% zoom, than the fact that
the line break on win32 might be off by a word from the Linux
version.
> Furthermore, doing our own zoom instead of using the platform's one
> works fine on other platforms, and will allow (i think) is less
> discrepancy(?) between the build (like we have now: a lot of bugs are
> only visible on win32).
Whether it works on other plaforms I do not know, perhaps it is less
disruptive than on win32, or perhaps it works (I suspect from what
FJF said, Mac API might work similarly to the win32 one).
The central issue, however, is not platform specific. Font hinting
means non-linear width scaling, while our zoom is built on the
assumption that fonts scale linearly from one point size to another.
Quite apart from the fact that there is no way that I am aware of to
turn off hinting on win32 (and even if there was, it would
undesirable to do so), the current zoom mechanism is conceptually
wrong.
(We have had this debate before, at the end of which we got rid of
layout units; that was a step in the right direction, but not a
complete solution.)
> As for the discrepancy thing, the result letting win32 do the A instread
> of doing it ourselves are bugs like 7687.
To the contrary; bugs like 7687 are precisely due to the fact that we
try to scale everyting ourselves. If we used the normal win32
technique, we would not need to scale anything at all. When the user
chooses 200% zoom, we just tell the system that the viewport is twice
the size of the window, and forget about the zoom. The system then
does the scaling as stuff is being output: fonts, lines, images,
simply everything.
> Please don't start doing this without any mention as I'm working on a
> large patch which will be a pain to merge if any of the tlu code is
> touched.
I will not; this is too significant a change to do on the basis of
any one person's opinion, particularly this late in the development
cycle.
Tomas
Received on Mon Nov 1 15:16:40 2004
This archive was generated by hypermail 2.1.8 : Mon Nov 01 2004 - 15:16:40 CET