home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / unix / volume18 / mtvraytrace / part01 / pic.c < prev    next >
Encoding:
C/C++ Source or Header  |  1989-03-26  |  1.6 KB  |  64 lines

  1. /***********************************************************************
  2.  * $Author: markv $
  3.  * $Revision: 1.2 $
  4.  * $Date: 88/10/04 14:30:44 $
  5.  * $Log:    pic.c,v $
  6.  * Revision 1.2  88/10/04  14:30:44  markv
  7.  * Changed pixel writing primitives to write individual pixels rather
  8.  * than scanlines.  Simplifies certain loops inside Screen.
  9.  * 
  10.  * Revision 1.1  88/09/11  11:00:41  markv
  11.  * Initial revision
  12.  * 
  13.  ***********************************************************************/
  14.  
  15. #include <stdio.h>
  16. #include "pic.h"
  17. #include "defs.h"
  18. #include "extern.h"
  19.  
  20. /*======================================================================*/
  21. /* PIC.C                                */
  22. /*                                                                      */
  23. /* Simple routines for outputting a pixel map....                       */
  24. /*                                                                      */
  25. /* Mark VandeWettering, markv@cs.uoregon.edu                            */
  26. /*======================================================================*/
  27.  
  28. Pic *
  29. PicOpen(filename,x,y)
  30.  char *filename ;
  31. {
  32.     Pic    *tmp ;
  33.  
  34.     tmp = (Pic *) malloc(sizeof (Pic)) ;
  35.     tmp -> filename = (char *) malloc (strlen(filename)+1) ;
  36.     strcpy(tmp->filename, filename);
  37.  
  38.     if (((tmp -> filep)=fopen(filename, "w"))==NULL) {
  39.         perror( filename );
  40.         exit( 1 );
  41.     }
  42.  
  43.     tmp -> x = x ; tmp -> y = y ;
  44.  
  45.     fprintf(tmp -> filep, "%d %d\n", x, y);
  46.  
  47.     return(tmp);
  48. }
  49.  
  50. PicWritePixel(pic, color)
  51.  Pic *pic ;
  52.  Color color ;
  53. {
  54.     fputc((unsigned char) (255.0 * color[0]), pic -> filep) ;
  55.     fputc((unsigned char) (255.0 * color[1]), pic -> filep) ;
  56.     fputc((unsigned char) (255.0 * color[2]), pic -> filep) ;
  57. }
  58.  
  59. PicClose(pic)
  60.  Pic *pic ;
  61. {
  62.     fclose(pic -> filep) ;
  63. }
  64.