From owner-freebsd-ports Thu Nov 16 19:43:55 1995 Return-Path: owner-ports Received: (from root@localhost) by freefall.freebsd.org (8.6.12/8.6.6) id TAA09590 for ports-outgoing; Thu, 16 Nov 1995 19:43:55 -0800 Received: from clem.systemsix.com (clem.systemsix.com [198.99.86.131]) by freefall.freebsd.org (8.6.12/8.6.6) with ESMTP id TAA09550 for ; Thu, 16 Nov 1995 19:43:42 -0800 Received: from localhost (localhost [127.0.0.1]) by clem.systemsix.com (8.6.8/8.6.6) with SMTP id UAA27045; Thu, 16 Nov 1995 20:43:10 -0700 Message-Id: <199511170343.UAA27045@clem.systemsix.com> X-Authentication-Warning: clem.systemsix.com: Host localhost didn't use HELO protocol From: Steve Passe To: asami@cs.berkeley.edu (Satoshi Asami) Cc: ports@freebsd.org Subject: Mosaic on 16 bpp displays Date: Thu, 16 Nov 1995 20:43:09 -0700 Sender: owner-ports@freebsd.org Precedence: bulk Hi, I discovered that Mosaic-2.6 is broken for 16 bpp displays under 2.1/XFree86-3.1.2. The following patchfile fixes it: *** src/pixmaps.c.orig Thu Nov 16 20:03:15 1995 --- src/pixmaps.c Thu Nov 16 20:19:23 1995 *************** *** 404,411 **** --- 404,417 ---- datap = data; for (w = size; w > 0; w--) { + #if defined( __FreeBSD__ ) + /* xdpyinfo: red, green, blue masks: 0xf800, 0x7e0, 0x1f */ + temp = ( (colrs[(int)*datap].red & 0xf800) | + ((colrs[(int)*datap].green >> 5) & 0x07e0) | + #else temp = (((colrs[(int)*datap].red >> 1) & 0x7c00) | ((colrs[(int)*datap].green >> 6) & 0x03e0) | + #endif /* __FreeBSD__ */ ((colrs[(int)*datap].blue >> 11) & 0x001f)); if (BitmapBitOrder(XtDisplay(wid)) == MSBFirst) *** libhtmlw/HTMLimages.c.orig Thu Nov 16 20:09:46 1995 --- libhtmlw/HTMLimages.c Thu Nov 16 20:20:38 1995 *************** *** 363,370 **** --- 363,377 ---- datap = data; for (w = (width * height); w > 0; w--) { + #if defined( __FreeBSD__ ) + /* xdpyinfo: red, green, blue masks: 0xf800, 0x7e0, 0x1f */ + + temp = ( (img_info->reds[(int)*datap] & 0xf800) | + ((img_info->greens[(int)*datap] >> 5)& 0x07e0) | + #else temp = (((img_info->reds[(int)*datap] >> 1)& 0x7c00) | ((img_info->greens[(int)*datap] >> 6)& 0x03e0) | + #endif /* __FreeBSD__ */ ((img_info->blues[(int)*datap] >> 11)& 0x001f)); if (BitmapBitOrder(dsp) == MSBFirst) -- Steve Passe | powered by smp@csn.net | FreeBSD