xref: /plan9-contrib/sys/src/cmd/gs/src/gsstate.h (revision 593dc095aefb2a85c828727bbfa9da139a49bdf4)
17dd7cddfSDavid du Colombier /* Copyright (C) 1989, 1995, 1996, 1997, 1998, 1999 Aladdin Enterprises.  All rights reserved.
27dd7cddfSDavid du Colombier 
3*593dc095SDavid du Colombier   This software is provided AS-IS with no warranty, either express or
4*593dc095SDavid du Colombier   implied.
57dd7cddfSDavid du Colombier 
6*593dc095SDavid du Colombier   This software is distributed under license and may not be copied,
7*593dc095SDavid du Colombier   modified or distributed except as expressly authorized under the terms
8*593dc095SDavid du Colombier   of the license contained in the file LICENSE in this distribution.
97dd7cddfSDavid du Colombier 
10*593dc095SDavid du Colombier   For more information about licensing, please refer to
11*593dc095SDavid du Colombier   http://www.ghostscript.com/licensing/. For information on
12*593dc095SDavid du Colombier   commercial licensing, go to http://www.artifex.com/licensing/ or
13*593dc095SDavid du Colombier   contact Artifex Software, Inc., 101 Lucas Valley Road #110,
14*593dc095SDavid du Colombier   San Rafael, CA  94903, U.S.A., +1(415)492-9861.
157dd7cddfSDavid du Colombier */
167dd7cddfSDavid du Colombier 
17*593dc095SDavid du Colombier /* $Id: gsstate.h,v 1.9 2003/06/16 15:04:50 igor Exp $ */
187dd7cddfSDavid du Colombier /* Public graphics state API */
197dd7cddfSDavid du Colombier 
207dd7cddfSDavid du Colombier #ifndef gsstate_INCLUDED
217dd7cddfSDavid du Colombier #  define gsstate_INCLUDED
227dd7cddfSDavid du Colombier 
237dd7cddfSDavid du Colombier /* Opaque type for a graphics state */
247dd7cddfSDavid du Colombier #ifndef gs_state_DEFINED
257dd7cddfSDavid du Colombier #  define gs_state_DEFINED
267dd7cddfSDavid du Colombier typedef struct gs_state_s gs_state;
277dd7cddfSDavid du Colombier #endif
287dd7cddfSDavid du Colombier 
29*593dc095SDavid du Colombier /* opague type for overprint compositor parameters */
30*593dc095SDavid du Colombier #ifndef gs_overprint_params_t_DEFINED
31*593dc095SDavid du Colombier #  define gs_overprint_params_t_DEFINED
32*593dc095SDavid du Colombier typedef struct gs_overprint_params_s    gs_overprint_params_t;
33*593dc095SDavid du Colombier #endif
34*593dc095SDavid du Colombier 
357dd7cddfSDavid du Colombier /* Initial allocation and freeing */
36*593dc095SDavid du Colombier gs_state *gs_state_alloc(gs_memory_t *);	/* 0 if fails */
37*593dc095SDavid du Colombier int gs_state_free(gs_state *);
387dd7cddfSDavid du Colombier 
397dd7cddfSDavid du Colombier /* Initialization, saving, restoring, and copying */
40*593dc095SDavid du Colombier int gs_gsave(gs_state *), gs_grestore(gs_state *), gs_grestoreall(gs_state *);
41*593dc095SDavid du Colombier int gs_grestore_only(gs_state *);
42*593dc095SDavid du Colombier int gs_gsave_for_save(gs_state *, gs_state **), gs_grestoreall_for_restore(gs_state *, gs_state *);
43*593dc095SDavid du Colombier gs_state *gs_gstate(gs_state *);
44*593dc095SDavid du Colombier gs_state *gs_state_copy(gs_state *, gs_memory_t *);
45*593dc095SDavid du Colombier int gs_copygstate(gs_state * /*to */ , const gs_state * /*from */ ),
46*593dc095SDavid du Colombier       gs_currentgstate(gs_state * /*to */ , const gs_state * /*from */ ),
47*593dc095SDavid du Colombier       gs_setgstate(gs_state * /*to */ , const gs_state * /*from */ );
48*593dc095SDavid du Colombier 
49*593dc095SDavid du Colombier int gs_state_update_overprint(gs_state *, const gs_overprint_params_t *);
50*593dc095SDavid du Colombier bool gs_currentoverprint(const gs_state *);
51*593dc095SDavid du Colombier void gs_setoverprint(gs_state *, bool);
52*593dc095SDavid du Colombier int gs_currentoverprintmode(const gs_state *);
53*593dc095SDavid du Colombier int gs_setoverprintmode(gs_state *, int);
54*593dc095SDavid du Colombier 
55*593dc095SDavid du Colombier int gs_do_set_overprint(gs_state *);
56*593dc095SDavid du Colombier 
57*593dc095SDavid du Colombier int gs_initgraphics(gs_state *);
587dd7cddfSDavid du Colombier 
597dd7cddfSDavid du Colombier /* Device control */
607dd7cddfSDavid du Colombier #include "gsdevice.h"
617dd7cddfSDavid du Colombier 
627dd7cddfSDavid du Colombier /* Line parameters and quality */
637dd7cddfSDavid du Colombier #include "gsline.h"
647dd7cddfSDavid du Colombier 
657dd7cddfSDavid du Colombier /* Color and gray */
667dd7cddfSDavid du Colombier #include "gscolor.h"
677dd7cddfSDavid du Colombier 
687dd7cddfSDavid du Colombier /* Halftone screen */
697dd7cddfSDavid du Colombier #include "gsht.h"
707dd7cddfSDavid du Colombier #include "gscsel.h"
71*593dc095SDavid du Colombier int gs_setscreenphase(gs_state *, int, int, gs_color_select_t);
72*593dc095SDavid du Colombier int gs_currentscreenphase(const gs_state *, gs_int_point *, gs_color_select_t);
737dd7cddfSDavid du Colombier 
747dd7cddfSDavid du Colombier #define gs_sethalftonephase(pgs, px, py)\
757dd7cddfSDavid du Colombier   gs_setscreenphase(pgs, px, py, gs_color_select_all)
767dd7cddfSDavid du Colombier #define gs_currenthalftonephase(pgs, ppt)\
777dd7cddfSDavid du Colombier   gs_currentscreenphase(pgs, ppt, 0)
78*593dc095SDavid du Colombier int gx_imager_setscreenphase(gs_imager_state *, int, int, gs_color_select_t);
797dd7cddfSDavid du Colombier 
807dd7cddfSDavid du Colombier /* Miscellaneous */
81*593dc095SDavid du Colombier int gs_setfilladjust(gs_state *, floatp, floatp);
82*593dc095SDavid du Colombier int gs_currentfilladjust(const gs_state *, gs_point *);
83*593dc095SDavid du Colombier void gs_setlimitclamp(gs_state *, bool);
84*593dc095SDavid du Colombier bool gs_currentlimitclamp(const gs_state *);
85*593dc095SDavid du Colombier void gs_settextrenderingmode(gs_state * pgs, uint trm);
86*593dc095SDavid du Colombier uint gs_currenttextrenderingmode(const gs_state * pgs);
877dd7cddfSDavid du Colombier #include "gscpm.h"
88*593dc095SDavid du Colombier gs_in_cache_device_t gs_incachedevice(const gs_state *);
897dd7cddfSDavid du Colombier 
907dd7cddfSDavid du Colombier #endif /* gsstate_INCLUDED */
91