This is DisplayManager.m in view mode; [Download] [Up]
#import "DisplayManager.h" #import "CacheManager.h" #import "Thinker.h" #import "xoxDefs.h" @implementation DisplayManager - init { [super init]; eraseList = [[Storage allocFromZone:[self zone]] initCount:8 elementSize: sizeof(NXRect) description: @encode(NXRect)]; whiteList = [[Storage allocFromZone:[self zone]] initCount:8 elementSize: sizeof(NXRect) description: @encode(NXRect)]; drawList = [[List allocFromZone:[self zone]] init]; return self; } - oneStep { if ([eraseList count]) { PSsetgray(NX_BLACK); NXRectFillList(eraseList->dataPtr, eraseList->numElements); [eraseList empty]; } [drawList performInOrder:@selector(draw)]; [drawList empty]; if ([whiteList count]) { PSsetgray(NX_WHITE); NXRectFillList(whiteList->dataPtr, whiteList->numElements); [whiteList empty]; } return self; } - erase:(NXRect *)r { // it looks best if we erase by drawing from the cache [cacheMgr displayRect:r]; return self; } - displayRect:(NXRect *)r { // it looks best if we erase by drawing from the cache [cacheMgr displayRect:r]; return self; } - drawWhiteRect:(NXRect *)r { [whiteList addElement:r]; return self; } - draw:sender; { [drawList addObject:sender]; return self; } @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.