On 16 Aug 2012, at 04:02, Charlie Dickman <3tothe...@comcast.net> wrote:

> Here's the whole method... it is being called from within a view's drawRect 
> method...
> 
> - (void) showDiceAtX: (float) x Y: (float) y {
>       NSRect imageRect1, imageRect2;
>       NSImage *die1 = nil, *die2 = nil;
>       iDie = iRand(1, 6);
>       switch (iDie) {
>               case 1:
>                       die1 = [NSImage imageNamed: @"1 Die"];
>                       break;
>               case 2:
>                       die1 = [NSImage imageNamed: @"2 Die"];
>                       break;
>               case 3:
>                       die1 = [NSImage imageNamed: @"3 Die"];
>                       break;
>               case 4:
>                       die1 = [NSImage imageNamed: @"4 Die"];
>                       break;
>               case 5:
>                       die1 = [NSImage imageNamed: @"5 Die"];
>                       break;
>               case 6:
>                       die1 = [NSImage imageNamed: @"6 Die"];
>       }
>       jDie = iRand(1, 6);
>       switch (jDie) {
>               case 1:
>                       die2 = [NSImage imageNamed: @"1 Die"];
>                       break;
>               case 2:
>                       die2 = [NSImage imageNamed: @"2 Die"];
>                       break;
>               case 3:
>                       die2 = [NSImage imageNamed: @"3 Die"];
>                       break;
>               case 4:
>                       die2 = [NSImage imageNamed: @"4 Die"];
>                       break;
>               case 5:
>                       die2 = [NSImage imageNamed: @"5 Die"];
>                       break;
>               case 6:
>                       die2 = [NSImage imageNamed: @"6 Die"];
>       }
>       imageRect1.origin = imageRect2.origin = NSZeroPoint;
>       imageRect1.size = [die1 size];
>       imageRect2.size = [die2 size];
>       /*
>        * NSRect NSMakeRect(float x, float y, float w, float h)
>        *
>        * Creates an NSRect having the specified origin of [x, y] and size of 
> [w, h]
>        */
>       iDieDrawRect = NSMakeRect(x - imageRect1.size.width - 2, y, 
> imageRect1.size.width, imageRect1.size.height);
>       jDieDrawRect = NSMakeRect(x + 2, y, imageRect2.size.width, 
> imageRect2.size.height);
>       
>       while (![self lockFocusIfCanDraw]) RELQ(.1);
>       [[NSColor whiteColor] set];
>       [die1 drawInRect: iDieDrawRect
>                         fromRect: imageRect1
>                        operation: NSCompositeSourceOver
>                         fraction: 1.0];
>       [die2 drawInRect: jDieDrawRect
>                         fromRect: imageRect2
>                        operation: NSCompositeSourceOver
>                         fraction: 1.0];
>       [self unlockFocus];
>       [[self window] flushWindow];
> }

This code seems bonkers to me. If this code really is being called during 
-drawRect: then there is no need to lock focus on the view; the drawing system 
has already done that for you. Likewise, you shouldn't need to flush the window.


_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to