Changeset 9138


Ignore:
Timestamp:
Sep 17, 2009, 11:33:50 PM (13 years ago)
Author:
livings124
Message:

use NSRectFillListWithColors on the pieces grid

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/macosx/PiecesView.m

    r9134 r9138  
    133133    NSImage * image = [self image];
    134134   
    135     NSInteger index = -1;
    136     NSRect rect = NSMakeRect(0, 0, fWidth, fWidth);
    137     BOOL change = NO;
     135    NSRect fillRects[fNumPieces];
     136    NSColor * fillColors[fNumPieces];
     137   
     138    NSInteger index = -1, usedIndex = 0;
    138139   
    139140    for (NSInteger i = 0; i < fAcross; i++)
     
    149150            NSColor * pieceColor = nil;
    150151           
    151             if (showAvailablity ? pieces[index] == -1 : piecesPercent[index] == 1.0f)
     152            if (showAvailablity ? pieces[index] == -1 : piecesPercent[index] == 1.0)
    152153            {
    153154                if (first || fPieces[index] != PIECE_FINISHED)
     
    165166                }
    166167            }
    167             else if (showAvailablity ? pieces[index] == 0 : piecesPercent[index] == 0.0f)
     168            else if (showAvailablity ? pieces[index] == 0 : piecesPercent[index] == 0.0)
    168169            {
    169170                if (first || fPieces[index] != PIECE_NONE)
     
    192193            if (pieceColor)
    193194            {
    194                 //avoid unneeded memory usage by only locking focus if drawing will occur
    195                 if (!change)
    196                 {
    197                     change = YES;
    198                     [image lockFocus];
    199                 }
     195                fillRects[usedIndex] = NSMakeRect(j * (fWidth + BETWEEN) + BETWEEN + fExtraBorder,
     196                                                    [image size].width - (i + 1) * (fWidth + BETWEEN) - fExtraBorder,
     197                                                    fWidth, fWidth);
     198                fillColors[usedIndex] = pieceColor;
    200199               
    201                 rect.origin = NSMakePoint(j * (fWidth + BETWEEN) + BETWEEN + fExtraBorder,
    202                                         [image size].width - (i + 1) * (fWidth + BETWEEN) - fExtraBorder);
    203                
    204                 #warning use NSRectFillListWithColors
    205                 [pieceColor set];
    206                 NSRectFill(rect);
     200                usedIndex++;
    207201            }
    208202        }
    209203   
    210     if (change)
     204    if (usedIndex > 0)
    211205    {
     206        [image lockFocus];
     207        NSRectFillListWithColors(fillRects, fillColors, usedIndex);
    212208        [image unlockFocus];
    213209        [self setNeedsDisplay];
Note: See TracChangeset for help on using the changeset viewer.