Fixed many drawing issues (many ones being related to the flipping).

See bug report #27782

In particular, fixed -[NSImage drawXXX] and -[NSImage composite/dissolveXXX] 
methods to work exactly as Cocoa when the Cairo backend is used.
Added a new draw operator (in addition to composite) to the backend. Cairo is 
the only backend that implements it for now.
Eliminated as many flipping checks as possible.

Warning: Untested with the winlib backend. 
You must update, recompile and install both Back and Gui.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@30523 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
qmathe 2010-06-01 11:04:36 +00:00
parent 67adeb4133
commit 0eee79f7b5
9 changed files with 274 additions and 28 deletions

View file

@ -3002,9 +3002,16 @@ in the main thread.
destPoint = aRect.origin;
destPoint.x += delta.width;
destPoint.y += delta.height;
if ([self isFlipped])
{
destPoint.y += aRect.size.height;
}
//NSLog(@"destPoint %@ in %@", NSStringFromPoint(destPoint), NSStringFromRect(_bounds));
[self lockFocus];
NSCopyBits(0, aRect, destPoint);
//NSCopyBits(0, aRect, destPoint);
NSCopyBits([[self window] gState], [self convertRect: aRect toView: nil], destPoint);
[self unlockFocus];
}