Generalize kludge in fbdev that normalizes pixel formats to something that
Render can handle
This commit is contained in:
		
							parent
							
								
									562474091a
								
							
						
					
					
						commit
						99fb2eb76d
					
				| 
						 | 
				
			
			@ -21,7 +21,7 @@
 | 
			
		|||
 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 | 
			
		||||
 * PERFORMANCE OF THIS SOFTWARE.
 | 
			
		||||
 */
 | 
			
		||||
/* $XFree86: xc/programs/Xserver/hw/kdrive/fbdev/fbdev.c,v 1.21 2001/06/16 05:53:05 keithp Exp $ */
 | 
			
		||||
/* $XFree86: xc/programs/Xserver/hw/kdrive/fbdev/fbdev.c,v 1.22 2001/06/21 00:58:51 keithp Exp $ */
 | 
			
		||||
 | 
			
		||||
#include "fbdev.h"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -86,6 +86,23 @@ fbdevCardInit (KdCardInfo *card)
 | 
			
		|||
    return TRUE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#define FBDEV_KLUDGE_FORMAT
 | 
			
		||||
#ifdef FBDEV_KLUDGE_FORMAT
 | 
			
		||||
static Pixel
 | 
			
		||||
fbdevMakeContig (Pixel orig, Pixel others)
 | 
			
		||||
{
 | 
			
		||||
    Pixel   low;
 | 
			
		||||
 | 
			
		||||
    low = lowbit (orig) >> 1;
 | 
			
		||||
    while (low && (others & low) == 0)
 | 
			
		||||
    {
 | 
			
		||||
	orig |= low;
 | 
			
		||||
	low >>= 1;
 | 
			
		||||
    }
 | 
			
		||||
    return orig;
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
Bool
 | 
			
		||||
fbdevScreenInitialize (KdScreenInfo *screen, FbdevScrPriv *scrpriv)
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			@ -141,10 +158,23 @@ fbdevScreenInitialize (KdScreenInfo *screen, FbdevScrPriv *scrpriv)
 | 
			
		|||
	screen->fb[0].redMask = Mask (priv->var.red.offset, priv->var.red.length);
 | 
			
		||||
	screen->fb[0].greenMask = Mask (priv->var.green.offset, priv->var.green.length);
 | 
			
		||||
	screen->fb[0].blueMask = Mask (priv->var.blue.offset, priv->var.blue.length);
 | 
			
		||||
#ifdef ITSY
 | 
			
		||||
	screen->fb[0].redMask = 0xf800;
 | 
			
		||||
	screen->fb[0].greenMask = 0x07e0;
 | 
			
		||||
	screen->fb[0].blueMask = 0x001f;
 | 
			
		||||
#ifdef FBDEV_KLUDGE_FORMAT
 | 
			
		||||
	/*
 | 
			
		||||
	 * This is a kludge so that Render will work -- fill in the gaps
 | 
			
		||||
	 * in the pixel
 | 
			
		||||
	 */
 | 
			
		||||
	screen->fb[0].redMask = fbdevMakeContig (screen->fb[0].redMask,
 | 
			
		||||
						 screen->fb[0].greenMask|
 | 
			
		||||
						 screen->fb[0].blueMask);
 | 
			
		||||
 | 
			
		||||
	screen->fb[0].greenMask = fbdevMakeContig (screen->fb[0].greenMask,
 | 
			
		||||
						   screen->fb[0].redMask|
 | 
			
		||||
						   screen->fb[0].blueMask);
 | 
			
		||||
 | 
			
		||||
	screen->fb[0].blueMask = fbdevMakeContig (screen->fb[0].blueMask,
 | 
			
		||||
						  screen->fb[0].redMask|
 | 
			
		||||
						  screen->fb[0].greenMask);
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
	allbits = screen->fb[0].redMask | screen->fb[0].greenMask | screen->fb[0].blueMask;
 | 
			
		||||
	depth = 32;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue