nanogui: FreeType2 and SetPortrait


Previous by date: 21 Oct 2008 18:08:55 -0000 FreeType2 and SetPortrait, Rafael Schwarz
Next by date: 21 Oct 2008 18:08:55 -0000 Re: FreeType2 and SetPortrait, Rafael Schwarz
Previous in thread: 21 Oct 2008 18:08:55 -0000 FreeType2 and SetPortrait, Rafael Schwarz
Next in thread: 21 Oct 2008 18:08:55 -0000 Re: FreeType2 and SetPortrait, Rafael Schwarz

Subject: Re: [nanogui] FreeType2 and SetPortrait
From: "Greg Haerr" ####@####.####
Date: 21 Oct 2008 18:08:55 -0000
Message-Id: <205701c933a8$0bb0d3b0$0300a8c0@RDP>

: I'm using microwindows version 0.91 with nano-X and freetype2 fonts.
: When I run my application with portrait none, it works perfectly. When I 
try
: to run it with the portrait left, nano-X draws everything correctly, even
: the images, but the texts don't appear. I tried to debug the nano-X, but I
: didn't find where the error happens.

I'm not looking at the source code now, but the issue has to
do with FT2 using the psd->DrawArea entry point to the
screen driver, and these get replaced with different driver
entry points (allowing translated coordinates) using the
drivers/left_portrait.c and drivers/right_portrait.c source
modules.

Translating x,y values for lines and points is easy, but for
fast blits is harder.  The psd->Blit entry point has a conversion
function, but the psd->DrawArea entry point was contributed
and the work was not finalized.  The blit will need to take place
using fully translated x and y values.  This is where it gets complicated:

My original design always kept images in hardware scan format,
(regardless of portrait orientation) allowing for fast blits
in normal and portrait modes.  Otherwise, any portrait blit
would have to draw pixel-for-pixel translating source
and destination, which would be VERY slow.

Look at the psd->Blit replacement stub in the portrait
modules above.  You'll essentially need to do the same
thing for the psd->DrawArea entry point, and your
text should display.

In a later version of Microwindows, we should combine
the blit and drawarea entry points.  The reason the
drawarea entry point was contributed is that it supports
alpha blending and is faster than my original blit work.
This was because I was trying to keep writing a new
screen driver simple for new systems, which of course
is a simplicity/speed tradeoff.

Hope this makes sense.  BTW, Freetype 1 doesn't
use the drawarea entry point, but instead uses the
older blit draw, so that should work for you if
you can't get the above working.

Regards,

Greg


Previous by date: 21 Oct 2008 18:08:55 -0000 FreeType2 and SetPortrait, Rafael Schwarz
Next by date: 21 Oct 2008 18:08:55 -0000 Re: FreeType2 and SetPortrait, Rafael Schwarz
Previous in thread: 21 Oct 2008 18:08:55 -0000 FreeType2 and SetPortrait, Rafael Schwarz
Next in thread: 21 Oct 2008 18:08:55 -0000 Re: FreeType2 and SetPortrait, Rafael Schwarz


Powered by ezmlm-browse 0.20.