#include #include #include #include #include #include #include #include #include #define OUTWIDTH 320 #define OUTHEIGHT 240 int main( int argc, char **argv ) { Scene scene; Pixel *image = new Pixel[ OUTWIDTH * OUTHEIGHT ]; unsigned char *output = new unsigned char[ OUTWIDTH * OUTHEIGHT * 3 ]; int fd; if( !image || !output ) { fprintf( stderr, "Not enough memory for image.\n" ); return 1; } fd = open( argv[ 1 ], O_WRONLY|O_CREAT, S_IREAD|S_IWRITE|S_IRGRP|S_IROTH ); if( fd < 0 ) { fprintf( stderr, "Can't open %s.\n", argv[ 1 ] ); return 1; } scene.adaptiveSample( image, OUTWIDTH, OUTHEIGHT, 2 ); //scene.superSample( image, OUTWIDTH, OUTHEIGHT, 2 ); // scene.pointSample( image, OUTWIDTH, OUTHEIGHT ); outputRgb24Scanline( output, image, OUTWIDTH * OUTHEIGHT ); write( fd, output, OUTWIDTH * OUTHEIGHT * 3 ); close( fd ); delete[] image; delete[] output; return 0; }