* Fwd: Re: [Question] Colour management
@ 2004-07-31 22:50 Alexander Kern
0 siblings, 0 replies; only message in thread
From: Alexander Kern @ 2004-07-31 22:50 UTC (permalink / raw)
To: kraxel; +Cc: Ville Syrjälä, fbdev
[-- Attachment #1: Type: text/plain, Size: 1321 bytes --]
Hello,
here is a very good patch, that correct fbi with 16 bpp(565) mode.
Tested on Mach64. Please commit it.
Regards
Alex Kern
---------- Weitergeleitete Nachricht ----------
Subject: [Linux-fbdev-devel] Re: [Question] Colour management
Date: Sonntag, 1. August 2004 00:10
From: Ville Syrjälä <syrjala@sci.fi>
To: linux-fbdev-devel@lists.sourceforge.net
On Fri, Jul 30, 2004 at 08:12:36PM +0200, Alexander Kern wrote:
> Hallo Tony,
>
> can you explain the deep mining of fb_setcolreg. Background, I observe
> wrong palette using in 15 and 16 bpp modes, but can not understand, what is
> the right approach. In both cases from penguin logo I can see only contour
> in honey yellow and blue vertical string jsimmons, pretty scury ;-) The
> rest is black! The simple text or ncurses applications have always right
> colours. Additionally and only by 16bpp fbi shows blurry images.
I just had a look at the fbi code and it's wrong. It was initializing the
clut to 555. The attached patch fixes the problem.
I think the boot logo code is broken. No, I haven't actually looked at it
but everything else works... Or does it work on some other directcolor hw?
--
Ville Syrjälä
syrjala@sci.fi
http://www.sci.fi/~syrjala/
-------------------------------------------------------
[-- Attachment #2: fbi_directcolor_565_fix.patch --]
[-- Type: text/plain, Size: 1345 bytes --]
--- fbi-1.31/fbi.c 2004-02-22 14:24:29.000000000 +0200
+++ fbi-1.31/fbi.c 2004-08-01 00:57:45.375251160 +0300
@@ -760,12 +760,19 @@
}
static void
-linear_palette(int bit)
+linear_palette(int r, int g, int b)
{
- int i, size = 256 >> (8 - bit);
-
+ int i, size;
+
+ size = 256 >> (8 - r);
+ for (i = 0; i < size; i++)
+ red[i] = calc_gamma(i,size);
+ size = 256 >> (8 - g);
for (i = 0; i < size; i++)
- red[i] = green[i] = blue[i] = calc_gamma(i,size);
+ green[i] = calc_gamma(i,size);
+ size = 256 >> (8 - b);
+ for (i = 0; i < size; i++)
+ blue[i] = calc_gamma(i,size);
}
static void
@@ -1391,21 +1398,23 @@
break;
case 15:
case 16:
- if (fb_fix.visual == FB_VISUAL_DIRECTCOLOR)
- linear_palette(5);
if (fb_var.green.length == 5) {
+ if (fb_fix.visual == FB_VISUAL_DIRECTCOLOR)
+ linear_palette(5,5,5);
lut_init(15);
} else {
+ if (fb_fix.visual == FB_VISUAL_DIRECTCOLOR)
+ linear_palette(5,6,5);
lut_init(16);
}
break;
case 24:
if (fb_fix.visual == FB_VISUAL_DIRECTCOLOR)
- linear_palette(8);
+ linear_palette(8,8,8);
break;
case 32:
if (fb_fix.visual == FB_VISUAL_DIRECTCOLOR)
- linear_palette(8);
+ linear_palette(8,8,8);
lut_init(24);
break;
default:
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2004-07-31 22:50 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-07-31 22:50 Fwd: Re: [Question] Colour management Alexander Kern
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).