GRASS Programmer's Manual
6.4.2(2012)
|
00001 #ifndef __CAIRODRIVER_H__ 00002 #define __CAIRODRIVER_H__ 00003 00004 #include <stdio.h> 00005 #include <stdlib.h> 00006 #include <string.h> 00007 00008 #include <cairo.h> 00009 00010 #include <grass/config.h> 00011 #include <grass/gis.h> 00012 00013 #include "driver.h" 00014 00015 #define DEFAULT_FILE_NAME "map.png" 00016 00017 #define HEADER_SIZE 64 00018 00019 /* Scale for converting colors from [0..255] to cairo's [0.0..1.0] */ 00020 #define COLORSCALE (1.0/255.0) 00021 #define CAIROCOLOR(a) (((double)(a))*COLORSCALE) 00022 00023 /* File types */ 00024 #define FTYPE_UNKNOWN 0 00025 #define FTYPE_PPM 1 00026 #define FTYPE_BMP 2 00027 #define FTYPE_PNG 3 00028 #define FTYPE_PDF 4 00029 #define FTYPE_PS 5 00030 #define FTYPE_SVG 6 00031 #define FTYPE_X11 7 00032 00033 extern cairo_surface_t *surface; 00034 extern cairo_t *cairo; 00035 00036 extern char *file_name; 00037 extern int file_type; 00038 extern int width, height, stride; 00039 extern unsigned char *grid; 00040 extern int clip_left, clip_right, clip_top, clip_bottom; 00041 extern int auto_write; 00042 extern double bgcolor_r, bgcolor_g, bgcolor_b, bgcolor_a; 00043 extern int modified; 00044 extern int auto_write; 00045 extern int mapped; 00046 00047 extern const struct driver *Cairo_Driver(void); 00048 00049 extern void Cairo_Client_Close(void); 00050 extern int Cairo_Graph_set(int, char **); 00051 extern void Cairo_Graph_close(void); 00052 extern void Cairo_Box_abs(int, int, int, int); 00053 extern void Cairo_Set_window(int, int, int, int); 00054 extern void Cairo_draw_line(int, int, int, int); 00055 extern void Cairo_draw_bitmap(int, int, int, const unsigned char *); 00056 extern void Cairo_draw_point(int, int); 00057 extern void Cairo_color(int); 00058 extern int Cairo_lookup_color(int, int, int); 00059 extern void Cairo_Erase(void); 00060 extern void Cairo_begin_scaled_raster(int, int[2][2], int[2][2]); 00061 extern int Cairo_scaled_raster(int, int, 00062 const unsigned char *, const unsigned char *, 00063 const unsigned char *, const unsigned char *); 00064 extern void Cairo_end_scaled_raster(void); 00065 extern void Cairo_Line_width(int); 00066 extern void Cairo_Polygon_abs(const int *, const int *, int); 00067 extern void Cairo_Polyline_abs(const int *, const int *, int); 00068 extern void Cairo_Respond(void); 00069 00070 /* read.c */ 00071 extern void read_image(void); 00072 extern void read_ppm(void); 00073 extern void read_bmp(void); 00074 00075 /* write.c */ 00076 extern void write_image(void); 00077 extern void write_ppm(void); 00078 extern void write_bmp(void); 00079 00080 #endif /* __CAIRODRIVER_H__ */