This is setup.c in view mode; [Download] [Up]
/* * setup.c * * Copyright (C) 1989, 1991, Craig E. Kolb * All rights reserved. * * This software may be freely copied, modified, and redistributed * provided that this copyright notice is preserved on all copies. * * You may not distribute this software, in whole or in part, as part of * any commercial product without the express consent of the authors. * * There is no warranty or other guarantee of fitness of this software * for any purpose. It is provided solely "as is". * * $Id$ * * $Log$ */ #include "defaults.h" #include "rayshade.h" #include "libsurf/surface.h" #include "libsurf/atmosphere.h" #include "liblight/light.h" #include "liblight/infinite.h" #include "libobj/list.h" #include "options.h" #include "stats.h" #include "viewing.h" #include "picture.h" #ifdef MULTIMAX #include <parallel.h> #define SHARED_BYTES 23 /* 2^23 bytes of shared memory */ #endif extern ObjList *Defstack; static void SetupWorld(); /* * Set default parameters */ void setup() { extern SurfList *CurSurf; extern Medium TopMedium; extern void NoiseInit(); #ifdef MULTIMAX unsigned int bytes; /* * Initialize shared memory stuff. */ bytes = 1 << SHARED_BYTES; if (share_malloc_init(bytes) == -1) { RLerror(RL_PANIC, "Cannot share_malloc %d bytes.\n",bytes); } else fprintf(fstats,"Malloced %d bytes of shared memory.\n", bytes); #endif Camera.hfov = HFOV; Camera.vfov = UNSET; Camera.pos.x = EYEX; Camera.pos.y = EYEY; Camera.pos.z = EYEZ; Camera.lookp.x = LOOKX; Camera.lookp.y = LOOKY; Camera.lookp.z = LOOKZ; Camera.up.x = UPX; Camera.up.y = UPY; Camera.up.z = UPZ; Camera.focaldist = UNSET; Camera.aperture = 0.; Screen.xres = Screen.yres = UNSET; Screen.minx = Screen.miny = Screen.maxx = Screen.maxy = UNSET; Options.maxdepth = MAXDEPTH; Options.report_freq = REPORTFREQ; Options.pixel_div = UNSET; Options.jit_samples = UNSET; Options.contrast.r = UNSET; Options.cutoff = UNSET; Options.cache = TRUE; Options.shadowtransp = FALSE; Stats.fstats = stderr; Options.pictfile = stdout; #ifdef URT Options.alpha = TRUE; Options.exp_output = FALSE; #endif Options.gamma = GAMMA; Options.eyesep = UNSET; #ifdef LINDA Options.workers = WORKERS; #endif TopMedium.index = DEFAULT_INDEX; NoiseInit(); /* Initialize values for Noise() */ /* * Top of object definition stack points to the World object. * The World object is always a list. */ Defstack = ObjStackPush(ObjListCreate(), (ObjList *)NULL); Defstack->obj->name = strsave("World"); /* Initialize surface stack */ CurSurf = SurfPush((Surface *)NULL, (SurfList *)NULL); } /* * cleanup() * * Initialize options/variables not set on command line or in input file. * Perform sanity checks on widow dimension, maxdepth, etc. */ void cleanup() { extern Light *Lights; extern void OpenStatsFile(); extern FILE *yyin; yyin = (FILE *)NULL; /* mark that we're done reading input */ WorldSetup(); OpenStatsFile(); ViewingSetup(); if (!Options.jittered && Options.pixel_div == UNSET) Options.pixel_div = PIXEL_DIV; if (Options.jit_samples == UNSET) Options.jit_samples = DEFJITSAMPLES; if (!Options.jittered && Options.jit_samples < 0) { RLerror(RL_PANIC, "Samples value must be at least 1.\n"); } if (Options.cutoff == UNSET) Options.cutoff = DEFCUTOFF; /* * Set contrast. */ if (Options.contrast.r == UNSET) { Options.contrast.r = DEFREDCONT; Options.contrast.g = DEFGREENCONT; Options.contrast.b = DEFBLUECONT; } /* * Image gamma is inverse of display gamma. */ if (fabs(Options.gamma) > EPSILON) Options.gamma = 1. / Options.gamma; else Options.gamma = FAR_AWAY; if (Options.maxdepth < 0) Options.maxdepth = 0; /* * Set sampling options. */ SamplingSetOptions(Options.jit_samples); LightSetup(); }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.