HPGS - HPGl Script
hpgsdevices.h
Go to the documentation of this file.
1 /***********************************************************************
2  * *
3  * $Id: hpgsdevices.h 489 2009-02-11 14:10:30Z softadm $
4  * *
5  * hpgs - HPGl Script, a hpgl/2 interpreter, which uses a Postscript *
6  * API for rendering a scene and thus renders to a variety of *
7  * devices and fileformats. *
8  * *
9  * (C) 2004-2009 ev-i Informationstechnologie GmbH http://www.ev-i.at *
10  * *
11  * Author: Wolfgang Glas *
12  * *
13  * hpgs is free software; you can redistribute it and/or *
14  * modify it under the terms of the GNU Lesser General Public *
15  * License as published by the Free Software Foundation; either *
16  * version 2.1 of the License, or (at your option) any later version. *
17  * *
18  * hpgs is distributed in the hope that it will be useful, *
19  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
20  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
21  * Lesser General Public License for more details. *
22  * *
23  * You should have received a copy of the GNU Lesser General Public *
24  * License along with this library; if not, write to the *
25  * Free Software Foundation, Inc., 59 Temple Place, Suite 330, *
26  * Boston, MA 02111-1307 USA *
27  * *
28  ***********************************************************************
29  * *
30  * The private interfaces for the basic devices *
31  * *
32  ***********************************************************************/
33 
34 #ifndef __HPGS_DEVICES_H
35 #define __HPGS_DEVICES_H
36 
37 #include<hpgs.h>
38 
39 #ifdef __cplusplus
40 extern "C" {
41 #endif
42 
55 #define HPGS_PLOTSIZE_MAX_CLIP_DEPTH 16
56 
64 
65  hpgs_bool ignore_ps;
66  int clip_depth;
67 
70 
71  hpgs_bool do_linewidth;
72  double linewidth;
73 
74  hpgs_bbox clip_bbs[HPGS_PLOTSIZE_MAX_CLIP_DEPTH];
80 
85  int page_bbs_alloc_size;
87 };
88 
90 
96 {
97  int width;
98  int height;
99 
100  const char *name;
101  size_t usage;
102 
103  size_t hash;
104 };
105 
113 
114  hpgs_bbox doc_bb;
120  int n_pages;
123  char *filename;
124 
126  hpgs_bool page_setup;
127 
134  int media_sizes_alloc_size;
137  hpgs_xrop3_func_t rop3;
139 
141 };
142 
143 HPGS_INTERNAL_API void hpgs_cleanup_plugin_devices();
144  /* end of group device */
146 
147 #ifdef __cplusplus
148 } // end of extern "C"
149 #endif
150 
151 #endif /* ! __HPGS_DEVICES_H */
hpgs_point moveto
The position of the last moveto.
Definition: hpgsdevices.h:68
A screen RGB color as stored in a palette.
Definition: hpgs.h:250
hpgs_bool page_setup
Is the current page set up?
Definition: hpgsdevices.h:126
int width
The width of the paper in pt.
Definition: hpgsdevices.h:97
hpgs_bbox global_bb
Definition: hpgsdevices.h:78
hpgs_ostream * out
The current page stream.
Definition: hpgsdevices.h:125
hpgs_palette_color pattern_color
The color of the ROP3 pattern.
Definition: hpgsdevices.h:138
int clip_depth
The depth of the current clip path stack.
Definition: hpgsdevices.h:66
hpgs_bbox path_bb
Definition: hpgsdevices.h:76
hpgs_bool ignore_ps
Do we ignore a PS command?
Definition: hpgsdevices.h:65
A 2D point.
Definition: hpgs.h:227
int height
The height of the paper in pt.
Definition: hpgsdevices.h:98
int deferred_moveto
Do we have an unregistered moveto pending?
Definition: hpgsdevices.h:69
hpgs_bbox * page_bbs
Definition: hpgsdevices.h:83
hpgs_color color
The current output color.
Definition: hpgsdevices.h:140
hpgs_device inherited
The base device structure.
Definition: hpgsdevices.h:112
double linewidth
Current linewidth.
Definition: hpgsdevices.h:72
hpgs_bbox page_bb
Definition: hpgsdevices.h:117
A virtual output stream for the HPGL reader.
Definition: hpgs.h:529
int n_pages
Definition: hpgsdevices.h:120
int n_media_sizes
Definition: hpgsdevices.h:133
hpgs_ps_media_size * media_sizes
Definition: hpgsdevices.h:132
hpgs_bool do_linewidth
Do we account for the current linewidth?
Definition: hpgsdevices.h:71
A virtual vector graphics device for the HPGL reader.
Definition: hpgs.h:699
An application level RGB color.
Definition: hpgs.h:238
const char * name
The name of this paper size, if it is a std paper size.
Definition: hpgsdevices.h:100
size_t hash
A hash value for storing media sizes in a sorted vector.
Definition: hpgsdevices.h:103
int n_page_bbs
Definition: hpgsdevices.h:84
A bounding box.
Definition: hpgs.h:296
A structure for storing a paper size.
Definition: hpgsdevices.h:95
char * filename
The output filename.
Definition: hpgsdevices.h:123
A vector graphics device for drawing to an eps file.
Definition: hpgsdevices.h:111
A vector graphics device for plotsize calculating.
Definition: hpgsdevices.h:62
The public interfaces.
hpgs_bbox page_bb
Definition: hpgsdevices.h:77
hpgs_device inherited
The base device structure.
Definition: hpgsdevices.h:63
size_t usage
The usage count of this paper size.
Definition: hpgsdevices.h:101