Hi guys - It's been quite a while since I've communicated about what's happening with our nano-X/Microwindows project and development plans. As many know, other than having moved to a git repository earlier this year, the website hadn't been updated in five years. Prior to the beginning of this year, I had been involved in other endeavours, and hadn't had time for new development, hardly enough time to apply the many patches that have been received (thank you for all of them!)
The good news is that there have been quite a few changes in the last six months, and they're finally to the point that they will be very useful and relevant for everybody using the project. I have been working very hard daily the last three months and have applied very many of the patches received that can be tested, and have achieved some great new enhancements. All of this is now checked into git, and available on the current microwindows-src-snapshot.tar.gz tarball. While my initial plan (for years) was just to get all the patches applied and ship them as v0.92, there have been some nagging concerns with the underlying implementation, and I've finally decided that it would be far better to release something with major benefits, rather than effectively a patch release. We are finally ready to consider releasing a much improved nano-X/Microwindows, that I think everyone will want to upgrade to. I have made big architectural changes to some lower level algorithms and data structures, in the engine and driver layers. The new driver architecture is not fully completed, but it is working. There have only been patches applied to the nano-X and win32 API layers, so all programs should continue to run. Below I give an overview of these new features, with followup emails if requested with more detail on each. Enjoy! *Cool new features o huge speed improvements in image drawing and font glyph drawing (10x faster, no inner loop procedure calls or if statements, drawing directly to framebuffer, with clipping at upper level) o new fast convblit architecture supports builtin, PCF, FNT, Freetype 2, and Adobe Type 1 fonts for all rotations (normal, right, left, down) on all bpp (1,2,4,8,15,16,24,32) for non-aliased text drawing, and full anti-aliasing for FT2 and T1 fonts on 15,16,24 and 32bpp (other drivers possible, just not written). This allows truetype font display on all resolutions, including 1bpp. o fast blit is used for all RGB and RGBA images (with SRCOVER alpha compositing) in all rotations. PNG, TIFF and PNM images, and some JPG are currently converted internally to RGB/RGBA format. Other image decoder conversion coming. o fallback support to old code when new driver conversion blit not available. Images or display formats not supported or written/tested with the new architecture fall back to using the older code and drawing pixel-by-pixel (w/alpha). o endian-neutral blits, with explicit support for 32bpp BGRA, 24bpp BGR, and RGB 565/555 framebuffer formats. 32bpp ARGB and any other combination easily possible with small changes in new conversion blit infrastructure. Pixels are always laid out in proper byte order regardless of processor endianness, without #ifdefs. o Freetype 2/Adobe T1 driver rewrites - scaleable width now also specifiable, and full caching and cmap cache for FT2, using v2.3.12. Nagging PCF font issues fixed. o FBE - Framebuffer emulator. Emulates 1,2,4,8,15,16,24 and 32bpp on X11 to display nano-X server drawing to mmap'd framebuffer. Great for debugging or seeing a different pixel format than your desktop. Display is completed, need to add support for X11 mouse and keyboard. o major driver cleanup - deprecate/combine stretchblits, fold drawarea into new blit architecture. Still working on GdArea/GdBlit consolidation. I will write an article on this new architecture. Drivers are simpler as the conversion blits are handled at the engine layer using macros and inline procedures, near-duplicated code isn't spread out across each driver. o support for upcoming compositing engine with very fast SRCOVER alpha blending in all blits, all rotations. Macros are used for all blending, for understandability and testing. o minor items: 64-bit compatibility, Sony PSP, Blackfin, RTEMS, eCos and tomtom ports. Win32 dialog, messagebox and control enhancements. MWROP changes/simplification. Most all 0.92 patches applied. Builtin window manager for LINK_APP_INTO_SERVER. o deprecate Freetype v1 o near-completed: fonts.alias/fonts.dir and multiple directory XLFD font lookup and matching for PCF, Truetype and T1 fonts. o coming: gamma correction for alpha-blending *Needed o Documentation update (doxygen created PDF, HTML version also with updated architecture articles). Integration of Gary James' old documentation site. o Website redesign and update Please feel free to try it out or comment. Have fun! Greg --------------------------------------------------------------------- To unsubscribe, e-mail: nanogui-unsubscr...@linuxhacker.org For additional commands, e-mail: nanogui-h...@linuxhacker.org