1 /* Copyright (C) 2001-2019 Artifex Software, Inc.
2    All Rights Reserved.
3 
4    This software is provided AS-IS with no warranty, either express or
5    implied.
6 
7    This software is distributed under license and may not be copied,
8    modified or distributed except as expressly authorized under the terms
9    of the license contained in the file LICENSE in this distribution.
10 
11    Refer to licensing information at http://www.artifex.com or contact
12    Artifex Software, Inc.,  1305 Grant Avenue - Suite 200, Novato,
13    CA 94945, U.S.A., +1(415)492-9861, for further information.
14 */
15 
16 
17 /* Line parameter and quality definitions */
18 
19 #ifndef gsline_INCLUDED
20 #  define gsline_INCLUDED
21 
22 #include "stdpre.h"
23 #include "gsgstate.h"
24 #include "gslparam.h"
25 
26 /* Procedures */
27 int gs_setlinewidth(gs_gstate *, double);
28 float gs_currentlinewidth(const gs_gstate *);
29 int gs_setlinecap(gs_gstate *, gs_line_cap);
30 gs_line_cap gs_currentlinecap(const gs_gstate *);
31 int gs_setlinestartcap(gs_gstate *, gs_line_cap);
32 int gs_setlineendcap(gs_gstate *, gs_line_cap);
33 int gs_setlinedashcap(gs_gstate *, gs_line_cap);
34 int gs_setlinejoin(gs_gstate *, gs_line_join);
35 gs_line_join gs_currentlinejoin(const gs_gstate *);
36 int gs_setmiterlimit(gs_gstate *, double);
37 float gs_currentmiterlimit(const gs_gstate *);
38 int gs_setdash(gs_gstate *, const float *, uint, double);
39 uint gs_currentdash_length(const gs_gstate *);
40 const float *gs_currentdash_pattern(const gs_gstate *);
41 float gs_currentdash_offset(const gs_gstate *);
42 int gs_setflat(gs_gstate *, double);
43 float gs_currentflat(const gs_gstate *);
44 int gs_setstrokeadjust(gs_gstate *, bool);
45 bool gs_currentstrokeadjust(const gs_gstate *);
46 
47 /* Extensions - device-independent */
48 void gs_setdashadapt(gs_gstate *, bool);
49 bool gs_currentdashadapt(const gs_gstate *);
50 int gs_setcurvejoin(gs_gstate *, int);
51 int gs_currentcurvejoin(const gs_gstate *);
52 
53 /* Extensions - device-dependent */
54 void gs_setaccuratecurves(gs_gstate *, bool);
55 bool gs_currentaccuratecurves(const gs_gstate *);
56 int gs_setdotlength(gs_gstate *, double, bool);
57 float gs_currentdotlength(const gs_gstate *);
58 bool gs_currentdotlength_absolute(const gs_gstate *);
59 int gs_setdotorientation(gs_gstate *);
60 int gs_dotorientation(gs_gstate *);
61 
62 /* gs_gstate-level procedures */
63 int gs_gstate_setflat(gs_gstate *, double);
64 bool gs_gstate_currentdashadapt(const gs_gstate *);
65 bool gs_gstate_currentaccuratecurves(const gs_gstate *);
66 
67 #endif /* gsline_INCLUDED */
68