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