[ I'm quoting the entirety of the message since I'm adding mozilla-i18n
to the cc: list.  See below. ]

On Tuesday 2002-08-13 16:37 -0500, [EMAIL PROTECTED] wrote:
> Hello, I'm new to this list and I have a question that I hope is
> appropriate to ask here. Here at SIL International we've developed a
> rendering engine called Graphite that can do all kinds of rendering for
> complex writing systems. The system is extensible in that the rendering
> behavior is defined by a program written in a language we've invented
> called GDL (Graphite Description Language). This is important for our
> purposes because it provides rendering capability for the many little-known
> languages around the world that are not supported by major software
> development efforts.
> 
> We're considering the possibility of integrating Graphite rendering into
> Mozilla, which would provide a means for communication of all kinds of data
> from the lesser-known languages of the world via a web browser. Right now
> we're trying to evaluate the feasibility of this idea. The most important
> aspects to this would be finding places in the code to hook into in order
> to do the following:
> 
> (1) recognize that we need to render with Graphite (probably by means of
> the font name),

Using the font name seems like a very unusual way to make such a
determination.  I'd think you would want to do it based on the presence
of certain characters, and then the presence of those characters might
lead to certain font selection.

This seems similar to the work that was done for bidirectional layout
(for Hebrew and Arabic), which has been accomplished, although it wasn't
necessarily easy.  Some folks who hopefully read mozilla-i18n can
probably give you more information.

Depending on what types of things the library does, you might need to
look at a bit of the layout code (in the layout directory).  You'd
certainly need to deal with the font code I mention below.

> (2) call the Graphite engine to perform the rendering (write the glyphs
> onto the screen), and

This seems like something that would end up in the font code for each
platform.  (e.g., gfx/src/windows/nsFontMetricsWin.cpp,
gfx/src/gtk/nsFontMetricsGTK.cpp, etc.)  What platforms does Graphite
run on?

> (3) define copy operations. This is complicated by the fact that there is
> not a one-to-one correspondence between the rendered glyphs and the
> characters to be copied, and the information about the correspondence is
> hidden in the Graphite engine and related data structures. We could
> probably simplify the behavior if needed. This item would not be absolutely
> essential for the first phase of effort, but would be nice.

I really don't know much about how hard something like this would end up
being.  Considering that selection of bidirectional text doesn't work
all that well last I checked, I suspect it's probably somewhat
difficult.

> I have not looked at the Mozilla code at all, yet. But would anybody have
> an off-the-top-of-your-head idea of what kind of effort this would involve,
> say in terms of person-months? (Of course this is assuming the right kind
> of interface(s) on the Graphite engine; we may also need to rework things
> somewhat from our end.)

Perhaps the people who worked on Bidi might be able to make better
estimates than I could.

> I see from the web site that it is also possible to grab the Gecko layout
> code to incorporate into our own stuff. It occurred to me that a better way
> to go might be to build a plugin that uses Gecko. Am I right in assuming
> that this would give us the XML/HTML/CSS support that we would like to
> have? Any sense of which would be the easier approach?

Another possibility is for you to contribute code to Mozilla that would
become part of Mozilla.  The relevant parts of Mozilla tends not to be
very extensible, which would mean getting something to work using an
external library *might* be significantly harder (depending on what it
is) than incorporating the library into Mozilla.  (I believe there may
have been some attempts to integrate with pango, but I'm not sure how
successful they were.)

You have to be aware of license issues if you're thinking about
modifications to Mozilla, especially if the modifications involve code
that you don't want to contribute to Mozilla.  See
http://www.mozilla.org/MPL/ for more information.  However, I'm not a
laywer, this isn't legal advice, and you should ask a lawyer if you want
legal advice.

> Sorry for the rather naive questions, I'm just trying to get an initial
> feel to try to evaluate the feasibility of some different options. Thanks
> for any help you can give.

-David

-- 
L. David Baron        <URL: http://www.people.fas.harvard.edu/~dbaron/ >

  • Graphite Sharon_Correll
    • L. David Baron

Reply via email to