+1 vote

I notice a difference in rendering of Tibetan script between PT8 ([Phone Removed] on Windows 7 and the same version on Windows 10. In Win7 lines will wrap a the syllable-break character Tsheg (U+0F0B) while in Win10 they only wrap at a space character. I read in another thread:

“Note: Paratext’s ‘Rendering Engine’ is an embedded web browser engine…”

Can someone clarify exactly what rendering engine is being used for complex scripts in Windows 10? (is it Harfbuzz?)

Paratext by (302 points)
reshown

5 Answers

0 votes
Best answer

I notice the same text (Tibetan Old Testament 11, Gen 1) wraps much smoother, like Paratext in Win7, in Chrome than in Firefox.

Chrome: Version 75.0.3770.80 (Official Build) (64-bit) says it is up to date

Firefox: 67.0.1 (64 bit) says it is up to date.

Text:
https://www.bible.com/bible/1712/GEN.1.TOT11

by [Expert]
(3.1k points)

reshown

Then I thought I’d check what that text looks like in Firefox on my Windows 7 machine, and curious, it is wrapping at the 0F0B characters, not just at the spaces. This is Firefox 67.02 (32 bit). Is there a difference between Harfbuzz on a 32 bit computer and on a 64 bit?

Both my systems are 64-bit. PT8 on Win7 wraps on space and 0F0B, PT8 on Win10 only wraps on space.

64-bit Windows will run 32-bit applications. So you can still have (AFAIK) 32-bit build of Firefox on 64-bit Windows. I would not think that 32 or 64 bit compilation would affect HarfBuzz, but I suppose there is a small possibility of that.

0 votes

Paratext uses Firefox/Gecko which uses Harfbuzz. It’s used for all operating systems, not just Windows 10.

Are you looking at the exact same project on both? If not, are the character settings the same for both projects?

by [Expert]
(16.2k points)

I can duplicate this. The same project wraps text at many more places in Windows 7 than in Windows 10. Even if I add U+0F0B as a word break character in the language properties it does not wrap there in Windows 10 except in Preview view, when all the 0F0B characters disappear.

Test project, 8 verses of Genesis 1 copied from Tibetan Old Testament 2011 in Youversion.

TST 2019-06-05.zip (5.0 KB)

Firefox/Gecko can also use Graphite for rendering (if the font supports Graphite), otherwise, yes, Harfbuzz would be used for the OpenType rendering.

While HarfBuzz can indeed be used on all operating systems, different applications may or may not use it. InDesign has it’s own OpenType shapper, older versions of LibreOffice used Uniscribe/DirectWrite on Windows, and something else on Linux. Now LibreOffice uses HarfBuzz everywhere. Microsoft Office would use DirectWritre, not HarfBuzz.

Older versions of Paratext used part of Internet Explorer (and thus Uniscribe) to render text, at one point Paratext on Windows could switch between IE/Uniscribe and Gecko/HarfBuzz.

I suspect that linebreaking for wrapping text involves more than just HarfBuzz. ICU might also be an issue, and also probably how the application is written, which might explain the differences between Firefox and Chrome. Even though both web browsers are up to date, I don’t know if they would have the same version of HarfBuzz, or ICU. Although ICU is bundled with Gecko (IIRC from talking with hindlemail) so the version of ICU that Paratext uses should be the same on both systems, so that should not be causing a difference when using Paratext.

I think hindlemail asks an excellent question about what font is being used. It would be helpful to know what font you are testing with, and if you have the same version of the font on both systems.

0 votes

I’m using the exact same project for both. I have a dual-boot system, so whether I boot into Win7 or Win10, PT8 is accessing the same project folder in my data drive.

Is the Gecko/Harfbuzz engine supplied with the O/S? If so, I can understand that it may have been updated in Windows 10. Or where does it come from?

And does it matter whether Firefox is installed on the user’s machine or not?

by (302 points)
reshown

Included with Paratext install.
Firefox being installed or not shouldn’t make any difference.

Is the font a system font? If so is it font version the same on bother OS? If not one could try copying the windows 7 one to Windows 10 machine (making the appropriate backups first or course)

In my test project, I didn’t specify a font so Paratext used Arial. I tried downloading a Tibetan font, BabelStone Tibetan, and I have also tried Charis SIL (v 5.0) and has the same result, the words will wrap at 0F0B in WIndows 7 but not in Windows 10.

I’m using two Tibetan fonts: Tibetan Machine Uni and Uchen_05. I installed the same .ttf file on both systems. As with sewhite W, both fonts wrap on 0F0B in Win7 but not in Win10.

0 votes

Looks like Gecko/Firefox has a remaining use of Uniscribe.

For getting “JIS X 4051” linebreak characters. (NS_GetComplexLineBreaks)

(On Linux this currently uses Pango - although I’m not sure this performs any better)

I don’t have Windows7 machine to test this on, but I guess a Uniscribe change has caused this.

by [Moderator]
(2.3k points)
0 votes

Actually on Linux it works as expected (0x0f0b is a soft line break)

For my Windows testing I hacked the results of the uniscribe call ScriptBreak (to class 0x0f0b as a softbreak), and confirmed Paratext lays out as expected.

by [Moderator]
(2.3k points)

reshown
Welcome to Support Bible, where you can ask questions and receive answers from other members of the community.
They devoted themselves to the apostles’ teaching and to fellowship, to the breaking of bread and to prayer.
Acts 2:42
2,628 questions
5,370 answers
5,045 comments
1,420 users