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 /* geneic overprint fill rectangle interface */
18 
19 #ifndef gxoprect_INCLUDED
20 #define gxoprect_INCLUDED
21 
22 #include "gxdevcli.h"
23 
24 /*
25  * Perform the fill rectangle operation for a non-separable color encoding
26  * that requires overprint support.
27  *
28  * Returns 0 on success, < 0 in the event of an error.
29  */
30 extern  int     gx_overprint_generic_fill_rectangle(
31     gx_device *             tdev,
32     gx_color_index          drawn_comps,
33     int                     x,
34     int                     y,
35     int                     w,
36     int                     h,
37     gx_color_index          color,
38     gs_memory_t *           mem );
39 
40 /*
41  * Perform the fill rectangle operation of a separable color encoding.
42  * There are two versions of this routine: ..._1 for cases in which the
43  * color depth is a divisor of 8 * sizeof(mono_fill_chunk), and ..._2 if
44  * this is not the case (most typically if the depth == 24).
45  *
46  * For both cases, the color and retain_mask values passed to this
47  * procedure are expected to be already swapped as required for a byte-
48  * oriented bitmap. This consideration affects only little-endian
49  * machines. For those machines, if depth > 9 the color passed to these
50  * two procedures will not be the same as that passed to
51  * gx_overprint_generic_fill_rectangle.
52  *
53  * Returns 0 on success, < 0 in the event of an error.
54  */
55 extern  int     gx_overprint_sep_fill_rectangle_1(
56     gx_device *             tdev,
57     gx_color_index          retain_mask,    /* already swapped */
58     int                     x,
59     int                     y,
60     int                     w,
61     int                     h,
62     gx_color_index          color,          /* already swapped */
63     gs_memory_t *           mem );
64 
65 extern  int     gx_overprint_sep_fill_rectangle_2(
66     gx_device *             tdev,
67     gx_color_index          retain_mask,    /* already swapped */
68     int                     x,
69     int                     y,
70     int                     w,
71     int                     h,
72     gx_color_index          color,          /* already swapped */
73     gs_memory_t *           mem );
74 
75 #endif  /* gxoprect_INCLUDED */
76