This is WozView.m in view mode; [Download] [Up]
/* Generated by Interface Builder */ #import "WozView.h" #import "hgrconv.h" #import <appkit/graphics.h> #import <appkit/NXBitmapImageRep.h> #import <appkit/tiff.h> #import <string.h> @implementation WozView - initFrame:(const NXRect *) frameRect { [super initFrame:frameRect]; memset (fbuf, 0, sizeof fbuf); /* Clear to black. */ return self; } - drawSelf:(const NXRect *) rects: (int) rectCount { NXImageBitmap (&bounds, 280, 192, 2, 1, NX_MESHED, NX_MONOTONICMASK, fbuf, NULL, NULL, NULL, NULL); return self; } - drawChangedAreas:(const unsigned char *) a2_screen shadow:(unsigned char *) a2_shadow { unsigned char changed[192 / 16]; NXRect r = bounds; int i, start, height; [self lockFocus]; /* Find out what areas changed, if any. */ if (find_changed_areas (a2_screen, a2_shadow, changed)) { for (i = 0; i < sizeof changed; i++) if (changed[i]) { start = i * 16; for (i++; i < sizeof changed && changed[i]; i++); height = i * 16 - start; r.origin.y = (192 - (start + height)) * 2.0; r.size.height = height * 2.0; /* * 2.0 since we are scaled. */ apple_to_next (a2_screen, fbuf, start, height); NXImageBitmap (&r, 288, height, 2, 1, NX_MESHED, NX_MONOTONICMASK, &fbuf[start][0], NULL, NULL, NULL, NULL); } copy_changed_areas (a2_screen, a2_shadow, changed); } [self unlockFocus]; return self; } - (unsigned char *) data { return &fbuf[0][0]; } - appDidInit:(id) sender { char *foo = "a2"; extern id screen_wozview; extern unsigned char *wozview_buf; screen_wozview = self; wozview_buf = &fbuf[0][0]; simulator_main (1, &foo); return self; } @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.