Контекст рисования NSView

Безопасно ли получить CGContext NSView из -drawRect: и использовать его для последующего рисования? В простом тесте вроде этого:

CGContextRef context = NULL;

- (void)drawRect:(NSRect)r
{
    if (!context)
        context = [[NSGraphicsContext currentContext] graphicsPort];
}

- (void)drawSomething
{
    CGContextSetRGBFillColor(context, 1, 0, 0, 1);
    CGContextFillRect(context, CGRectMake (0, 0, 100, 100));
    CGContextFlush(context);
}

все вроде бы работает, когда вызывается -drawSomething, но есть ли гарантия, что контекст не изменится?

Как вы можете видеть и догадаться, я пытаюсь обойти стандартный способ рисования с помощью -drawRect:. Он прекрасно работает для множества случаев, но более процедурный способ рисования облегчил бы жизнь в моем конкретном случае.

6
задан Richard J. Ross III 27 February 2012 в 23:05
поделиться