Hi, 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 :-) Thanks, Jonathan Gilbert
rotate1bit4bit.patch.gz
Description: Binary data
_______________________________________________ Mono-winforms-list maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-winforms-list
