30 Jul 2011 * Nintendo DS port, added MWPF_TRUECOLOR1555 format (Derek Carter) * add Standard Event mouse/kbd drivers (/dev/input/event0) EVENTMOUSE/EVENTKBD config (David Rizzo) * updated DJGPP support in contrib/djgpp, GRX lib and VESA (Georg Potthast) * add GetSysColorBrush (Ludwig) 19 Feb 2011 * remove GsError() in GrSetFocus to fix FLTK 1.1.10 crash/desync problem (Martin) * fix scr_fb.c typo * NOTE: unlike v0.92, config SCREEN_PIXTYPE _must_ be set to target framebuffer pixel format. The convblit routines use RGB2PIXEL/RED2PIXEL macros which fail when converting to 16bpp, and GdDrawImage display is incorrect. The inability to use multiple fb pixel formats selected at runtime will be fixed soon. 10 Jan 2011 * fix slow fbe startup creating framebuffer 8 Jan 2011 * prelim C++ linkages: agg rasterizer demo (src/agglite), canny edge detector src/canny) * added MWIF_MONOWORDLSB blit to fblin1 for PCF/core font drawing * added MWIF_MONOBYTELSB blit to fblin1 for T1LIB font non-aliased drawing * freetype/t1lib driver auto downgrade to non-antialias if blend blitter not present * added fast 1bpp raster ops from Dan Bloomberg's leptonica library (www.leptonica.com) all raster ops now supported * added support for 1bpp (pseudo-palette) pixmaps (use MWIF_PAL1), demos/nanox/monobitmap.c must set fg and possibly bg color and usebg when calling GrCopyArea with palette (1,2,4,8 bpp) pixmap to truecolor (higher bpp) pixmap for 1bpp pixmap conversion, fg/bg color used is bit 0 of MWCOLORVAL * cleaned up MWIMAGEINFO, added MWIF_PAL1 1bpp option to GdCreatePixmap 31 Dec 2010 * cleanup jpeg loader, forces pal8 in palette mode else pal8 or RGB888 from image * remove sscanf from xpm and pnm loaders * remove bytesperpixel from image/psd header and GrGetImageInfo return * cleanup xpm loader, force pal8 image in palette mode else RGBA8888 30 Dec 2010 * auto image upgrade to RGBA if not running in palette mode and no convblit available this allows very fast drawing of .gifs and other 8bpp palettized images 29 Dec 2010 * fix GdDrawImagePartToFit, test in composite.c * all image loaders use PSD, not MWIMAGEHDR * fix 16bpp driver rop bugs * remove psd->linelen, use psd->pitch for line length in bytes * pixmaps are now always width aligned to DWORD on right boundary * GrGetImageInfo will work for pixmaps, as all images are now stored in pixmaps * GR_IMAGE_ID id's are now pixmap id's and can be drawn on (no duplicate id's) * GdLoadImageFromFile/Buffer use PSD not MWIMAGEHDR, remove GdFreeImage * rearranged MWIMAGEHDR/SCREENDEVICE to have shared header data members MWIMAGEHDR structure changed, image .c files need convbmp regeneration * fixed linelen parameter bug in gen_mapmemgc * new GdCreatePixmap function to create memory drawing surfaces * added palette to SCREENDEVICE in preparation for elimination of MWIMAGEHDR 27 Dec 2010 * added ALWAYS_INLINE to force inline convblit functions when not optimizing * fix MwTextOut/MwDrawTextOut NULL hDC when erasemove bug * rewrote dwswap/wswap endian reversal routines in bmp loaders, cleanup bmp reader/writers * swap.h tries to automatically determine CPU endianness, new host_to_little_endian_32/16 * remove/fix duplicate bmp decoder in mwin/winresbmp.c, must set HAVE_BMP_SUPPORT for win32 bmps 24 Dec 2010 * ctrl-quit (f15) will save screen contents to screen.bmp * added DEBUG_EXPOSE and DEBUG_BLIT to flash yellow/brown on expose/blit areas * fix/rewrite GdCaptureScreen to use framebuffer rather than /dev/fb0 23 Dec 2010 * fix corner resize off by 2 bug * buffered windows never displayed until GrFlushWindow called, remove GR_WM_PROPS_NODRAWONRESIZE internal GR_WM_PROPS_DRAWING_DONE flag to indicate drawing finalized by calling GrFlushWindow * unset GR_WM_PROPS_BUFFERED releases buffer, window can be used normally * fixed buffered window background clear clipping bug (pixmap using root window clipregion) * added GrNewBufferedWindow for quick buffered windows, same parameters as GrNewWindowEx * added debug yellow clear rects for visual expose area and blit clip region display * fix nanowm gc leaks 22 Dec 2010 * optimized GrResizeWindow exposure for no blink * added OSX/iOS-style buffered windows! use GR_WM_PROPS_BUFFERED flags in GrNewWindowEx (demo in demos/nanox/composite.c, fontdemo.c, src/compositedemo.sh, fontdemo.sh) Quick conversion for double buffered windows in any application: add GR_WM_PROPS_BUFFERED to GrNewWindowEx flags add GR_WM_PROPS_NOBACKGROUND if app paints background add GrFlushWindow(wid) call in paint routine add update mask and handling for GR_UPDATE_MAP & GR_UPDATE_SIZE and call paint routine remove Exposure mask and event handling Buffered windows allocate a 32bpp RGBA pixmap for automatic offscreen buffered drawing. Pixmap is erased to bg color on create and resize unless GR_WM_PROPS_NOBACKGROUND set On window expose, buffered contents are copied, app never gets expose events. App must process resize and map Update events, flush buffer with GrFlushWindow(wid) * fix memory leak with background pixmap windows 21 Dec 2010 * fix optimization problem with DEBUG=Y, now -O3 with DEBUG, not -O0 * cleanup device.h HAVE_xxx defines, use Arch.rules -DHAVE_xxx=0/1 instead * change HAVEFLOAT->HAVE_FLOAT, MW_NOSIGNALS=1->HAVE_SIGNAL=0, HAVESELECT->HAVE_SELECT * fix BIG_ENDIAN define in dbcs and devfont * cleanup printfs, use EPRINTF/DPRINTF, will call fprintf or GdError based on HAVE_FPRINTF, GdError will call write() if HAVE_FILEIO set otherwise nothing nano-X client programs will use fix in nano-X.h to remove printf/fprintf calls if HAVE_FPRINTF=0 19 Dec 2010 * replaced strcmpi with strcasecmp * special case FT2 termcs*.ttf fonts to use charmap[1] instead of unicode encoding * added NOFONTS, NOCLIPPING config options, removed NOFONTSORCLIPPING * added ENGINE config option to make libmwengine.a 17 Dec 2010 * Configs/ config file cleanup, added SCRMEM option for memory screen driver * added XK_F15 for macosx x11 quit * fixed time_to_expiry definition for MACOSX port * fixed stretchblit in right portrait 32bpp * rm demos/nxkbd/key*.c, convbmp will recreate from .bmp 16 Dec 2010 * remove GdSetFont, font not cached in gc because passed directly to GdText * fix PSF_ADDRMALLOC flag * wrote new memory screen driver scr_mem.c, keeps update region for fb_graphicsflush 14 Dec 2010 * reduce code size, GrDrawImageToFit now calls GrDrawImagePartToFit * added convstretchblit rop copy for 32/24/16bpp dest 13 Dec 2010 * coalesced GdCheckCursor calls in GdBlit/GdStretchBlit for speed * added stretch convblits for RGBA -> BGRA/BGR/16bpp * runtime auto portrait switching now works including with offscreen pixmaps! (see blitdemo.sh and compositedemo.sh) * all pixmaps kept in non-portrait addressing mode, allows convblit/frameblit to copy 12 Dec 2010 * 1st RGBA offscreen compositing operation!, portable across 8,16,24,32bpp framebuffers new 32bpp RGBA pixmaps allow compositing on any system regardless of framebuffer format added compositing demo compositdemo.sh (demos/nanox/composite.c) * create new MWHWPIXEVAL, size varies with MWPF_PIXEL_FORMAT changed GR_PIXEVAL to MWHWPIXELVAL for compatibility * make MWPIXELVAL constant size, can't vary as 32bpp driver could be called in 16bpp systems * enhanced fblin32.c for 32bpp rgba pixmaps * added GrNewPixmapEx with MWIF_xxxx image format parameter (allows creation of 32bpp pixmaps) passed format parameter: use 0 for framebuffer bpp, 32 for any 32bpp format, or MWIF_RGBA8888 / MWIF_BGRA8888 for specific image format * cleanup nano-X.h * change GrCreateFont GR_CHAR * parm to const char * 11 Dec 2010 * fix GR_BACKGROUND_TRANS, rewrite GsDrawBackgroundPixmap, change GsWp prefix to Gs * fix background clear again when drawing background pixmaps with alpha channel * remove MWIMAGEHDR compression member (replaced with data_format) * rewrote convbmp to convert images to rightside up, BGR->RGB, BGRX->RGBA * fix skip blit/send expose bug in GrCopyArea (window partially offscreen and root expose) 10 Dec 2010 * revert back to original faster GrResizeWindow code from before 12/5/2010 * comment out skip blit and send expose in GrCopyArea(), fixes root window expose/clip bug bug was seen in chess.sh and blitdemo.sh * new blitdemo.sh demo (uses renamed/updated ft2test.c -> blitdemo.c) * add srcxvirtres, srcyvirtres to MWBLITPARMS for src coord rotations, remove srcpsd-> in blit 9 Dec 2010 * fix err_x init in stretch blits, caused glitches/crash in portrait modes * fix mouse/touch code for down portrait mode (Uwe) 8 Dec 2010 * cleanup MWIMAGE_RGB in engine/image_xxx routines 7 Dec 2010 * fix GrNewBitmapFromPixmap/GrNewRegionFromPixmap, remove alpha (needs fix in 0.92 also) fixes FLTK 1.10 bitmap. FLTK 1.10 pixmap requires nxlib/SetClip.c fix 5 Dec 2010 * prelim 64 bit MACOSX X11 port * fix parms.srcpsd bug from last checkin * revert to older GrResizeWindow method to fix bug shown by demos/nanox/ft2test.c * remove PSF_HAVEBLIT, cleanup * fillrect in GsDrawBackground if pixmap has alpha channel 4 Dec 2010 * all blits except 16bpp are endian neutral * cleanup GdBlit, rename GdStretchBlit, use common GdConvBlitInternal for all blit clipping * added FrameBlit and FrameStretchBlit subdriver framebuffer blits * removed Blit from fblin32/24/16/8 subdrivers, renamed driver proc BlitFallback * rewrote APPLYOP for speed, optimized fblin32/24/16/8 pixel/hline/vline drawing * MWROP_BLENDCONSTANT supported in 16/24/32bpp frameblit only (was 8/16/24/32bpp) * frameblit src_over supported in 32bpp only, otherwise copy * rewrote GdStretchBlitEx upper/lower layers to use frameblit_stretch_xxxx * removed StretchBlitEx from subdrivers * background pixmap draw now uses SRC_OVER, added SRC_OVER/XOR_FGBG to GdStretchBlit/GdBlit * fix bug in 24bpp stretchblit (dst_y_step = dstpsd->linelen*3), (needs fix in 0.92 also) * deprecated MWROP_SRCCOPY, use MWROP_COPY 29 Nov 2010 * rewrote GdBlit to use frameblit_xxxx rather than old format psd->Blit * added framebuffer frameblit_copy, copies backwards if required, used in GdBlit MWROP_COPY * combined portrait blits for rgba/rgb/mono, added rgba output for psp * cleaned up SCREENDEV struct, deprecated many screen drivers (see src/DEPRECATED) * added copy convblits for 32bpp rgba (GdArea MWPF_RGB) 28 Nov 2010 * cleaned up config file * runtime bpp is used to select subdriver, but subdriver format must be set in config file: 32bpp byte order |B|G|R|A| = MWPF_TRUECOLOR8888 (pc) 32bpp byte order |R|G|B|A| = MWPF_TRUECOLORABGR (psp) 24bpp byte order |B|G|R| = MWPF_TRUECOLOR888 16bpp LE RGB565 = MWPF_TRUECOLOR565 16bpp LE RGB555 = MWPF_TRUECOLOR555 * deprecated MWPF_TRUECOLOR0888, now MWPF_TRUECOLOR8888 (|B|G|R|A| format) * deprecated fblin32alpha.c driver, TCABGR now uses fblin32.c * fixed MWPF_TRUECOLORABGR emulation in X11 driver * added amask (alpha mask) to SCREENINFO, standardized gen_getscreeninfo function * rewrote GdBitmap to use fast convblit, added GdBitmapByPoint 27 Nov 2010 * added GdFindConvBlit, GdPrintBitmap, set_data_format functions * require data_format on all screen drivers, used by GdArea * added fast convblit handling to GdArea routine for 32,24,16bpp * added Update to fblin8, palette mode fixes, fix X11 for palette mode * cleaned up drivers and source, removed commented-out stretchblit 24 Nov 2010 * removed PSDOP_xxx and GdDrawAreaInternal, all DrawArea entry points * convered portrait mode drawarea to convblit, used only for 1,2,4,8 bpp subdrivers * converted drawarea drivers to convblits for 1,2,4,8 bpp subdrivers * fixed nonzero srcx offset and word src index bugs in convblit_mask_mono blits 21 Nov 2010 * cleaned up framebuffer screen driver/subdrivers * added psd->Update calls in fblin32/24/16.c routines for new X11 driver * rewrote X11 driver to only draw using blits from memory framebuffer * v0.93 non-fb draw model changed: engine always draws bits into real or memory framebuffer, with Update() required for non-fb screen devices. Devices cannot draw directly from screendev, must use blit Update() called afterwards 17 Jul 2010 (Ludwig) * added CreateDibSection, GetLastError, SetLastError, RegisterHotKey, UnRegisterHotkey * various editbox fixes, added WM_CLOSE dialog handling, fixed close crash * added keyflags in WM_MOUSEMOVE wParam, winerror.h * add MoSync screen/mouse/kbd driver support 16 Jul 2010 * fix RGB2PIXEL in convblit functions, 16bpp alpha blend bug 22 Jun 2010 * remove MW_FEATURE_PSDOP_* * remove fblin18.c 6/6/6 driver (reimplement using fblin24.c and new COLOR macros) * remove DrawArea driver entrypoint for fblin32/24/16, copyall/copytrans for fblin16 * removed freetype v1 support, DBGDRIVER 21 June 2010 * fast convblits for all font drawing and RGBA/RGA images on 16/24/32bpp, all rotations * use fast convblit for PCF/FNT/builtin corefont text drawing * replaced gen16_drawtext in PCF/FNT, and corefont_drawtext with gen_drawtext * replaced gen16_gettextsize with gen_gettextsize in PCF/FNT * temp add left, right, downsubdriver to SCREENDEVICE, kluge select_fb_driver for now * added convblits to SUBDRIVER and SCREENDEVICE * added 16bpp convblits (endian specific), muldiv255_16bpp macro (set with MWPIXEL_FORMAT) * added portrait modes to all mask convblits 18 June 2010 * use fast convblit for FT2/T1 text output on 24/32bpp, anti and non-aliased (rotations not complete) * use gr_foreground_rgb in FT2 driver for mask convblits drawarea stil uses MWPIXELVAL gr_foreground, so BLITPARMS must have both for now * added convblit mask macros for 1bpp mask and 8bpp alpha mask blits * rewrote convblits using static inline for high speed 14 June 2010 * images output using fast convblits on 24/32bpp framebuffer * changed bmp image decoder to return 24bpp RGB or 32bpp RGBA images no alpha * changed pnm image decoder to return 24bpp RGB images * changed xpm image decoder to return 32bpp RGBA8888 images w/alpha * add data_format to MWIMAGEHDR, MWIMAGEINFO, SCREENINFO working for image decoders, not implemented for screens/pixmaps yet * completed png RGB/RGBA, tiff RGBA decoder image display using fast convblit unset FASTJPEG as default, generate 24bpp RGB jpegs * added fast conversion blit srcover/copy RGB/A for rotate left/right/down w/no copy in GdConvBlitInternal * added Update entry point to SCREENDEVICE for X11 convblits * added pitch, data_format to SCREENDEVICE, MapMemGC, GdCalcMemGCAlloc * added convblit entry points for GdConvBlitInternal: convblit_srcover_rgba8888, copy_rgb888 any 32bpp RGBA or 24bpp RGB can now be displayed using fast blit (srcover and copy) * added GdConvBlitInternal path from GdDrawImage for very fast image blitting (32bpp hw only) if image decoder uses MWIF_ image format then GdConversionBlit/GdConvBlitInternal used otherwise emulated with old GdDrawImage routine pixel by pixel Version 0.92 - 11 June 2010 - greg@censoft.com * fix freetype 2 off-by-one height bug (ascent + descent != height) 10 June 2010 * added capabilities flag word in font subdriver for h/w scaling * use new freetype2 scaler cache api (>= v2.3.9) (Johannes) can now compile freetype 2 without FT_CONFIG_OPTION_OLD_INTERNALS * fix ncolor assert in fblin24.c 26 May 2010 * fix nanowm cursor to resize in window bottom right to indicate resize * added window x,y and root window rootx,rooty to GR_GENERAL_EVENT (mouse enter event should be a mouse event, not general event) * added WM_PROPS_NORESIZE window property to disallow window resizing 24 May 2010 * rewrote adobe type1 (T1LIB) and truetype (freetype2) font subdrivers to use fast blit blit project halfway done - will move GdBitmap to driver blit for PCF/CORE fonts will remove/replace PSDOP_* and and combine drawarea/blit driver routines all drivers will support mono lsb/msb and blendfgbg blit, meaning all fonts supported * wrote drawarea_bitmap_bytes_lsb_first (t1lib) rotations for all fbportrait_xxx.c * rewrote adobe type 1 font driver (font_t1lib.c), new fonts/type1 dir added T1LIB_FONT_DIR to config (defaults fonts/type1) requires blit_mono_byte_lsb routine in drawarea * added width and height scaling to t1lib and freetype2 fonts (was height only) added width parm to GrCreateFontFromBuffer, GrCopyFont use GrCreateFontEx, GrSetFontSizeEx to set height and width for scaleable fonts (t1,ft2) * freetype2 driver uses TTFONTDIR environ var for default font dir * freetype 1 driver deprecated - use freetype 2 instead * fix .fnt loader padding bug (again) 23 May 2010 * split engine/devdraw.c into engine/devblit.c for blit changes * major driver reorganization, DrawArea parameters change * remove MWROP_TO_MODE, MWMODE_TO_ROP * rename MWMODE_xxx modes to MWROP_xxx, change MWROP_SETTO1 to MWROP_SET * rearrange device.h and mwtypes.h for more exportability info in mwtypes.h 23 May 2010 - Ludwig Ertl scrollbar various fixes, SB_THUMBTRACK listbox fixes w/scrollbars, WM_CTLCOLORLISTBOX added newlistbox.c from ReactOS (GPL only, not used by default) replace Draw3dButtonRect with Draw3dUpDownState rewrite mwDrawTextOut/mwDrawText heavily, internal prefix/& support add #if OLD_DRAWTEXT for old drawtext code no need for mwCheckUnderlineChar special drawing, button.c modified add GetTextColor, Muldiv, WindowFromPoint, WM_SETREDRAW add WM_COMPAREITEM, WM_DELETEITEM, COMPAREITEMSTRUCT etc handling remove GetDlgBaseUnits (replaced by GetDialogBaseUnits) 21 May 2010 * fixed applyOp4 off-by-one bug (affects XOR+ blits), applyOp2/3 (fblin16 v/h draw) * started 64 bit compatibility, requires (uint32_t and int32_t) * fix map non-existent char to default char with PCF fonts, port to 64 bit * fix space glyph width bug with PCF fonts (negative leftBearing still not handled) * fill background in FT2 when usebg set (done again in alphacol driver for charbox) 13 May 2010 * fix bug in non-MWMODE_COPY blit in fblin32/32a/24/18 and X11 drivers 2 May 2010 - Ludwig Ertl * check hdc NULL in mwTabbedTextOut fixes crash in mwdvetest * enhanced DT_CALCRECT for multiline text * dialog enhancements: pressing RETURN or VK_MBUTTON now pushes button w/focus, CreateDialogIndirectParam, DialogBoxIndirectParam, GetDialogBaseUnits, DS_CENTER calc * added MessageBox, MessageBoxEx, MessageBoxIndirect, MessageBoxTimeout from ReactOS (GPL only) * ShowWindow always shows window except on SW_HIDE * pressing RETURN or VK_MBUTTON now pushes button w/focus * map VK_MBUTTON to MWKEY_ACCEPT 1 May 2010 - greg@censoft.com * added stretchblitex to left/right/down portrait modes * add stretchblitex to fblin8, stretchblit test to ft2test.c * deprecated StretchBlit screen driver entry point and GdStretchBlit use GdStretchBlitEx, StretchBlitEx screen driver entry point * added 15, 16, 24 and 32bpp to fb emulator, fix bug in fblin24 blit/alphacol * fixed bug in fblin24 reversed b/g colors when alpha 0 and usebg 29 April 2010 - Greg/Ludwig * added SetWindowPlacement, GetWindowPlacement, BeginDeferWindowPos, DeferWindowPos, EndDeferWindowPos, GetWindow, GetMenu, GetForegroundwindow, SW_MAXIMIZE, SW_MINIMIZE, workarea maximize, partial WM_SYSCOMMAND, dialog maximize via CS_DBLCLKS, MWKEY_ACCEPT, FillRgn (Ludwig) * added drawarea_bitmap_bytes_msb_first to fblin4rev.c, fixed MWROP blit bug * fix bug in linear24_alphacol, not blending properly, added ft2test.c pgm * speedup fblin1/2, wrote msb_first drivers for fblin2/2rev * add fblin1rev.c drawarea_bitmap_bytes_msb_first (Vladimir) * dynamically allocate buffers in GdGetTextSize, GdText, and GdConvertEncoding 28 April 2010 - Ludwig Ertl * changed BM_SETIMAGE and STM_SETIMAGE to use lParam in button/static * add SystemParametersInfo, non-overlapped workarea feature * add GetProp, SetProp, RemoveProp window property routines use these rather than window userdata * rewrite KillTimer to allow deleting currently executing timer * fix free szExecCommand in mwFreeInstance * fix mwFindResource endless loop on last resource when closed resfile * rewrite peekmessage loop in windlg.c with getmessage * replace sscanf with strtoul in windlg.c * fix BS_RIGHT style in button.c * added BS_PUSHLIKE button style 27 April 2010 - greg@censoft.com * speedup fblin8/4/2/1 drivers, no asserts by default * speedup 4bpp drawarea_bitmap_bytes_msb_first with linear4_drawpixelfast * wrote drawarea_alphacol for 8bpp fblin8.c (FT2 antialiased output) * change back FIRSTUSERENTRY to 256 for palette mode and fbe in non ALPHABLEND * added bin/fbe (demos/fbe.c), frame buffer emulator on X11 for 1, 2, 4 and 8bpp! to use set default BPP/XRES/YRES in drivers/scr_fb.c, FBEMULATOR=Y in config run FRAMEBUFFER=/tmp/fb0 bin/fbe -d reverse bit order supported for 1,2,4 bpp (-r option) * removed EMBEDDEDPLANET and TPHELIO special cases in scr_fb.c 26 April 2010 - greg@censoft.com * fixed FT2 non-antialias (bitmap) display in left/right/down portrait * implemented drawarea_bitmap_bytes_msb_first in fbportrait*.c (current requires bitmap rotatation) * wrote rotate bitmap 1bpp left/right/down routines * fix mask bug in drivers/fblin1rev.c (Vladimir) * generalize portrait routines, add gen_setportrait, gen_mapmemgc portrait mode should work with most any screen driver by adding gen_setportrait scrdev entry and setting psd->orgsubdriver * add portrait mode to X11 screen driver Version 0.92RC4 - 11 April 2010 - greg@censoft.com * fixed drawarea_alphacol driver for right/left/down portrait (freetype2 w/anti-aliasing now works right/left/down) * speedup fblin32/16 drivers, no asserts by default * add partial Hanzi Bitmap Font support (hbf.c, genfont.hbf.c) * add WDTV sigma 863x drivers scr_smp863x.c, scr_em86xx.c * fix invalid event return on mou_tslib.c driver (Kave Dai) * finally correct muldiv255 macro, moved all to include/device.h * update alpha channel with muldiv255 * fixed bad free in GrSetSelectionOwner 1 April 2010 (Foedrowitz) * revised GsCheckCursor() handles grab window differently * inherit cursor from parent window(s) * revised GrMovewindow screen blit move algorithm * rewrite GrResizeWindow so no unmap required * add GrCopyEvent, GrFreeEvent, must use for CLIENT_DATA events when GrPeekEvent or GrPeekWaitEvent called, as data later freed 31 March 2010 * remove obsolete.c from engine/, fonts/, drivers/ * cleanup fblin32.c, fblin32alpha.c, fblin24.c, fblin16.c, fblin8.c * rewrite alpha blend code in fblin32.c, fblin32alpha, fblin24.c, fblin16.c * change alpha calc in drawarea alphablend routine to a+1 from a+(a>>7) * remove bad background draw on ft2 rotated fonts * fix draw background for ft2 fonts when usebg=1 in alphablend drawarea driver background is now drawn only for char glyph bbox, not entire text bbox * added underline for non-rotated ft2 fonts 23 March 2010 * use macros for alphablend in GdDrawImage, default fast inc/shift method * cleanup fblin*.c code * fix PCF/FNT and core font gettextsize to display default char if out of range * added test RGBA tif file strike.tif * fix bitfield order declarations for big endian GdDrawImage w/alpha (Sung Joo) 11 March 2010 * changed win32 BUTTON control to get/put longs on longword boundary * add -DARCH_NEED_ALIGN32 to CFLAGS for PSP port fix * special thanks to YuTao for debugging PSP port! * cleanup mdemo.c for various options (for PSP port debug) Version 0.92RC3 - 9 March 2010 - greg@censoft.com * remove assert(cncolors) check in fblin32.c, allow nonzero alpha * careful edit of GdDrawImage for handling image draw w/alpha channel * change many comments to clarify framebuffer and longword A,R,G,B order * add new MW_TRUECOLORABGR ABGR pixel format (RR GG BB AA LE framebuffer) * Sony PSP port using 32bpp ABGR pixel format (Jim Paris - ps2dev.org) great port and ABGR fb format by Jim Paris, untested in this version 7 March 2010 - greg@censoft.com * added back MWIMAGE_ALPHA_CHANNEL flag to tiff decoder (untested) * fix inconsistency with PNG GdDrawImage w/alpha ARGB order (Byun Sung Joo) * nanowm enhancements: moved to library, wm_handle_event/wm_init api, added to apps in LINK_APP_INTO_SERVER case when NANOWM=Y, window close on button up, NO_CORNER_RESIZE, NO_AUTO_MOVE options, GR_WM_PROPS_NORAISE and NOMOVE supported in container bits (Johannes) * GrGetWMProperties now returns malloc'd props.title in NONETWORK case * fix long offset for win*.c fonts, fix GsAcceptClientFd close() 21 February 2010 - greg@censoft.com * widen space char width in PCF font decoder (usually was 1 pixel wide) * fixed clipping code for pixmaps with offsets (Johannes) 30 January 2010 - greg@censoft.com * added PACKEDDATA structure attribute/define for packed data structs * fixed BMPHEAD packing for screen.bmp files, add portrait mode (Steven) * fix to support clipping for shaped windows with borders (Byun Sung Joo) Version 0.92RC1 - 24 Jan 2010 - greg@censoft.com * fix multithread bug: allow other threads to run while in select: (Robert) * unlock lock around client.c::select() (test in demos/nanox/threadtest.c) * finalized Linux default UNIX98 pty support for nxterm, reformatted heavily * added ngterm terminal type and TERMCAP environment string to nxterm * implement alpha channel using C bitfields in GdDrawImage (Byun Sung Joo) * add nxview -p for background pattern, -s for window half screen size 11 January 2010 - greg@censoft.com * added pcfdemo.sh to test problem helvB12_lin.pcf.gz and large pcfs * cleaned up defines for RTEMS, __ECOS, LINUX 10 January 2010 - greg@censoft.com * clear background in freetype 2 rotated text (Junior) * turned back on auto caching for Freetype 2.3.x (tested 2.3.9) (Riaz) * fixed bug in applyOp2/3/4 macros affecting 16bpp non-copy drawing (Uwe) * added GetTextAlign, implemented TA_CENTER, TA_RIGHT (Uwe) * removed createfont fail verbose messages * faster fillrect in genmem.c when portrait mode * added 18bpp (RGB666 LSB) framebuffer support/driver ARM PXA270 (V Brach) * enhanced korean KSC5601 dbcs support, modified jo16x16.c font * enhanced nxterm w/cursor key support, started UNIX98 /dev/ptmx support * vncserver patches (still broken), updated snap_jpeg for palette support * added tomtom support and mouse driver 9 January 2010 - greg@censoft.com * fix copyright notice sscanf in convbdf.c * fix off-by-one in GdFillPoly (Foedrowitz) * added Linux tslib driver TSLIBMOUSE=Y (/dev/input/event0) (Daniel) * added Linux AVR32 target support (Daniel) * added Linux Blackfin target support * fixed bug in pcf font subdriver, added test helvB12_lin.pcf.gz test * test and update src for latest png, tiff, t1lib, libz libraries * add patches for RTEMS 4.10 support (Joel and Roxana) 21 January 2008 - greg@censoft.com * fix .fnt.gz loader padding bug 6 January 2008 - neuros patches from Vladimir * add generic window message send GrSendMsg, GR_EVENT_MSG, GR_EVENT_MASK_MSG * add alpha channel handling in GdDrawImage, alpha support in PNG loader * fix bug in GdGetNextTimeout * add GrDrawImagePartToFit - draw image from part of source image * add MWMODE_SRCTRANSCOPY support in fblin16, applyOp{3,4} macros for speed * remove #include in clientfb.c, PAGE_SIZE now internal * fix GsWpDrawBackgroundPixmap to work with pixmap window backgrounds 30 November 2007 * fix ftell in FNTGZ font subdriver * port AGG AntiGrain Geometry, NXLIB and direct hw fb version * add MWPF_HWPIXELVAL run-time pixel type to allow no-translation GrArea * add back in low level psd->DrawArea for fast GdArea * rewrite GdArcAngle to fix bug w/small angles, no fp required * add font file parameter to fontdemo 9 September 2007 - greg@censoft.com * fix EPRINTF for gcc 3.x (Petr) * fix ft1 return on zero height/width characters (Alexander) * fix GrNewBitmapFromData pad when byte swapped (Martin) * break GrBitmap requests into MAXREQUESTSZ size packets (Martin) * fixed freetype2 font rotation, baseline, compile w/cache off bugs * added support for freetype2 2.3.5 (forces cache off for now) 22 June 2006 - greg@censoft.com * added complete rop processing to fblin4.c 4bpp driver 21 April 2006 - greg@censoft.com * obtained permission to convert stretchblit code from LGPL to MPL 20 December 2005 - greg@censoft.com * added support for 16bpp 5/5/5 and 5/6/5 images to GdDrawImage (Greg) * added support for 16bpp and 32bpp .bmp files 10 November 2005 - neundorf@kde.org *src/include/mwtypes.h: include ecosmwconfig.h under eCos *src/drivers/kbd_rtems.c: use kbd.mode for supporting keyrelease events under eCos *src/engine/dev_open.c: disable GdCaptureScreen() under eCos *src/ecos/cdl/: update microwindows.cdl *src/ecos/: add eCos specific files (support for qvfb, mw uid and WinMain) 9 November 2005 - neundorf@kde.org *src/demos/mwin/mdemo.stretch.c, mdemo.c: change #ifndef ELKS to #if !ELKS *src/mwin/winmain.c: enable the RTEMS code for eCos, change MwSelect() to MwSelect(BOOL) 7 November 2005 - neundorf@kde.org * src/include/device.h: guarded some defines, so that they are not redefined if they are already defined (as it is the case in the eCos port) (Alex) 17 October 2005 - neundorf@kde.org * src/drivers/kbd_rtems.c and mou_rtems.c: fix a null pointer crash in MWKbd_GetModifierInfo() and prepare both files for usage under eCos (Alex) 7 October 2005 - neundorf@kde.org * src/engine/error.c: use diag_printf() for error reporting under eCos (Alex) 5 October 2005 - neundorf@kde.org * src/include/swap.h: removed dependency to network stack under eCos (Alex) * src/engine/selfont.c: removed wrong and unnecessary select_font() declaration (Alex) * added support for BGR233, backport from the eCos port (Alex) 23 June 2005 - greg@censoft.com * reduced mem size, const for text section, static for size (David) * cleaned up David Bell's copyright notice with permission * added GrQueueLength, GrGetTypedEvent, GrGetTypedEventPred for LINK_APP_INTO_SERVER case * fixed DT_RIGHT in MwDrawText, invalid hwnd in SendMessage & MWGetTopWindow (Jochen) * added Gabriele's test .rc -> .c conversion tool: contrib/makedlg * added Gabriele's win32 api enhancements test pgm: demos/mwdvetest added accid___.ttf, VAGROLN.TTF test fonts, Bitstream Cyberbit unicode font (13Mb) and other truetype fonts are downloaded automatically on make * reformatted windlg.c,newedit.c,winres.c,winresbmp.c,listbox.c,static.c * added right-to-left rendering w/shape joining (Gabriele) HAVE_FRIBIDI_SUPPORT, HAVE_SHAPEJOINING_SUPPORT config opts MwSetTextCoding sets default text coding for non wide char fns * added --no-whole-archive option to leave .so's dyn-linked (Hinko) * fixed alpha blending demo when nEraseBkGnd zero * added extremely extensive enhancements to win32 API: (Gabriele) - New Dialog features: - Added function EnumFonts - Added function EnumChildWindows - Added function GetClassName - Added function GetNextDlgGroupItem - Added functions CreateDialog, CreateDialogParam, DialogBox, DialogBoxParam - Added functions IsDialogMessage, SendDlgItemMessage - Added functions FindResource, LoadResource, LockResource, UnlockResource, FreeResource, LoadString Can read dialog, string and bitmap resources from .res file - Added function resLoadBitmap, that loads a bitmap from resource file in MWIMAGEHDR format. - Added functions Set/GetDlgItemText, Set/GetDlgItemInt. - Added functions IsDlgButtonChecked, CheckDlgButton. Fixed CheckRadioButton. - Added functions GetDlgBaseUnits, MapDialogRect - Implemented DrawFocusRect fn for controls focus highlight. - Implemented WM_SYSCHAR message - Implemented controls navigation for DIALOGS (arrows and tab). - Implemented controls accelerator character (symbol '&' before character). - New Control features: - Static control: implemented WM_SETFONT message. The SS_BITMAP style shows bmp. The text for non SS_SIMPLE static control is automatically wrapped as needed. Implemented the WM_CTLCOLORSTATIC and fixed the SS_xxFRAME and SS_xxRECT styles. - Button control: implemented WM_SETFONT and fixed mouse release outside bug - Listbox: implemented WM_OWNERDRAWFIXED and WM_OWNERDRAWVARIABLE. Implemented WM_MEASUREITEM. Fixed some paint code. Implemented Horizontal scroll. - Rewrote edit control, newedit.c new features: - horizontal scroll. - non-fixed fonts works without caret position problem. - selection (SHIFT+Arrowkeys or Home/End). - cut and paste (CTRL+INS, SHIFT+INS, SHIFT+DEL). - word skip if CTRL pressed when using arrows keys. - mouse selection and autoscroll. - mouse dblclick. - insert and replace mode, with different caret size. - ES_LOWERCASE/UPPERCASE TODO: multiline capability. - Other bug fixes: - anti-aliasing min font height now set in device.h using FTMINAA_HEIGHT - global user_builtin_fonts - added font cache for freetype fonts to speed up GetTextMetrics - Caret blinking. - WM_CHAR not sent if the key pressed is a control key (like VK_LEFT ecc.). - WM_KEYDOWN: Bit 24 in lParam indicates that the key is a control key. - Implemented TabbedTextOut and GetTabbedTextExtent. - automatic underlined character using & marker - framebuffers: fblin4rev.c should not reverse the c color pixel when in XOR mode. - Now it's possible to activate any number of timers. - Timers: remove timers associated to wnd when windows are destroyed. - Windows caption is now dynamically allocated. Note that szCaption (member of HWND) is now a pointer, not an array! Never use sizeof(szCaption)!!! - Window structure has some new items: lpfnWndProc, paintBrush, paintPen, hInstance. - WinMain now has hInstance, szCmdLine - Keep window erasebkgnd count - Only post one kbd message to a window at a time, fixes new window post bugs - Some architectures, like ARM, needs data to be 32bit aligned in GetWindowLong and SetWindowLong. Fixed it by rd/wr unaligned data as four bytes. The definition ARCH_NEED_ALIGN32 should be set in Makefile.rules if needed. - The MwSelect function has been changed. An argument is passed to the function to indicates if the select may suspend or not the process. PeekMessage do not suspend, GetMessage suspend until a next timeout or user action. - if MW_CALL_IDLE_HANDLER is defined, a function idle_handler is called (should be implemented in the application code). The idle_handler has the following prototype: void WINAPI idle_handler ( void ); This may be used in some embedded application to put CPU in idle state and save battery. - The GetMessage function, when waiting for a message, call MwHandleTimers and if requested the idle_handler fn. - In the drivers folder, the file mou_tp.h was missing. (Needed by mou_harrier) * fixed v0.90 white display bug in 24/32bpp images (Greg) * fixed XPM support for large line size (Greg) * added VNC server support, requires libvncserver 0.6 (Giampiero) added HAVE_VNCSERVER_SUPPORT, VNCSERVER_PTHREADED config opts added INCZ zlib include config option * fix mterm on Cygwin (David) * add DT_BOTTOM, DT_VCENTER to DrawText (Simon) * fix bug in MwDestroyWindow causing crashes * add DrawArea function to fblin4 driver for Freetype 2.1.4 (Steven) * add Windows screen/mouse/kbd drivers, support Visual C (Wilson Loi) contrib/visualc contains .dsp files, tested for NONETWORK only * added support for iPod Linux (Bernard) new config options: IPOD_LCD, INVERT2BB, config.ipod new arch: UCLINUX-ARM new screen driver fblin2revipod.c fixed uClinux framebuffer mmap, ttyscan driver * allow large transfers > MAXREQUESTSZ in GrDrawImageBits (Thomas) * fixed positive leftBearing in PCF fonts (Thomas) * fix no mmap under eCos * fix GrSendClientData mem leak Version 0.91 - 3 June 2005 (based on 28 Feb 2004 CVS) - greg@censoft.com * added changes for updated port to RTEMS 4.6.0pre5 (Andrey) * split devimage.c into individual decoder image_*.c files (Jonathan) * made changes to compile with uClibc/buildroot v0.9.23 * added NATIVETOOLSPREFIX to allow multiply hosted local compilers * fix TIF image decoder (added alpha channel bit) * allow freetype 2 support from mem buffers w/o file i/o (Jonathan) * fixed convbmp.c for bigendian systems (Jonathan) * added hardcoded fnkey support to non-scancode tty driver (Jonathan) * fixed various Makefiles for proper NANOWM, NANOX, NANOXDEMO builds * added quick clean mechanism when obj/ dir specified seperately * changed default object directory to obj/ next to bin/ and lib/ * reduced libraries required for nano-X and win32 api links (Jonathan) nano-X requires only -lnano-X regardless of LINK_APP_INTO_SERVER win32 requires only -lmwin; obsolete mwinlib, mwengine, mwdrivers, mwfonts for now, CHANGE MAKEFILES! * revised Makefile system, Path.rules allows mult arch makes (Jonathan) also allows bin, lib and obj directories to be separate: e.g. "make MW_DIR_BIN=... MW_DIR_LIB=... MW_DIR_OBJ=... CONFIG=..." * changed default freetype 1 include dir to /usr/include/freetype1 * changed default vncviewer password to "password" * added check for "Exif" header in jpeg files for digital cam pics * fixed nested comments in mou_ser.c * fixed EUCJP output with MGL fonts for values > 256 * patched nterm.c to work with uClinux (Mark) * fixed 32 bpp alpha framebuffer driver sign extension bug (Jonathan) * added IR trackpoint mouse support (LIRCMOUSE=Y) (Jonathan) * added two keyboard support w/lirc driver (LIRCKBD2=Y) (Jonathan) * fixed GdArcAngle problem with small angles becoming whole circle * fixed portrait-down mirror display problem (Matthias), also mouse * fixed .pcf file short offset problem with large fonts * fixed .pcf file incorrect width mapping bug w/certain fonts * fixed .fnt file font loader bug with certain fonts Version 0.90 - 30 May 2003 - greg@censoft.com * remove scancode hack in ttyscan.c (loses mozilla X compatibility) * protect 0 width/height bitmaps in GdBitmap, drawbitmap (PCF fonts) * enhance nanowm to handle client programmatic resize requests * send UPDATE_SIZE event before EXPOSURE event for fltk * removed GR_EVENT_TYPE_HOTKEY, use GR_EVENT_KEYSTROKE.hotkey member Version 0.90rc1 - 18 May 2003 - greg@censoft.com * changed GR_EVENT_TYPE_HOTKEY_* to data member in GR_EVENT_KEYSTROKE * cleaned up various function prototypes * fixed XPM transparency drawing bug * added ADS7846 touchscreen support (PSI OMAP Innovator) (Dave) Version 0.89pl15 - 13 May 2003 - greg@censoft.com * fixed bug in fast_grayscale option to LoadJPEG * removed DPRINTF code generation except when DEBUG=Y automatic GCC detection for GdError or fprintf usage * added -DDEBUG when DEBUG=Y * added MW_NOSIGNALS, MW_FEATURE_GDERROR * implement GrPrepareSelect/GrServiceSelect in linked server (Jonathan) * reimplemented GrGrabKey, GrUngrabKey (Jonathan) new events: GR_EVENT_TYPE_HOTKEY_UP,GR_EVENT_TYPE_HOTKEY_DOWN added grabdemo demonstration program * cleaned up printf/DPRINTF, added DONT_HAVE_SIGNAL for no signals * cleaned up // comments (Simon) * added "make realclean" to remove generated .c files from .bdf & .bmp * single touchscreen driver for Zaurus, iPAQ, tuxscreen, ADS (Jordan) (jitter and transform moved into engine/devmouse.c) mou_touchscreen.c: (standardized kernel; ucb1x00 chip) IPAQMOUSE=Y (Compaq iPAQ /dev/h3600_tsraw) ZAURUSMOUSE=Y (Sharp Zaurus /dev/sharp_ts) TUXMOUSE=Y (TuxScreen /dev/ucb1x00-ts) ADSMOUSE=Y (Applied Data Systems GC+ /dev/ts) mou_vrlinux.c: (VR-Linux distribution) EPMOUSE=Y (Embedded Planet /dev/tpanel) (was TPMOUSE) VHHELIO=Y (Vtech Helio /dev/tpanel) (was TPHELIO) mou_yopy.c: YOPYMOUSE=Y (Yopy) mou_mt.c: MTMOUSE=Y (MicroTouch serial /dev/ttyS0) mou_ps5.c: PSIONMOUSE=Y (Psion 5 /dev/touch_psion) mou_harrier.c: HARRIERMOUSE=Y (NEC Harrier) (original drivers moved to src/drivers/old) * mouse drivers: mou_gpm.c: GPMMOUSE=Y (gpm mouse) mou_ser.c: SERMOUSE=Y (serial MS, PC, Logitech, ps/2 mice) mou_sun.c: SUNMOUSE=Y (Sun workstations /dev/sunmouse) mou_null.c: NOMOUSE=Y (no mouse) * added Zaurus support, config.zaurus (Jordan) * added tuxscreen support, config.tuxscreen (Jordan) * added MWFONTDIR environment variable for loading FNT files * fix swap.h::dwread macro to work on unaligned data * added textflags to PSD GetTextSize function * added TIFF decoder to devimage.c (HAVE_TIFF_SUPPORT=Y) * changed LARGE_COORDINATE in devrgn2.c (more work needed here) Version 0.89pl14 - 7 May 2003 - greg@censoft.com * removed various auto-generated mwin/bmp/*.c files, fonts/*.c files * fixed GrPeekEvent no-select() bug in LINK_APP_INTO_SERVER case * added Doxygen-created source documentation & Makefile (Jonathan) "make doc" to create docs in microwin/doc/nano-X/html "make pdfdoc" for docs in microwin/doc/nano-X/latex "make doc-clean" to clean docs and microwin/doc/internal (requires Doxygen 1.3 or later from http://www.doxygen.org) (requires LaTEX for pdf docs) * added newbuild.diff (Jonathan) Enabled lots of warnings for GCC. (src/Arch.rules, src/Makefile.rules): Tidying: Moved defines, libraries and compiler flags into these two files. Tidying: Simplified the layout, so libraries and headers for a specific config option are together (before they were separated). Tidying: Simplified how libraries are handled - now they only need to be added to one variable, rather than five. Bugfix: Corrected a few options that were added to CFLAGS rather than DEFINES or INCLUDES. (src/*/Makefile [but not src/demos/*]): Tidying: Removing options that were moved into Makefile.rules Tidying: Removing the (now empty) compiler flags section of these Makefiles. (src/fonts/*/Makefile): Tidying: Removing these Makefiles that did nothing. * added minormakefixes.diff: (Jonathan) (src/mwin/bmp/convbmp.c): Bugfix: Display a fatal error if the specified filename is longer than the fixed-sized filename buffer, instead of crashing. Bugfix: Make the fixed-size filename buffer longer. Feature: Add -o option to specify the output file name. (Previously it always computed this from the input file name. The old behaviour still applies if you do not specify -o) (src/Makefile.rules): Bugfix: Don't redirect output of convbmp, it doesn't produce output on standard out (even before my modifications). Use the -o option to specify the output file. Bugfix: "make clean" would delete all files in src/ if the bin/ directory did not exist. * clean up demo program declarations to eliminate warnings (Jonathan) * added LIRC keyboard support, MWKEY_HAVI keys (LIRCKBD=Y) (Jonathan) * added Gr/GdCreateFontFromBuffer, Gr/GdCopyFont API (Jonathan) * add comments to font code (Jonathan) * accept Java's relaxed UTF8 variant (U+0000 as 2 chars) (Jonathan) * fix buffer overflow in GdCreateFont w/long pathnames (Jonathan) Version 0.89pl13 - 1 May 2003 - greg@censoft.com * added GrGrabKey, GrUngrabKey (Jordan) * added mousedev.flags member, jitter transform, rotate filters (Jordan) * added nxcal standard Microwindows calibrator (Jordan) new server transform routines: GrSetTransform, GdSetTransform (server) GrCalcTransform, GrLoadTransform, GrSaveTransform (client) * added ucbx100 touchscreen driver (Alex, Jordan) * updated iPAQ mouse driver (Jordan) * added iPAQ kbd driver (IPAQKBD=Y) Version 0.89pl12 - 13 Apr 2003 - greg@censoft.com * added compressed native font format (.fnt.gz) (HAVE_FNTGZ_SUPPORT) * move to portable locking mechanism in lock.h as default (Jon) * allow GrMoveWindow to use quick blit in portrait mode * move to only two builtin fonts: MWFONT_SYSTEM_VAR, MWFONT_SYSTEM_FIXED - original MWFONT_GUI_VAR moved to MWFONT_SYSTEM_VAR - should change applications that request MWFONT_GUI_VAR to use MWFONT_SYSTEM_VAR instead - original MWFONT_SYSTEM_VAR and MWFONT_OEM_FIXED removed - deprecated MWFONT_GUI_VAR (redirected to MWFONT_SYSTEM_VAR) - deprecated MWFONT_OEM_FIXED (redirected to MWFONT_SYSTEM_FIXED) * added very cool support for Cygwin X11 (Nano-X on X11 on Win32!) (Jon) * re-inserted special hack for portait mode pixmap handling in genmem.c * added auto UC16 conversion to handle large (non-ASCII) bdf fonts - requires loading converted bdf file as .fnt file - any BDF can now be used to display international chars convert font using fonts/convbdf.c: "convbdf -f *.bdf" - MWTF_DBCS_* flags can be used with font for DBCS encoding - this is the new preferred method for Chinese,Japanese & Korean * speed up PCF font output for ASCII fonts * added default font dir handling with PCF and FNT files (set in config) * fix GrCreateFont to return ID 0 when font not found Version 0.89pl11 - 07 Apr 2003 - greg@censoft.com * change to allow GrCreateFont w/height=0 to work with loadable fonts - if height=0 specified with scalable fonts, must call GrSetFontSize with height before rendering - if height=0 specified with non-scalable fonts, height ignored - if height specified, will always return some font - if height=0 specified and font not found, may return 0 rather than builtin font * added lfClass to MWLOGFONT, allows specifying renderer * added native loadable .fnt support (use fonts/convbdf.c -f to create) * added enhanced fonts/convbdf, fonts/convbdf.c: - allows fonts with > 256 chars - allows fonts with bitmap offsets > 64k (offset now long array) - offset and widths list not generated when not required - start, limit options & defaultchar * removed HAVEMSFONTS option * slight speed increase on dashed drawing, reformatted devdraw.c * increase text draw speed with no-clip drawbitmap internal function * rewrote and moved all DBCS code into engine/devfont.c and font_dbcs.c - added MWTF_DBCS_BIG5, MWTF_DBCS_EUCCN, MWTF_DBCS_EUCKR, MWTF_DBCS_EUCJP, MWTF_DBCS_JIS: must use w/GrText for builtin fonts - "count" parameter with dbcs is byte-length of dbcs string - can use MWTF_DBCS_* flags with any (UC16-indexed) fonts now - can use multiple DBCS encodings and fonts at same time - can use DBCS encoding with non-compiled-in fonts, encoding is seperate from specially-compiled-in fonts. * fixed BIG5, GB2312, JISX0213, KSC5601 from previous GetTextBits retmap change Version 0.89pl10 - 04 Apr 2003 - greg@censoft.com * fix GrRegisterInput bug for successive file descriptors (Chen) * cleaned up some nxproto.h signed/unsigned int16 values and Gr* params * add MW_FEATURES_TIMERS and MW_FEATURES_IMAGES (set in device.h) (Jon) APIs are now _not_ available at compile time when option not set free server timers on client disconnect * various cleanups: make clean, devrgn.c protos, locking in clientfb.c, XtoNX.h, image buffers (Jon) * fixed compatible bitmap size in mdemo.c stretchblit demo (Jon) * removed Casio E-15 config option, use general options instead * added -x<#> and -y<#> virtual screen sizing option (Jordan) * fixed TS offset bug, solid linestyle bug (Felix) Version 0.89pl9 - 01 Mar 2003 - greg@censoft.com * renamed GdSetForeground to GdSetForegroundPixelVal (and GdSetBackground) * added AF_INET client/server, NXDISPLAY env variable * added text speedup patch, no per-point clipping in visible case in GdBitmap and corefont_textdraw. Also clear background once not per char. Changed GetTextBits driver entry point to not copy font data. 60% improvment (Aaron) Note this change eliminates max fixed font sizes for all fonts except those requiring textbits copy (e.g. font_eujp.c) * added USE_CCACHE=1 environment variable check for cached builds * added StretchBlitEx driver entry point, GdStretchBlitEx, GrStretchArea (experimental) (Jonathan) StretchBlitEx is still broken in dest rectangle calc (FIXME) * added maxascent,maxdescent,descent(=baseline) to MWFONTINFO (Jonathan) * fixed byte-swap bug in GrNewBitmapFromData/GrNewPixmapFromData * added mwsystem.h, GdRealloc, memfix.sh for alt mem mgmt (Jonathan) Version 0.89pl8 - 25 Feb 2003 - greg@censoft.com * added THREADSAFE support with LINK_APP_INTO_SERVER (Jonathan) * changed _exit to exit() in client.c * added various freetype 2 changes (Jonathan) * added 4bpp nibble-flipped driver (fblin4orion.c) (David) * fixed GsAllocEvent/GsError OOM recursive loop (Aaron) * added big-endian support for PCF fonts (Jordan, Klaus) * fixed usec calc bug in GrDelay (Marc) * fixed 7-bit requirement for MS mouse (Murphy) * fixed GrGetGCTextSize char count calc bug (Jonathan) * fixed off-by-one alpha calc in fblin32alpha.c (Jonathan) * fixed void * arithmetic for non-GCC compilers * fixed broken x11 blit scroll code (Jonathan) Version 0.89pl7 - 24 Feb 2003 - greg@censoft.com * APPLIED mw_phillips_fontnetworkbug.diff (Jonathan) Contributed by Koninklijke Philips Electronics N.V. * Added GrCreateLogFont nxRequest. * Removing the hardcoded 64-character limit on font names. This caused problems with FreeType 2, because the font names are just filenames. The network layer no longer restricts font name length, but there is still a potential buffer overflow in devfont.c. * APPLIED mw_phillips_freetype2.diff (Jonathan) Contributed by Koninklijke Philips Electronics N.V. * Added FreeType 2 support, HAVE_FREETYPE_2_SUPPORT in config * APPLIED mw_phillips_drawarea.diff (Jonathan) Contributed by Koninklijke Philips Electronics N.V. * Added new DrawArea blitters. Controlled by the defines MW_FEATURE_PSDOP_COPY, MW_FEATURE_PSDOP_ALPHAMAP, MW_FEATURE_PSDOP_ALPHACOL, MW_FEATURE_PSDOP_BITMAP_BYTES_LSB_FIRST, and MW_FEATURE_PSDOP_BITMAP_BYTES_MSB_FIRST in device.h. Usually called through GdDrawAreaInternal() in devdraw.c. * fixed nxroach GrArea alpha bug (BLACK used in GrArea crash) * APPLIED mw_phillips_alpha.diff (Jonathan) Contributed by Koninklijke Philips Electronics N.V. * Adds 8-bit alpha value to MWCOLORVAL value, new fblin32alpha.c * Added MWPF_TRUECOLOR8888 pixel type. * Adding MWIMAGE_ALPHA_CHANNEL flag. * Changes to GdDrawImage() to simplify, fix a 24bpp bug, and to add the MWIMAGE_ALPHA_CHANNEL flag. * Adding MWROP_USE_GC_MODE option to GrCopyArea * Adding a default implementation to fb.h for the new Porter-Duff blending rules, which assumes that both SRC and DST have alpha=1.0. Drivers that actually support alpha should not use these macros in Porter-Duff modes. * MWMODE_XOR_FGBG implementation * Adding Porter-Duff MWMODE and MWROP codes, renumbering some existing MWROP codes to prevent collisions. Adding MWMODE_XOR_FGBG and MWROP_XOR_FGBG * Adding MWMODE_TO_ROP() macro. * Adding code to choose between 8/8/8/8 and 0/8/8/8 modes on 32-bit displays, depending on whether or not the display claims to support alpha. * New 32-bit with alpha driver: fblin32alpha.c. * Adding GR_ARGB() - just calls MWARGB(). * Rewriting MWRGB() to set the alpha to 255 (opaque). * Adding MWARGB() macro * Use new GrSetGCForegroundPixelVal() API rather than the deprecated MWPALINDEX() macro. *** NON-BACKWARDS-COMPATIBLE API CHANGE: *** Removing MWF_PALINDEX and MWPALINDEX(). They don't work due to the alpha blending changes. Clients should be modified to use GrSetGCForegroundPixelVal(index) instead of GrSetGCForeground(MWPALINDEX(index)), and similarly to use GrSetGCBackgroundPixelVal() to set the background color. * APPLIED mw_phillips_color.diff (Jonathan) Contributed by Koninklijke Philips Electronics N.V. * API changes to allow later alpha patch. * Added GrSetGCForegroundPixelVal, GrSetGCBackgroundPixelVal * Added new functions GdSetForegroundColor() and GdSetBackgroundColor GdSetForeground/GdSetBackground now takes MWPIXELVAL only. * Added fgispixelval and bgispixelval flags to GR_GC and GR_GC_INFO. * Added a PSD parameter to GdSetForeground() and GdSetBackground(), GdFindColor(). Allows multiple color depths to be supported at the same time by different PSDs * (wingdi.c) Using GdGetColorRGB() instead of a switch() statement that duplicated it's functionality. * Replacing GdSetForeground(GdFindColor(c)) with GdSetForegroundColor(psd,c) - note the extra PSD parameter. Similarly for GdSetBackgroundColor(). * New function GdGetColorRGB(), the inverse of GdFindColor(). * Preventing multiple arc draws - this was causing problems in XOR and alpha-blending drawing modes. * APPLIED mw_phillips_x11.diff (Jonathan) Contributed by Koninklijke Philips Electronics N.V. * Major speed enhancements to X11 screen driver. * Resizing the window caused an assert() fail and crash. Added a call to set size hints on the window, indicating it's not resizable. * Handle true color X modes correctly. The previous code made the assumption that a X always lays out it's colors in exactly the same way as MicroWindows. This is incorrect. For example, some Microsoft Windows based X servers use BGR rather than RGB ordering. * If we are in true color mode, then we try hard to get a true color X window if the server can support it. This is a huge speed boost with a 32-bit Nano-X app, properly antialiased fonts (so we use lots of colors) and an old 8-bit palettised display. (In 3/3/2 RGB mode we can compute color values easily. In 8-bit palettised mode we have to do a very expensive lookup). * An alternative blit implementation. Since we are maintaining a separate off-screen copy of the display, we perform all blits on this copy, then simply copy the offscreen data onto the screen. The only exception are simple copies (no raster ops) between parts of the screen - these are handled by the server to save us having to send an image across the connection. * Added PIXEL332RED8 and PIXEL332RED32 macros to device.h * APPLIED mw_phillips_1.diff (Jonathan) Contributed by Koninklijke Philips Electronics N.V. * Misc build system changes. * Added .cvsignore for CVS * Initial support for the TriMedia media processor. Not complete. * Added INSTALL_USER, INSTALL_GROUP, and INSTALL_GROUP_2 options. * Correcting install target so that libraries are writable by the user who owns the file. * Rewriting subdirs target so that the build stops on error. * added config option HAVETEXTMODE, removed from scr_fb.c * Added config option GPROF=Y for profiling support. * Added config option BIGENDIAN=Y/N, may define MW_CPU_BIG_ENDIAN to 1. * Added various echo statements to demo and nanox link steps * (demos/nanox/Makefile) Only compiling the snap_jpg demo if we have framebuffer support. * Fixing a compiler warning in scr_x11.c * Removing compiler warning about unused variable 'tty' if HAVETEXTMODE is disabled. * Commented out XSynchronize() in scr_x11.c (way slow) (08 Dec 02) * fix GrCheckNextEvent return no event for X11/LINK_APP_TO_SERVER case * changed pcf debug output, firstchar calculation, count calc * corrected include files for RH 7.x Version 0.89 - 20 Nov 2002 - greg@censoft.com * check for additional client data before queing event data (05 Oct 02) * added automatic GetNextEvent after 0 PeekEvent for GTK+ select (12 Sep 02) * fixed NOKBD option, X11 can't connect message * removed nested static procedures in jpeg decoder * reoriented MWTF_ bits, moved to long MWTEXTFLAGS type for expansion * added sample MGL fonts for EUCJP testing, t1demo.c supports MGL fonts (28 Aug 02) * added fonts/t1lib directory with sample t1lib fonts and config file * moved font engine sources into separate engine/font*.c files * ansified C source for small very cool TCC compiler, created config.tcc * added multi-threading safety to nano-X, THREADSAFE option to config this currently requires pthreads, see include/lock.h * fixed .bmp->.c conversion rule for broken building from CVS * added VGA16 screen->offscreen blit (Alex) * added XSynchronizeDisplay to X11 driver to bugfix fb emulation * fixed mem leak in client.c::GetNextQueuedEvent() * check cursor clip in GdBlit for srcpsd not just dstpsd * added #define mechanism to select polygon fill in devpoly.c changed back from X11FILLPOLY to EDGEFILLPOLY default (X11FILLPOLY still fails in bin/polydemo * removed nwidgets.h requirement in ecos/ecos_init.c * changed src/fonts directory: added chinese, korean, japanese and truetype (17 Aug 02) * send UPDATE_ACTIVATE event to force redraw on title changes * added FASTJPEG and HAVE_MMAP to include/device.h configuration * corrected MAP_UPDATE event in GsWpRealizeWindow, may need tweaking * default configuration includes freetype and pcf.gz fonts * use static fontid in window manager titlebar updating * corrected GrCopyArea rop parm definition to unsigned long * fixed dash mode/mask on gc change (04 Aug 02) * fixed GrGetTypedEventPred to remove returned event from queue (26 Jul 02) * added indent.sh std coding formatter for Microwindows * wrote GrNewRegionFromPixmap * added GrNewBitmapRegion, GrSetWindowRegion, first-pass shaped windows (Alex) * enhanced nanowm, doesn't require parent map before child reparent now fix props.title leaks after any GrGetWMProperties call * fixed GrReparentWindow finally: rewrote map/unmap algorithm (no unmapcount) changed GR_WINDOW_INFO unmapcount member name to realized * extended GrText flags parameter to 32 bits over wire * added many demo programs: arcdemo, bmapdemo, rgndemo, convpbm (Alex) nxmag, nxeyes, setportrait, snap_ppm, tux (Alex) pcfdemo, tsdemo, dashdemo, polydemo, snap_jpg (Jordan) tuxchess (Steve) fontdemo (Greg) rearranged many *.sh demo scripts * added nxcolors.h (converted rgb.txt), nxcolors.fe, rgb.txt to contrib (Alex) * updated html documentation (Alex) (18 Jul 02) * allow user clip regions in offscreen memory DC's for win32 API (Tom) * fix bug with SYSTEM_VAR font selected when plogfont passed to GdCreateFont * fixup ecos port SVR_Gr defines, Makefile.rules CPPFLAGS, NANOXSERVERLIBS changes rejected CPPFLAGS change * added BS_BITMAP style to button control (Phat) * added WM_KEYDOWN/WM_KEYUP messages, WM_CHAR in TranslateMessage, use PostMessage instead * added enhanced convfnt MS font convertor (Tom) * added EM8400 realmagic chip port of nano-X server (Peter) * fixed GrArc ax,ay bx,by argument offset bug (Alex) * padded MWPALENTRY, changed MWSCANCODE to unsigned short for network alignment issues * added LINUX-SPARC config (Sparc Linux support), SUNMOUSE config option added * added HAVE_EUCJP_SUPPORT config option (Japanese EUC JP Kanji encoding) (Koichi) includes support for any MGL fonts * added HAVE_JISX0213_SUPPORT config option (Japanese JISX0213 compiled in font support) * added Simons patch for slider kbd support * added Jordan's patches: (122701) (021102) add tiles, stipples, dashed lines, fill mode support GrSetGCLineAttributes, GrSetGCDash, GrSetGCFillMode GrSetGCTile, GrSetGCStipple, GrSetGCTSOffset MWFILL_SOLID, STIPPLE, OPAQUE_STIPPLE, TILE, GR_FILL_xxx MWTILE, MWSTIPPLE, GR_STIPPLE GR_LINE_xxx? GdSetDash, GdSetFillMode, GdSetStippleBitmap, GdSetTilePixmap GdSetTSOffset set_ts_origin gr_dashmask, gr_dashcount, gr_stipple, gr_tile, gr_ts_offset ts_drawpoint, ts_drawrow, ts_fillrect fillmode support to GdArc routines, all line drawing routines added GR_UPDATE_REPARENT subevent added routines for NX11 library: GrGetTypedEvent, GrGetTypedEventPred GrQueryPointer, GrQueueLength, GrNewBitmapFromPixmap _GrPeekEvent, _GrGetNextEventTimeout, _GrPeekWaitEvent (where is free?) (look at serv.h, check TILE struct), exposure?, GrNewGC (lookat srvfunc.c, GrSetGCLineAttributes, GrQueryPointer (lookat srvnet.c (lookat srvutil.c GR_LINE_ONOFF_DASH, #964 add option for tile/stipple support fix nanowm map/unmap behaviour remove #include from scr_fb.c (030801) open CONSOLE instead of /dev/tty if set fix X11 driver psd->linelen calculation fix GrCopyAreaReq sizeof(op) in nxproto.h (17 Jul 02) * tidy'd up MWIMAGEBITS macros, not dependent on fixed sizeof(MWIMAGEBITS) * increased max cursor size to 32 * fixed Jordan's patch GrNewBitmapFromPixmap: GrReadArea return based on MWPF_xxx * fixed GrRegisterInput for successive fd's * fixed GrGetWindowFBInfo to return absolute x,y coords. GrGetWindowInfo still returns relative coords, changed src comments * added MWTF_XCHAR2B encoding * better X11 can't connect errmsg * completely fixed PCF/PCF.GZ font reading * added Jordan's tile/stipple code (GrXXx (10 Jul 02) * fix X11 driver indicator status init problem * fix SVGAlib compile bug * fix NOKBD support (21 Nov 01) * fixed FreeBSD support * added GrSetGCGraphicsExposure, GrNewBitmapFromPixmap * added .pcf and pcf.gz loadable font support (requires libz) (Jordan) * fixed PNG support (may require -lm in Makefile.rules) Version 0.89pre8 - 15 Nov 2001 - greg@censoft.com * added MicroTouch DynaPro SC3 touchscreen driver and calibrator (Jordan) * added GrSetGCClipOrigin * removed most C++ style comments (Simon), cleaned up source tree * added GrPeekWaitEvent, blocks until at least one event is available, then peeks * fix GrPeekEvent, was absorbing events * added win32 VK_ key translations for scancode MWKEY_ values * Mozilla and rdesktop enhancements (Matthew Wlazlo) ttyscan and x11 keyboard driver fixes GrGetFontList, GrFreeFontList, GdGetFontList * added USE_16BIT_ACCESS to fblin16.c to draw using short word stores only * implement all src/dst copy modes in fb/x11 blitters and win32 SetROP2/BitBlt codes use MWMODE_COPY instead of MWMODE_SET use MWROP_COPY instead of MWROP_SRCCOPY * implement all 16 src/dst MWMODE_xxx operations (Matthew Wlazlo) * fixed alphablending for truecolor 555 systems * fix GdTimeout bug when usecs only specified (David Erickson) * check GC changed before fixing clip in GsPrepareDrawing, clip sometimes incorrect * allow 0 timeout to cancel GrSetScreenSaverTimeout * changed check for /tmp/.nano-X to use access(), not stat() * revised reported x, y event values to be parent-relative * added Century's GrLoadImageFromBuffer, GrDrawImageFromBuffer * removed GPL restriction to Arc clipping routines w/permission Eero (24 Sep 2001) * added pid to GR_WINDOW_INFO for window ownership identification (Century) * fixed MWPIXELFORMAT for TRUECOLOR555 * added patch to change mouse position when cursor moved with GrMoveCursor * removed incorrect GrReparent code with regards to child mapcount (temp fix) * added direct client-side framebuffer mapped window routines: GrOpenClientFramebuffer, GrCloseClientFramebuffer, GrGetWindowFBInfo * added rgb mask values, fb driver type to SCREENINFO struct * updated mou_tp.c for Yopy (untested), can use mou_yopy.c * fixed GrCheckNextEvent to return locally queued event first if any * fixed FREETYPE_FONT_DIR * added swap.h little/big endian swapping macros, fixed alignment bugs in devimage.c * added GrSetPortraitMode, GR_EVENT_TYPE_PORTRAIT_CHANGED * added GsSetPortraitMode, GsSetPortraitModeFromXY, screen driver SetPortrait entrypoint * reimplemented GdFillPoly algorithm for correctness (4th July 2001) * added DJGPP changes from Victor * added check for CONSOLE env var for /dev/tty to open, GrCopyArea fix and X11 scanline calc bug from Jordan Crouse * add patches for compiling with libc5 and default t1lib Latin1 encoding from Tomasz * added Korean Hangul KSC5601 encoded font support and 16x16 fixed text font from Kevin O * add byte swap in devimage.c, X11 driver changes, DPRINTF defaults to no output GrRegisterInput/GrUnregisterInput use fd_set, -s on debug only from Steve Hein * add GrCreateTimer, GrDestroyTimer periodic timers from Gary James * added MWPACKED attribute packing define in mwtypes.h * added eCos port by Gary Thomas * ntetris game orientation patch (Xiang Lee) * translate 127 (DEL) to MWKEY_BACKSPACE in tty scancode (L.C. Chang) * fixed non-inited sizing field in nanowm (L.C. Chang) * added Microtouch rs232 touch panel driver mou_mt.c (Holger) * fix multiple GrClose bug (Gary) * update kbd_pipe.c (Murphy) * free memory in MwDestroyWindow (4th June 2001) * removed Nano-X widget directory (obsoleted) (15th May 2001) * temp removed driver DrawArea() calls in GdArea code (blit bug) * fix clip bug in GdReadArea * added portrait mode member to screeninfo struct (change all dr/scr*.c) * added down portrait mode * added dynamic portrait mode, nano-X [-ANLRD] startup portrait modes (13th Apr 2001) * implemented GR_BACKGROUND_STRETCH in GrSetBackgroundPixmap * fixed startup VTSWITCH time delay bug in win32 * added StretchBlt, new screen driver stretchblit entry point * added direct .bmp file create on PRINT, added 16,24,32 bpp output (27th Jan 2001) * added GrDelay for msec delay * added GrQueryTree to obtain window parent/children list * ported nxroach! (run nxkbd.sh) * replaced GrClearWindow with GrClearArea, created GrClearWindow macro * experimental fix to GrReparentWindow when parent not mapped * added cursor id to GR_WINDOW_INFO * added server-side cursors, GrNewCursor, GrDestroyCursor, GrSetWindowCursor * removed GrSetBorderColor, changed to GrSetWindowBorderColor * added GrNewBitmapFromData Version 0.89pre7 - 21st Jan 2001 - greg@censoft.com * moved config.* files to Configs directory and added README * moved caching devfont.c to devfont.caching.c (breaks ftdemo) * added extensive gtkdoc sgml/html/pdf nano-X documentation from Alex * wrote Xlib to Nano-X macro hdr file for easier porting (XtoNX.h) * added Alex's improved server timeout routines (no alarms) * converted demo3 to nxview image viewer * added time field in GR_EVENT_BUTTON for double-click determination * fixed fast window move blit bug with non-root child windows * added GR_WM_PROPS_BORDERCOLOR * added useful macro functions: GrSetWindowTitle,GrSetWindowBorderColor, GrSetWindowBorderSize, GrSetWindowBackgroundColor * ported xfreecell to nano-X * added GrNewPixmapFromData to create pixmap from bitmap data * added Alex's GrSetBackgroundPixmap, GrBell * added Alex's cool screensaver app nsaver, GrSetScreenSaverTimeout * added Alex's getselection/setselection demos, Gr[GS]etSelectOwner, GrRequestClientData, GrSendClientData * enhanced nxclock and ftdemo * fix shared library bug w/GetSysCharHeight function * fixed MwRegisterInput/Output/Except bug (Yang) * fixed Arch.rules for Solaris 7 * fix antialiasing bug when both T1lib and Freetype enabled (Murphy) * fixed GrReadArea offset bug (Dave Tubbs) * added MWPF_TRUECOLOR555 for 16 bpp 5/5/5 packed pixels * fixed PIXEL565TOCOLORVAL and PIXEL332TOCOLORVAL macros * fixed 5/5/5 driver for ATI card Version 0.89pre6c (unreleased) 8th Dec 2000 - greg@censoft.com * new scancode kbd driver: ESC never quits, pause/break quits select with SCANKBD=Y in config (default) * added Brent's changes for VxWorks port * added PNG image decoding from Alex * fixed GrGetNextEvent returning event twice when signal caught (Alex) * fixed XPM loader errmsg on non-XPM images from Alex * added launcher application from Alex * added HAVE_PNM_SUPPORT for PBM,PGM,PPM ascii&binary images from Alex * added ntetris game from Alex * fixed FREETYPE_FONT_DIR in engine/Makefile * added freetype font caching to devfont.c (experimental) (huge speedup) * added -mstructure-size-boundary=8 for ARM compiles and structure bugs * changed MOUSE_POSITION to ..._MOTION in scribble for better recognizer * fixed nasty slow blitting code in X11 driver * added USE_EXPOSE config option for XFree4.0 backing store expose fix * added iPAQ scancode keyboard driver * added YOPY mouse driver and YOPY build support * fixed dropped events bug in client/server!! * send UPDATE_MOVE to all children on window move * finished fast screen blit move algorithm for topmost windows * auto calculation of virtual screen size * change GR_EVENT_MOUSE subwid to always be mouse window (Peter) * added auto-repeat to scancode tty driver * fixed buggy GrGetRegionBox * fixed X11 screen->offscreen blit * fixed blit with negative src clipping * added GR_MODE_EXCLUDECHILDREN clip mode to GrSetGCMode * added window resize to nanowm and #define OUTLINE_MOVE * changed GrInjectPointerEvent visible arg semantics * converted x11 kbd driver to scancode * added MWKEY_* defines, changed kbd modifiers removed GR_MODIFIER_*, GR_SPECIAL_*, GR_KEYSTROKE_* defines api change: GR_EVENT_KEYSTROKE to return unicode only values api change: GrInjectKeyboardEvent * complete keyboard driver rewrite: scancode, up/down events * ported Doom! to Microwindows * fixed overlapping blit for 8/16 bpp * added current mouse coords in SCREENINFO struct * started on Wt widget set port Version 0.89pre6 - 12th Nov 2000 - greg@censoft.com * added Peter's driver blit fix for dst in src rectangle * added Scott's correct GdFillPoly routine (uses malloc/qsort) works for irregular polygons, concave, convex with holes * added config.ipaq for pre-built ipaq build configuration * added -lm to LDFLAGS when T1LIB or FREETYPE is used * added FLIP_MOUSE_IN_PORTRAIT_MODE #define to engine/devmouse.c * added Vladimir's nxlsclients and nxev programs * GrCopyArea optimization fix for windows with no eventclients (slider) * added Kim's SH3 reversed order fblin4sh3.c driver * added support for SuperH compilations (LINUX-SH) * added Jordan's convxpm.perl xpm to rgb converter * added Brent's alloca patch * fix update map/unmap events sent only on actual unmap/map * fix window manager to map parent before reparent for unmapcount bug * allow GdStretchBlit to width/height of 0 without error * remove GsError for GrNewPixmap of 0 width or height * change to service all kbd data in single poll loop * change low level clipping to always clip child windows * fix server clear allocated pixmaps before drawing to them * fix blit code after xor in X11 driver for nxterm Version 0.89pre5 - 2nd Nov 2000 - greg@censoft.com * add GdCaptureScreen screen capture for later makebmp processing * temp #define FASTJPEG in engine/devimage.c for 8bpp fast jpeg display * free server images on client disconnect * wrote experimental non-flick blit-move routine when window is topmost * fixed GrCopyArea with offscreen source wid * fixed UPDATE_MAP x, y, values * fixed transparent color drawing in GdDrawImage, unique color no longer required * fix imagehdr free in GdFreeImage * added xpm image support from Jordan, (HAVE_XPM_SUPPORT) * added UPDATE_DESTROY update event subtype * changed update map/unmap semantics: update sent on all child windows of map/unmap * send update unmap event on auto server-destroyed windows * change GrDestroyWindow to send always send update unmap event * change GR_EVENT_TYPE_CHLD_UPDATE message wid member, added subwid now properly sends CHLD_UPDATE messages * added GrDrawLines util function * added virtual and workspace width/height GR_SCREEN_INFO members * added GR_WM_PROPS_NOAUTORESIZE and GR_WM_PROPS_MAXIMIZE window props * fixed cursor on when in source blit rectangle * fixed GrCopyArea copy garbage on clipped src area,sends expose instead * fix DestroyRegion code in GsDestroyClientResources * added Kaben's clipping fix for GdBlit * Kaben's clip region fix when alternating between on/offscreen windows * remove GsError on bad GrCloseWindow * fix negative text coordinate offsets for freetype * consolidated GrNewWindow/GrNewInputWindow * disallow auto-focus to windows with GR_PROPS_NOFOCUS set Version 0.89pre4 - 26th October 2000 - greg@censoft.com * added aggregated expose events for better paint appearance * added cleanapps Makefile entry * fixed T1Lib Makefile.rules bug * removed strdup definition for mips in nxscribble * fixed constant timeout event returned when linked with server * rewrote error handling completely, new GrDefaultErrorHandler, GrSetErrorHandler type/semantics. Removed nanox/stubs.c * don't revert to mouse enter/leave focus after window destroy once set * fix GrCopyArea drawing on unmapped window crash * fix crash on bad GrGetWMProperties call * return all 0 info for any invalid id GrGet* functions * fix GrGetWMProperties to return flags 0 on invalid window id * free gc, region and font resources on client exit Version 0.89pre3 - 17th October 2000 - greg@censoft.com * turned off alpha blending in X11 screen driver for 8bpp * added Nano-X draw library nxPaintNCArea, nxDraw3dShadow, etc * added Vladimir's GR_CLOSE_FIX in nanox/client.c fixing client hang bug * fix for GrGetWindowInfo crashing Vtech after GrCloseWindow/ncPaint * added NEC Harrier port from Century Software * some include file changes for VxWorks port from Brent * cleaned up nanowm window move/closebox/raisewindow routine and policy * added GrNewWindowEx to specify title and props at window create time * implemented window draw styles GR_WM_PROPS_APPWINDOW, APPFRAME, BORDER, CAPTION, CLOSEBOX, default style set by window manager * implemented GR_WM_PROPS_NOMOVE, NORAISE, NOAUTOMOVE, NODECORATE don't decorate if not direct child of root window * extended GrGetWindowInfo to return window properties * fixed LINK_APP_INTO_SERVER makes * added FBREVERSE=Y and PSIONMOUSE=Y config options for Psion 5 port Justin Davies contributed Psion 5 touchscreen/screen driver * added PIPEKBD option for named pipe keyboard driver (kbd_pipe.c) * added nxterm patch for FreeBSD from Andrew * fixed sharedlibs link for nxkbd, nxscribble and nanowm apps * fixed make bug when SHAREDLIBS=Y and FREETYPE/T1LIB=Y from Murphy Version 0.89pre2 - 3rd October 2000 - greg@censoft.com * added nxscribble handwriting recognition from Century Software * added nxkbd popup keyboard for Nano-X (original from Jay & Vladimir) * added SIGHUP ignore to Nano-X, removed GrRedrawScreen dropclient bug * implemented GrReadArea for pixmaps from Peter * added free truetype fonts to distribution (Arial, Times, Courier) * added FREETYPE_FONT_DIR config for truetype font search path, .ttf ext * enhanced nxclock no polling, nxterm better focus handling * added GR_UPDATE_UNMAPTEMP and GR_UPDATE_ACTIVATE update events * added GrGetNextEventTimeout and GR_EVENT_TYPE_TIMEOUT event * reworked NanoWM for 3d window decorations for Nano-X applications removed multi-window decorations, uses only one window now * fixed user clip region parent offset bug from Peter * added GrGetFocus call for use with nxkbd and nxscribble * added GrGetSysColor for system-defined color schemes * fixed focus semantics during window move/resize/reparent * added Makefile INSTALL_PREFIX variable * added GrPoints function from Murphy * rewrote window manager property struct, added set background color added props, flags, title, background, bordersize get/set * added kbd_soft.c named pipe keyboard driver from Vladimir * added touch panel mods to mou_tp.c driver for Helio (TPHELIO=Y) * added inverted 4bpp screen driver for Helio (INVERT4BPP=Y) * added changes to Makefile for shared libs for Helio * added kbd modifier info for X11, nano-X hdr changes from Jordan * generate Nano-X root window expose event repaint on startup * removed termios errchk in serial/ps2 mouse driver * fixed DT_CENTER DrawText and MSDOS GetTickCount from Robert Sharp * fixed Makefile.rules .depend target errmsg * start work on Nano-X drawing library for 3d look/feel * added GrDrawImageBits, .bmp file conversion for Nano-X must change MAXREQSIZE in nxproto.h * add title display to nanoWM * fix SetWMProperties title memcpy/wrapper bugs * fix many NanoWM bugs: window move offset, mousedn on client loses title data * ported nxkbd software keyboard to Nano-X * added FREEBSD-X86 to config file as ARCH option Version 0.89pre1 - 18th September 2000 - greg@censoft.com * added map-update events to be batched to any application that selects for child update events on the root window (window managers) this allows a window manager to get a list of all mapped windows without a special API call * updated nanowm bitmaps from Vladimir * eliminate need for sleep after nano-X startup, multiple connect trys * print nano-X server error messages rather than numbers * force nano-X cursor to appear on startup * fix cursor change without mouse movement * moved apps/nanowm to demos/nanowm to fix Makefile build problem * fix bad MIPS sys header define for SOCK_STREAM * fix free() bug in GrSetWMProperties from Vladimir * added alpha RGB444 12bpp fb driver for EP7211 from Julian * fixed uninitialized transparent color in devimage.c from Jamie * fixed mouse in abs mode for iPAQ touchscreen in portrait mode * renamed demos/mwin/demo.c to mdemo.c * added changes for compiled in HAVE_BIG5_SUPPORT packhz12 program bugfixed hzx12 big5 chinese font * added changes to win32 controls: listbox control with scrollbars edit control w/chinese support and caret combobox enhancements new scrollbar (client) control, smooth scrolling thumbs mtest2 demo program multiline edit control * wrote caret handling for win32 * added Roman's changes for Kaffe port to win32 api: GetTextExtentExPoint, GetTextExtentPoint, DrawTextA SRCAND, SRCINVERT, BLACKNESS added blit AND, INVERT, BLACKNESS to x11 and 16bpp drivers GdGetTextSizeEx (freetype only for now) automatically append B/I for bold/italic in CreateFont fix delete pen/brush but not font resources in ReleaseDC change default TOP alignment to BASELINE in MwExtTextOut enhanced glyph width calculations for freetype in devfont.c auto antialias for freetype at height > 14 not added (kaffe port): TextOut defaults to UTF8, not ASCII no SetForegroundWindow on NCLBUTTONDOWN on HTCLIENT area * enhanced demo2.c for upcoming Linux Journal article (Dec) Version 0.88patch1 - 21st August 2000 - greg@censoft.com * temp hack scribble to window #2, remove srvutil.c id!=1 hack * fixed nanowm window move flicker * added window id parm to GrInjectKeyboardEvent * added otherid to nano-X focus window events * fixed BOOL decl in scr_bios.c * add WM_NCHITTEST fix to tpcal calibrator * fix ADS and iPAQ touch screen drivers for kernel driver select bug * added right/left portrait mode mouse fixups, -N cmd line startups * fixed GsError with no clients core dump * added transparent color to MWIMAGEHDR format, GdDrawImage, GIF decode Version 0.88 - 3rd August 2000 - greg@censoft.com * added iPAQ mouse support from Century Software, config IPAQMOUSE * changed config option TSMOUSE to ADSMOUSE * added HAVE_GIF_SUPPORT to config, added GIF decoder * changed image decode algorithms, image is kept in core until drawn * added GrDrawImageFromFile, GrLoadImageFromFile, GrDrawImageToFit, GrFreeImage, GrGetImageInfo for GIF, BMP and JPEG * removed GrJPEG/GdJPEG, GrBMP/GdBMP * modified MWIMAGEHDR structure, added pitch and bytesperpixel * wrote decoder for 24bpp .bmp files, enhanced convbmp * added stretch blit, rewrote image routines in Nano-X for ViewML * corrected nano-X demo makefiles to work with LINK_APP_INTO_SERVER * Patches recieved from ScreenMedia: Jan Vehusheia * nanox/srvnet.c Free allocated events to freelist when destroying a client. * nanox/srvutil.c Correctly reassign mouse pointer information when an application crashes while a mouse button is held pressed down. * Patches recieved from ScreenMedia: Jon K Hellan * nanox/srvmain.c (GsInitialize): Initialize wp->owner to NULL. * drivers/kbd_x11.c (X11_Read): Initialize modifiers also when no key press pending. * demos/nanox/demo5.c (main): Correct height of bitmap2(fg|bg) in GrSetCursor call. * added Kevin's patch for destroying eventclient structures * added Jiwon's patch for NULL name strcpy in devfont.c * added Kyle's makefile patches, PORTRAIT_MODE=R or L in config Version 0.88pre11 (IBM OTI java&Kaffe ports) - 10th July 2000 - greg@censoft.com * added set palette patch from Joe for Embedded Planet /dev/lcd driver * started adding win32 keyboard support (not working yet) * added Andrew's port to FreeBSD, Wt wterm terminal emulator port * fixed convbdf font size error * added Kevin's not working combobox control * added George's Isicad Prisma screen driver and config * added Simon's flipped portrait mode driver (we now have two) * added updated BC5 makefiles from Ming-Lin Kao * added HZK font patches from kevin * added checkbox, radio button and static controls by kevin/cms * changed GrSetFontAttr,GdSetFontAttr api * added underlining to font rendering with GrSetFontAttr/MWTF_UNDERLINE * fix WS_POPUP parent clipping, add owner window handling * fix delete pen/brush/font resources in ReleaseDC, use DeleteObject * fix memory leak in GetDCEx using CS_OWNDC * added nofont.c for null font support * added NOFONTSORCLIPPING config option for screen driver interface only * separated engine open and draw routines for small driver interface * IBM OTI Microview port: no ALPHABLEND, VTSWITCH, FBVGA, EPRINTF chg Version 0.88pre10 (fltk-nx port) - 18th June 2000 - greg@censoft.com * started adding win32 non-client area scrollbars * added Simon's contributed slider game (slider.sh) * added Nano-X GrEqualRegion, GrEmptyRegion, GrOffsetRegion * added GdEqualRegion, GdEmptyRegion * changed GdRectInRegion to return partial intersection values * fixed Nano-X clipping regions relative to drawable * changed GR_RECT struct to match X, not win32 * changed GrRectInRegion, GrGetRegionBox, GrUnionRectWithRegion parms to match X * applied Kevin's HZK font sizing fix * removed floating point, ldiv from ported progress bar, fixed bugs * fixed listbox multi-element display code, initial state * fixed PIXELVALTOCOLORVAL macro typo Version 0.88pre9 - 15th June 2000 - greg@censoft.com * added Chinese Han Zi Ku font support from Tanghao and Jauming 12x12 and 16x16 ascii and chinese fonts Big5, Unicode-16 and GB2312 encoding supported set with config option HAVE_HZK_SUPPORT * added Guo's Chinese GB2312 decoding routines, fonts/gb2312font.c set with config option HAVE_GB2312_SUPPORT * added Jin ke xue's gb16x16song.c font file (no support yet) (and .bdf) * fixed C++ objects to compile * added Rosimildo's RTEMS changes, convbmp allows full paths * added Alex's VERY COOL nano-X window manager! (great job!!) nanowm.sh * added GrSetWMProperties,GrGetWMProperties,GrCloseWindow, GrKillWindow * added Alex's npanel enhancements (solid dragging, zombies) * added Alex's cpu usage reduction to nclock, npanel * added Alex's patch to get nano-widgets to compile * added Alex's PPM file decoder demo6 * implemented DT_CENTER, DT_RIGHT for DrawText * added changes in tpcal.c for MIPS Osprey board port, dblclk changes * HAVETEXTMODE #define for Osprey and Embedded Planet ports * added Michael's MINIX port updates * added George's setpalette changes to VNC * added GdAllocPolygonRegion, GrNewPolygonRegion, CreatePolygonRgn * fixed nasty #if UPDATEREGIONS in windows.h compile problem * added Kevin's port of edit, listbox and progressbar from MiniGUI * added GdGetRegionBox, GrGetRegionBox * fixed update regions calc bug * combined GdEllipse and GdFillEllipse and Arc/Pie routines * wrote pie, arc, outline arc routines, win32 Arc,Pie, GrArc,GrArcAngle * added George's patch to fix X11 screen driver setpalette function * added Murphy's region code for Nano-X, also polygon regions Version 0.88pre8 - 23rd May 2000 - greg@censoft.com * added Murphy's X vs Microwindows speed tester in contrib/speedtst * fixed convbdf to not emit nonascii characters * added Victor's DJGPP port * removed automatic portrait mode * added extern "C" to nano-X.h * added Kao's patches for BC5, enhanced scr_tc.c, some bug fixes * fixed win32 top/baseline/bottom positioning * added Morten's GrInjectKeyboard/GrInjectPointer patches * added Kevin Lin's fix to Nano-X persisent mode curclient crash * changed GdCreateFont name,height semantics * added Morten's font picker algorithm, turn on w/#define FONTMAPPER 1 Note: font selection is currently under development and will likely change * cleaned up source for Michael's MINIX port, replaced convbmp.c -s opt * fixed XYPOINT in mou_tp.c, changes for embedded planet tp driver * added PIXELVALTOCOLORVAL, COLORVALTOPIXELVAL macros, GdTranslateArea * fixed multiple GsSelect() call in GrGetNextEvent in linked client/serv * continued port of VNC to Nano-X, contributed by George * added Rosimildo's patch for RTEMS, MW* fixes, svgalib fade Version 0.88pre7 - 15th April 2000 - greg@censoft.com * added LINUX-POWERPC port for embedded planet linux box * fixed Polygon routine fill/draw reversed, AdjustWindowRectEx * fixed no root window paint without background bitmap * added bitmaps to minesweeper, polished up * added middle button handling for mwin * added GrSetSystemPalette * added user-replaceable GdError, removed all fprintf/printf's * added EPRINTF for all error printfs, DPRINTF for debug printfs * removed HAVE_PERROR config option * changed memmove to memcpy Version 0.88pre6b - 5th April 2000 - greg@censoft.com * added PostThreadMessage * started porting minesweeper game * fixed -p persistent mode * added Kao's BC 5.02 fixes, other pre6 fixes from name changes * added Steven's patch for polling drivers, HAVE_PERROR config option * added Erik Hill's alpha blending for X11 * fixed jpeg compile bug * removed include patch from Shane Version 0.88pre6 - 2nd April 2000 - greg@censoft.com * major header file cleanup, fixing namespace pollution API typdef procs data Nano-X: GR_* Gr*,nx*,(Gs*) nx* Microwindows: MW* Mw* mw* Engine: MW* Gd*,Mw* gr_*, fb* * changed all Nano-X structures and defines to be GR_ prefixed added GR_PIXELVAL, GR_RGB, GR_LOGFONT * MW prefixed all exported typedefs for name space cleanup, split device.h into mwtypes.h for exports * added MWLOGFONT font descriptions * removed BUTTON, MODE, MODIFIER typedefs * added Martin's updates to FreeType renderer, updated ftdemo * added Martin's updated xconfigure for X-based configuration * renamed GrUnloadFont to GrDestroyFont, GdDestroyFont * clean up various unwanted nano-X client library symbol exports * redraw windows on nano-X client disconnect * added -p for nano-x persistent mode, no exit on client disconnect * added Timo's fix in GsAcceptClientFd, ignore SIGPIPE, mult GrClose bug * added automatic portrait mode if screen y resolution > x res * fixed GrReqShmCmds for linked client/server case * implemented freetype renderer ascent/descent calculations * added ascent field to compiled fonts, GrText uses TF_BASELINE default * added 5x7, 6x13 compiled (bdf) fonts, FONT_SYSTEM_FIXED is now 6x13 * fixed typo in fonts/convbdf $IMAGEBITS incorrect * added #include for outb in 2.3.x systems * added AdjustWindowRectEx, WM_ACTIVATE, IsWindowEnabled * completed GetPixel, added PIXELVAL to COLORVAL conversion macros Version 0.88pre5b - 23rd March 2000 - greg@censoft.com * added GetSystemMetrics, SM_CYSCREEN, SM_CXSCREEN, SM_CYMENU * added GetParent, GetDeviceCaps LOGPIXELSX * added EnableWindow, WM_ENABLE * added MapWindowPoints, WM_WINDOWPOSCHANGED * defaulted ANIMATEDPALETTE to off (change in include/device.h) * added RTEMS patches for svgalib, GsSelect timeout handling (Rosimildo) * created shared libs for all libraries with SHAREDLIBS=Y config option * patched setfadelevel out for non framebuffer * patched client/server shm code (Morten) Version 0.88pre5 (opera, kaffe) - 22nd March 2000 - greg@censoft.com * added GetDlgItem, GetWindowTextLength, WM_GETTEXTLENGTH * added GetPixel (needs rgb backconversion still) * implemented GWL_WNDPROC, CallWindowProc, GetRValue, GetGValue etc * added GrSetFontSize, GrSetFontRotation, GrSetFontAttr, and GdXXX works on a per-font basis, rather than on GC * added HAVE_SHAREDMEM_SUPPORT config option to compile in shmem support * added shared memory support for Nano-X client/server protocol (Morten) * added -e option to Nano-X server to stop terminate on ESC * fixed psd->DrawArea crash after vt switch, GdArea cursor update * added SHAREDLIBS config option for shared libs (nano-x only now) * applied Morten's patch to fix Nano-X client/server protocol bug * added UTF-8 encoding/decoding for fonts and text * fixed FreeType memory leak (thanks Martin) * added ExtTextOutW, DrawTextW for unicode win32 support Version 0.88pre4 (truetype/t1 fonts) - 19th March 2000 - greg@censoft.com * implemented text drawing in ascii, utf8, unicode 16 and unicode 32 * added font id's for Nano-X, added GrCreateFont, GrUnloadFont * rewrote font subsystem heavily * added alphablender for antialiased fonts for 8, 16, 24 and 32bpp * added GrText, GrGetGCTextSize flags, CreateFontIndirect * added GdText TF_ flags for 8,16,32 bit packing, top/bottom alignment * added Martin's FreeType TrueType font support * added Vidar's t1lib adobe type1 font support, t1demo for Nano-X use HAVE_FREETYPE_SUPPORT config option use HAVE_T1LIB_SUPPORT config option * renamed min/max to mwmin/mwmax * added Fabio's xconfigure patch for VTSWITCH * fixed WM_CREATE lparam bug * added mou_ts.c touch screen driver for ADS ARM port * added GrSetGCFontSize, GdSetFontSize, GdCreateFont, GdUnloadFont * added GWL_USERDATA to Get/SetWindowLong * turboc port screen driver fixes * added nonclient region special paint handling to avoid flicker * added null kbd driver, set with NOKBD=Y Version 0.88pre3d (fltk port) - 12th March 2000 - greg@censoft.com * changed FONTINFO struct, added firstchar, lastchar * added Shane's fonts patches, added CreateFont, GetTextMetrics, GetCharWidth, SetAlignText * debugged nasty VTSWITCH palette changed bug * experimental #define ANIMATEPALETTE for cool fade in * added Kyle's patch to get portrait mode working again * fix SetClipRgn/ExtSetClipRgn to take client coords (win32 api doc bug) * added WM_SHOWWINDOW msg * fixed coords to WM_MOVE msg for WS_CHILD windows * added PeekMessage, Ellipse * added Rosimildo's rtemscfg.h patch * added GetUpdateRgn, GetUpdateRect, GdOffsetRegion * added Kyle's GdCopyArea fix Version 0.88pre3c (fltk port) - 8th March 2000 - greg@censoft.com * added CS_OWNDC private DC's * added SetActiveWindow, SetForegroundWindow, BringWindowToTop * added Polygon, PolyPolygon (filled and outline) Version 0.88pre3b (fltk port) - 6th March 2000 - greg@censoft.com * added GetDeviceCaps, Polyline * added extern "C" in windows.h * fixed loop bug in CreateRoundRectRgn * added penguin to bin/mdemo * added ValidateRect, ValidateRgn, InvalidateRgn * completely rewrote UPDATEREGIONS handling for new region fns * added DCX_EXCLUDEUPDATE handling to window clipping * sped up WndSetClipWindow, GsSetClipWindow * added GdSetRectRegionIndirect, GdSubtractRectFromRegion * added SetWindowPos for size,move,show,hide,repaint,zorder Version 0.88pre3 - 5th March 2000 - greg@censoft.com * added contributed DOS TURBOC port by Victor * modified bin/mdemo to clip 3d drawing into a circle, added penguin * added GdAllocRectRegion, GdAllocRectRegionIndirect, * added GdSetRectRegion, GdAllocRegion, GdDestroyRegion * added SelectClipRgn, ExtSelectClipRgn, user clip regions! * added DYNAMICREGIONS define for dynamic vs static (small) clip code * added win32 HRGN object and region routines * added GetCursorPos * added Al's update event patches for Nano-X client window manager * added Rosimildo's RTEMS patches for uniform input devices * added George's partial mouse data read fixes (upper level only) Version 0.88pre2 - 29th February 2000 - greg@censoft.com * added Al's npanel Nano-X program exec'er (cool) * added Al's patch to cleanup windows on Nano-X client exit * added Al's ignore sigpipe for ELKS * added Morten's jpeg grayscale patch * create dword-aligned offscreen bitmaps for speed * removed much of global scrdev * changed screen driver open routine to return psd * added Vidar's patch for offscreen drawing in Nano-X, added GrNewPixmap, GrCopyArea. GrDestroyWindow destroys pixmaps Version 0.88pre1b - 23rd February 2000 - greg@censoft.com * added Kyle's bug fix for 16 and 32bpp jpeg support Version 0.88pre1 - 22nd February 2000 - greg@censoft.com * added PSD to GdClip routines, fixing potential offscreen write bug * renamed libraries, added "make install", hdrs to /usr/include/microwin and libs to /usr/lib/libmw*.a and libnano-X.a * renamed RECT, POINT, CLIPRECT and CLIPREGION types to MWxxx * added Al's ELKS patches for client/server Nano-X on ELKS * renamed xconfigure, updated INSTALL with make instructions * rewrote all fb drivers for speed eliminating multiple function calls * allow GdText count == -1 for strlen() * added GdCalcMemGCAlloc to calculate offscreen allocate size * added three offscreen memory allocation entry points to screen driver * rewrote vga16 driver to use outw rather than outb for speed * adjusted fb drivers to always draw last point for drawhorz/drawvert * rewrote VT switching code, removed from fb driver to separate file * added SetIOPermissions in scrdev for pthreads create i/o bitmap bug * fixed parms named "min" in demos for ELKS bcc compiler * changed VT switch signal to SIGUNUSED for pthreads compatibility * added Brad's touch panel/mouse calibrator to contrib/GPL/tpcal * fixed up SVGAlib driver for 256 colors, added screen to screen blit * process all mouse messages before next select: better mouse speed * added HTBORDER hit testing * fixed FBVGA blitting, wrong scrdev used on memdc Version 0.87 - 13th February 2000 - greg@censoft.com * added VTSWITCH in config to include virtual terminal switch code * added support for 24bpp, wrote 24bpp fb driver * fixed 8/8/8 color macros: RGB2PIXEL888, COLOR2PIXEL888, PIXEL888RED * fixed 32bpp fb bug with psd->ncolors, 32bpp alpha blit bugs * added fb driver support for FB_VISUAL_DIRECTCOLOR cards (ATI) * sped up 16, 32bpp blitters by using memcpy * added large font patches from Kyle * added PACIFIC C compiler support from Victor * default UPDATEREGIONS=N in config file for alpha blend demo * removed XORMOVE from config, requires only ERASEMOVE=N * wrote alpha blending demo (requires UPDATEREGIONS=N) * rewrote void *pixels in devdraw.c, won't compile on ansi compilers * fixed PF_TRUECOLOR0888 bug in GdArea * added DJGPP as config ARCH option, Victor's patches for DJGPP * finalized alpha blending blit routines for 8, 16, and 32bpp * added SetTimer/KillTimer api (single timer only) * added Chris' SetSysColor api, C++ object frameworks patch to mwin/ * added Rosimildo's make patches for RTEMS * added Martin's make/configure patches Version 0.87pre6 - 31st January 2000 - greg@censoft.com * added C++ objects framework from Chris * added support for multiple read/write/except fd's from Chris * added Martin's X11 configure program and various Makefile fixes * added compile time warnings patches from Chris * added Morten's drawarea patch pre5mr1 * added experimental 8, 16 and 32bpp constant alpha blending to bitblit (#define ALPHABLEND in device.h and run bin/mterm for demo) * changed distance-cubed find nearest color to use abs() for speed * fixed max character height/width alloc; max now 128x128 (configurable) * small bugfix DRAWON/DRAWOFF in mempl4.c Version 0.87pre5 - 26th January 2000 - greg@censoft.com * prepared prebuilt config files for fb, x11, svga * added Morten's drawarea driver patch (16bpp only) * fixed XOR drawing for 1, 2, 4bpp, improved speed with x>>2 not x/4 * applied Chris' FBVGA patch * applied Rosilmildo's RTEMS compiling patch * applied Morten's SCREEN_PIXTYPE X11 Makefile patch * added Chris' SetWindowLong and $(HOME)config and Arch.rules patch * completed fix for DJGPP compiled mou_dos.c driver * added Kyle's patches for arbitrarily wide text chars Version 0.87pre4 - 18th January 2000 - greg@censoft.com * added Martin's new config-based Makefile system * added Martin's JPEG and BMP file reading/display routines * added Morten's variable PIXELVAL size mods * added contributed DJGPP/GRX port by Victor Rogachev * fixed 16bpp and 32bpp fb blit routines, by Kyle Harris * added Rosimildo's RTEMS changes, scr_bios now runs without bios * added Dan's GrReparentWindow, fixed GetWindowInfo bug * added PF_TRUECOLOR0888 for 4 byte packing * updated doc directory with html faq, architecture Version 0.87pre3 - 19th December 1999 - greg@censoft.com * started directory reorganization * changed LINUX meaning in Makefile, added UNIX for SOLARIS * fix negative blit index bug found under X11 by Piotr * set rootwp->parent = NULL for nano-X, fixes GrMoveWindow clip bug * added COLORVAL<->PIXELVAL conversion macros * modified GrArea to take packed pixel values of 8, 16 and 24 bits * modified GrArea to take RGB COLORVALs as well as PIXELVALs * renamed PF_TRUECOLOR24 to PF_TRUECOLOR888 * added tunable MAXREQUESTSZ to limit max request length * modified Nano-X demo.c to GrArea() > 64k pixelvals for testing * fix client/server 64k length bug (request can be 24 bits in length) * fixed portrait mode in CreateCompatibleBitmap Version 0.87pre2 - 14th December 1999 - greg@censoft.com * added fixes to run on big-endian machines * integrated rtems port, protected mode vga driver * added ARM SA1100 4bpp LCD controller driver * added portrait mode fb driver from Martin Jolicoeur * fixed GrMoveWindow for child windows, MoveWindow for grandchildren * added nanox move.c window move test program from Daniel * rtems portability fixes, use rather than * fixed mterm demo pty bug under X11 Version 0.87pre1 - 2nd December 1999 - greg@censoft.com * added GrMainLoop convenience function * added passive library entry points GrPrepareSelect,GrServiceSelect * completely rewrote nano-X client/server networking layer for speed * removed nano-X stubs file, rename Gs* routines to Gr* * added GrFindColor function to convert RGB color to pixel value * added GetSystemPaletteEntries, GrGetSystemPalette functions * added null mouse driver (NOMOUSE) * added X11 driver by Tony Rogvall , fixed colors Version 0.86 - 28th October 1999 - greg@censoft.com * merged framebuffer, elks and msdos vga 16 color 4 planes drivers * wrote vga bitbit routines (a herculean effort) * optimized bitblit by traversing window clip region * added experimental multi-rectangle dynamically allocated regions * wrote scrolling terminal emulator demo for microwindows * added WM_FDINPUT msg, WndRegisterFdInput call for terminal emulator * changed SCREENINFO struct, removed black/white, added bpp, planes * added offscreen (memory DC) drawing to microwindows * added BitBlt, CreateCompatibleBitmap, CreateCompatibleDC, DeleteDC * retired BOGL library, must use new interface for blitting * converted framebuffer, svgalib, elks and msdos screen drivers * (we need blit routines for herc and svgalib still) * major screen driver interface change, old drivers not compatible Version 0.85 - 14th October 1999 - greg@censoft.com * ported microwindows to Casio and Clio palm pc's (thanks Brad) * ported microwindows to Everex Freestyle palm pc * changed ncolors in SCREENINFO user struct to long * system automatically supports 1, 2, 4, 8bpp palette and 8, 16 and 24 bpp truecolor systems (332, 565, 888 packing) * removed F_PALINDEX from std colors, std colors now RGB * wrote 16bpp, 32bpp fb drivers, 2bpp, 4bpp for palm pc * removed requirement for bogl library, wrote direct framebuffer driver * started screen driver rearchitecture for bitblit * experimental bitblt * added touchscreen device from Brad LaRonde * enhanced nano-X terminal emulator, added scrolling,bitblit * added GrRegisterInput for terminal emulator without polling * rewrote GrGetNextEvent to not require polling * added CREDITS file * integrated Vidar's nanoWidgets 0.2 * added screenshot capability: read /dev/fb0 on exit * wrote makebmp utility to convert fb data to bmp file Version 0.84 - 3rd October 1999 - greg@censoft.com * integrated Vidar's nanoWidgets 0.1, changed color constants * integrated Brad LaRonde's MIPS LinuxCE port cross-compile changes * integrated Alex's nano-X-0.5pre3 changes except dir/filename changes * added support for 8 to 32 bit truecolor systems * reorganized Makefile for nanoX and linked/non-linked nano-X servers * reorganized Makefiles for gcc, bcc and other compilers * reorganized nano-X.h header file for client programs * fixed GrSetGCFont,GrGetGCTextSize,ReadArea,Area client/server bugs * fix bug in nanoX network select code for client attach * workaround for GrGetNextEvent in nanoX client lib * wrote asm version of VGA driver for ELKS * added optimized herc hline routine from thomas_d_stewart@hotmail.com * added contributed terminal emulator demo for nano-X, (from Alistair Riddoch, requires linked server) Version 0.83 - 14th July 1999 - greg@censoft.com * wrote sample untested hercules driver for ELKS * tweaked window repaint code to paint child windows last for ELKS * fixed code for pass-by-structure for bcc/ELKS * added TEST= for select() code in ELKS Version 0.82 - 5th July 1999 - greg@censoft.com * added contributed clock demo for nano-X from Alistair Riddoch * added update region calculation for window painting * fixed GdColorInPalette, GdSetPalette, various palette bugs * added double click to maximize/restore windows * added mouse double click processing * added GetTickCount() api, requires OS millisecond time fn * fixed some expose region calculations * combined Makefile builds both/either Microwindows and Nano-X * wrote XORMOVE window move algorithm for slow cpu's * added GetDCEx(), SetROP2() and various rect api * change to single toplevel Makefile mod for ELKS or LINUX * changed default ELKS mouse port to /dev/ttys0, type to "pc" * changed tgmath.h to math.h Version 0.81 - 22nd June 1999 - greg@censoft.com * added Free System font * removed mswin4 background * changed nano directory * changed vgaplan4 unsigned int fix for ELKS screen bug * set default rom character height to 14 for scr_bios driver * added -ansi option for bcc (I'll post my ansi compiling bcc shortly) Version 0.8 - 20th June 1999 - greg@censoft.com * added 3d graphics library for demo app * removed ms windows grabbed fonts, added FreeSansSerif font * added color bitmap support * wrote windows bmp file converter * drawing color bitmaps in 1, 4 and 8 bpp supported * added support for loading partial palettes * added MakePaletteConversionTable function * added support for sophisticated palette optimization * implemented optimized window redraw algorithms during window moves * added child window support * wrote button control * added more sophisticated focus routines on create/destroy * added support for type 1 and type 2 line drawing requests in GdLine * added multiple window color schemes * added desktop wallpaper Version 0.7 - 8th June 1999 - greg@censoft.com * created new win32 api: Micro-Win * created window manager and overlapped window border drawcode * added software cursor structure to device layer * changed nano-x and micro-win color model to RGB for user programs * added setpalette driver entry point, 16 and 256 color std palettes * fixed console refresh bug for BOGL * fixed expose bug bad return; * fixed ELKS cols,rows bug in scr_bios.c * disallow console switching for ELKS while in graphics mode * added EGAMODE and CHARHEIGHT environment variables for ELKS/DOS Version 0.6 - 23rd May 1999 - greg@censoft.com * Updated bugs from new mini-x distribution * Wrote int33 mouse driver for dos * Wrote a portable vga 4 plane driver for dos, elks * Updated dos driver to support XOR,AND,OR draw modes * Wrote routines for ELKS port, compiled with bcc uses new serial mouse driver, vga 4 plane driver and bios kbd * Added check for FRAMEBUFFER environment variable for /dev/fbX open * Added clipped text output routines, using bitmaps * Added GetCharBits device driver entry point, removed DrawText * Added new nano-X font format, wrote conversion programs to convert bdf fonts and PC ROM bios fonts. There is no longer any dependency on the BOGL font structure. Any number of fonts are supported. Fonts use min 16 bits/scanline. Convbdf and convrom.exe are included. * Created rom 8x16, 8x16 fonts. * Entire nano-X can run on only drawpixel and readpixel if required * Documented scr_bogl.c (bogl), and scr_bios.c (bios) drivers. * Ported world program to 16 bit systems * Added pc, microsoft and logitech direct serial driver mouse support * Wrote SVGAlib screen driver, will now run on *any* linux system, not just v2.x framebuffer systems. scr_svga.c. * Nano-X is now completely self contained, if desired, in that there are hw drivers for screen, mouse, and keyboard that don't require other software to be running Version 0.5 - 18th May 1999 - greg@censoft.com * Rewrote cursor routines * Separated mouse from cursor routines * Removed DrawCursor from device driver * Added ReadPixel to device driver * Made demo programs work with cursor changes * Added polygon draw and fill routines * Added area pixel reading/writing, removed 8-bit limit for colors * Reworked color model * Added direct hardware 640x480x16 support for VGA real mode systems * Made api backwards compatible with mini-x * Ported mini-x world demo program to examples library Version 0.4 - 12th May 1999 - greg@censoft.com * Added XOR drawing mode to screen drivers * Fixed rectangle, fillrect, and line off-by-one bugs * Commented example drivers better * Implemented text clipping * Fixed VT switch code and redraw * Hacked physical/virtual 0,0 mapping on linux framebuffer startup * Added 256 color and 16 color explicit palette to bogl driver * Added GetFontInfo and GetScreenInfo to drivers Version 0.3 - 9th May 1999 - greg@censoft.com * Release 0.3 is heavy rewrite of lower-level/mid-level routines * cursor clipping implemented * screen, mouse and kbd driver APIs created * includes GPM mouse driver, /dev/tty keyboard driver * all device-dependent code is in drivers/ directory * intended as evaluation for standalone and other OS ports * should be easy to write an int 10h driver for real mode operation * should be easy to add any other kbd, mouse or screen drivers * quick port with MSC 5.10 for MSDOS created Version 0.2 - 5th May 1999 - greg@censoft.com * Made release 0.1 operational for evaluation * Added event processing * Made demo programs work * Fixed numerous bugs * Added client direct link stub routines for non networked systems/test * Started screen device driver api and bogl integration rewrite * printf debug code is still included, this is an interim release for strawman evaluation Version 0.1 - 25th April 1999 - alex@linuxhacker.org Initial release, based on Alan Cox's combination of mini-X and Bogl, and some more work by myself. Changes since Alan's release include: * Client library and server process are seperate. * Mouse driver rewritten to take the output of GPM in repeater mode. * Mouse pointer code added to the bogl cfb8 driver. * K & R parameter declarations converted to ANSI. * Main control loop uses select() instead of busy waiting. * Beginning of code to redraw screen on switching to graphics console. * Client data is stored in a dynamic linked list instead of a fixed size array. * Some minor bugs fixed. * Many major bugs added. * ChangeLog, TODO, BUGS, README, INSTALL, etc. written. * Probably various other things I've forgotten about now.