pngdriver.h 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. /*!
  2. \file lib/pngdriver/pngdriver.h
  3. \brief GRASS png display driver - header file
  4. (C) 2007-2014 by Glynn Clements and the GRASS Development Team
  5. This program is free software under the GNU General Public License
  6. (>=v2). Read the file COPYING that comes with GRASS for details.
  7. \author Glynn Clements
  8. */
  9. #ifndef __PNGDRIVER_H__
  10. #define __PNGDRIVER_H__
  11. #include <stdio.h>
  12. #ifdef __MINGW32__
  13. #include <windows.h>
  14. #endif
  15. #include <grass/config.h>
  16. #include "driver.h"
  17. #include "path.h"
  18. #define FILE_NAME "map.png"
  19. #define HEADER_SIZE 64
  20. struct png_state
  21. {
  22. char *file_name;
  23. int current_color;
  24. int true_color;
  25. int has_alpha;
  26. int mapped;
  27. #ifdef __MINGW32__
  28. HANDLE handle;
  29. #endif
  30. double clip_top, clip_bot, clip_left, clip_rite;
  31. int width, height;
  32. unsigned int *grid;
  33. unsigned char palette[256][4];
  34. unsigned int background;
  35. int modified;
  36. int linewidth;
  37. };
  38. extern struct png_state png;
  39. extern void read_image(void);
  40. extern void read_ppm(void);
  41. extern void read_pgm(void);
  42. extern void read_bmp(void);
  43. extern void read_png(void);
  44. extern void write_image(void);
  45. extern void write_ppm(void);
  46. extern void write_pgm(void);
  47. extern void write_bmp(void);
  48. extern void write_png(void);
  49. extern void png_init_color_table(void);
  50. extern unsigned int png_get_color(int, int, int, int);
  51. extern void png_get_pixel(unsigned int, int *, int *, int *, int *);
  52. extern void png_draw_line(double, double, double, double);
  53. extern void png_polygon(struct path *);
  54. extern const struct driver *PNG_Driver(void);
  55. extern void PNG_Box(double, double, double, double);
  56. extern void PNG_Client_Close(void);
  57. extern void PNG_Erase(void);
  58. extern void PNG_Graph_close(void);
  59. extern int PNG_Graph_set(void);
  60. extern const char *PNG_Graph_get_file(void);
  61. extern void PNG_Line_width(double);
  62. extern void PNG_begin_raster(int, int[2][2], double[2][2]);
  63. extern int PNG_raster(int, int, const unsigned char *,
  64. const unsigned char *, const unsigned char *,
  65. const unsigned char *);
  66. extern void PNG_Begin(void);
  67. extern void PNG_Move(double, double);
  68. extern void PNG_Cont(double, double);
  69. extern void PNG_Close(void);
  70. extern void PNG_Stroke(void);
  71. extern void PNG_Fill(void);
  72. extern void PNG_Point(double, double);
  73. extern void PNG_Set_window(double, double, double, double);
  74. extern void PNG_color_rgb(int, int, int);
  75. extern void PNG_draw_bitmap(int, int, int, const unsigned char *);
  76. #endif /* __PNGDRIVER_H__ */