>> ... this is not a WebCore issue, so there is nothing you can do in WebCore to fix it. When I look at WebCore's WidthIterator::advance function, it doesn't seem to me to be savvy to complex script. It looks to me like it walks through a Unicode string and replaces character clusters with individual glyphs. This approach works for most scripts but not complex scripts such as Arabic and Devanagari. The problem, as you may well be aware, is that there are many OpenType-directed substitutions, ligations, and "un-ligations." This is unrelated to Arabic's RTL nature unrelated to simply contextual alternates resulting from cursiveness. It seems to me that complex script would have to be supported by something other than WidthIterator::advance (is it?). If WebCore (or WebKit in general) supports complex script correctly then I wonder what I am missing regarding the above statements. Paul
On Sep 28, 2008, at 1:15 AM, Paul Pedriana wrote:
... this is not a WebCore issue, so there is nothing you can do in WebCore to fix it.
When I look at WebCore's WidthIterator::advance function, it doesn't seem to me to be savvy to complex script. It looks to me like it walks through a Unicode string and replaces character clusters with individual glyphs. This approach works for most scripts but not complex scripts such as Arabic and Devanagari. The problem, as you may well be aware, is that there are many OpenType-directed substitutions, ligations, and "un-ligations." This is unrelated to Arabic's RTL nature unrelated to simply contextual alternates resulting from cursiveness. It seems to me that complex script would have to be supported by something other than WidthIterator::advance (is it?).
If WebCore (or WebKit in general) supports complex script correctly then I wonder what I am missing regarding the above statements.
WebKit on Mac and Windows (and perhaps other ports, haven't tested) supports complex scripts such as Arabic. But not (currently) the iPhone port. Regards, Maciej
Thank you guys for your comments. There is a software in the market that installs an edited version of the webcore that makes such letter shaping but its very expensive. Please find the attached code, i would like to embed it some where when the html page is loaded to shape the words together. It would be greate if somebody guys can point me to the correct function to plug the code in. regards, Sherif Maciej Stachowiak wrote:
On Sep 28, 2008, at 1:15 AM, Paul Pedriana wrote:
... this is not a WebCore issue, so there is nothing you can do
in WebCore to fix it.
When I look at WebCore's WidthIterator::advance function, it doesn't seem to me to be savvy to complex script. It looks to me like it walks through a Unicode string and replaces character clusters with individual glyphs. This approach works for most scripts but not complex scripts such as Arabic and Devanagari. The problem, as you may well be aware, is that there are many OpenType-directed substitutions, ligations, and "un-ligations." This is unrelated to Arabic's RTL nature unrelated to simply contextual alternates resulting from cursiveness. It seems to me that complex script would have to be supported by something other than WidthIterator::advance (is it?).
If WebCore (or WebKit in general) supports complex script correctly then I wonder what I am missing regarding the above statements.
WebKit on Mac and Windows (and perhaps other ports, haven't tested) supports complex scripts such as Arabic. But not (currently) the iPhone port.
Regards, Maciej
_______________________________________________ webkit-dev mailing list webkit-dev@lists.webkit.org http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev
1) WebKit itself supports complex script rendering. 2) The iPhone edition of WebKit does not support complex scripts. 3) You can't fix the iPhone problem because it's closed and no one can do it but Apple. 4) There's nothing you or we can do to fix the iPhone. 5) Implementing complex scripts support is not easy as plugging some code into a function. On Sun, Sep 28, 2008 at 12:37:19PM +0200, Sherif wrote:
Thank you guys for your comments. There is a software in the market that installs an edited version of the webcore that makes such letter shaping but its very expensive. Please find the attached code, i would like to embed it some where when the html page is loaded to shape the words together. It would be greate if somebody guys can point me to the correct function to plug the code in.
regards, Sherif
Maciej Stachowiak wrote:
On Sep 28, 2008, at 1:15 AM, Paul Pedriana wrote:
... this is not a WebCore issue, so there is nothing you can do
in WebCore to fix it.
When I look at WebCore's WidthIterator::advance function, it doesn't seem to me to be savvy to complex script. It looks to me like it walks through a Unicode string and replaces character clusters with individual glyphs. This approach works for most scripts but not complex scripts such as Arabic and Devanagari. The problem, as you may well be aware, is that there are many OpenType-directed substitutions, ligations, and "un-ligations." This is unrelated to Arabic's RTL nature unrelated to simply contextual alternates resulting from cursiveness. It seems to me that complex script would have to be supported by something other than WidthIterator::advance (is it?).
If WebCore (or WebKit in general) supports complex script correctly then I wonder what I am missing regarding the above statements.
WebKit on Mac and Windows (and perhaps other ports, haven't tested) supports complex scripts such as Arabic. But not (currently) the iPhone port.
Regards, Maciej
_______________________________________________ webkit-dev mailing list webkit-dev@lists.webkit.org http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev
_______________________________________________ webkit-dev mailing list webkit-dev@lists.webkit.org http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev
-- GPG-Key: 0xA3FD0DF7 - 9F73 032E EAC9 F7AD 951F 280E CB66 8E29 A3FD 0DF7 Debian User and Developer. Homepage: www.foolab.org
Thank you Mohamed for your comment. It is not implementing a complex script but implementing the shaping. If you claim, that it is closed, how did the other webcore exist. Why i can't? The source code is available. Mohammed Sameer wrote:
1) WebKit itself supports complex script rendering. 2) The iPhone edition of WebKit does not support complex scripts. 3) You can't fix the iPhone problem because it's closed and no one can do it but Apple. 4) There's nothing you or we can do to fix the iPhone. 5) Implementing complex scripts support is not easy as plugging some code into a function.
On Sun, Sep 28, 2008 at 12:37:19PM +0200, Sherif wrote:
Thank you guys for your comments. There is a software in the market that installs an edited version of the webcore that makes such letter shaping but its very expensive. Please find the attached code, i would like to embed it some where when the html page is loaded to shape the words together. It would be greate if somebody guys can point me to the correct function to plug the code in.
regards, Sherif
Maciej Stachowiak wrote:
On Sep 28, 2008, at 1:15 AM, Paul Pedriana wrote:
... this is not a WebCore issue, so there is nothing you can do
in WebCore to fix it.
When I look at WebCore's WidthIterator::advance function, it doesn't seem to me to be savvy to complex script. It looks to me like it walks through a Unicode string and replaces character clusters with individual glyphs. This approach works for most scripts but not complex scripts such as Arabic and Devanagari. The problem, as you may well be aware, is that there are many OpenType-directed substitutions, ligations, and "un-ligations." This is unrelated to Arabic's RTL nature unrelated to simply contextual alternates resulting from cursiveness. It seems to me that complex script would have to be supported by something other than WidthIterator::advance (is it?).
If WebCore (or WebKit in general) supports complex script correctly then I wonder what I am missing regarding the above statements.
WebKit on Mac and Windows (and perhaps other ports, haven't tested) supports complex scripts such as Arabic. But not (currently) the iPhone port.
Regards, Maciej
_______________________________________________ webkit-dev mailing list webkit-dev@lists.webkit.org http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev
_______________________________________________ webkit-dev mailing list webkit-dev@lists.webkit.org http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev
------------------------------------------------------------------------
_______________________________________________ webkit-dev mailing list webkit-dev@lists.webkit.org http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev
on 28.09.2008 12:15, Paul Pedriana at ppedriana@gmail.com wrote:
It seems to me that complex script would have to be supported by something other than WidthIterator::advance (is it?).
There are multiple parts for such support indeed, which has to do with different requirements for rendering, editing and DOM APIs. See e.g. iteration support in Position and VisiblePosition. Of course, "supported" never means "absolutely bug-free" - no implementation of text rendering, and probably not even any spec works perfectly for all scripts and all use cases. - WBR, Alexey Proskuryakov.
WebCore has two font rendering code paths: the simple path and the complex path. WidthIterator is only used by the simple path. For complex scripts, different code paths are used that involve the OS text engines more (ATSUI/CoreText on Mac, Uniscribe on Windows). Check out platform/graphics/Font.cpp. Functions usually branch based off a canUseGlyphCache method that inspects the text run to see if it contains complex script: For example, here is the drawText function: void Font::drawText(GraphicsContext* context, const TextRun& run, const FloatPoint& point, int from, int to) const { ... if (canUseGlyphCache(run)) drawSimpleText(context, run, point, from, to); else drawComplexText(context, run, point, from, to); } dave On Sep 28, 2008, at 3:15 AM, Paul Pedriana wrote:
... this is not a WebCore issue, so there is nothing you can do in WebCore to fix it.
When I look at WebCore's WidthIterator::advance function, it doesn't seem to me to be savvy to complex script. It looks to me like it walks through a Unicode string and replaces character clusters with individual glyphs. This approach works for most scripts but not complex scripts such as Arabic and Devanagari. The problem, as you may well be aware, is that there are many OpenType-directed substitutions, ligations, and "un-ligations." This is unrelated to Arabic's RTL nature unrelated to simply contextual alternates resulting from cursiveness. It seems to me that complex script would have to be supported by something other than WidthIterator::advance (is it?).
If WebCore (or WebKit in general) supports complex script correctly then I wonder what I am missing regarding the above statements.
Paul
_______________________________________________ webkit-dev mailing list webkit-dev@lists.webkit.org http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev
Hi everyone, I got an error compiling webkit, could you please take a look on it http://paste.lisp.org/display/68734 regards, Sherif
participants (6)
-
Alexey Proskuryakov
-
David Hyatt
-
Maciej Stachowiak
-
Mohammed Sameer
-
Paul Pedriana
-
Sherif