Hi,
Harfbuzz and Freetype are software libraries used forfont rendering and layout.
A simple search on any web search engine easily finds them:
https://www.freedesktop.org/wiki/Software/HarfBuzz/
https://www.freetype.org/
The app_server already uses Freetype for rendering, but currently does not use
Harfbuzz.
As a result, it works well for latin languages and others which work similarly:
one
unicode codepoint results in one glyph on screen, and everything is drawn from
left to
right. There are many languages which does not work this way, and because of
this, can't
be rendered in Haiku at all.
The first step in this project is to get this working good enough for, for
example,
rendering such text in FontDemo. The second part goes further, because we will
need
to change other parts of the system. For example, BTextView implements automatic
line breaks (you give it a very long string of text, and it cuts it where it
thinks
its appropriate, into multiple lines for display). The algorithm used there is
known
to not work properly for some languages. BView and BFont probably have similar
problems
in all the text related APIs (DrawString, GetFontHeight, ...). This will need
to be
reviewed and fixed. But first we need the basis support in app_server, so that
we can
test what we are doing there.
--
Adrien.
6 mars 2020 07:59 "nikhil Ishi" <smilenikhil99@xxxxxxxxx> a écrit:
Hi!
I am Nikhil Ishi from Pune, Maharashtra, India.
Currently I am pursuing B.Tech (Third Year) and
new to open source and I want to contribute in Haiku. I have good knowledge
of C++ as I have been
doing competitive programming in C++. This year I want to participate in GSoC
2020 under Haiku Org.
I have gone through the project ideas and found
'Complex font rendering in app_server' interesting.
The problem statement says to integrate Harfbuzz to app_server right? But I
didn’t understand the
line ‘This task can be further extended with investigations of API changes
required in the
interface kit (and in particular BView and BFont) to properly handle left to
right text.’ and also
the terminologies ‘Harfbuzz’
and ‘Freetype’.
Can you guide me about this?
Thank you.