GRASS GIS 7 Programmer's Manual  7.8.3(2020)-exported
pngdriver/driver.c
Go to the documentation of this file.
1 /*!
2  \file lib/pngdriver/driver.c
3 
4  \brief GRASS png display driver - driver initialization
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 #include "pngdriver.h"
15 
16 /*!
17  \brief Initialize display driver
18 
19  \return pointer driver structure
20 */
21 const struct driver *PNG_Driver(void)
22 {
23  static struct driver drv;
24  static int initialized;
25 
26  if (initialized)
27  return &drv;
28 
29  drv.name = "png";
30  drv.Box = PNG_Box;
31  drv.Erase = PNG_Erase;
38  drv.Raster = PNG_raster;
39  drv.End_raster = NULL;
40  drv.Begin = PNG_Begin;
41  drv.Move = PNG_Move;
42  drv.Cont = PNG_Cont;
43  drv.Close = PNG_Close;
44  drv.Stroke = PNG_Stroke;
45  drv.Fill = PNG_Fill;
46  drv.Point = PNG_Point;
47  drv.Color = PNG_color_rgb;
48  drv.Bitmap = PNG_draw_bitmap;
49  drv.Text = NULL;
50  drv.Text_box = NULL;
51  drv.Set_font = NULL;
52  drv.Font_list = NULL;
53  drv.Font_info = NULL;
54 
55  initialized = 1;
56 
57  return &drv;
58 }
driver::Text
void(* Text)(const char *)
Definition: driver.h:50
driver::Line_width
void(* Line_width)(double)
Definition: driver.h:31
PNG_Cont
void PNG_Cont(double x, double y)
Definition: pngdriver/draw.c:31
PNG_Point
void PNG_Point(double, double)
Draw point.
Definition: point.c:20
driver::Box
void(* Box)(double, double, double, double)
Definition: driver.h:26
driver::Raster
int(* Raster)(int, int, const unsigned char *, const unsigned char *, const unsigned char *, const unsigned char *)
Definition: driver.h:34
driver::Bitmap
void(* Bitmap)(int, int, int, const unsigned char *)
Definition: driver.h:49
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
driver::Font_list
void(* Font_list)(char ***, int *)
Definition: driver.h:53
PNG_Box
void PNG_Box(double fx1, double fy1, double fx2, double fy2)
Draw a (filled) rectangle.
Definition: pngdriver/box.c:24
driver::Move
void(* Move)(double, double)
Definition: driver.h:41
driver::Begin_raster
void(* Begin_raster)(int, int[2][2], double[2][2])
Definition: driver.h:33
driver::Begin
void(* Begin)(void)
Definition: driver.h:40
driver::Set_font
void(* Set_font)(const char *)
Definition: driver.h:52
PNG_Begin
void PNG_Begin(void)
Definition: pngdriver/draw.c:21
PNG_Line_width
void PNG_Line_width(double width)
Set line width.
Definition: pngdriver/line_width.c:23
driver::Set_window
void(* Set_window)(double, double, double, double)
Definition: driver.h:32
driver::Font_info
void(* Font_info)(char ***, int *)
Definition: driver.h:54
PNG_Stroke
void PNG_Stroke(void)
Definition: pngdriver/draw.c:41
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
driver::name
char * name
Definition: driver.h:24
PNG_Set_window
void PNG_Set_window(double, double, double, double)
Set window.
Definition: pngdriver/set_window.c:23
driver::Text_box
void(* Text_box)(const char *, double *, double *, double *, double *)
Definition: driver.h:51
driver
Definition: driver.h:22
PNG_Move
void PNG_Move(double x, double y)
Definition: pngdriver/draw.c:26
NULL
#define NULL
Definition: ccmath.h:32
driver::Graph_set
int(* Graph_set)(void)
Definition: driver.h:28
PNG_draw_bitmap
void PNG_draw_bitmap(int ncols, int nrows, int threshold, const unsigned char *buf)
Draw bitmap.
Definition: pngdriver/draw_bitmap.c:33
driver::Color
void(* Color)(int, int, int)
Definition: driver.h:48
PNG_Graph_get_file
const char * PNG_Graph_get_file(void)
Get render file.
Definition: pngdriver/graph_set.c:180
PNG_color_rgb
void PNG_color_rgb(int r, int g, int b)
Identify a color.
Definition: pngdriver/color.c:32
driver::Close
void(* Close)(void)
Definition: driver.h:43
PNG_Close
void PNG_Close(void)
Definition: pngdriver/draw.c:36
driver::Point
void(* Point)(double, double)
Definition: driver.h:46
driver::Cont
void(* Cont)(double, double)
Definition: driver.h:42
PNG_Graph_set
int PNG_Graph_set(void)
Start up graphics processing.
Definition: pngdriver/graph_set.c:82
PNG_Driver
const struct driver * PNG_Driver(void)
Initialize display driver.
Definition: pngdriver/driver.c:21
PNG_Erase
void PNG_Erase(void)
Erase screen.
Definition: pngdriver/erase.c:20
driver::Stroke
void(* Stroke)(void)
Definition: driver.h:44
driver::Fill
void(* Fill)(void)
Definition: driver.h:45
PNG_Fill
void PNG_Fill(void)
Definition: pngdriver/draw.c:46
driver::Erase
void(* Erase)(void)
Definition: driver.h:27
driver::End_raster
void(* End_raster)(void)
Definition: driver.h:39
pngdriver.h
GRASS png display driver - header file.
driver::Graph_get_file
const char *(* Graph_get_file)(void)
Definition: driver.h:30
driver::Graph_close
void(* Graph_close)(void)
Definition: driver.h:29
PNG_begin_raster
void PNG_begin_raster(int, int[2][2], double[2][2])
Start drawing raster.
Definition: pngdriver/raster.c:80