home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 22 gnu / 22-gnu.zip / openglso.zip / pic.h < prev    next >
C/C++ Source or Header  |  2000-02-16  |  2KB  |  64 lines

  1. /* ===========================================================================
  2.  
  3.   Name:    pngpic.h
  4.                                   
  5.   Purpose:                             
  6.     Type declarations and associated macros for use
  7.     with creatin PNG picture files (PNG files).
  8.  
  9. =========================================================================== */
  10. /* Include Files */
  11.  
  12. #include <png.h>
  13.  
  14. /* ======================================================================== */
  15. /* Data Structures */
  16.  
  17. typedef unsigned char   boolean;
  18.  
  19. #ifndef FALSE
  20. #  define FALSE   ((boolean) 0)
  21. #  define TRUE    ((boolean) 1)
  22. #endif
  23.  
  24. typedef png_byte  Pic_byte;
  25. typedef struct Pic_Pixel
  26. {
  27.   Pic_byte   r, g, b;
  28. } Pic_Pixel;
  29.  
  30. typedef struct
  31. {
  32.   FILE*     fptr;
  33.   char*     filename;
  34.   
  35.   short     width;
  36.   short     height;
  37.   short     scanline;
  38.   
  39.   png_structp png_ptr;
  40.   png_infop info_ptr;
  41.   
  42.   Pic_byte* tempLine;
  43. } Pic;
  44.  
  45. /* ======================================================================== */
  46. /* Memory allocation and other macros */
  47.  
  48. #define StrAlloc(n)    ((char *)malloc((unsigned)(n)))
  49. #define PixelAlloc(n)  ((Pic_Pixel *)malloc(((unsigned)(n))*sizeof(Pic_Pixel)))
  50. #define PixelFree(p)   ((void) free((char *)(p)))
  51.  
  52. /* ======================================================================== */
  53. /* General routines */
  54.  
  55. extern    Pic*    PicOpen(const char* filename, short width, short height );
  56. extern    boolean PicWriteLine(Pic* pngFile, Pic_Pixel* pixels);
  57. extern  void    PicClose(Pic* pngFile);
  58.  
  59. /* ======================================================================== */
  60.  
  61.  
  62.  
  63.  
  64.