[Mono-dev] Patch to RotateFlip: reworks existing code and adds 1- and 4-bit support

Jonathan Gilbert 2a5gjx302 at sneakemail.com
Sun Oct 23 19:23:34 EDT 2005


I've been working on RotateFlip for an application of mine, as it was
causing mono to crash. I eventually did locate the source of the crash, but
not before rewriting large parts of the RotateFlip code, which I found to
be somewhat splayed and repetitive, into one comprehensive loop that
handles all varieties of rotation & flipping. (Separate flipping functions
are still available.) I also added error handling, since rotation allocates
a new buffer for the result.

I also realized that the original code had been put together before my
large indexed Bitmap support patch; it could not possibly handle images
with more than one pixel per byte. Using the "pixel streams" which I also
added in the aforementioned patch, I put together a parallel function to
handle rotation/flipping of these types of Bitmaps. I have already
committed a test case for this, which requires the patch attached to this
e-mail to run, as 'winforms/rotate1bit4bit'. (Type 'make test' to build &
run the test.) Since support for 1- and 4-bit images could be seen as
conceptually separate from the fix for 8-bit and up Bitmaps crashing after
being rotated, I have also submitted separate test in a very similar vein
under simply 'winforms/rotate'.

I submit this patch for approval by anyone with interest in RotateFlip. It
is fully tested and known to work, but feel free to submit it to whatever
scrutiny you feel is necessary. I can commit it if nobody finds issue with
the patch :-)


Jonathan Gilbert
-------------- next part --------------
A non-text attachment was scrubbed...
Name: rotate1bit4bit.patch.gz
Type: application/octet-stream
Size: 4910 bytes
Desc: not available
Url : http://lists.ximian.com/pipermail/mono-devel-list/attachments/20051023/950790a3/attachment.obj 

More information about the Mono-devel-list mailing list