[Mono-winforms-list] Jonathan Gilbert's indexed colorsupport patch

kangaroo grompf at sublimeintervention.com
Mon Jun 6 19:31:51 EDT 2005


Still wrong same problem.

-kangaroo

On 2-Jun-05, at 7:57 PM, Jonathan Gilbert wrote:

> Okay, well, kangaroo sent me a screenshot of the erroneous display  
> in the
> FileDialog, and turns out it was not an issue of red & blue  
> channels being
> swapped by not paying attention to endianness. It *was* an endianness
> issue, but the effect was not what had been mentioned :-) What was  
> actually
> happening was that the blue channel was being forced to 0xFF.
>
> This screenshot shows a section of kangaroo's screenshot on the left,
> followed by Windows' own display, and then on the right, the top  
> half shows
> what the R, G, B channels are in kangaroo's screenshot, and the  
> bottom half
> shows what the R, G, B channels *should* be. Note that transparency  
> was
> still being taken into account, but wherever the pixel was opaque,  
> the blue
> channel was on solid!
>
> I tracked this down to the code that prepares Bitmap data with a  
> non-alpha
> PixelFormat for display with Cairo, which always pays attention to the
> alpha channel. It was doing something along these lines:
>
> int force_alpha = 0xFF000000;
>
> for (each pixel)
>   pixel |= force_alpha;
>
> I have changed the force_alpha assignment to a set_pixel_bgra,  
> which should
> fix the problem. I have no way to test whether it does in fact  
> solve this
> issue; the output looks exactly the same (it was correct before) on my
> little-endian system. I invite anyone with a big-endian system to  
> apply the
> latest version of the patch:
>
> http://israel.logiclrd.cx/patch/
>
> ..and try out the winforms/filedialog test case :-)
>
> Are there any other issues with my patch?
>
> Jonathan Gilbert
>
> _______________________________________________
> Mono-winforms-list maillist  -  Mono-winforms-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-winforms-list
>
>
> !DSPAM:429f9c8a242202012714467!
>
>



More information about the Mono-winforms-list mailing list