nanogui: patch for microwindows in wdtv live
Subject:
Re: [nanogui] patch for microwindows in wdtv live
From:
"Greg Haerr" ####@####.####
Date:
22 Feb 2010 01:57:25 -0000
Message-Id: <0bd301cab362$5cc59520$6464a8c0@winXP>
Hi,
I have looked much more extensively at all the
changes that are in the WDTV source tree, based
on a release after 0.90, but before 0.91.
I see that you have been quite busy, and there
are still quite a few items that have been added,
which will need to be moved into 0.92 git in order
to use the current codebase. These items include:
o engine/devmalloc.c STATIC memory allocations
o static buffers for images
o NO_CHARMAP_WORKAROUND fix in font_freetype{2}.c
o drivers/scr_em86xx.c and scr_smp863x.c screen drivers
o MWROP_COPY_RK and MWROP_COPY_IK handling in 16 and 32bpp drivers
o TRANSLATE_ESC handling in kbd_tty.c
o brightness handling (requiring float) in devopen.c
o chinese font and HBF handling in freetype 2
o fast draw enhancements in devdraw.c::GdDrawImage
o jpeg setjmp and EOI handling
o png alpha channel and BGR handling
I am very interested in helping move all required
changes into the current pre-0.92 source tree,
but have some questions, which I've outlined
below. I would like to know whether you're
already trying to move to 0.92, given it
doesn't contain any of the features above (yet!).
Here are my comments on each of the above, in
more detail.
o engine/devmalloc.c STATIC memory allocations
o static buffers for images
These can be fairly easily handled by using
a specific memory allocator in all the image
routines, which could be redirected to your
STATIC_malloc() routines in devmalloc.c.
o NO_CHARMAP_WORKAROUND fix in font_freetype{2}.c
I'm not quite certain what this is for, it appears
to handle character values > 0x80 differently. Can
you comment? Also, are you currently using
FT2, and which version? There have been many
changes adopted in FT2 since then, and the cache
code is now working in the repository.
o drivers/scr_em86xx.c and scr_smp863x.c screen drivers
Are these drivers used in WDTV, or are you using
the fblin32.c and fblin16.c drivers?
o MWROP_COPY_RK and MWROP_COPY_IK handling in 16 and 32bpp drivers
These should be easily added to the fblin16 and fblin32 drivers.
o TRANSLATE_ESC handling in kbd_tty.c
Easily added
o brightness handling (requiring float) in devopen.c
The current implementation drags in floating point.
It would be nice to have a brightness control
capability that didn't require float.
o chinese font and HBF handling in freetype 2
Not sure if this is still required. Are these
mods, including the hbf.c files, still required
when using FT2 fonts? Are you using FT2 fonts
on the device, or only hbf.c and compiled-in
arial fonts?
o fast draw enhancements in devdraw.c::GdDrawImage
I like this modification. However, in looking more
deeply, the speedup assumes a framebuffer display
and writes directly, bypassing the driver. This
won't work using non-fb display drivers. Thus,
I will need to apply a bit more work so that
your original speed improvement is held, and
the code works on any system (like X11 for test,
for instance).
We might add a flag, PSF_HAVEFB, to indicate whether
the GdDrawImage routine can draw directly or must
go through the screen driver for this operation,
for instance.
o jpeg setjmp and EOI handling
I see there is also setjmp handling that is
new, for what reason? Is the reason for the EOI
handling that some jpegs are never received in
full, and that hangs the jpeg decoder?
o png alpha channel and BGR handling
There is currently alpha channel support in
0.92RC2 that should work. However, there
isn't support for conversion to BGR format.
Is this to guarantee quick drawing the
GdDrawImage routine, or for another reason?
I would like a sample .png for testing.
I may have left out other requirements, please
let me know.
Regards,
Greg