URL: <http://savannah.gnu.org/bugs/?34742>
Summary: NSAffineTransform ignored in most cases Project: GNUstep Submitted by: julian_ Submitted on: Do 03 Nov 2011 22:30:31 GMT Category: Gui/AppKit Severity: 3 - Normal Item Group: Bug Status: None Privacy: Public Assigned to: None Open/Closed: Open Discussion Lock: Any _______________________________________________________ Details: i am using NSAffineTransform in two cases in my application and in both cases gnustep completely ignores it. first case - drawing into a NSImage flipped - since it doesn't work on gnustep i must produce the flipping through coordinate modification: NSImage *theImage = [[NSImage alloc] initWithSize:NSMakeSize(size, size)]; [theImage lockFocus]; NSAffineTransform *t = [NSAffineTransform transform]; [t scaleXBy:1.0 yBy:-1.0]; [t translateXBy:0.0 yBy:-size]; [t concat]; [[NSColor blackColor] setStroke]; NSBezierPath* aPath = [NSBezierPath bezierPath]; [aPath setLineJoinStyle:NSRoundLineJoinStyle]; [aPath setLineWidth:size / 25.0f]; [aPath moveToPoint:NSMakePoint(10, 10)]; [aPath lineToPoint:NSMakePoint(20, 20)]; [aPath lineToPoint:NSMakePoint(10, 30)]; [aPath stroke]; [theImage unlockFocus]; second case - getting the flipped contents of a NSImage - since the flipping doesn't work i must copy the data row by row in reverse instead: NSImage *theImg = [[NSImage alloc] initWithContentsOfURL:_url]; NSBitmapImageRep *bitmap = [NSBitmapImageRep alloc]; NSImageRep *rep = [theImg bestRepresentationForDevice: nil]; [theImg lockFocus]; NSAffineTransform *t = [NSAffineTransform transform]; [t scaleXBy:1.0 yBy:-1.0]; [t translateXBy:0.0 yBy:-imgSize.height]; [t concat]; [rep drawInRect:NSMakeRect(0,0,[theImg size].width, [theImg size].height)]; [bitmap initWithFocusedViewRect:NSMakeRect(0.0, 0.0, [theImg size].width, [theImg size].height)]; [theImg unlockFocus]; int bpp = [bitmap bitsPerPixel] / 8; int bpp = 4; const int rowsize = [theImg size].width * bpp; _data = (char *)calloc( rowsize * [theImg size].height, 1); memcpy(_data, [bitmap bitmapData], [theImg size].width * bpp * [theImg size].height); _______________________________________________________ Reply to this item at: <http://savannah.gnu.org/bugs/?34742> _______________________________________________ Nachricht geschickt von/durch Savannah http://savannah.gnu.org/ _______________________________________________ Bug-gnustep mailing list Bug-gnustep@gnu.org https://lists.gnu.org/mailman/listinfo/bug-gnustep