xref: /plan9/sys/src/cmd/gs/src/gsstate.h (revision 593dc095aefb2a85c828727bbfa9da139a49bdf4)
1 /* Copyright (C) 1989, 1995, 1996, 1997, 1998, 1999 Aladdin Enterprises.  All rights reserved.
2 
3   This software is provided AS-IS with no warranty, either express or
4   implied.
5 
6   This software is distributed under license and may not be copied,
7   modified or distributed except as expressly authorized under the terms
8   of the license contained in the file LICENSE in this distribution.
9 
10   For more information about licensing, please refer to
11   http://www.ghostscript.com/licensing/. For information on
12   commercial licensing, go to http://www.artifex.com/licensing/ or
13   contact Artifex Software, Inc., 101 Lucas Valley Road #110,
14   San Rafael, CA  94903, U.S.A., +1(415)492-9861.
15 */
16 
17 /* $Id: gsstate.h,v 1.9 2003/06/16 15:04:50 igor Exp $ */
18 /* Public graphics state API */
19 
20 #ifndef gsstate_INCLUDED
21 #  define gsstate_INCLUDED
22 
23 /* Opaque type for a graphics state */
24 #ifndef gs_state_DEFINED
25 #  define gs_state_DEFINED
26 typedef struct gs_state_s gs_state;
27 #endif
28 
29 /* opague type for overprint compositor parameters */
30 #ifndef gs_overprint_params_t_DEFINED
31 #  define gs_overprint_params_t_DEFINED
32 typedef struct gs_overprint_params_s    gs_overprint_params_t;
33 #endif
34 
35 /* Initial allocation and freeing */
36 gs_state *gs_state_alloc(gs_memory_t *);	/* 0 if fails */
37 int gs_state_free(gs_state *);
38 
39 /* Initialization, saving, restoring, and copying */
40 int gs_gsave(gs_state *), gs_grestore(gs_state *), gs_grestoreall(gs_state *);
41 int gs_grestore_only(gs_state *);
42 int gs_gsave_for_save(gs_state *, gs_state **), gs_grestoreall_for_restore(gs_state *, gs_state *);
43 gs_state *gs_gstate(gs_state *);
44 gs_state *gs_state_copy(gs_state *, gs_memory_t *);
45 int gs_copygstate(gs_state * /*to */ , const gs_state * /*from */ ),
46       gs_currentgstate(gs_state * /*to */ , const gs_state * /*from */ ),
47       gs_setgstate(gs_state * /*to */ , const gs_state * /*from */ );
48 
49 int gs_state_update_overprint(gs_state *, const gs_overprint_params_t *);
50 bool gs_currentoverprint(const gs_state *);
51 void gs_setoverprint(gs_state *, bool);
52 int gs_currentoverprintmode(const gs_state *);
53 int gs_setoverprintmode(gs_state *, int);
54 
55 int gs_do_set_overprint(gs_state *);
56 
57 int gs_initgraphics(gs_state *);
58 
59 /* Device control */
60 #include "gsdevice.h"
61 
62 /* Line parameters and quality */
63 #include "gsline.h"
64 
65 /* Color and gray */
66 #include "gscolor.h"
67 
68 /* Halftone screen */
69 #include "gsht.h"
70 #include "gscsel.h"
71 int gs_setscreenphase(gs_state *, int, int, gs_color_select_t);
72 int gs_currentscreenphase(const gs_state *, gs_int_point *, gs_color_select_t);
73 
74 #define gs_sethalftonephase(pgs, px, py)\
75   gs_setscreenphase(pgs, px, py, gs_color_select_all)
76 #define gs_currenthalftonephase(pgs, ppt)\
77   gs_currentscreenphase(pgs, ppt, 0)
78 int gx_imager_setscreenphase(gs_imager_state *, int, int, gs_color_select_t);
79 
80 /* Miscellaneous */
81 int gs_setfilladjust(gs_state *, floatp, floatp);
82 int gs_currentfilladjust(const gs_state *, gs_point *);
83 void gs_setlimitclamp(gs_state *, bool);
84 bool gs_currentlimitclamp(const gs_state *);
85 void gs_settextrenderingmode(gs_state * pgs, uint trm);
86 uint gs_currenttextrenderingmode(const gs_state * pgs);
87 #include "gscpm.h"
88 gs_in_cache_device_t gs_incachedevice(const gs_state *);
89 
90 #endif /* gsstate_INCLUDED */
91