This is wedge.c in view mode; [Download] [Up]
/*
* wedge.c - Step wedge for the QCR-Z
*
* Author: John W. Peterson
* Computer Science Dept.
* University of Utah
* Date: Thu Jan 14 1988
* Copyright (c) 1988, University of Utah
*/
#include <stdio.h>
#include "rle.h"
#include "qcr.h"
#define IMG_WIDTH 2048
#define IMG_HEIGHT 1536
/*
* The "+1" is so that we get the full dynamic range, 0..255. If we want
* 16 levels, this requires 17 steps to include the zero and full intensity.
*/
#define STEPS (16+1)
rle_pixel * raster;
static char * color_names[3] = { "red", "green", "blue" };
main()
{
register rle_pixel * rptr;
register int i,j,color, val;
raster = (rle_pixel *) malloc( (STEPS * 2 + 2) * IMG_HEIGHT /*/4*/ );
rptr = raster;
init_qcr( 1 );
for (color = 0; color < 3; color++)
for (j = 0; j < IMG_HEIGHT/4; j++)
{
for (i = 0; i < STEPS; i++)
{
*rptr = IMG_WIDTH / STEPS;
val = i * (256 / (STEPS-1));
if (val >= 256)
{
val = 255;
/* Add round-off to fill out scanline */
*rptr += IMG_WIDTH - (STEPS * (IMG_WIDTH / STEPS));
}
rptr++;
*rptr++ = val;
}
}
/* Do first three color bars. */
for (color = 0; color < 3; color++)
{
set_up_qcr( IMG_WIDTH, IMG_HEIGHT, IMG_HEIGHT/4,
color * (IMG_HEIGHT/4) );
fprintf(stderr, "Sending color %s...\n", color_names[color] );
write_qcr_cmd( RED_RLE + color );
if (write_data( raster, (STEPS * 2) * (IMG_HEIGHT / 4) ) <= 0)
perror("wedge: error sending data");
qcr_wait_srq();
fprintf(stderr, "...sent\n\n");
}
color = 3;
set_up_qcr( IMG_WIDTH, IMG_HEIGHT, IMG_HEIGHT/4,
color * (IMG_HEIGHT/4) );
fprintf(stderr, "Sending three passes (for gray)...\n");
write_qcr_cmd( THREE_PASS_RLE );
if (write_data( raster, ((STEPS * 2) * (IMG_HEIGHT / 4)) * 3 ) <= 0)
perror("wedge: error sending data");
qcr_wait_srq();
fprintf(stderr, "...sent\n\n");
}
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.