[webkit-dev] Design change request for Font
David Hyatt
hyatt at apple.com
Sun Mar 19 01:04:44 PST 2006
On Mar 18, 2006, at 4:05 PM, Mike Emmel wrote:
> On 3/18/06, David Hyatt <hyatt at apple.com> wrote:
>> You are not intended to initialize the native binding in the Font
>> constructor. The "native" side is created lazily when the properties
>> of the font are queried. Font is still in flux though (there are
>> more changes coming to the Mac side that will make the design a bit
>> more clear).
>>
>> dave
>>
> Okay but I'm not sure why not .. in any case that decision should be
> left to the implementor I'd think.
Fonts are created for all objects in the RenderTree. This includes
objects that do not use the font values for anything. Here's an
example:
<img style="font-weight:bold; font-size:36px; display:block">
This image has a Font object that knows it is 36px and bold, but do
you really want to create and access a native font resource when the
font is effectively never going to be used? The answer (for obvious
performance reasons) is no.
The design is that Font is a promise. If you start asking it for
actual metrics or to paint, then at that time the native font data
should be accessed as needed.
> I'm happy to wait for the changes your
> speaking of but this is a good example were a bit of design
> documentation would be useful IMHO.
>
Yeah. Keep in mind Font is extremely young and in a state of flux.
A lot of the design/classes are just now emerging (e.g., FontDataSet,
etc.) and more of the Mac code is going to move over to this new
design and become cross-platform.
I would advise doing what we did on Win32 (see FontWin.cpp) and (for
now) just hack an implementation that does very basic text and then
move on to something else. If you wait a bit you'll find a lot more
of the functionality will have become cross-platform, and then you'll
have to do a lot less work.
dave
(hyatt at apple.com)
More information about the webkit-dev
mailing list