1 /* Copyright (C) 1998 artofcode LLC.  All rights reserved.
2 
3   This program is free software; you can redistribute it and/or modify it
4   under the terms of the GNU General Public License as published by the
5   Free Software Foundation; either version 2 of the License, or (at your
6   option) any later version.
7 
8   This program is distributed in the hope that it will be useful, but
9   WITHOUT ANY WARRANTY; without even the implied warranty of
10   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11   General Public License for more details.
12 
13   You should have received a copy of the GNU General Public License along
14   with this program; if not, write to the Free Software Foundation, Inc.,
15   59 Temple Place, Suite 330, Boston, MA, 02111-1307.
16 
17 */
18 
19 /*$Id: gxropc.h,v 1.2.6.1.2.1 2003/01/17 00:49:04 giles Exp $ */
20 /* Internals for RasterOp compositing */
21 
22 #ifndef gxropc_INCLUDED
23 #  define gxropc_INCLUDED
24 
25 #include "gsropc.h"
26 #include "gxcomp.h"
27 
28 /* Define RasterOp-compositing objects. */
29 typedef struct gs_composite_rop_s {
30     gs_composite_common;
31     gs_composite_rop_params_t params;
32 } gs_composite_rop_t;
33 
34 #define private_st_composite_rop() /* in gsropc.c */\
35   gs_private_st_ptrs1(st_composite_rop, gs_composite_rop_t,\
36     "gs_composite_rop_t", composite_rop_enum_ptrs, composite_rop_reloc_ptrs,\
37     params.texture)
38 
39 /*
40  * Initialize a RasterOp compositing function from parameters.
41  * We make this visible so that clients can allocate gs_composite_rop_t
42  * objects on the stack, to reduce memory manager overhead.
43  */
44 void gx_init_composite_rop(P2(gs_composite_rop_t * pcte,
45 			      const gs_composite_rop_params_t * params));
46 
47 #endif /* gxropc_INCLUDED */
48