GRASS Programmer's Manual  6.4.2(2012)
cairodriver.h
Go to the documentation of this file.
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__ */
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines