GRASS GIS 7 Programmer's Manual  7.8.2(2019)-exported
pngdriver.h
Go to the documentation of this file.
1 /*!
2  \file lib/pngdriver/pngdriver.h
3 
4  \brief GRASS png display driver - header file
5 
6  (C) 2007-2014 by Glynn Clements and the GRASS Development Team
7 
8  This program is free software under the GNU General Public License
9  (>=v2). Read the file COPYING that comes with GRASS for details.
10 
11  \author Glynn Clements
12 */
13 
14 #ifndef __PNGDRIVER_H__
15 #define __PNGDRIVER_H__
16 
17 #include <stdio.h>
18 
19 #ifdef __MINGW32__
20 #include <windows.h>
21 #endif
22 
23 #include <grass/config.h>
24 #include "driver.h"
25 #include "path.h"
26 
27 #define FILE_NAME "map.png"
28 
29 #define HEADER_SIZE 64
30 
31 struct png_state
32 {
33  char *file_name;
36  int has_alpha;
37  int mapped;
38 #ifdef __MINGW32__
39  HANDLE handle;
40 #endif
41 
43  int width, height;
44  unsigned int *grid;
45  unsigned char palette[256][4];
46  unsigned int background;
47  int modified;
48 
49  int linewidth;
50 };
51 
52 extern struct png_state png;
53 
54 extern void read_image(void);
55 extern void read_ppm(void);
56 extern void read_pgm(void);
57 extern void read_bmp(void);
58 extern void read_png(void);
59 
60 extern void write_image(void);
61 extern void write_ppm(void);
62 extern void write_pgm(void);
63 extern void write_bmp(void);
64 extern void write_png(void);
65 
66 extern void png_init_color_table(void);
67 extern unsigned int png_get_color(int, int, int, int);
68 extern void png_get_pixel(unsigned int, int *, int *, int *, int *);
69 extern void png_draw_line(double, double, double, double);
70 extern void png_polygon(struct path *);
71 
72 extern const struct driver *PNG_Driver(void);
73 
74 extern void PNG_Box(double, double, double, double);
75 extern void PNG_Client_Close(void);
76 extern void PNG_Erase(void);
77 extern void PNG_Graph_close(void);
78 extern int PNG_Graph_set(void);
79 extern const char *PNG_Graph_get_file(void);
80 extern void PNG_Line_width(double);
81 extern void PNG_begin_raster(int, int[2][2], double[2][2]);
82 extern int PNG_raster(int, int, const unsigned char *,
83  const unsigned char *, const unsigned char *,
84  const unsigned char *);
85 extern void PNG_Begin(void);
86 extern void PNG_Move(double, double);
87 extern void PNG_Cont(double, double);
88 extern void PNG_Close(void);
89 extern void PNG_Stroke(void);
90 extern void PNG_Fill(void);
91 extern void PNG_Point(double, double);
92 extern void PNG_Set_window(double, double, double, double);
93 extern void PNG_color_rgb(int, int, int);
94 extern void PNG_draw_bitmap(int, int, int, const unsigned char *);
95 
96 #endif /* __PNGDRIVER_H__ */
png_state::current_color
int current_color
Definition: pngdriver.h:34
write_bmp
void write_bmp(void)
Definition: pngdriver/write_bmp.c:63
PNG_Cont
void PNG_Cont(double, double)
Definition: pngdriver/draw.c:31
path.h
PNG_Point
void PNG_Point(double, double)
Draw point.
Definition: point.c:20
png_get_pixel
void png_get_pixel(unsigned int, int *, int *, int *, int *)
Definition: color_table.c:112
png_state::clip_left
double clip_left
Definition: pngdriver.h:42
png_state::clip_top
double clip_top
Definition: pngdriver.h:42
PNG_Graph_get_file
const char * PNG_Graph_get_file(void)
Get render file.
Definition: pngdriver/graph_set.c:180
png_state::width
int width
Definition: pngdriver.h:43
png_state::palette
unsigned char palette[256][4]
Definition: pngdriver.h:45
png_init_color_table
void png_init_color_table(void)
Definition: color_table.c:73
driver.h
PNG_Graph_set
int PNG_Graph_set(void)
Start up graphics processing.
Definition: pngdriver/graph_set.c:82
PNG_Erase
void PNG_Erase(void)
Erase screen.
Definition: pngdriver/erase.c:20
path
Definition: path.h:16
read_image
void read_image(void)
Definition: pngdriver/read.c:22
read_png
void read_png(void)
Definition: read_png.c:45
PNG_Move
void PNG_Move(double, double)
Definition: pngdriver/draw.c:26
PNG_Close
void PNG_Close(void)
Definition: pngdriver/draw.c:36
png_state::clip_bot
double clip_bot
Definition: pngdriver.h:42
PNG_Stroke
void PNG_Stroke(void)
Definition: pngdriver/draw.c:41
PNG_Driver
const struct driver * PNG_Driver(void)
Initialize display driver.
Definition: pngdriver/driver.c:21
png_state::modified
int modified
Definition: pngdriver.h:47
png_state::linewidth
int linewidth
Definition: pngdriver.h:49
PNG_Fill
void PNG_Fill(void)
Definition: pngdriver/draw.c:46
PNG_Begin
void PNG_Begin(void)
Definition: pngdriver/draw.c:21
png_polygon
void png_polygon(struct path *)
Draw polygon.
Definition: pngdriver/polygon.c:138
PNG_raster
int PNG_raster(int, int, const unsigned char *, const unsigned char *, const unsigned char *, const unsigned char *)
Draw raster row.
Definition: pngdriver/raster.c:111
PNG_draw_bitmap
void PNG_draw_bitmap(int, int, int, const unsigned char *)
Draw bitmap.
Definition: pngdriver/draw_bitmap.c:33
png_state::height
int height
Definition: pngdriver.h:43
png_state::clip_rite
double clip_rite
Definition: pngdriver.h:42
PNG_Line_width
void PNG_Line_width(double)
Set line width.
Definition: pngdriver/line_width.c:23
png_state::mapped
int mapped
Definition: pngdriver.h:37
PNG_Set_window
void PNG_Set_window(double, double, double, double)
Set window.
Definition: pngdriver/set_window.c:23
png_state::has_alpha
int has_alpha
Definition: pngdriver.h:36
png
struct png_state png
Definition: pngdriver/graph_set.c:32
png_state::file_name
char * file_name
Definition: pngdriver.h:33
png_state::grid
unsigned int * grid
Definition: pngdriver.h:44
driver
Definition: driver.h:22
read_bmp
void read_bmp(void)
Definition: pngdriver/read_bmp.c:79
write_image
void write_image(void)
Definition: pngdriver/write.c:22
PNG_Box
void PNG_Box(double, double, double, double)
Draw a (filled) rectangle.
Definition: pngdriver/box.c:24
png_state::true_color
int true_color
Definition: pngdriver.h:35
png_state
Definition: pngdriver.h:31
PNG_color_rgb
void PNG_color_rgb(int, int, int)
Identify a color.
Definition: pngdriver/color.c:32
PNG_Client_Close
void PNG_Client_Close(void)
write_ppm
void write_ppm(void)
Definition: pngdriver/write_ppm.c:21
read_pgm
void read_pgm(void)
Definition: pngdriver/read_ppm.c:69
write_pgm
void write_pgm(void)
Definition: pngdriver/write_ppm.c:49
png_get_color
unsigned int png_get_color(int, int, int, int)
Definition: color_table.c:120
png_draw_line
void png_draw_line(double, double, double, double)
Definition: draw_line.c:65
PNG_begin_raster
void PNG_begin_raster(int, int[2][2], double[2][2])
Start drawing raster.
Definition: pngdriver/raster.c:80
read_ppm
void read_ppm(void)
Definition: pngdriver/read_ppm.c:22
png_state::background
unsigned int background
Definition: pngdriver.h:46
PNG_Graph_close
void PNG_Graph_close(void)
Close down the graphics processing. This gets called only at driver termination time.
Definition: pngdriver/graph_close.c:50
write_png
void write_png(void)
Definition: write_png.c:56