color problem for big endian fixes ??

Bernd Roesch nospamname at gmx.de
Wed Jun 17 20:21:04 BST 2009


> 
> I think the situation is:
> 
> 
> On little endian systems the colour format is:
> 
>  + ABGR for everything.
> 
> On big endian systems the colour format is:
> 
>  + ABGR for everything that is not a bitmap, and
>  + RGBA for bitmaps.

yes
I verify with debugger and add a stop when the opaque blit on the startpage
is
done(blue netsurf image is blit).this is 
the colour value i get.alpha is on right side but the code assume alpha
value on left side.

0x3F6EFFFF

now when i set the stop in colour_to_pixel func  and modify for test this

#define FB_FRAME_COLOUR 0xFFDCDDDE 

i see in debugger register this values

0xFFDCDDDE 

for fill etc.all is same in 16 and 32 bit

the question is only if this much work to change netsurf that both
pixelorders are same ?.I look in png code, and i see no lines, that copy
data per byte.and when data are copy by pixelsize i think endian problems
cant happen

SDL have funcs sdl_maprgba to get pixel, and input of r,g,b,a value, but
that is slower.

> 
> Currently the framebuffer front end treats colours originating from
> bitmaps the same as it treats colours coming from everything else. This is
> fine on LE, but breaks on BE.
> 
> We could change the core to make the colour format more consistent, or we
> would change the framebuffer front end to handle colour conversion for
> colours coming from bitmaps differently. I'd prefer to do the former.
> 
> Also the framebuffer front end probably needs to cope with the actual
> framebuffer having any particular component order.
> 
Regards




More information about the netsurf-dev mailing list