nanogui: New Nano-X Architecture Preview available
Subject:
New Nano-X Architecture Preview available
From:
"Greg Haerr" ####@####.####
Date:
16 Dec 2010 00:36:58 -0000
Message-Id: <0a3701cb9cb9$436cd5c0$6964a8c0@winXP>
Hi,
There's been quite a bit of new work recently on the internals of
Nano-X, which are now running well enough to announce a preview
of this upcoming release, which is currently v0.93 in the git repository.
I have updated the website and there is also a snapshot tarball available:
ftp://microwindows.org/pub/microwindows/microwindows-src-snapshot.tar.gz
Here's a summary of the new enhancements. Please feel free to
try it out, there are huge speed increases for font and image display,
and also a demo of 32bpp compositing, which runs on any
truecolor display (compositedemo.sh, blitdemo.sh). I will be
writing up more details on the internal driver architecture and
providing screen shots on the website soon.
New Nano-X Engine Architecture Preview - Dec 15, 2010
New Ports
MAC OSX 64-bit X11 port
MoSync port
New Features
o Processor and framebuffer independent compositing with internal RGBA
32bpp pixmaps
with display on 8/15/16/24/32bpp truecolor displays.
o Hugely faster display of font and image data using blit rather than
per-pixel drawing.
o Entirely new driver architecture uses fast conversion blits for all
display
of font and image data. Subdrivers for 1/2/4/8/15/16/24/32bpp have no
control
branches in inner loops for highest speed. For systems without
framebuffers, like desktop X11 for testing, all image data is computed
using framebuffer subdrivers, and then blitted once to final display
using an automatic graphics Update() operation. For systems with
framebuffers, drawing is done directly to screen for speed, with support
for
future "buffered" windows for late-stage final compositing.
o All conversion blits support all portrait modes, stretching, raster ops,
and srcover alpha blending.
o GdArea, GdReadArea, GdBitmap and all fonts use fast conversion blits.
o New conversion blits can be added for speed for specific systems, and
slower draw code is still available for 1/2/4/8bpp palette systems.
o Most image loaders (png, jpg, etc) read into internal RGBA format for
easy use in compositing and alpha blending.
o Runtime auto-portrait mode switching now possible without application
image recomputation requirements. (bin/nano-X -A)
New Driver Architecture
o All drivers are endian-neutral with only Read/DrawPixel, DrawV/Hline and
Blit
entry points.
o New conversion blit implementation uses static inline functions for
high speed, and ease of adding new framebuffer or image data formats.
o RGBA image data format available regardless of framebuffer.
o X11 driver can emulate 8/15/16/24/32bpp displays using same codepath as
target.
Nano-X API Changes
GrNewPixmapEx takes MWIF_RGBA8888, 32 and hardware framebuffer parameter.
Win32 API Changes
Added CreateDibSection, GetLastError, SetLastError, RegisterHotKey,
UnRegisterHotkey
As usual, have fun with it!
Regards,
Greg