[haiku] Re: GSOC2020 (Understanding the project idea)

  • From: "Adrien Destugues" <pulkomandy@xxxxxxxxxxxxx>
  • To: haiku@xxxxxxxxxxxxx
  • Date: Fri, 06 Mar 2020 07:56:38 +0000

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.


Other related posts: