driver.h 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. #ifndef _DRIVER_H
  2. #define _DRIVER_H
  3. #include <grass/fontcap.h>
  4. extern int screen_width;
  5. extern int screen_height;
  6. extern double cur_x;
  7. extern double cur_y;
  8. extern double text_size_x;
  9. extern double text_size_y;
  10. extern double text_rotation;
  11. extern double text_sinrot;
  12. extern double text_cosrot;
  13. extern int matrix_valid;
  14. extern struct GFONT_CAP *ftcap;
  15. struct driver
  16. {
  17. char *name;
  18. void (*Box)(double, double, double, double);
  19. void (*Erase)(void);
  20. int (*Graph_set)(void);
  21. void (*Graph_close)(void);
  22. const char * (*Graph_get_file)(void);
  23. void (*Line_width)(double);
  24. void (*Set_window)(double, double, double, double);
  25. void (*Begin_raster)(int, int[2][2], double[2][2]);
  26. int (*Raster)(int, int,
  27. const unsigned char *,
  28. const unsigned char *,
  29. const unsigned char *,
  30. const unsigned char *);
  31. void (*End_raster)(void);
  32. void (*Begin)(void);
  33. void (*Move)(double, double);
  34. void (*Cont)(double, double);
  35. void (*Close)(void);
  36. void (*Stroke)(void);
  37. void (*Fill)(void);
  38. void (*Point)(double, double);
  39. void (*Color)(int, int, int);
  40. void (*Bitmap)(int, int, int, const unsigned char *);
  41. void (*Text)(const char *);
  42. void (*Text_box)(const char *, double *, double *, double *, double *);
  43. void (*Set_font)(const char *);
  44. void (*Font_list)(char ***, int *);
  45. void (*Font_info)(char ***, int *);
  46. };
  47. /* Library Functions */
  48. /* init.c */
  49. extern void LIB_init(const struct driver *drv);
  50. /* Commands */
  51. /* box.c */
  52. extern void COM_Box_abs(double, double, double, double);
  53. /* color.c */
  54. extern void COM_Color_RGB(unsigned char, unsigned char, unsigned char);
  55. extern void COM_Standard_color(int);
  56. /* erase.c */
  57. extern void COM_Erase(void);
  58. /* font.c */
  59. extern void COM_Set_font(const char *);
  60. extern void COM_Set_encoding(const char *);
  61. extern void COM_Font_list(char ***, int *);
  62. extern void COM_Font_info(char ***, int *);
  63. /* get_t_box.c */
  64. extern void COM_Get_text_box(const char *, double *, double *, double *, double *);
  65. /* graph.c */
  66. extern int COM_Graph_set(void);
  67. extern void COM_Graph_close(void);
  68. extern const char *COM_Graph_get_file(void);
  69. /* line_width.c */
  70. extern void COM_Line_width(double);
  71. /* move.c */
  72. extern void COM_Pos_abs(double, double);
  73. /* raster.c */
  74. extern void COM_begin_raster(int, int[2][2], double[2][2]);
  75. extern int COM_raster(int, int, const unsigned char *,
  76. const unsigned char *, const unsigned char *,
  77. const unsigned char *);
  78. extern void COM_end_raster(void);
  79. /* set_window.c */
  80. extern void COM_Set_window(double, double, double, double);
  81. extern void COM_Get_window(double *, double *, double *, double *);
  82. /* text.c */
  83. extern void COM_Text(const char *);
  84. /* text_size.c */
  85. extern void COM_Text_size(double, double);
  86. extern void COM_Text_rotation(double);
  87. /* Driver Operations */
  88. /* draw.c */
  89. extern void COM_Bitmap(int, int, int, const unsigned char *);
  90. extern void COM_Begin(void);
  91. extern void COM_Move(double, double);
  92. extern void COM_Cont(double, double);
  93. extern void COM_Close(void);
  94. extern void COM_Stroke(void);
  95. extern void COM_Fill(void);
  96. extern void COM_Point(double, double);
  97. #endif /* _DRIVER_H */