Coverage Report

Created: 2022-04-16 11:23

/src/ghostpdl/base/gxdevcli.h
Line
Count
Source (jump to first uncovered line)
1
/* Copyright (C) 2001-2022 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
/* Definitions for device clients */
18
19
#ifndef gxdevcli_INCLUDED
20
#  define gxdevcli_INCLUDED
21
22
#include "gsdevice.h"
23
#include "stdint_.h"
24
#include "gscompt.h"
25
#include "gsdcolor.h"
26
#include "gsmatrix.h"
27
#include "gsiparam.h"   /* requires gsmatrix.h */
28
#include "gsrefct.h"
29
#include "gsropt.h"
30
#include "gsstruct.h"
31
#include "gstparam.h"
32
#include "gsxfont.h"
33
#include "gxbitmap.h"
34
#include "gxcindex.h"
35
#include "gxcvalue.h"
36
#include "gxfixed.h"
37
#include "gxtext.h"
38
#include "gxcmap.h"
39
#include "gsnamecl.h"
40
#include "gp.h"
41
#include "gscms.h"
42
#include "gxrplane.h"
43
#include "gxdda.h"
44
#include "gxpath.h"
45
#include "gsimage.h"
46
47
/* See Drivers.htm for documentation of the driver interface. */
48
49
/* ---------------- Memory management ---------------- */
50
51
/*
52
 * NOTE: if you write code that creates device instances (either with
53
 * gs_copydevice or by allocating them explicitly), allocates device
54
 * instances as either local or static variables (actual instances, not
55
 * pointers to instances), or sets the target of forwarding devices, please
56
 * read the following documentation carefully.  The rules for doing these
57
 * things changed substantially in release 5.68, in a
58
 * non-backward-compatible way, and unfortunately we could not find a way to
59
 * make the compiler give an error at places that need changing.
60
 */
61
62
/*
63
 * Device instances are managed with reference counting: when the last
64
 * reference to a device from a graphics state or the target field of a
65
 * forwarding device is removed, the device is normally freed.  However,
66
 * some device instances are referenced in other ways (for example, from
67
 * objects in the PostScript interpreter, or from library client code) and
68
 * will be freed by the garbage collector (if any) or explicitly: they
69
 * should not be freed by reference counting.  These are called "retained"
70
 * device instances.  Every device instance remembers whether or not it is
71
 * retained, and an instance is freed iff its reference count is zero and it
72
 * is not retained.
73
 *
74
 * Normally devices are initialized as not retained.  However, devices
75
 * initialized by calling gx_device_init(pdev, proto, memory, false), or
76
 * created by gs_copydevice are marked as retained.  You can also set the
77
 * retention status of a device explicitly with gx_device_retain(pdev,
78
 * true-or-false).  Note that if you change a retained device to
79
 * non-retained, if there are no references to it from graphics states or
80
 * targets, it will be freed immediately.
81
 *
82
 * The preferred technique for creating a new device is now gs_copydevice.
83
 * There are a number of places in the code where memory is explicitly
84
 * allocated, then initialized with gx_device_init. These should gradually
85
 * be replaced.
86
 *
87
 * There are 3 ways that a device structure might be allocated:
88
 *  1) Allocated dynamically, e.g.,
89
 *    gx_device *pdev_new;
90
 *    gs_copydevice(&pdev_new, pdev_old, memory);
91
 *  2) Declared as a local or static variable, e.g.,
92
 *    gx_device devv;
93
 *  or
94
 *    const gx_device devc = ...;
95
 *  3) Embedded in an object allocated in one of the above ways.
96
 * If you allocate a device using #2 or #3, you must either mark it as
97
 * retained by calling gx_device_retain(pdev, true) or initialize it with a
98
 * NULL memory.  If you do not do this, an attempt will be made to free the
99
 * device, corrupting memory.  Note that when memory is NULL, the finalize
100
 * method of the device will not be called when it is freed, so you cannot
101
 * use it for cleanup.  */
102
103
/*
104
 * Do not set the target of a forwarding device with an assignment like
105
 *  fdev->target = tdev;
106
 * You must use the procedure
107
 *  gx_device_set_target(fdev, tdev);
108
 * Note that the first argument is a gx_device_forward *, not a gx_device *.
109
 *
110
 * We could have changed the member name "target" when this became
111
 * necessary, so the compiler would flag places that needed editing, but
112
 * there were literally hundreds of places that only read the target member
113
 * that we would have had to change, so we decided to leave the name alone.
114
 */
115
116
/* ---------------- Auxiliary types and structures ---------------- */
117
118
/* We need an abstract type for the pattern instance, */
119
/* for pattern management. */
120
typedef struct gs_pattern1_instance_s gs_pattern1_instance_t;
121
122
/* Define the type for colors passed to the higher-level procedures. */
123
typedef gx_device_color gx_drawing_color;
124
125
/* Define a type for telling get_alpha_bits what kind of object */
126
/* is being rendered. */
127
typedef enum {
128
    go_text,
129
    go_graphics
130
} graphics_object_type;
131
132
/* Define an edge of a trapezoid.  Requirement: end.y >= start.y. */
133
typedef struct gs_fixed_edge_s {
134
    gs_fixed_point start;
135
    gs_fixed_point end;
136
} gs_fixed_edge;
137
138
/* Define the parameters passed to get_bits_rectangle. */
139
typedef struct gs_get_bits_params_s gs_get_bits_params_t;
140
141
/* Define the structure for device color capabilities. */
142
typedef struct gx_device_anti_alias_info_s {
143
    int text_bits;    /* 1,2,4 */
144
    int graphics_bits;    /* ditto */
145
} gx_device_anti_alias_info;
146
147
typedef int32_t frac31; /* A fraction value in [-1,1].
148
    Represents a color (in [0,1])
149
    or a color difference (in [-1,1]) in shadings. */
150
151
/* Define an edge of a linear color trapezoid.  Requirement: end.y >= start.y. */
152
typedef struct gs_linear_color_edge_s {
153
    gs_fixed_point start;
154
    gs_fixed_point end;
155
    const frac31 *c0, *c1;
156
    fixed clip_x;
157
} gs_linear_color_edge;
158
159
/*
160
 * Possible values for the separable_and_linear flag in the
161
 * gx_device_color_info structure. These form an order, with lower
162
 * values having weaker properties.
163
 *
164
 *  GX_CINFO_UNKNOWN_SEP_LIN
165
 *    The properties of the color encoding are not yet known. This is
166
 *    always a safe default value.
167
 *
168
 *  GX_CINFO_SEP_LIN_NONE
169
 *    The encoding is not separable and linear. If this value is set,
170
 *    the device must provide an encode_color method, either directly
171
 *    or via map_rgb_color/map_cmyk_color methods. This setting is
172
 *    only legitimate for color models with 4 or fewer components.
173
 *
174
 *  GX_CINFO_SEP_LIN
175
 *    A separable and linear encoding has the separability and
176
 *    linearity properties.
177
 *
178
 *    Encodings with this property are completely characterized
179
 *    by the comp_shift array. Hence, there is no need to provide
180
 *    an encode_color procedure for such devices, though the device
181
 *    creator may choose to do so for performance reasons (e.g.: when
182
 *    each color component is assigned a byte).
183
 *
184
 *    Note that if the device encodes tags, the comp_shift array must
185
 *    provide a shift (and mask) for the tag component in the num_components
186
 *    element of the array. Used in gx_default_fill_linear_color_scanline.
187
 *
188
 *  GX_CINFO_SEP_LIN_NON_STANDARD
189
 *    A separable and linear encoding has the separability and
190
 *    linearity properties. In addition, we know that this encoding
191
 *    is NOT the 'standard' one. (i.e. it is not compatible with the
192
 *    encoding used by the pdf14 compositor).
193
 *
194
 *    Encodings with this property are completely characterized
195
 *    by the comp_shift array. Hence, there is no need to provide
196
 *    an encode_color procedure for such devices, though the device
197
 *    creator may choose to do so for performance reasons (e.g.: when
198
 *    each color component is assigned a byte).
199
 *
200
 *  GX_CINFO_SEP_LIN_STANDARD
201
 *    A separable and linear encoding has the separability and
202
 *    linearity properties. In addition, we know that this encoding
203
 *    is the 'standard' one. (i.e. it is compatible with the encoding
204
 *    used by the pd14 compositor).
205
 *
206
 *    Encodings with this property are completely characterized
207
 *    by the comp_shift array. Hence, there is no need to provide
208
 *    an encode_color procedure for such devices, though the device
209
 *    creator may choose to do so for performance reasons (e.g.: when
210
 *    each color component is assigned a byte).
211
 */
212
213
/* Note: The arithmetic ordering for these values is relied upon
214
 * in tests (see colors_are_separable_and_linear below) for
215
 * separability and linearity. Change them with care! */
216
typedef enum {
217
    GX_CINFO_UNKNOWN_SEP_LIN = -1,
218
    GX_CINFO_SEP_LIN_NONE = 0,
219
    GX_CINFO_SEP_LIN = 1,
220
    GX_CINFO_SEP_LIN_NON_STANDARD = 2,
221
    GX_CINFO_SEP_LIN_STANDARD = 3
222
} gx_color_enc_sep_lin_t;
223
224
/*
225
 * Enumerator to indicate if a color model will support overprint mode.
226
 *
227
 * Only "DeviceCMYK" color space support this option, but we interpret
228
 * this designation some broadly: a DeviceCMYK color model is any sub-
229
 * tractive color model that provides the components Cyan, Magenta,
230
 * Yellow, and Black, and maps the DeviceCMYK space directly to these
231
 * components. This includes DeviceCMYK color models with spot colors,
232
 * and DeviceN color models that support the requisite components (the
233
 * latter may vary from Adobe's implementations; this is not easily
234
 * tested).
235
 *
236
 * In principle this parameter could be a boolean set at initialization
237
 * time. Primarily for historical reasons, the determination of whether
238
 * or not a color model supports overprint is delayed until this
239
 * information is required, hence the use of an enumeration with an
240
 * "unknown" setting.
241
 *
242
 */
243
typedef enum {
244
    GX_CINFO_OPMSUPPORTED_UNKNOWN = -1,
245
    GX_CINFO_OPMSUPPORTED_NOT = 0,
246
    GX_CINFO_OPMSUPPORTED = 1
247
} gx_cm_opmsupported_t;
248
249
/* component index value used to indicate no color component.  */
250
9.58k
#define GX_CINFO_COMP_NO_INDEX 0xff
251
252
/*
253
 * Additional possible value for cinfo.gray_index, to indicate which
254
 * component, if any, qualifies as the "gray" component.
255
 */
256
#define GX_CINFO_COMP_INDEX_UNKNOWN 0xfe
257
258
/*
259
 * The enlarged color model information structure: Some of the
260
 * information that was implicit in the component number in
261
 * the earlier conventions (component names, polarity, mapping
262
 * functions) are now explicitly provided.
263
 *
264
 * Also included is some information regarding the encoding of
265
 * color information into gx_color_index. Some of this information
266
 * was previously gathered indirectly from the mapping
267
 * functions in the existing code, specifically to speed up the
268
 * halftoned color rendering operator (see
269
 * gx_dc_ht_colored_fill_rectangle in gxcht.c). The information
270
 * is now provided explicitly because such optimizations are
271
 * more critical when the number of color components is large.
272
 *
273
 * Note: no pointers have been added to this structure, so there
274
 *       is no requirement for a structure descriptor.
275
 */
276
typedef struct gx_device_color_info_s {
277
278
    /*
279
     * max_components is the maximum number of components for all
280
     * color models supported by this device. This does not include
281
     * any alpha components.
282
     */
283
    uchar max_components;
284
285
    /*
286
     * The number of color components. This does not include any
287
     * alpha-channel information, which may be integrated into
288
     * the gx_color_index but is otherwise passed as a separate
289
     * component.
290
     */
291
    uchar num_components;
292
293
    /*
294
     * Polarity of the components of the color space, either
295
     * additive or subtractive. This is used to interpret transfer
296
     * functions and halftone threshold arrays. Possible values
297
     * are GX_CM_POLARITY_ADDITIVE or GX_CM_POLARITY_SUBTRACTIVE
298
     */
299
    gx_color_polarity_t polarity;
300
301
    /*
302
     * The number of bits of gx_color_index actually used.
303
     * This must be <= ARCH_SIZEOF_COLOR_INDEX, which is usually 64.
304
     * Note that we now have planar devices which can support much more.
305
     * Changing this to a ushort to reflect this.
306
     */
307
    ushort depth;
308
309
    /*
310
     * Index of the gray color component, if any. The max_gray and
311
     * dither_gray values apply to this component only; all other
312
     * components use the max_color and dither_color values.
313
     *
314
     * Note:  This field refers to a 'gray' colorant because of the
315
     * past use of the max_gray/color and dither_grays/colors fields.
316
     * Prior to 8.00, the 'gray' values were used for monochrome
317
     * devices and the 'color' values for RGB and CMYK devices.
318
     * Ideally we would like to have the flexibiiity of allowing
319
     * different numbers of intensity levels for each colorant.
320
     * However this is not compatible with the pre 8.00 devices.
321
     * With post 8.00 devices, we can have two different numbers of
322
     * intensity levels.  For one colorant (which is specified by
323
     * the gray_index) we will use the max_gray/dither_grays values.
324
     * The remaining colorants will use the max_color/dither_colors
325
     * values.  The colorant which is specified by the gray_index
326
     * value does not have to be gray or black.  For example if we
327
     * have an RGB device and we want 32 intensity levels for red and
328
     * blue and 64 levels for green, then we can set gray_index to
329
     * 1 (the green colorant), set max_gray to 63 and dither_grays to
330
     * 64, and set max_color to 31 and dither_colors to 32.
331
     *
332
     * This will be GX_CINFO_COMP_NO_INDEX if there is no 'gray'
333
     * component.
334
     */
335
    byte gray_index;
336
337
    /*
338
     * max_gray and max_color are the number of distinct native
339
     * intensity levels, less 1, for the 'gray' and all other color
340
     * components, respectively. For nearly all current devices
341
     * that support both 'gray' and non-'gray' components, the two
342
     * parameters have the same value.  (See comment for gray_index.)
343
     *
344
     * dither_grays and dither_colors are the number of intensity
345
     * levels between which halftoning can occur, for the 'gra'y and
346
     * all other color components, respectively. This is
347
     * essentially redundant information: in all reasonable cases,
348
     * dither_grays = max_gray + 1 and dither_colors = max_color + 1.
349
     * These parameters are, however, extensively used in the
350
     * current code, and thus have been retained.
351
     *
352
     * Note that the non-'gray' values may now be relevant even if
353
     * num_components == 1. This simplifies the handling of devices
354
     * with configurable color models which may be set for a single
355
     * non-'gray' color model.
356
     */
357
    uint max_gray;    /* # of distinct color levels -1 */
358
    uint max_color;
359
360
    uint dither_grays;
361
    uint dither_colors;
362
363
    /*
364
     * Information to control super-sampling of objects to support
365
     * anti-aliasing.
366
     */
367
    gx_device_anti_alias_info anti_alias;
368
369
    /*
370
     * Flag to indicate if gx_color_index for this device may be divided
371
     * into individual fields for each component. This is almost always
372
     * the case for printers, and is the case for most modern displays
373
     * as well. When this is the case, halftoning may be performed
374
     * separately for each component, which greatly simplifies processing
375
     * when the number of color components is large.
376
     *
377
     * If the gx_color_index is separable in this manner, the comp_shift
378
     * array provides the location of the low-order bit for each
379
     * component. This may be filled in by the client, but need not be.
380
     * If it is not provided, it will be calculated based on the values
381
     * in the max_gray and max_color fields as follows:
382
     *
383
     *     comp_shift[num_components - 1] = 0,
384
     *     comp_shift[i] = comp_shift[i + 1]
385
     *                      + ( i == gray_index ? ceil(log2(max_gray + 1))
386
     *                                          : ceil(log2(max_color + 1)) )
387
     *
388
     * The comp_mask and comp_bits fields should be left empty by the client.
389
     * They will be filled in during initialization using the following
390
     * mechanism:
391
     *
392
     *     comp_bits[i] = ( i == gray_index ? ceil(log2(max_gray + 1))
393
     *                                      : ceil(log2(max_color + 1)) )
394
     *
395
     *     comp_mask[i] = (((gx_color_index)1 << comp_bits[i]) - 1)
396
     *                       << comp_shift[i]
397
     *
398
     * (For current devices, it is almost always the case that
399
     * max_gray == max_color, if the color model contains both gray and
400
     * non-gray components.)
401
     *
402
     * If separable_and_linear is not set, the data in the other fields
403
     * is unpredictable and should be ignored.
404
     */
405
    gx_color_enc_sep_lin_t separable_and_linear;
406
    byte                   comp_shift[GX_DEVICE_COLOR_MAX_COMPONENTS];
407
    byte                   comp_bits[GX_DEVICE_COLOR_MAX_COMPONENTS];
408
    gx_color_index         comp_mask[GX_DEVICE_COLOR_MAX_COMPONENTS];
409
410
    /*
411
     * Pointer to name for the process color model.
412
     */
413
    const char * cm_name;
414
415
    /*
416
     * Indicate if overprint mode is supported. This is only supported
417
     * for color models that have "DeviceCMYK" like behaivor: they support
418
     * the cyan, magenta, yellow, and black color components, and map the
419
     * components of a DeviceCMYK color space directly to these compoents.
420
     * Most such color spaces will have the name DeviceCMYK, but it is
421
     * also possible for DeviceN color models this behavior.
422
     *
423
     * If opmsupported has the value GX_CINFO_OPMSUPPORTED, the process_comps will
424
     * be a bit mask, with the (1 << i) bit set if i'th component is the
425
     * cyan, magenta, yellow, or black component and black_component will
426
     * be set to the index of a black component.
427
     */
428
    gx_cm_opmsupported_t opmsupported;
429
    gx_color_index process_comps;
430
    uint black_component;
431
    bool use_antidropout_downscaler;
432
} gx_device_color_info;
433
434
/* Test to see if colors are separable and linear */
435
static inline int colors_are_separable_and_linear(gx_device_color_info *info)
436
4.19M
{
437
4.19M
    return (info->separable_and_linear >= GX_CINFO_SEP_LIN);
438
4.19M
}
Unexecuted instantiation: imain.c:colors_are_separable_and_linear
Unexecuted instantiation: gconfig.c:colors_are_separable_and_linear
Unexecuted instantiation: gximage3.c:colors_are_separable_and_linear
Unexecuted instantiation: gximage4.c:colors_are_separable_and_linear
Unexecuted instantiation: gxmclip.c:colors_are_separable_and_linear
Unexecuted instantiation: gsptype1.c:colors_are_separable_and_linear
Unexecuted instantiation: gxp1fill.c:colors_are_separable_and_linear
Unexecuted instantiation: gxpcmap.c:colors_are_separable_and_linear
Unexecuted instantiation: gxicolor.c:colors_are_separable_and_linear
Unexecuted instantiation: gsdps1.c:colors_are_separable_and_linear
Unexecuted instantiation: gsciemap.c:colors_are_separable_and_linear
Unexecuted instantiation: gstrans.c:colors_are_separable_and_linear
Unexecuted instantiation: gximag3x.c:colors_are_separable_and_linear
Unexecuted instantiation: gxblend.c:colors_are_separable_and_linear
Unexecuted instantiation: gdevp14.c:colors_are_separable_and_linear
Unexecuted instantiation: gdevdevn.c:colors_are_separable_and_linear
Unexecuted instantiation: gsequivc.c:colors_are_separable_and_linear
Unexecuted instantiation: gdevdcrd.c:colors_are_separable_and_linear
Unexecuted instantiation: gscpixel.c:colors_are_separable_and_linear
Unexecuted instantiation: gdevbbox.c:colors_are_separable_and_linear
Unexecuted instantiation: gdevprn.c:colors_are_separable_and_linear
Unexecuted instantiation: gdevppla.c:colors_are_separable_and_linear
Unexecuted instantiation: gdevflp.c:colors_are_separable_and_linear
Unexecuted instantiation: gdevoflt.c:colors_are_separable_and_linear
Unexecuted instantiation: gdevnup.c:colors_are_separable_and_linear
Unexecuted instantiation: gdevsclass.c:colors_are_separable_and_linear
Unexecuted instantiation: gxclist.c:colors_are_separable_and_linear
Unexecuted instantiation: gxclpage.c:colors_are_separable_and_linear
Unexecuted instantiation: gxclread.c:colors_are_separable_and_linear
Unexecuted instantiation: gxclrect.c:colors_are_separable_and_linear
Unexecuted instantiation: gxclutil.c:colors_are_separable_and_linear
Unexecuted instantiation: gxclimag.c:colors_are_separable_and_linear
Unexecuted instantiation: gxclpath.c:colors_are_separable_and_linear
Unexecuted instantiation: gxdhtserial.c:colors_are_separable_and_linear
Unexecuted instantiation: gxclthrd.c:colors_are_separable_and_linear
Unexecuted instantiation: gsicc.c:colors_are_separable_and_linear
Unexecuted instantiation: gsicc_manage.c:colors_are_separable_and_linear
Unexecuted instantiation: gsicc_cache.c:colors_are_separable_and_linear
Unexecuted instantiation: gsicc_lcms2mt.c:colors_are_separable_and_linear
Unexecuted instantiation: gsicc_create.c:colors_are_separable_and_linear
Unexecuted instantiation: gsicc_nocm.c:colors_are_separable_and_linear
Unexecuted instantiation: gsicc_replacecm.c:colors_are_separable_and_linear
Unexecuted instantiation: gsicc_monitorcm.c:colors_are_separable_and_linear
Unexecuted instantiation: gsicc_blacktext.c:colors_are_separable_and_linear
Unexecuted instantiation: gdevcups.c:colors_are_separable_and_linear
Unexecuted instantiation: gdevdjet.c:colors_are_separable_and_linear
Unexecuted instantiation: gdevdljm.c:colors_are_separable_and_linear
Unexecuted instantiation: gdevpcl.c:colors_are_separable_and_linear
Unexecuted instantiation: gdevpcl3.c:colors_are_separable_and_linear
Unexecuted instantiation: pclcap.c:colors_are_separable_and_linear
Unexecuted instantiation: gdevpx.c:colors_are_separable_and_linear
Unexecuted instantiation: gdevpxut.c:colors_are_separable_and_linear
Unexecuted instantiation: gdevvec.c:colors_are_separable_and_linear
Unexecuted instantiation: gdevupd.c:colors_are_separable_and_linear
Unexecuted instantiation: gdevkrnlsclass.c:colors_are_separable_and_linear
Unexecuted instantiation: gscolor.c:colors_are_separable_and_linear
Unexecuted instantiation: gscoord.c:colors_are_separable_and_linear
Unexecuted instantiation: gscspace.c:colors_are_separable_and_linear
Unexecuted instantiation: gsovrc.c:colors_are_separable_and_linear
Unexecuted instantiation: gxoprect.c:colors_are_separable_and_linear
Unexecuted instantiation: gsdevice.c:colors_are_separable_and_linear
Unexecuted instantiation: gsdparam.c:colors_are_separable_and_linear
Unexecuted instantiation: gsht.c:colors_are_separable_and_linear
Unexecuted instantiation: gshtscr.c:colors_are_separable_and_linear
Unexecuted instantiation: gsimage.c:colors_are_separable_and_linear
Unexecuted instantiation: gsgstate.c:colors_are_separable_and_linear
Unexecuted instantiation: gsline.c:colors_are_separable_and_linear
Unexecuted instantiation: gspaint.c:colors_are_separable_and_linear
Unexecuted instantiation: gspath.c:colors_are_separable_and_linear
Unexecuted instantiation: gsstate.c:colors_are_separable_and_linear
Unexecuted instantiation: gstext.c:colors_are_separable_and_linear
Unexecuted instantiation: gxfapi.c:colors_are_separable_and_linear
Unexecuted instantiation: write_t2.c:colors_are_separable_and_linear
Unexecuted instantiation: gxchar.c:colors_are_separable_and_linear
Unexecuted instantiation: gxcht.c:colors_are_separable_and_linear
Unexecuted instantiation: gxclip.c:colors_are_separable_and_linear
Unexecuted instantiation: gxcmap.c:colors_are_separable_and_linear
Unexecuted instantiation: gxcpath.c:colors_are_separable_and_linear
Unexecuted instantiation: gxdcconv.c:colors_are_separable_and_linear
Unexecuted instantiation: gxdcolor.c:colors_are_separable_and_linear
Unexecuted instantiation: gxhldevc.c:colors_are_separable_and_linear
Unexecuted instantiation: gxfill.c:colors_are_separable_and_linear
Unexecuted instantiation: gxht.c:colors_are_separable_and_linear
Unexecuted instantiation: gxht_thresh.c:colors_are_separable_and_linear
Unexecuted instantiation: gxifast.c:colors_are_separable_and_linear
Unexecuted instantiation: gximage.c:colors_are_separable_and_linear
Unexecuted instantiation: gximdecode.c:colors_are_separable_and_linear
Unexecuted instantiation: gximage1.c:colors_are_separable_and_linear
Unexecuted instantiation: gximono.c:colors_are_separable_and_linear
Unexecuted instantiation: gxipixel.c:colors_are_separable_and_linear
Unexecuted instantiation: gximask.c:colors_are_separable_and_linear
Unexecuted instantiation: gxi12bit.c:colors_are_separable_and_linear
Unexecuted instantiation: gxi16bit.c:colors_are_separable_and_linear
Unexecuted instantiation: gxiscale.c:colors_are_separable_and_linear
Unexecuted instantiation: gxpaint.c:colors_are_separable_and_linear
Unexecuted instantiation: gxpcopy.c:colors_are_separable_and_linear
Unexecuted instantiation: gxsample.c:colors_are_separable_and_linear
Unexecuted instantiation: gxstroke.c:colors_are_separable_and_linear
Unexecuted instantiation: gdevabuf.c:colors_are_separable_and_linear
Unexecuted instantiation: gdevdbit.c:colors_are_separable_and_linear
Unexecuted instantiation: gdevddrw.c:colors_are_separable_and_linear
gdevdflt.c:colors_are_separable_and_linear
Line
Count
Source
436
3.95M
{
437
3.95M
    return (info->separable_and_linear >= GX_CINFO_SEP_LIN);
438
3.95M
}
Unexecuted instantiation: gdevdgbr.c:colors_are_separable_and_linear
Unexecuted instantiation: gdevnfwd.c:colors_are_separable_and_linear
Unexecuted instantiation: gdevmem.c:colors_are_separable_and_linear
Unexecuted instantiation: gdevplnx.c:colors_are_separable_and_linear
Unexecuted instantiation: gdevm1.c:colors_are_separable_and_linear
Unexecuted instantiation: gdevm2.c:colors_are_separable_and_linear
Unexecuted instantiation: gdevm4.c:colors_are_separable_and_linear
Unexecuted instantiation: gdevm8.c:colors_are_separable_and_linear
Unexecuted instantiation: gdevm16.c:colors_are_separable_and_linear
Unexecuted instantiation: gdevm24.c:colors_are_separable_and_linear
Unexecuted instantiation: gdevm32.c:colors_are_separable_and_linear
Unexecuted instantiation: gdevmpla.c:colors_are_separable_and_linear
Unexecuted instantiation: gdevm40.c:colors_are_separable_and_linear
Unexecuted instantiation: gdevm48.c:colors_are_separable_and_linear
Unexecuted instantiation: gdevm56.c:colors_are_separable_and_linear
Unexecuted instantiation: gdevm64.c:colors_are_separable_and_linear
Unexecuted instantiation: gdevmx.c:colors_are_separable_and_linear
Unexecuted instantiation: gdevdsha.c:colors_are_separable_and_linear
Unexecuted instantiation: gxscanc.c:colors_are_separable_and_linear
Unexecuted instantiation: gdevdrop.c:colors_are_separable_and_linear
Unexecuted instantiation: gdevmr1.c:colors_are_separable_and_linear
Unexecuted instantiation: gdevmr2n.c:colors_are_separable_and_linear
Unexecuted instantiation: gdevmr8n.c:colors_are_separable_and_linear
Unexecuted instantiation: gdevrops.c:colors_are_separable_and_linear
Unexecuted instantiation: gsrop.c:colors_are_separable_and_linear
Unexecuted instantiation: zcolor1.c:colors_are_separable_and_linear
Unexecuted instantiation: zht1.c:colors_are_separable_and_linear
Unexecuted instantiation: zupath.c:colors_are_separable_and_linear
Unexecuted instantiation: gdevhit.c:colors_are_separable_and_linear
Unexecuted instantiation: zdps1.c:colors_are_separable_and_linear
Unexecuted instantiation: zchar1.c:colors_are_separable_and_linear
Unexecuted instantiation: zcharout.c:colors_are_separable_and_linear
Unexecuted instantiation: zfont1.c:colors_are_separable_and_linear
Unexecuted instantiation: zusparam.c:colors_are_separable_and_linear
Unexecuted instantiation: zchar42.c:colors_are_separable_and_linear
Unexecuted instantiation: zfont0.c:colors_are_separable_and_linear
Unexecuted instantiation: zfdctd.c:colors_are_separable_and_linear
Unexecuted instantiation: zdevice2.c:colors_are_separable_and_linear
Unexecuted instantiation: zpcolor.c:colors_are_separable_and_linear
Unexecuted instantiation: idisp.c:colors_are_separable_and_linear
Unexecuted instantiation: psapi.c:colors_are_separable_and_linear
Unexecuted instantiation: zfileio.c:colors_are_separable_and_linear
Unexecuted instantiation: zbfont.c:colors_are_separable_and_linear
Unexecuted instantiation: zchar.c:colors_are_separable_and_linear
Unexecuted instantiation: zcolor.c:colors_are_separable_and_linear
Unexecuted instantiation: zdevice.c:colors_are_separable_and_linear
Unexecuted instantiation: zfont.c:colors_are_separable_and_linear
Unexecuted instantiation: zht.c:colors_are_separable_and_linear
Unexecuted instantiation: zimage.c:colors_are_separable_and_linear
Unexecuted instantiation: zfapi.c:colors_are_separable_and_linear
Unexecuted instantiation: zcsindex.c:colors_are_separable_and_linear
Unexecuted instantiation: zht2.c:colors_are_separable_and_linear
Unexecuted instantiation: zcssepr.c:colors_are_separable_and_linear
Unexecuted instantiation: zfunc4.c:colors_are_separable_and_linear
Unexecuted instantiation: zform.c:colors_are_separable_and_linear
Unexecuted instantiation: zimage3.c:colors_are_separable_and_linear
Unexecuted instantiation: zicc.c:colors_are_separable_and_linear
Unexecuted instantiation: ztrans.c:colors_are_separable_and_linear
Unexecuted instantiation: zpdfops.c:colors_are_separable_and_linear
Unexecuted instantiation: ghostpdf.c:colors_are_separable_and_linear
Unexecuted instantiation: pdf_dict.c:colors_are_separable_and_linear
Unexecuted instantiation: pdf_array.c:colors_are_separable_and_linear
Unexecuted instantiation: pdf_xref.c:colors_are_separable_and_linear
Unexecuted instantiation: pdf_int.c:colors_are_separable_and_linear
Unexecuted instantiation: pdf_file.c:colors_are_separable_and_linear
Unexecuted instantiation: pdf_path.c:colors_are_separable_and_linear
Unexecuted instantiation: pdf_colour.c:colors_are_separable_and_linear
Unexecuted instantiation: pdf_pattern.c:colors_are_separable_and_linear
Unexecuted instantiation: pdf_gstate.c:colors_are_separable_and_linear
Unexecuted instantiation: pdf_stack.c:colors_are_separable_and_linear
Unexecuted instantiation: pdf_image.c:colors_are_separable_and_linear
Unexecuted instantiation: pdf_page.c:colors_are_separable_and_linear
Unexecuted instantiation: pdf_annot.c:colors_are_separable_and_linear
Unexecuted instantiation: pdf_mark.c:colors_are_separable_and_linear
Unexecuted instantiation: pdf_font.c:colors_are_separable_and_linear
Unexecuted instantiation: pdf_font0.c:colors_are_separable_and_linear
Unexecuted instantiation: pdf_ciddec.c:colors_are_separable_and_linear
Unexecuted instantiation: pdf_font1.c:colors_are_separable_and_linear
Unexecuted instantiation: pdf_font1C.c:colors_are_separable_and_linear
Unexecuted instantiation: pdf_fontps.c:colors_are_separable_and_linear
Unexecuted instantiation: pdf_font3.c:colors_are_separable_and_linear
Unexecuted instantiation: pdf_fontTT.c:colors_are_separable_and_linear
Unexecuted instantiation: pdf_font11.c:colors_are_separable_and_linear
Unexecuted instantiation: pdf_cmap.c:colors_are_separable_and_linear
Unexecuted instantiation: pdf_fmap.c:colors_are_separable_and_linear
Unexecuted instantiation: pdf_text.c:colors_are_separable_and_linear
Unexecuted instantiation: pdf_shading.c:colors_are_separable_and_linear
Unexecuted instantiation: pdf_func.c:colors_are_separable_and_linear
Unexecuted instantiation: pdf_trans.c:colors_are_separable_and_linear
Unexecuted instantiation: pdf_device.c:colors_are_separable_and_linear
Unexecuted instantiation: pdf_misc.c:colors_are_separable_and_linear
Unexecuted instantiation: pdf_optcontent.c:colors_are_separable_and_linear
Unexecuted instantiation: pdf_check.c:colors_are_separable_and_linear
Unexecuted instantiation: pdf_sec.c:colors_are_separable_and_linear
Unexecuted instantiation: pdf_utf8.c:colors_are_separable_and_linear
Unexecuted instantiation: pdf_deref.c:colors_are_separable_and_linear
Unexecuted instantiation: pdf_repair.c:colors_are_separable_and_linear
Unexecuted instantiation: pdf_obj.c:colors_are_separable_and_linear
Unexecuted instantiation: pdf_doc.c:colors_are_separable_and_linear
Unexecuted instantiation: zfjpx.c:colors_are_separable_and_linear
Unexecuted instantiation: imainarg.c:colors_are_separable_and_linear
Unexecuted instantiation: gsclipsr.c:colors_are_separable_and_linear
Unexecuted instantiation: gscdevn.c:colors_are_separable_and_linear
Unexecuted instantiation: gxdevndi.c:colors_are_separable_and_linear
Unexecuted instantiation: gxclipm.c:colors_are_separable_and_linear
Unexecuted instantiation: gscolor3.c:colors_are_separable_and_linear
Unexecuted instantiation: gsptype2.c:colors_are_separable_and_linear
Unexecuted instantiation: gsshade.c:colors_are_separable_and_linear
Unexecuted instantiation: gxshade1.c:colors_are_separable_and_linear
Unexecuted instantiation: gxshade4.c:colors_are_separable_and_linear
gxshade6.c:colors_are_separable_and_linear
Line
Count
Source
436
237k
{
437
237k
    return (info->separable_and_linear >= GX_CINFO_SEP_LIN);
438
237k
}
Unexecuted instantiation: gscolor1.c:colors_are_separable_and_linear
Unexecuted instantiation: gsht1.c:colors_are_separable_and_linear
Unexecuted instantiation: gscolor2.c:colors_are_separable_and_linear
Unexecuted instantiation: gspcolor.c:colors_are_separable_and_linear
Unexecuted instantiation: gxclip2.c:colors_are_separable_and_linear
Unexecuted instantiation: gspath1.c:colors_are_separable_and_linear
Unexecuted instantiation: gstype42.c:colors_are_separable_and_linear
Unexecuted instantiation: gxchrout.c:colors_are_separable_and_linear
Unexecuted instantiation: gxttfb.c:colors_are_separable_and_linear
Unexecuted instantiation: gzspotan.c:colors_are_separable_and_linear
Unexecuted instantiation: gscie.c:colors_are_separable_and_linear
Unexecuted instantiation: gscsepr.c:colors_are_separable_and_linear
Unexecuted instantiation: gxblend1.c:colors_are_separable_and_linear
Unexecuted instantiation: gdevepo.c:colors_are_separable_and_linear
Unexecuted instantiation: gxclbits.c:colors_are_separable_and_linear
Unexecuted instantiation: gxclrast.c:colors_are_separable_and_linear
Unexecuted instantiation: gschar0.c:colors_are_separable_and_linear
Unexecuted instantiation: gsfont0.c:colors_are_separable_and_linear
Unexecuted instantiation: gstype1.c:colors_are_separable_and_linear
Unexecuted instantiation: gxtype1.c:colors_are_separable_and_linear
Unexecuted instantiation: gstype2.c:colors_are_separable_and_linear
Unexecuted instantiation: gsicc_profilecache.c:colors_are_separable_and_linear
Unexecuted instantiation: gdeveprn.c:colors_are_separable_and_linear
Unexecuted instantiation: eprnparm.c:colors_are_separable_and_linear
Unexecuted instantiation: eprnrend.c:colors_are_separable_and_linear
Unexecuted instantiation: eprnfs.c:colors_are_separable_and_linear
Unexecuted instantiation: gscicach.c:colors_are_separable_and_linear
Unexecuted instantiation: gsdevmem.c:colors_are_separable_and_linear
Unexecuted instantiation: gsfont.c:colors_are_separable_and_linear
Unexecuted instantiation: gxacpath.c:colors_are_separable_and_linear
Unexecuted instantiation: gxccache.c:colors_are_separable_and_linear
Unexecuted instantiation: gxccman.c:colors_are_separable_and_linear
Unexecuted instantiation: gxidata.c:colors_are_separable_and_linear
Unexecuted instantiation: gxpdash.c:colors_are_separable_and_linear
Unexecuted instantiation: pdf_loop_detect.c:colors_are_separable_and_linear
Unexecuted instantiation: pdf_fapi.c:colors_are_separable_and_linear
Unexecuted instantiation: gxshade.c:colors_are_separable_and_linear
Unexecuted instantiation: gscscie.c:colors_are_separable_and_linear
Unexecuted instantiation: gschar.c:colors_are_separable_and_linear
439
440
441
/* NB encoding flag ignored */
442
#define dci_extended_alpha_values(mcmp, nc, p, d, gi, mg, \
443
                        mc, dg, dc, ta, ga, sl, cn)   \
444
    {mcmp /* max components */, \
445
     nc /* number components */, \
446
     p /* polarity */, \
447
     d /* depth */, \
448
     gi /* gray index */, \
449
     mg /* max gray */, \
450
     mc /* max color */, \
451
     dg /* dither grays */, \
452
     dc /* dither colors */, \
453
     { ta, ga } /* antialias info text, graphics */, \
454
     sl /* separable_and_linear */, \
455
     { 0 } /* component shift */, \
456
     { 0 } /* component bits */, \
457
     { 0 } /* component mask */, \
458
     cn /* process color name */, \
459
     GX_CINFO_OPMSUPPORTED_UNKNOWN /* opmsupported */, \
460
     0  /* process_cmps */ }
461
462
/*
463
 * The "has color" macro requires a slightly different definition
464
 * with the more general color models.
465
 */
466
#define gx_device_has_color(dev)                           \
467
179k
   ( (dev)->color_info.num_components > 1 ||                \
468
179k
     (dev)->color_info.gray_index == GX_CINFO_COMP_NO_INDEX )
469
470
/* parameter initialization macros for backwards compatibility */
471
472
/*
473
 * These macros are needed to define values for fields added when
474
 * DeviceN compatibility was added.  Previously the graphics
475
 * library and the much of the device code examined the number of
476
 * components and assume that 1 --> DeviceGray, 3-->DeviceRGB,
477
 * and 4--> DeviceCMYK.  Since the old device code does not
478
 * specify a color model, these macros make the same assumption.
479
 * This assumption is incorrect for a DeviceN device and thus
480
 * the following macros should not be used.  The previously
481
 * defined macros should be used for new devices.
482
 */
483
484
#define dci_std_cm_name(nc)                 \
485
    ( (nc) == 1 ? "DeviceGray"              \
486
                : ((nc) == 3 ? "DeviceRGB"  \
487
                             : "DeviceCMYK") )
488
489
#define dci_std_polarity(nc)                    \
490
0
    ( (nc) >= 4 ? GX_CINFO_POLARITY_SUBTRACTIVE \
491
0
                : GX_CINFO_POLARITY_ADDITIVE )
492
493
      /*
494
       * Get the default gray_index value, based on the number of color
495
       * components. Note that this must be consistent with the index
496
       * implicitly used by the get_color_comp_index method and the
497
       * procedures in the structure returned by the
498
       * get_color_mapping_procs method.
499
       */
500
#define dci_std_gray_index(nc)    \
501
    ((nc) == 3 ? GX_CINFO_COMP_NO_INDEX : (nc) - 1)
502
503
#define dci_alpha_values(nc, depth, mg, mc, dg, dc, ta, ga) \
504
    dci_extended_alpha_values(nc, nc,         \
505
                              dci_std_polarity(nc),         \
506
                              depth,                        \
507
                              dci_std_gray_index(nc),       \
508
                              mg, mc, dg, dc, ta, ga,       \
509
                              GX_CINFO_UNKNOWN_SEP_LIN,     \
510
                              dci_std_cm_name(nc) )
511
512
/*
513
 * Determine the depth corresponding to a color_bits specification.
514
 * Note that color_bits == 0 ==> depth == 0; surprisingly this
515
 * case is used.
516
*/
517
#define dci_std_color_depth(color_bits)   \
518
    ((color_bits) == 1 ? 1 : ((color_bits) + 7) & ~7)
519
520
/*
521
 * Determine the number of components corresponding to a color_bits
522
 * specification. A device is monochrome only if it is bi-level;
523
 * the 4 and 8 bit cases are handled as mapped color displays (for
524
 * compatibility with existing code). The peculiar color_bits = 0
525
 * case is considered monochrome, for no apparent reason.
526
 */
527
#define dci_std_color_num_components(color_bits)      \
528
    ( (color_bits) <= 1 ? 1                           \
529
                      : ((color_bits) % 3 == 0 ||     \
530
                         (color_bits) == 4     ||     \
531
                         (color_bits) == 8       ) ? 3 : 4 )
532
533
/*
534
 * The number of bits assigned to the gray/black color component,
535
 * assuming there is such a component. The underlying assumption
536
 * is that any extra bits are assigned to this component.
537
 */
538
#define dci_std_gray_bits(nc, color_bits)    \
539
    ((color_bits) - ((nc) - 1) * ((color_bits) / (nc)))
540
541
/*
542
 * The number of bits assigned to a color component. The underlying
543
 * assumptions are that there is a gray component if nc != 3, and
544
 * that the gray component uses any extra bits.
545
 */
546
#define dci_std_color_bits(nc, color_bits)                        \
547
    ( (nc) == 3                                                   \
548
        ? (color_bits) / (nc)                                     \
549
        : ( (nc) == 1                                             \
550
              ? 0                                                 \
551
              : ((color_bits) - dci_std_gray_bits(nc, color_bits))\
552
                     / ((nc) == 1 ? (1) : (nc) - 1) ) )
553
554
/*
555
 * Determine the max_gray and max_color values based on the number
556
 * of components and the color_bits value. See the comments above
557
 * for information on the underlying assumptions.
558
 */
559
#define dci_std_color_max_gray(nc, color_bits)            \
560
    ( (nc) == 3                                           \
561
        ? 0                                               \
562
        : (1 << dci_std_gray_bits(nc, color_bits)) - 1 )
563
564
#define dci_std_color_max_color(nc, color_bits)               \
565
    ( (nc) == 1                                               \
566
        ? 0                                                   \
567
        : (1 << dci_std_color_bits(nc, color_bits)) - 1 )
568
569
/*
570
 * Define a color model based strictly on the number of bits
571
 * available for color representation. Please note, this is only
572
 * intended to work for a limited set of devices.
573
 */
574
#define dci_std_color_(nc, color_bits)                        \
575
    dci_values( nc,                                           \
576
                dci_std_color_depth(color_bits),              \
577
                dci_std_color_max_gray(nc, color_bits),       \
578
                dci_std_color_max_color(nc, color_bits),      \
579
                dci_std_color_max_gray(nc, color_bits) + 1,   \
580
                dci_std_color_max_color(nc, color_bits) + 1 )
581
582
#define dci_std_color(color_bits)                             \
583
    dci_std_color_( dci_std_color_num_components(color_bits), \
584
                    color_bits )
585
586
#define dci_values(nc,depth,mg,mc,dg,dc)\
587
  dci_alpha_values(nc, depth, mg, mc, dg, dc, 1, 1)
588
#define dci_black_and_white dci_std_color(1)
589
#define dci_black_and_white_() dci_black_and_white
590
#define dci_color(depth,maxv,dither)\
591
  dci_values(3, depth, maxv, maxv, dither, dither)
592
593
/*
594
 * Macro to access the name of the process color model.
595
 */
596
#define get_process_color_model_name(dev) \
597
20.1k
    ((dev)->color_info.cm_name)
598
599
/* Structure for device procedures. */
600
typedef struct gx_device_procs_s gx_device_procs;
601
602
/* Structure for page device procedures. */
603
/* Note that these take the graphics state as a parameter. */
604
typedef struct gx_page_device_procs_s {
605
606
#define dev_page_proc_install(proc)\
607
  int proc(gx_device *dev, gs_gstate *pgs)
608
    dev_page_proc_install((*install));
609
610
#define dev_page_proc_begin_page(proc)\
611
  int proc(gx_device *dev, gs_gstate *pgs)
612
    dev_page_proc_begin_page((*begin_page));
613
614
#define dev_page_proc_end_page(proc)\
615
  int proc(gx_device *dev, int reason, gs_gstate *pgs)
616
    dev_page_proc_end_page((*end_page));
617
618
} gx_page_device_procs;
619
620
/* Default procedures */
621
dev_page_proc_install(gx_default_install);
622
dev_page_proc_begin_page(gx_default_begin_page);
623
dev_page_proc_end_page(gx_default_end_page);
624
625
/* ----------- A stroked gradient recognizer data ----------*/
626
627
/* This structure is associated with a device for
628
   internal needs of the graphics library.
629
   The main purpose is to suppress stroke adjustment
630
   when painting a gradient as a set of parallel strokes.
631
   Such gradients still come from some obsolete 3d party software.
632
   See bug 687974,
633
 */
634
635
typedef struct gx_stroked_gradient_recognizer_s {
636
    bool stroke_stored;
637
    gs_fixed_point orig[4], adjusted[4]; /* from, to, width, vector. */
638
} gx_stroked_gradient_recognizer_t;
639
640
/* ---------------- Device structure ---------------- */
641
642
/*
643
 * Define the generic device structure.
644
 *
645
 * All devices start off with no device procs. The initialize_device_procs
646
 * function is called as soon as the device is copied from its prototype,
647
 * and that fills in the procs table with the device procedure pointers.
648
 * This can never fail.
649
 *
650
 * Next, the 'initialize_device' proc (if there is one) is called to do
651
 * the minimal initialization required for a device.
652
 *
653
 * The choice of the name Margins (rather than, say, HWOffset), and the
654
 * specification in terms of a default device resolution rather than
655
 * 1/72" units, are due to Adobe.
656
 *
657
 * ****** NOTE: If you define any subclasses of gx_device, you *must* define
658
 * ****** the finalization procedure as gx_device_finalize.  Finalization
659
 * ****** procedures are not automatically inherited.
660
 */
661
typedef struct gx_device_cached_colors_s {
662
    gx_color_index black, white;
663
} gx_device_cached_colors_t;
664
665
/*
666
 * Define the parameters controlling banding.
667
 */
668
/* if you make any additions/changes to this structure you need to make
669
   the appropriate additions/changes to gdev_space_params_cmp() */
670
typedef struct gx_band_params_s {
671
    int BandWidth;    /* (optional) band width in pixels */
672
    int BandHeight;   /* (optional) */
673
    size_t BandBufferSpace; /* (optional) */
674
    size_t tile_cache_size; /* (optional) */
675
} gx_band_params_t;
676
677
#define BAND_PARAMS_INITIAL_VALUES 0, 0, 0, 0
678
679
typedef enum {
680
    BandingAuto = 0,
681
    BandingAlways,
682
    BandingNever
683
} gdev_banding_type;
684
685
/* if you make any additions/changes to this structure you need to make
686
   the appropriate additions/changes to the gdev_space_params_cmp() */
687
typedef struct gdev_space_params_s {
688
    size_t MaxBitmap;   /* max size of non-buffered bitmap */
689
    size_t BufferSpace;   /* space to use for buffer */
690
    gx_band_params_t band;  /* see gxband.h */
691
    bool params_are_read_only;  /* true if put_params may not modify this struct */
692
    gdev_banding_type banding_type; /* used to force banding or bitmap */
693
} gdev_space_params;
694
695
/* Returns 0 for a match, non-zero otherwise. Like memcmp, but allowing
696
 * for uninitialised padding. */
697
int gdev_space_params_cmp(const gdev_space_params sp1,
698
                          const gdev_space_params sp2);
699
700
typedef struct gdev_nupcontrol_s {
701
        rc_header rc;
702
        char *nupcontrol_str;   /* NUL termintated string */
703
} gdev_nupcontrol;
704
705
typedef struct gdev_pagelist_s {
706
        rc_header rc;
707
        char *Pages;
708
        int PagesSize;
709
} gdev_pagelist;
710
711
#define dev_t_proc_initialize_device_procs(proc, dev_t)\
712
  void proc(dev_t *dev)
713
#define dev_proc_initialize_device_procs(proc)\
714
  dev_t_proc_initialize_device_procs((proc), gx_device)
715
716
#define gx_device_common\
717
        int params_size;    /* OBSOLETE if stype != 0: */\
718
                                        /* size of this structure */\
719
        dev_proc_initialize_device_procs(*initialize_device_procs);\
720
                                        /* initialize_device_procs */\
721
        const char *dname;    /* the device name */\
722
        gs_memory_t *memory;    /* (0 iff static prototype) */\
723
        gs_memory_type_ptr_t stype; /* memory manager structure type, */\
724
                                        /* may be 0 if static prototype */\
725
        bool stype_is_dynamic;    /* if true, free the stype when */\
726
                                        /* freeing the device */\
727
        void (*finalize)(gx_device *);  /* finalization to execute */\
728
                                        /* before closing device, if any */\
729
        rc_header rc;     /* reference count from gstates */\
730
                                        /* and targets, +1 if retained */\
731
        bool retained;      /* true if retained */\
732
        gx_device *parent;\
733
        gx_device *child;\
734
        void *subclass_data;    /* Must be immovable, non-GC memory, used to store subclass data */\
735
        gdev_pagelist *PageList;\
736
        bool is_open;     /* true if device has been opened */\
737
        int max_fill_band;    /* limit on band size for fill, */\
738
                                        /* must be 0 or a power of 2 */\
739
                                        /* (see gdevabuf.c for more info) */\
740
        gx_device_color_info color_info;  /* color information */\
741
        gx_device_cached_colors_t cached_colors;\
742
        int width;      /* width in pixels */\
743
        int height;     /* height in pixels */\
744
        int pad;                        /* pad to use for buffers; 0 for default */\
745
        int log2_align_mod;             /* align to use for buffers; 0 for default */\
746
        int is_planar;                  /* 1 planar, 0 for chunky */\
747
        int LeadingEdge;                /* see below */\
748
        float MediaSize[2];   /* media dimensions in points */\
749
        float ImagingBBox[4];   /* imageable region in points */\
750
        bool ImagingBBox_set;\
751
        float HWResolution[2];    /* resolution, dots per inch */\
752
        float Margins[2];   /* offset of physical page corner */\
753
                                        /* from device coordinate (0,0), */\
754
                                        /* in units given by HWResolution */\
755
        float HWMargins[4];   /* margins around imageable area, */\
756
                                        /* in default user units ("points") */\
757
        int FirstPage;\
758
        int LastPage;\
759
        bool PageHandlerPushed;    /* Handles FirstPage and LastPage operations */\
760
        bool DisablePageHandler;   /* Can be set by the interpreter if it will process FirstPage and LastPage itself */\
761
        int ObjectFilter;          /* Bit field for which object filters to apply */\
762
        bool ObjectHandlerPushed;  /* Handles filtering of objects to devices */\
763
        gdev_nupcontrol *NupControl;\
764
        bool NupHandlerPushed;     /* Handles Nup operations */\
765
        long PageCount;     /* number of pages written */\
766
        long ShowpageCount;   /* number of calls on showpage */\
767
        int NumCopies;\
768
        bool NumCopies_set;\
769
        bool IgnoreNumCopies;   /* if true, force num_copies = 1 */\
770
        bool UseCIEColor;   /* for PS LL3 */\
771
        bool LockSafetyParams;    /* If true, prevent unsafe changes */\
772
        long band_offset_x;   /* offsets of clist band base to (mem device) buffer */\
773
        long band_offset_y;   /* for rendering that is phase sensitive (old wtsimdi) */\
774
        bool BLS_force_memory;\
775
        gx_stroked_gradient_recognizer_t sgr;\
776
        size_t MaxPatternBitmap;  /* Threshold for switching to pattern_clist mode */\
777
        bool page_uses_transparency;    /* PDF 1.4 transparency is used. */\
778
        bool page_uses_overprint;       /* overprint is used. */\
779
        gdev_space_params space_params;\
780
        cmm_dev_profile_t *icc_struct;  /* object dependent profiles */\
781
        gs_graphics_type_tag_t   graphics_type_tag;   /* e.g. vector, image or text */\
782
        int interpolate_control;      /* default 1 (use image /Interpolate value), 0 is NOINTERPOLATE. */\
783
                                      /* > 1 limits interpolation, < 0 forces interpolation */\
784
        gx_page_device_procs page_procs;       /* must be last */\
785
                /* end of std_device_body */\
786
        gx_device_procs procs /* object procedures */
787
788
183k
#define LEADINGEDGE_MASK 3
789
20.1k
#define LEADINGEDGE_SET_MASK (1 << 2)
790
6.32k
#define LEADINGEDGE_REQ_BIT (1 << 3)
791
0
#define LEADINGEDGE_REQ_VAL_SHIFT 4
792
0
#define LEADINGEDGE_REQ_VAL (LEADINGEDGE_MASK << LEADINGEDGE_REQ_VAL_SHIFT)
793
/*
794
 * The lower two bits of LeadingEdge correspond to the pagedevice
795
 * parameter of the same name. The next bit (hex value 4) is set if
796
 * the LeadingEdge was set explicitly by the user using setpagedevice.
797
 * Otherwise, the value is the default as determined by the device (or
798
 * zero if the device has no logic for setting LeadingEdge based on
799
 * other parameters (such as %MediaSource). This field replaces the
800
 * earlier TrayOrientation, which had a similar purpose but was not
801
 * compatible with the PostScript spec.
802
 */
803
804
/*
805
 * Note: x/y_pixels_per_inch are here only for backward compatibility.
806
 * They should not be used in new code.
807
 */
808
0
#define x_pixels_per_inch HWResolution[0]
809
0
#define y_pixels_per_inch HWResolution[1]
810
#define offset_margin_values(x, y, left, bot, right, top)\
811
  {x, y}, {left, bot, right, top}
812
#define margin_values(left, bot, right, top)\
813
  offset_margin_values(0, 0, left, bot, right, top)
814
#define no_margins margin_values(0, 0, 0, 0)
815
#define no_margins_() no_margins
816
/* Define macros that give the page offset ("Margins") in inches. */
817
#define dev_x_offset(dev) ((dev)->Margins[0] / (dev)->HWResolution[0])
818
0
#define dev_y_offset(dev) ((dev)->Margins[1] / (dev)->HWResolution[1])
819
#define dev_y_offset_points(dev) (dev_y_offset(dev) * 72.0)
820
/* Note that left/right/top/bottom are defined relative to */
821
/* the physical paper, not the coordinate system. */
822
/* For backward compatibility, we define macros that give */
823
/* the margins in inches. */
824
0
#define dev_l_margin(dev) ((dev)->HWMargins[0] / 72.0)
825
0
#define dev_b_margin(dev) ((dev)->HWMargins[1] / 72.0)
826
#define dev_b_margin_points(dev) ((dev)->HWMargins[1])
827
0
#define dev_r_margin(dev) ((dev)->HWMargins[2] / 72.0)
828
0
#define dev_t_margin(dev) ((dev)->HWMargins[3] / 72.0)
829
#define dev_t_margin_points(dev) ((dev)->HWMargins[3])
830
/* The extra () are to prevent premature expansion. */
831
#define open_init_closed() 0 /*false*/, 0 /* max_fill_band */
832
#define open_init_open() 1 /*true*/, 0  /* max_fill_band */
833
/* Accessors for device procedures */
834
1.08G
#define dev_proc(dev, p) ((dev)->procs.p)
835
259M
#define set_dev_proc(dev, p, proc) ((dev)->procs.p = (proc))
836
#define fill_dev_proc(dev, p, dproc)\
837
220M
  if ( dev_proc(dev, p) == 0 ) set_dev_proc(dev, p, dproc)
838
#define assign_dev_procs(todev, fromdev)\
839
0
  ((todev)->procs = (fromdev)->procs)
840
841
/* The bit fields used to filter objects out. If any bit field is set
842
 * then objects of that type will not be rendered/output.
843
 */
844
typedef enum FILTER_FLAGS {
845
    FILTERIMAGE = 1,
846
    FILTERTEXT = 2,
847
    FILTERVECTOR = 4
848
} OBJECT_FILTER_FLAGS;
849
850
/* ---------------- Device procedures ---------------- */
851
852
/*
853
 * Definition of device procedures.
854
 * Note that the gx_device * argument is not declared const,
855
 * because many drivers maintain dynamic state in the device structure.
856
 * Note also that the structure is defined as a template, so that
857
 * we can instantiate it with device subclasses.
858
 * Because C doesn't have real templates, we must do this with macros.
859
 */
860
861
/* Define macros for declaring device procedures. */
862
863
#define dev_t_proc_initialize_device(proc, dev_t)\
864
  int proc(dev_t *dev)
865
#define dev_proc_initialize_device(proc)\
866
  dev_t_proc_initialize_device(proc, gx_device)
867
868
#define dev_t_proc_open_device(proc, dev_t)\
869
  int proc(dev_t *dev)
870
#define dev_proc_open_device(proc)\
871
  dev_t_proc_open_device(proc, gx_device)
872
873
#define dev_t_proc_get_initial_matrix(proc, dev_t)\
874
  void proc(dev_t *dev, gs_matrix *pmat)
875
#define dev_proc_get_initial_matrix(proc)\
876
  dev_t_proc_get_initial_matrix(proc, gx_device)
877
878
#define dev_t_proc_sync_output(proc, dev_t)\
879
  int proc(dev_t *dev)
880
#define dev_proc_sync_output(proc)\
881
  dev_t_proc_sync_output(proc, gx_device)
882
883
#define dev_t_proc_output_page(proc, dev_t)\
884
  int proc(dev_t *dev, int num_copies, int flush)
885
#define dev_proc_output_page(proc)\
886
  dev_t_proc_output_page(proc, gx_device)
887
888
#define dev_t_proc_close_device(proc, dev_t)\
889
  int proc(dev_t *dev)
890
#define dev_proc_close_device(proc)\
891
  dev_t_proc_close_device(proc, gx_device)
892
893
#define dev_t_proc_map_rgb_color(proc, dev_t)\
894
2.97M
  gx_color_index proc(dev_t *dev, const gx_color_value cv[])
895
#define dev_proc_map_rgb_color(proc)\
896
2.97M
  dev_t_proc_map_rgb_color(proc, gx_device)
897
898
#define dev_t_proc_map_color_rgb(proc, dev_t)\
899
2.97M
  int proc(dev_t *dev,\
900
2.97M
    gx_color_index color, gx_color_value rgb[3])
901
#define dev_proc_map_color_rgb(proc)\
902
2.97M
  dev_t_proc_map_color_rgb(proc, gx_device)
903
904
#define dev_t_proc_fill_rectangle(proc, dev_t)\
905
3.10M
  int proc(dev_t *dev,\
906
3.10M
    int x, int y, int width, int height, gx_color_index color)
907
#define dev_proc_fill_rectangle(proc)\
908
3.10M
  dev_t_proc_fill_rectangle(proc, gx_device)
909
910
#define dev_t_proc_copy_mono(proc, dev_t)\
911
1.42M
  int proc(dev_t *dev,\
912
1.42M
    const byte *data, int data_x, int raster, gx_bitmap_id id,\
913
1.42M
    int x, int y, int width, int height,\
914
1.42M
    gx_color_index color0, gx_color_index color1)
915
#define dev_proc_copy_mono(proc)\
916
1.42M
  dev_t_proc_copy_mono(proc, gx_device)
917
918
#define dev_t_proc_copy_color(proc, dev_t)\
919
1.30M
  int proc(dev_t *dev,\
920
1.30M
    const byte *data, int data_x, int raster, gx_bitmap_id id,\
921
1.30M
    int x, int y, int width, int height)
922
#define dev_proc_copy_color(proc)\
923
1.30M
  dev_t_proc_copy_color(proc, gx_device)
924
925
                /* Added in release 2.4, changed in 2.8, */
926
                /* renamed in 2.9.6 */
927
928
#define dev_t_proc_get_params(proc, dev_t)\
929
  int proc(dev_t *dev, gs_param_list *plist)
930
#define dev_proc_get_params(proc)\
931
  dev_t_proc_get_params(proc, gx_device)
932
933
#define dev_t_proc_put_params(proc, dev_t)\
934
  int proc(dev_t *dev, gs_param_list *plist)
935
#define dev_proc_put_params(proc)\
936
  dev_t_proc_put_params(proc, gx_device)
937
938
                /* Added in release 2.6 */
939
940
#define dev_t_proc_map_cmyk_color(proc, dev_t)\
941
2.97M
  gx_color_index proc(dev_t *dev, const gx_color_value cv[])
942
#define dev_proc_map_cmyk_color(proc)\
943
2.97M
  dev_t_proc_map_cmyk_color(proc, gx_device)
944
945
                /* Added in release 2.8.1 */
946
947
#define dev_t_proc_get_page_device(proc, dev_t)\
948
  gx_device *proc(dev_t *dev)
949
#define dev_proc_get_page_device(proc)\
950
  dev_t_proc_get_page_device(proc, gx_device)
951
952
                /* Added in release 3.20, OBSOLETED in 5.65 */
953
                /* 'Unobsoleted' in 9.55. */
954
955
#define dev_t_proc_get_alpha_bits(proc, dev_t)\
956
  int proc(dev_t *dev, graphics_object_type type)
957
#define dev_proc_get_alpha_bits(proc)\
958
  dev_t_proc_get_alpha_bits(proc, gx_device)
959
960
                /* Added in release 3.20 */
961
962
#define dev_t_proc_copy_alpha(proc, dev_t)\
963
0
  int proc(dev_t *dev, const byte *data, int data_x,\
964
0
    int raster, gx_bitmap_id id, int x, int y, int width, int height,\
965
0
    gx_color_index color, int depth)
966
#define dev_proc_copy_alpha(proc)\
967
0
  dev_t_proc_copy_alpha(proc, gx_device)
968
969
                /* Added in release 3.60, changed in 3.68. */
970
971
#define dev_t_proc_fill_path(proc, dev_t)\
972
29.8k
  int proc(dev_t *dev,\
973
29.8k
    const gs_gstate *pgs, gx_path *ppath,\
974
29.8k
    const gx_fill_params *params,\
975
29.8k
    const gx_drawing_color *pdcolor, const gx_clip_path *pcpath)
976
#define dev_proc_fill_path(proc)\
977
29.8k
  dev_t_proc_fill_path(proc, gx_device)
978
979
#define dev_t_proc_stroke_path(proc, dev_t)\
980
25.9k
  int proc(dev_t *dev,\
981
25.9k
    const gs_gstate *pgs, gx_path *ppath,\
982
25.9k
    const gx_stroke_params *params,\
983
25.9k
    const gx_drawing_color *pdcolor, const gx_clip_path *pcpath)
984
#define dev_proc_stroke_path(proc)\
985
25.9k
  dev_t_proc_stroke_path(proc, gx_device)
986
987
                /* Added in release 9.22 */
988
989
#define dev_t_proc_fill_stroke_path(proc, dev_t)\
990
1.16k
  int proc(dev_t *dev,\
991
1.16k
    const gs_gstate *pgs, gx_path *ppath,\
992
1.16k
    const gx_fill_params *fill_params,\
993
1.16k
    const gx_drawing_color *pdcolor_fill,\
994
1.16k
    const gx_stroke_params *stroke_params,\
995
1.16k
    const gx_drawing_color *pdcolor_stroke,\
996
1.16k
    const gx_clip_path *pcpath)
997
#define dev_proc_fill_stroke_path(proc)\
998
1.16k
  dev_t_proc_fill_stroke_path(proc, gx_device)
999
1000
                /* Added in release 9.57 */
1001
1002
#define dev_t_proc_lock_pattern(proc, dev_t)\
1003
0
  int proc(dev_t *dev,\
1004
0
           gs_gstate *pgs,\
1005
0
           gs_id pattern_id,\
1006
0
           int lock)
1007
#define dev_proc_lock_pattern(proc)\
1008
0
  dev_t_proc_lock_pattern(proc, gx_device)
1009
1010
                /* Added in release 3.60 */
1011
1012
#define dev_t_proc_fill_mask(proc, dev_t)\
1013
0
  int proc(dev_t *dev,\
1014
0
    const byte *data, int data_x, int raster, gx_bitmap_id id,\
1015
0
    int x, int y, int width, int height,\
1016
0
    const gx_drawing_color *pdcolor, int depth,\
1017
0
    gs_logical_operation_t lop, const gx_clip_path *pcpath)
1018
#define dev_proc_fill_mask(proc)\
1019
0
  dev_t_proc_fill_mask(proc, gx_device)
1020
1021
                /* Added in release 3.66, changed in 3.69 */
1022
1023
#define dev_t_proc_fill_trapezoid(proc, dev_t)\
1024
58.1k
  int proc(dev_t *dev,\
1025
58.1k
    const gs_fixed_edge *left, const gs_fixed_edge *right,\
1026
58.1k
    fixed ybot, fixed ytop, bool swap_axes,\
1027
58.1k
    const gx_drawing_color *pdcolor, gs_logical_operation_t lop)
1028
#define dev_proc_fill_trapezoid(proc)\
1029
58.1k
  dev_t_proc_fill_trapezoid(proc, gx_device)
1030
1031
#define dev_t_proc_fill_parallelogram(proc, dev_t)\
1032
86
  int proc(dev_t *dev,\
1033
86
    fixed px, fixed py, fixed ax, fixed ay, fixed bx, fixed by,\
1034
86
    const gx_drawing_color *pdcolor, gs_logical_operation_t lop)
1035
#define dev_proc_fill_parallelogram(proc)\
1036
86
  dev_t_proc_fill_parallelogram(proc, gx_device)
1037
1038
#define dev_t_proc_fill_triangle(proc, dev_t)\
1039
0
  int proc(dev_t *dev,\
1040
0
    fixed px, fixed py, fixed ax, fixed ay, fixed bx, fixed by,\
1041
0
    const gx_drawing_color *pdcolor, gs_logical_operation_t lop)
1042
#define dev_proc_fill_triangle(proc)\
1043
0
  dev_t_proc_fill_triangle(proc, gx_device)
1044
1045
                /* adjustx and adjusty were added in 8.71 to get around a
1046
                 * problem with PCL (Bug 691030). In the fullness of time
1047
                 * hopefully PCL can be fixed to not need them and they can
1048
                 * be removed again. */
1049
1050
#define dev_t_proc_draw_thin_line(proc, dev_t)\
1051
0
  int proc(dev_t *dev,\
1052
0
    fixed fx0, fixed fy0, fixed fx1, fixed fy1,\
1053
0
    const gx_drawing_color *pdcolor, gs_logical_operation_t lop,\
1054
0
    fixed adjustx, fixed adjusty)
1055
#define dev_proc_draw_thin_line(proc)\
1056
0
  dev_t_proc_draw_thin_line(proc, gx_device)
1057
1058
                /* Added in release 3.68 */
1059
1060
#define dev_t_proc_strip_tile_rectangle(proc, dev_t)\
1061
0
  int proc(dev_t *dev,\
1062
0
    const gx_strip_bitmap *tiles, int x, int y, int width, int height,\
1063
0
    gx_color_index color0, gx_color_index color1,\
1064
0
    int phase_x, int phase_y)
1065
#define dev_proc_strip_tile_rectangle(proc)\
1066
0
  dev_t_proc_strip_tile_rectangle(proc, gx_device)
1067
1068
                /* Added in release 4.20 */
1069
1070
#define dev_t_proc_get_clipping_box(proc, dev_t)\
1071
  void proc(dev_t *dev, gs_fixed_rect *pbox)
1072
#define dev_proc_get_clipping_box(proc)\
1073
  dev_t_proc_get_clipping_box(proc, gx_device)
1074
1075
                /* Added in release 5.20, changed in 5.23 */
1076
1077
#define dev_t_proc_begin_typed_image(proc, dev_t)\
1078
2.66k
  int proc(dev_t *dev,\
1079
2.66k
    const gs_gstate *pgs, const gs_matrix *pmat,\
1080
2.66k
    const gs_image_common_t *pim, const gs_int_rect *prect,\
1081
2.66k
    const gx_drawing_color *pdcolor, const gx_clip_path *pcpath,\
1082
2.66k
    gs_memory_t *memory, gx_image_enum_common_t **pinfo)
1083
#define dev_proc_begin_typed_image(proc)\
1084
2.66k
  dev_t_proc_begin_typed_image(proc, gx_device)
1085
1086
                /* Added in release 5.20 */
1087
1088
#define dev_t_proc_get_bits_rectangle(proc, dev_t)\
1089
0
  int proc(dev_t *dev, const gs_int_rect *prect,\
1090
0
    gs_get_bits_params_t *params)
1091
#define dev_proc_get_bits_rectangle(proc)\
1092
0
  dev_t_proc_get_bits_rectangle(proc, gx_device)
1093
1094
#define dev_t_proc_composite(proc, dev_t)\
1095
  int proc(dev_t *dev,\
1096
    gx_device **pcdev, const gs_composite_t *pcte,\
1097
    gs_gstate *pgs, gs_memory_t *memory, gx_device *cdev)
1098
#define dev_proc_composite(proc)\
1099
  dev_t_proc_composite(proc, gx_device)\
1100
1101
                /* Added in release 5.23 */
1102
1103
#define dev_t_proc_get_hardware_params(proc, dev_t)\
1104
  int proc(dev_t *dev, gs_param_list *plist)
1105
#define dev_proc_get_hardware_params(proc)\
1106
  dev_t_proc_get_hardware_params(proc, gx_device)
1107
1108
                /* Added in release 5.24 */
1109
1110
     /* ... text_begin ... see gstext.h for definition */
1111
1112
                /* Added in release 6.61 (raph) */
1113
1114
/*
1115
  This area of the transparency facilities is in flux.  Here is a proposal
1116
  for extending the driver interface.
1117
*/
1118
1119
/*
1120
  Push the current transparency state (*ppts) onto the associated stack,
1121
  and set *ppts to a new transparency state of the given dimension.  The
1122
  transparency state may copy some or all of the gs_gstate, such as the
1123
  current alpha and/or transparency mask values, and definitely copies the
1124
  parameters.
1125
*/
1126
#define dev_t_proc_begin_transparency_group(proc, dev_t)\
1127
  int proc(gx_device *dev,\
1128
    const gs_transparency_group_params_t *ptgp,\
1129
    const gs_rect *pbbox,\
1130
    gs_gstate *pgs,\
1131
    gs_memory_t *mem)
1132
#define dev_proc_begin_transparency_group(proc)\
1133
  dev_t_proc_begin_transparency_group(proc, gx_device)
1134
1135
/*
1136
  End a transparency group: blend the top element of the transparency
1137
  stack, which must be a group, into the next-to-top element, popping the
1138
  stack.  If the stack only had a single element, blend into the device
1139
  output.  Set *ppts to 0 iff the stack is now empty.  If end_group fails,
1140
  the stack is *not* popped.
1141
*/
1142
#define dev_t_proc_end_transparency_group(proc, dev_t)\
1143
  int proc(gx_device *dev,\
1144
    gs_gstate *pgs)
1145
#define dev_proc_end_transparency_group(proc)\
1146
  dev_t_proc_end_transparency_group(proc, gx_device)
1147
1148
/*
1149
  Push the transparency state and prepare to render a transparency mask.
1150
  This is similar to begin_transparency_group except that it only
1151
  accumulates coverage values, not full pixel values.
1152
*/
1153
#define dev_t_proc_begin_transparency_mask(proc, dev_t)\
1154
  int proc(gx_device *dev,\
1155
    const gx_transparency_mask_params_t *ptmp,\
1156
    const gs_rect *pbbox,\
1157
    gs_gstate *pgs,\
1158
    gs_memory_t *mem)
1159
#define dev_proc_begin_transparency_mask(proc)\
1160
  dev_t_proc_begin_transparency_mask(proc, gx_device)
1161
1162
/*
1163
  Store a pointer to the rendered transparency mask into *pptm, popping the
1164
  stack like end_group.  Normally, the client will follow this by using
1165
  rc_assign to store the rendered mask into pgs->{opacity,shape}.mask.  If
1166
  end_mask fails, the stack is *not* popped.
1167
*/
1168
#define dev_t_proc_end_transparency_mask(proc, dev_t)\
1169
  int proc(gx_device *dev,\
1170
    gs_gstate *pgs)
1171
#define dev_proc_end_transparency_mask(proc)\
1172
  dev_t_proc_end_transparency_mask(proc, gx_device)
1173
1174
/*
1175
  This will clean up the entire device allocations as something went
1176
  wrong in the middle of reading in the source content while we are dealing with
1177
  a transparency device.
1178
*/
1179
#define dev_t_proc_discard_transparency_layer(proc, dev_t)\
1180
  int proc(gx_device *dev,\
1181
    gs_gstate *pgs)
1182
#define dev_proc_discard_transparency_layer(proc)\
1183
  dev_t_proc_discard_transparency_layer(proc, gx_device)
1184
1185
     /* (end of transparency driver interface extensions) */
1186
1187
     /* (start of DeviceN color support) */
1188
/*
1189
 * The following macros are defined in gxcmap.h
1190
 *
1191
 * dev_t_proc_get_color_mapping_procs
1192
 * dev_proc_get_color_mapping_procs
1193
 * dev_t_proc_get_color_comp_index
1194
 * dev_proc_get_color_comp_index
1195
 * dev_t_proc_encode_color
1196
 * dev_proc_encode_color
1197
 * dev_t_proc_decode_color
1198
 * dev_proc_decode_color
1199
 */
1200
     /* (end of DeviceN color support) */
1201
1202
/*
1203
  Fill rectangle with a high level color.
1204
  Return rangecheck, if the device can't handle the high level color.
1205
1206
  The graphics library calls this function with degenerate (widths=0)
1207
  rectangles, to know whether the device can handle a rectangle with
1208
  the high level color. The device should skip such rectangles returning
1209
  a proper code.
1210
1211
  Currently this function is used with gs_rectfill and gs_fillpage.  It is
1212
  also used for the handling of the devn color type for supporting
1213
  large number of spot colorants to planar separation devices.
1214
1215
*/
1216
1217
#define dev_t_proc_fill_rectangle_hl_color(proc, dev_t)\
1218
  int proc(dev_t *dev, const gs_fixed_rect *rect, \
1219
        const gs_gstate *pgs, const gx_drawing_color *pdcolor, \
1220
        const gx_clip_path *pcpath)
1221
#define dev_proc_fill_rectangle_hl_color(proc)\
1222
  dev_t_proc_fill_rectangle_hl_color(proc, gx_device)
1223
1224
/*
1225
  Include a color space into the output.
1226
  This function is used to include DefaultGray, DefaultRGB,
1227
  DefaultCMYK into PDF, PS, EPS output.
1228
  Low level devices should ignore this call.
1229
*/
1230
1231
#define dev_t_proc_include_color_space(proc, dev_t)\
1232
  int proc(dev_t *dev, gs_color_space *cspace, const byte *res_name, int name_length)
1233
#define dev_proc_include_color_space(proc)\
1234
  dev_t_proc_include_color_space(proc, gx_device)
1235
1236
                /* Shading support. */
1237
1238
typedef struct gs_fill_attributes_s {
1239
      const gs_fixed_rect *clip;
1240
      bool swap_axes;
1241
      const gx_device_halftone *ht; /* Reserved for possible use in future. */
1242
      gs_logical_operation_t lop; /* Reserved for possible use in future. */
1243
      fixed ystart, yend; /* Only for X-independent gradients. Base coordinates of the gradient. */
1244
      patch_fill_state_t *pfs; /* For gx_fill_triangle_small. Clients must not change. */
1245
} gs_fill_attributes;
1246
1247
/* Fill a linear color scanline. */
1248
1249
#define dev_t_proc_fill_linear_color_scanline(proc, dev_t)\
1250
0
  int proc(dev_t *dev, const gs_fill_attributes *fa,\
1251
0
        int i, int j, int w, /* scanline coordinates and width */\
1252
0
        const frac31 *c0, /* initial color for the pixel (i,j), the integer part */\
1253
0
        const int32_t *c0_f, /* initial color for the pixel (i,j), the fraction part numerator */\
1254
0
        const int32_t *cg_num, /* color gradient numerator */\
1255
0
        int32_t cg_den /* color gradient denominator */)
1256
#define dev_proc_fill_linear_color_scanline(proc)\
1257
0
  dev_t_proc_fill_linear_color_scanline(proc, gx_device)
1258
1259
/* Fill a linear color trapezoid. */
1260
/* The server assumes a strongly linear color,
1261
   i.e. it can ignore any of c0, c1, c2, c3. */
1262
/* [p0 : p1] - left edge, from bottom to top.
1263
   [p2 : p3] - right edge, from bottom to top.
1264
   The filled area is within Y-spans of both edges. */
1265
/* Either (c0 and c1) or (c2 and c3) may be NULL.
1266
   In this case the color doesn't depend on X (on Y if fa->swap_axes).
1267
   In this case the base coordinates for the color gradient
1268
   may be unequal to p0, p1, p2, p3, and must be provided/taken
1269
   in/from fa->ystart, fa->yend.
1270
   The return value 0 is not allowed in this case. */
1271
/* Return values :
1272
  1 - success;
1273
  0 - Too big. The area isn't filled. The client must decompose the area.
1274
  <0 - error.
1275
 */
1276
1277
#define dev_t_proc_fill_linear_color_trapezoid(proc, dev_t)\
1278
0
  int proc(dev_t *dev, const gs_fill_attributes *fa,\
1279
0
        const gs_fixed_point *p0, const gs_fixed_point *p1,\
1280
0
        const gs_fixed_point *p2, const gs_fixed_point *p3,\
1281
0
        const frac31 *c0, const frac31 *c1,\
1282
0
        const frac31 *c2, const frac31 *c3)
1283
#define dev_proc_fill_linear_color_trapezoid(proc)\
1284
0
  dev_t_proc_fill_linear_color_trapezoid(proc, gx_device)
1285
1286
/* Fill a linear color triangle. */
1287
/* Return values :
1288
  1 - success;
1289
  0 - Too big. The area isn't filled. The client must decompose the area.
1290
  <0 - error.
1291
 */
1292
1293
#define dev_t_proc_fill_linear_color_triangle(proc, dev_t)\
1294
0
  int proc(dev_t *dev, const gs_fill_attributes *fa,\
1295
0
        const gs_fixed_point *p0, const gs_fixed_point *p1,\
1296
0
        const gs_fixed_point *p2,\
1297
0
        const frac31 *c0, const frac31 *c1, const frac31 *c2)
1298
#define dev_proc_fill_linear_color_triangle(proc)\
1299
0
  dev_t_proc_fill_linear_color_triangle(proc, gx_device)
1300
1301
/*
1302
 * Update the equivalent colors for spot colors in a color space.  The default
1303
 * procedure does nothing.  However this routine provides a method for devices
1304
 * to determine an equivalent color for a spot color.  See comments at the
1305
 * start of src/gsequivc.c.
1306
 */
1307
#define dev_t_proc_update_spot_equivalent_colors(proc, dev_t)\
1308
  int proc(dev_t *dev, const gs_gstate * pgs, const gs_color_space *pcs)
1309
#define dev_proc_update_spot_equivalent_colors(proc)\
1310
  dev_t_proc_update_spot_equivalent_colors(proc, gx_device)
1311
1312
/*
1313
 * return a pointer to the devn_params section of a device.  Return NULL
1314
 * if this field is not present within the device.
1315
 */
1316
typedef struct gs_devn_params_s gs_devn_params;
1317
1318
#define dev_t_proc_ret_devn_params(proc, dev_t)\
1319
  gs_devn_params * proc(dev_t *dev)
1320
#define dev_proc_ret_devn_params(proc)\
1321
  dev_t_proc_ret_devn_params(proc, gx_device)
1322
#define dev_proc_ret_devn_params_const(proc)\
1323
  const dev_t_proc_ret_devn_params(proc, const gx_device)
1324
1325
/*
1326
 * Erase page.
1327
 */
1328
1329
#define dev_t_proc_fillpage(proc, dev_t)\
1330
0
  int proc(gx_device *dev, gs_gstate * pgs, gx_device_color *pdevc)
1331
#define dev_proc_fillpage(proc)\
1332
0
  dev_t_proc_fillpage(proc, gx_device)
1333
1334
#define dev_t_proc_push_transparency_state(proc, dev_t)\
1335
  int proc(gx_device *dev,\
1336
    gs_gstate *pgs)
1337
#define dev_proc_push_transparency_state(proc)\
1338
  dev_t_proc_push_transparency_state(proc, gx_device)
1339
1340
#define dev_t_proc_pop_transparency_state(proc, dev_t)\
1341
  int proc(gx_device *dev,\
1342
    gs_gstate *pgs)
1343
#define dev_proc_pop_transparency_state(proc)\
1344
  dev_t_proc_pop_transparency_state(proc, gx_device)
1345
1346
#define dev_t_proc_put_image(proc, dev_t)\
1347
  int proc(gx_device *dev, gx_device *mdev,  const byte **buffers, int num_chan, int x, int y,\
1348
            int width, int height, int row_stride,\
1349
            int alpha_plane_index, int tag_plane_index)
1350
#define dev_proc_put_image(proc)\
1351
  dev_t_proc_put_image(proc, gx_device)
1352
1353
#define dev_t_proc_dev_spec_op(proc, dev_t)\
1354
0
  int proc(gx_device *dev, int op, void *data, int datasize)
1355
#define dev_proc_dev_spec_op(proc)\
1356
  dev_t_proc_dev_spec_op(proc, gx_device)
1357
1358
#define dev_t_proc_copy_planes(proc, dev_t)\
1359
1.30M
  int proc(dev_t *dev,\
1360
1.30M
    const byte *data, int data_x, int raster, gx_bitmap_id id,\
1361
1.30M
    int x, int y, int width, int height, int plane_height)
1362
#define dev_proc_copy_planes(proc)\
1363
1.30M
  dev_t_proc_copy_planes(proc, gx_device)
1364
1365
#define dev_t_proc_get_profile(proc, dev_t)\
1366
  int proc(const dev_t *dev, cmm_dev_profile_t **dev_profile)
1367
#define dev_proc_get_profile(proc)\
1368
  dev_t_proc_get_profile(proc, gx_device)
1369
1370
#define dev_t_proc_set_graphics_type_tag(proc, dev_t)\
1371
  void proc(dev_t *dev, gs_graphics_type_tag_t)
1372
#define dev_proc_set_graphics_type_tag(proc)\
1373
  dev_t_proc_set_graphics_type_tag(proc, gx_device)
1374
1375
#define dev_t_proc_strip_copy_rop2(proc, dev_t)\
1376
0
  int proc(dev_t *dev,\
1377
0
    const byte *sdata, int sourcex, uint sraster, gx_bitmap_id id,\
1378
0
    const gx_color_index *scolors,\
1379
0
    const gx_strip_bitmap *textures, const gx_color_index *tcolors,\
1380
0
    int x, int y, int width, int height,\
1381
0
    int phase_x, int phase_y, gs_logical_operation_t lop,\
1382
0
    uint planar_height)
1383
#define dev_proc_strip_copy_rop2(proc)\
1384
0
  dev_t_proc_strip_copy_rop2(proc, gx_device)
1385
1386
#define dev_t_proc_strip_tile_rect_devn(proc, dev_t)\
1387
  int proc(dev_t *dev,\
1388
    const gx_strip_bitmap *tiles, int x, int y, int width, int height,\
1389
    const gx_drawing_color *pdcolor0, const gx_drawing_color *pdcolor1,\
1390
    int phase_x, int phase_y)
1391
#define dev_proc_strip_tile_rect_devn(proc)\
1392
  dev_t_proc_strip_tile_rect_devn(proc, gx_device)
1393
1394
#define dev_t_proc_copy_alpha_hl_color(proc, dev_t)\
1395
  int proc(dev_t *dev, const byte *data, int data_x,\
1396
    int raster, gx_bitmap_id id, int x, int y, int width, int height,\
1397
    const gx_drawing_color *pdcolor, int depth)
1398
#define dev_proc_copy_alpha_hl_color(proc)\
1399
  dev_t_proc_copy_alpha_hl_color(proc, gx_device)
1400
1401
typedef struct gx_process_page_options_s gx_process_page_options_t;
1402
1403
struct gx_process_page_options_s
1404
{
1405
    int (*init_buffer_fn)(void *arg, gx_device *dev, gs_memory_t *memory, int w, int h, void **buffer);
1406
    void (*free_buffer_fn)(void *arg, gx_device *dev, gs_memory_t *memory, void *buffer);
1407
    int (*process_fn)(void *arg, gx_device *dev, gx_device *bdev, const gs_int_rect *rect, void *buffer);
1408
    int (*output_fn)(void *arg, gx_device *dev, void *buffer);
1409
    void *arg;
1410
    int options; /* A mask of GX_PROCPAGE_... options bits */
1411
};
1412
1413
/* If GX_PROCPAGE_BOTTOM_UP, then we run from band n-1 to band 0, rather than
1414
 * 0 to n-1. */
1415
0
#define GX_PROCPAGE_BOTTOM_UP 1
1416
1417
#define dev_t_proc_process_page(proc, dev_t)\
1418
  int proc(dev_t *dev, gx_process_page_options_t *options)
1419
#define dev_proc_process_page(proc)\
1420
  dev_t_proc_process_page(proc, gx_device)
1421
1422
typedef enum  {
1423
    transform_pixel_region_begin = 0,
1424
    transform_pixel_region_data_needed = 1,
1425
    transform_pixel_region_process_data = 2,
1426
    transform_pixel_region_end = 3
1427
} transform_pixel_region_reason;
1428
1429
typedef struct {
1430
    void *state;
1431
    union {
1432
        struct {
1433
            const gs_int_rect *clip;
1434
            int w; /* source width */
1435
            int h; /* source height */
1436
            int spp;
1437
            const gx_dda_fixed_point *pixels; /* DDA to enumerate the destination positions of pixels across a row */
1438
            const gx_dda_fixed_point *rows; /* DDA to enumerate the starting position of each row */
1439
            gs_logical_operation_t lop;
1440
        } init;
1441
        struct {
1442
            const unsigned char *buffer[GX_DEVICE_COLOR_MAX_COMPONENTS];
1443
            int data_x;
1444
            gx_cmapper_t *cmapper;
1445
            const gs_gstate *pgs;
1446
        } process_data;
1447
    } u;
1448
} transform_pixel_region_data;
1449
1450
#define dev_t_proc_transform_pixel_region(proc, dev_t)\
1451
  int proc(dev_t *dev, transform_pixel_region_reason reason, transform_pixel_region_data *data)
1452
#define dev_proc_transform_pixel_region(proc)\
1453
  dev_t_proc_transform_pixel_region(proc, gx_device)
1454
1455
1456
/* Define the device procedure vector template proper. */
1457
1458
#define gx_device_proc_struct(dev_t)\
1459
{\
1460
        dev_t_proc_initialize_device((*initialize_device), dev_t);\
1461
        dev_t_proc_open_device((*open_device), dev_t);\
1462
        dev_t_proc_get_initial_matrix((*get_initial_matrix), dev_t);\
1463
        dev_t_proc_sync_output((*sync_output), dev_t);\
1464
        dev_t_proc_output_page((*output_page), dev_t);\
1465
        dev_t_proc_close_device((*close_device), dev_t);\
1466
        dev_t_proc_map_rgb_color((*map_rgb_color), dev_t);\
1467
        dev_t_proc_map_color_rgb((*map_color_rgb), dev_t);\
1468
        dev_t_proc_fill_rectangle((*fill_rectangle), dev_t);\
1469
        dev_t_proc_copy_mono((*copy_mono), dev_t);\
1470
        dev_t_proc_copy_color((*copy_color), dev_t);\
1471
        dev_t_proc_get_params((*get_params), dev_t);\
1472
        dev_t_proc_put_params((*put_params), dev_t);\
1473
        dev_t_proc_map_cmyk_color((*map_cmyk_color), dev_t);\
1474
        dev_t_proc_get_page_device((*get_page_device), dev_t);\
1475
        dev_t_proc_get_alpha_bits((*get_alpha_bits), dev_t);\
1476
        dev_t_proc_copy_alpha((*copy_alpha), dev_t);\
1477
        dev_t_proc_fill_path((*fill_path), dev_t);\
1478
        dev_t_proc_stroke_path((*stroke_path), dev_t);\
1479
        dev_t_proc_fill_mask((*fill_mask), dev_t);\
1480
        dev_t_proc_fill_trapezoid((*fill_trapezoid), dev_t);\
1481
        dev_t_proc_fill_parallelogram((*fill_parallelogram), dev_t);\
1482
        dev_t_proc_fill_triangle((*fill_triangle), dev_t);\
1483
        dev_t_proc_draw_thin_line((*draw_thin_line), dev_t);\
1484
        dev_t_proc_strip_tile_rectangle((*strip_tile_rectangle), dev_t);\
1485
        dev_t_proc_get_clipping_box((*get_clipping_box), dev_t);\
1486
        dev_t_proc_begin_typed_image((*begin_typed_image), dev_t);\
1487
        dev_t_proc_get_bits_rectangle((*get_bits_rectangle), dev_t);\
1488
        dev_t_proc_composite((*composite), dev_t);\
1489
        dev_t_proc_get_hardware_params((*get_hardware_params), dev_t);\
1490
        dev_t_proc_text_begin((*text_begin), dev_t);\
1491
        dev_t_proc_begin_transparency_group((*begin_transparency_group), dev_t);\
1492
        dev_t_proc_end_transparency_group((*end_transparency_group), dev_t);\
1493
        dev_t_proc_begin_transparency_mask((*begin_transparency_mask), dev_t);\
1494
        dev_t_proc_end_transparency_mask((*end_transparency_mask), dev_t);\
1495
        dev_t_proc_discard_transparency_layer((*discard_transparency_layer), dev_t);\
1496
        dev_t_proc_get_color_mapping_procs((*get_color_mapping_procs), dev_t); \
1497
        dev_t_proc_get_color_comp_index((*get_color_comp_index), dev_t); \
1498
        dev_t_proc_encode_color((*encode_color), dev_t); \
1499
        dev_t_proc_decode_color((*decode_color), dev_t); \
1500
        dev_t_proc_fill_rectangle_hl_color((*fill_rectangle_hl_color), dev_t); \
1501
        dev_t_proc_include_color_space((*include_color_space), dev_t); \
1502
        dev_t_proc_fill_linear_color_scanline((*fill_linear_color_scanline), dev_t); \
1503
        dev_t_proc_fill_linear_color_trapezoid((*fill_linear_color_trapezoid), dev_t); \
1504
        dev_t_proc_fill_linear_color_triangle((*fill_linear_color_triangle), dev_t); \
1505
        dev_t_proc_update_spot_equivalent_colors((*update_spot_equivalent_colors), dev_t); \
1506
        dev_t_proc_ret_devn_params((*ret_devn_params), dev_t); \
1507
        dev_t_proc_fillpage((*fillpage), dev_t); \
1508
        dev_t_proc_push_transparency_state((*push_transparency_state), dev_t); \
1509
        dev_t_proc_pop_transparency_state((*pop_transparency_state), dev_t); \
1510
        dev_t_proc_put_image((*put_image), dev_t); \
1511
        dev_t_proc_dev_spec_op((*dev_spec_op), dev_t); \
1512
        dev_t_proc_copy_planes((*copy_planes), dev_t); \
1513
        dev_t_proc_get_profile((*get_profile), dev_t); \
1514
        dev_t_proc_set_graphics_type_tag((*set_graphics_type_tag), dev_t); \
1515
        dev_t_proc_strip_copy_rop2((*strip_copy_rop2), dev_t);\
1516
        dev_t_proc_strip_tile_rect_devn((*strip_tile_rect_devn), dev_t);\
1517
        dev_t_proc_copy_alpha_hl_color((*copy_alpha_hl_color), dev_t);\
1518
        dev_t_proc_process_page((*process_page), dev_t);\
1519
        dev_t_proc_transform_pixel_region((*transform_pixel_region), dev_t);\
1520
        dev_t_proc_fill_stroke_path((*fill_stroke_path), dev_t);\
1521
        dev_t_proc_lock_pattern((*lock_pattern), dev_t);\
1522
}
1523
1524
/*
1525
 * Provide procedures for passing image data.  image_data and end_image
1526
 * are the equivalents of the obsolete driver procedures.  image_plane_data
1527
 * was originally planned as a driver procedure, but is now associated with
1528
 * the image enumerator, like the other two.
1529
 */
1530
1531
typedef struct gx_image_plane_s {
1532
    const byte *data;
1533
    int data_x;
1534
    uint raster;
1535
} gx_image_plane_t;
1536
1537
#define gx_device_begin_typed_image(dev, pgs, pmat, pim, prect, pdcolor, pcpath, memory, pinfo)\
1538
5.25k
  ((*dev_proc(dev, begin_typed_image))\
1539
5.25k
   (dev, pgs, pmat, pim, prect, pdcolor, pcpath, memory, pinfo))
1540
1541
int gx_image_data(gx_image_enum_common_t *info, const byte **planes,
1542
                  int data_x, uint raster, int height);
1543
/*
1544
 * Solely for backward compatibility, gx_image_plane_data doesn't return
1545
 * rows_used.
1546
 */
1547
int gx_image_plane_data(gx_image_enum_common_t *info,
1548
                        const gx_image_plane_t *planes, int height);
1549
int gx_image_plane_data_rows(gx_image_enum_common_t *info,
1550
                             const gx_image_plane_t *planes, int height,
1551
                             int *rows_used);
1552
int gx_image_flush(gx_image_enum_common_t *info);
1553
bool gx_image_planes_wanted(const gx_image_enum_common_t *info, byte *wanted);
1554
int gx_image_end(gx_image_enum_common_t *info, bool draw_last);
1555
1556
/* A generic device procedure record. */
1557
struct gx_device_procs_s gx_device_proc_struct(gx_device);
1558
1559
/*
1560
 * Define unaligned analogues of the copy_xxx procedures.
1561
 * These are slower than the standard procedures, which require
1562
 * aligned bitmaps, and also are not portable to non-byte-addressed machines.
1563
 *
1564
 * We allow both unaligned data and unaligned scan line widths;
1565
 * however, we do require that both of these be aligned modulo the largest
1566
 * power of 2 bytes that divides the data depth, i.e.:
1567
 *      depth   alignment
1568
 *      <= 8    1
1569
 *      16      2
1570
 *      24      1
1571
 *      32      4
1572
 */
1573
dev_proc_copy_mono(gx_copy_mono_unaligned);
1574
dev_proc_copy_color(gx_copy_color_unaligned);
1575
dev_proc_copy_alpha(gx_copy_alpha_unaligned);
1576
1577
/* A generic device */
1578
struct gx_device_s {
1579
    gx_device_common;
1580
};
1581
1582
extern_st(st_device);
1583
struct_proc_finalize(gx_device_finalize); /* public for subclasses */
1584
/* We use vacuous enum/reloc procedures, rather than 0, so that */
1585
/* gx_device can have subclasses. */
1586
#define public_st_device()  /* in gsdevice.c */\
1587
  gs_public_st_complex_only(st_device, gx_device, "gx_device",\
1588
    0, device_enum_ptrs, device_reloc_ptrs, gx_device_finalize)
1589
133k
#define st_device_max_ptrs 2
1590
1591
/* Enumerate or relocate a pointer to a device. */
1592
/* These take the containing space into account properly. */
1593
gx_device *gx_device_enum_ptr(gx_device *);
1594
gx_device *gx_device_reloc_ptr(gx_device *, gc_state_t *);
1595
1596
/* Define typedefs for some of the device procedures, because */
1597
/* ansi2knr can't handle dev_proc_xxx((*xxx)) in a formal argument list. */
1598
typedef dev_proc_map_rgb_color((*dev_proc_map_rgb_color_t));
1599
typedef dev_proc_map_color_rgb((*dev_proc_map_color_rgb_t));
1600
1601
/*
1602
 * A forwarding device forwards all non-display operations, and possibly
1603
 * some imaging operations (possibly transformed in some way), to another
1604
 * device called the "target".  This is used for many different purposes
1605
 * internally, including clipping, banding, image and pattern accumulation,
1606
 * compositing, halftoning, and the null device.
1607
 */
1608
#define gx_device_forward_common\
1609
        gx_device_common;\
1610
        gx_device *target
1611
/* A generic forwarding device. */
1612
typedef struct gx_device_forward_s {
1613
    gx_device_forward_common;
1614
} gx_device_forward;
1615
1616
extern_st(st_device_forward);
1617
#define public_st_device_forward()  /* in gsdevice.c */\
1618
  gs_public_st_complex_only(st_device_forward, gx_device_forward,\
1619
    "gx_device_forward", 0, device_forward_enum_ptrs,\
1620
    device_forward_reloc_ptrs, gx_device_finalize)
1621
133k
#define st_device_forward_max_ptrs (st_device_max_ptrs + 1)
1622
1623
/* Test to see if the device wants to use tags */
1624
static inline bool device_encodes_tags(const gx_device *dev)
1625
29.6M
{
1626
29.6M
    return (dev->graphics_type_tag & GS_DEVICE_ENCODES_TAGS) != 0;
1627
29.6M
}
Unexecuted instantiation: imain.c:device_encodes_tags
Unexecuted instantiation: gconfig.c:device_encodes_tags
Unexecuted instantiation: gximage3.c:device_encodes_tags
Unexecuted instantiation: gximage4.c:device_encodes_tags
Unexecuted instantiation: gxmclip.c:device_encodes_tags
gsptype1.c:device_encodes_tags
Line
Count
Source
1625
367k
{
1626
367k
    return (dev->graphics_type_tag & GS_DEVICE_ENCODES_TAGS) != 0;
1627
367k
}
Unexecuted instantiation: gxp1fill.c:device_encodes_tags
gxpcmap.c:device_encodes_tags
Line
Count
Source
1625
1.42k
{
1626
1.42k
    return (dev->graphics_type_tag & GS_DEVICE_ENCODES_TAGS) != 0;
1627
1.42k
}
gxicolor.c:device_encodes_tags
Line
Count
Source
1625
496k
{
1626
496k
    return (dev->graphics_type_tag & GS_DEVICE_ENCODES_TAGS) != 0;
1627
496k
}
gsdps1.c:device_encodes_tags
Line
Count
Source
1625
11
{
1626
11
    return (dev->graphics_type_tag & GS_DEVICE_ENCODES_TAGS) != 0;
1627
11
}
Unexecuted instantiation: gsciemap.c:device_encodes_tags
gstrans.c:device_encodes_tags
Line
Count
Source
1625
3.80k
{
1626
3.80k
    return (dev->graphics_type_tag & GS_DEVICE_ENCODES_TAGS) != 0;
1627
3.80k
}
Unexecuted instantiation: gximag3x.c:device_encodes_tags
Unexecuted instantiation: gxblend.c:device_encodes_tags
gdevp14.c:device_encodes_tags
Line
Count
Source
1625
24.5M
{
1626
24.5M
    return (dev->graphics_type_tag & GS_DEVICE_ENCODES_TAGS) != 0;
1627
24.5M
}
Unexecuted instantiation: gdevdevn.c:device_encodes_tags
Unexecuted instantiation: gsequivc.c:device_encodes_tags
Unexecuted instantiation: gdevdcrd.c:device_encodes_tags
Unexecuted instantiation: gscpixel.c:device_encodes_tags
Unexecuted instantiation: gdevbbox.c:device_encodes_tags
gdevprn.c:device_encodes_tags
Line
Count
Source
1625
3.56k
{
1626
3.56k
    return (dev->graphics_type_tag & GS_DEVICE_ENCODES_TAGS) != 0;
1627
3.56k
}
Unexecuted instantiation: gdevppla.c:device_encodes_tags
Unexecuted instantiation: gdevflp.c:device_encodes_tags
Unexecuted instantiation: gdevoflt.c:device_encodes_tags
Unexecuted instantiation: gdevnup.c:device_encodes_tags
Unexecuted instantiation: gdevsclass.c:device_encodes_tags
Unexecuted instantiation: gxclist.c:device_encodes_tags
Unexecuted instantiation: gxclpage.c:device_encodes_tags
Unexecuted instantiation: gxclread.c:device_encodes_tags
Unexecuted instantiation: gxclrect.c:device_encodes_tags
Unexecuted instantiation: gxclutil.c:device_encodes_tags
Unexecuted instantiation: gxclimag.c:device_encodes_tags
Unexecuted instantiation: gxclpath.c:device_encodes_tags
Unexecuted instantiation: gxdhtserial.c:device_encodes_tags
Unexecuted instantiation: gxclthrd.c:device_encodes_tags
Unexecuted instantiation: gsicc.c:device_encodes_tags
Unexecuted instantiation: gsicc_manage.c:device_encodes_tags
Unexecuted instantiation: gsicc_cache.c:device_encodes_tags
Unexecuted instantiation: gsicc_lcms2mt.c:device_encodes_tags
Unexecuted instantiation: gsicc_create.c:device_encodes_tags
Unexecuted instantiation: gsicc_nocm.c:device_encodes_tags
Unexecuted instantiation: gsicc_replacecm.c:device_encodes_tags
Unexecuted instantiation: gsicc_monitorcm.c:device_encodes_tags
Unexecuted instantiation: gsicc_blacktext.c:device_encodes_tags
Unexecuted instantiation: gdevcups.c:device_encodes_tags
Unexecuted instantiation: gdevdjet.c:device_encodes_tags
Unexecuted instantiation: gdevdljm.c:device_encodes_tags
Unexecuted instantiation: gdevpcl.c:device_encodes_tags
Unexecuted instantiation: gdevpcl3.c:device_encodes_tags
Unexecuted instantiation: pclcap.c:device_encodes_tags
Unexecuted instantiation: gdevpx.c:device_encodes_tags
Unexecuted instantiation: gdevpxut.c:device_encodes_tags
Unexecuted instantiation: gdevvec.c:device_encodes_tags
Unexecuted instantiation: gdevupd.c:device_encodes_tags
Unexecuted instantiation: gdevkrnlsclass.c:device_encodes_tags
Unexecuted instantiation: gscolor.c:device_encodes_tags
Unexecuted instantiation: gscoord.c:device_encodes_tags
Unexecuted instantiation: gscspace.c:device_encodes_tags
Unexecuted instantiation: gsovrc.c:device_encodes_tags
Unexecuted instantiation: gxoprect.c:device_encodes_tags
Unexecuted instantiation: gsdevice.c:device_encodes_tags
Unexecuted instantiation: gsdparam.c:device_encodes_tags
Unexecuted instantiation: gsht.c:device_encodes_tags
Unexecuted instantiation: gshtscr.c:device_encodes_tags
gsimage.c:device_encodes_tags
Line
Count
Source
1625
5.25k
{
1626
5.25k
    return (dev->graphics_type_tag & GS_DEVICE_ENCODES_TAGS) != 0;
1627
5.25k
}
Unexecuted instantiation: gsgstate.c:device_encodes_tags
Unexecuted instantiation: gsline.c:device_encodes_tags
gspaint.c:device_encodes_tags
Line
Count
Source
1625
198k
{
1626
198k
    return (dev->graphics_type_tag & GS_DEVICE_ENCODES_TAGS) != 0;
1627
198k
}
Unexecuted instantiation: gspath.c:device_encodes_tags
Unexecuted instantiation: gsstate.c:device_encodes_tags
gstext.c:device_encodes_tags
Line
Count
Source
1625
557k
{
1626
557k
    return (dev->graphics_type_tag & GS_DEVICE_ENCODES_TAGS) != 0;
1627
557k
}
gxfapi.c:device_encodes_tags
Line
Count
Source
1625
3.51k
{
1626
3.51k
    return (dev->graphics_type_tag & GS_DEVICE_ENCODES_TAGS) != 0;
1627
3.51k
}
Unexecuted instantiation: write_t2.c:device_encodes_tags
Unexecuted instantiation: gxchar.c:device_encodes_tags
Unexecuted instantiation: gxcht.c:device_encodes_tags
Unexecuted instantiation: gxclip.c:device_encodes_tags
Unexecuted instantiation: gxcmap.c:device_encodes_tags
Unexecuted instantiation: gxcpath.c:device_encodes_tags
Unexecuted instantiation: gxdcconv.c:device_encodes_tags
Unexecuted instantiation: gxdcolor.c:device_encodes_tags
Unexecuted instantiation: gxhldevc.c:device_encodes_tags
Unexecuted instantiation: gxfill.c:device_encodes_tags
Unexecuted instantiation: gxht.c:device_encodes_tags
Unexecuted instantiation: gxht_thresh.c:device_encodes_tags
Unexecuted instantiation: gxifast.c:device_encodes_tags
Unexecuted instantiation: gximage.c:device_encodes_tags
Unexecuted instantiation: gximdecode.c:device_encodes_tags
Unexecuted instantiation: gximage1.c:device_encodes_tags
Unexecuted instantiation: gximono.c:device_encodes_tags
Unexecuted instantiation: gxipixel.c:device_encodes_tags
Unexecuted instantiation: gximask.c:device_encodes_tags
Unexecuted instantiation: gxi12bit.c:device_encodes_tags
Unexecuted instantiation: gxi16bit.c:device_encodes_tags
Unexecuted instantiation: gxiscale.c:device_encodes_tags
Unexecuted instantiation: gxpaint.c:device_encodes_tags
Unexecuted instantiation: gxpcopy.c:device_encodes_tags
Unexecuted instantiation: gxsample.c:device_encodes_tags
Unexecuted instantiation: gxstroke.c:device_encodes_tags
Unexecuted instantiation: gdevabuf.c:device_encodes_tags
Unexecuted instantiation: gdevdbit.c:device_encodes_tags
Unexecuted instantiation: gdevddrw.c:device_encodes_tags
gdevdflt.c:device_encodes_tags
Line
Count
Source
1625
2.64M
{
1626
2.64M
    return (dev->graphics_type_tag & GS_DEVICE_ENCODES_TAGS) != 0;
1627
2.64M
}
Unexecuted instantiation: gdevdgbr.c:device_encodes_tags
Unexecuted instantiation: gdevnfwd.c:device_encodes_tags
gdevmem.c:device_encodes_tags
Line
Count
Source
1625
14.7k
{
1626
14.7k
    return (dev->graphics_type_tag & GS_DEVICE_ENCODES_TAGS) != 0;
1627
14.7k
}
Unexecuted instantiation: gdevplnx.c:device_encodes_tags
Unexecuted instantiation: gdevm1.c:device_encodes_tags
Unexecuted instantiation: gdevm2.c:device_encodes_tags
Unexecuted instantiation: gdevm4.c:device_encodes_tags
Unexecuted instantiation: gdevm8.c:device_encodes_tags
Unexecuted instantiation: gdevm16.c:device_encodes_tags
Unexecuted instantiation: gdevm24.c:device_encodes_tags
Unexecuted instantiation: gdevm32.c:device_encodes_tags
Unexecuted instantiation: gdevmpla.c:device_encodes_tags
Unexecuted instantiation: gdevm40.c:device_encodes_tags
Unexecuted instantiation: gdevm48.c:device_encodes_tags
Unexecuted instantiation: gdevm56.c:device_encodes_tags
Unexecuted instantiation: gdevm64.c:device_encodes_tags
Unexecuted instantiation: gdevmx.c:device_encodes_tags
Unexecuted instantiation: gdevdsha.c:device_encodes_tags
Unexecuted instantiation: gxscanc.c:device_encodes_tags
Unexecuted instantiation: gdevdrop.c:device_encodes_tags
Unexecuted instantiation: gdevmr1.c:device_encodes_tags
Unexecuted instantiation: gdevmr2n.c:device_encodes_tags
Unexecuted instantiation: gdevmr8n.c:device_encodes_tags
Unexecuted instantiation: gdevrops.c:device_encodes_tags
Unexecuted instantiation: gsrop.c:device_encodes_tags
Unexecuted instantiation: zcolor1.c:device_encodes_tags
Unexecuted instantiation: zht1.c:device_encodes_tags
Unexecuted instantiation: zupath.c:device_encodes_tags
Unexecuted instantiation: gdevhit.c:device_encodes_tags
Unexecuted instantiation: zdps1.c:device_encodes_tags
Unexecuted instantiation: zchar1.c:device_encodes_tags
Unexecuted instantiation: zcharout.c:device_encodes_tags
Unexecuted instantiation: zfont1.c:device_encodes_tags
Unexecuted instantiation: zusparam.c:device_encodes_tags
Unexecuted instantiation: zchar42.c:device_encodes_tags
Unexecuted instantiation: zfont0.c:device_encodes_tags
Unexecuted instantiation: zfdctd.c:device_encodes_tags
Unexecuted instantiation: zdevice2.c:device_encodes_tags
Unexecuted instantiation: zpcolor.c:device_encodes_tags
Unexecuted instantiation: idisp.c:device_encodes_tags
Unexecuted instantiation: psapi.c:device_encodes_tags
Unexecuted instantiation: zfileio.c:device_encodes_tags
Unexecuted instantiation: zbfont.c:device_encodes_tags
Unexecuted instantiation: zchar.c:device_encodes_tags
Unexecuted instantiation: zcolor.c:device_encodes_tags
Unexecuted instantiation: zdevice.c:device_encodes_tags
Unexecuted instantiation: zfont.c:device_encodes_tags
Unexecuted instantiation: zht.c:device_encodes_tags
Unexecuted instantiation: zimage.c:device_encodes_tags
Unexecuted instantiation: zfapi.c:device_encodes_tags
Unexecuted instantiation: zcsindex.c:device_encodes_tags
Unexecuted instantiation: zht2.c:device_encodes_tags
Unexecuted instantiation: zcssepr.c:device_encodes_tags
Unexecuted instantiation: zfunc4.c:device_encodes_tags
Unexecuted instantiation: zform.c:device_encodes_tags
Unexecuted instantiation: zimage3.c:device_encodes_tags
Unexecuted instantiation: zicc.c:device_encodes_tags
Unexecuted instantiation: ztrans.c:device_encodes_tags
Unexecuted instantiation: zpdfops.c:device_encodes_tags
Unexecuted instantiation: ghostpdf.c:device_encodes_tags
Unexecuted instantiation: pdf_dict.c:device_encodes_tags
Unexecuted instantiation: pdf_array.c:device_encodes_tags
Unexecuted instantiation: pdf_xref.c:device_encodes_tags
Unexecuted instantiation: pdf_int.c:device_encodes_tags
Unexecuted instantiation: pdf_file.c:device_encodes_tags
Unexecuted instantiation: pdf_path.c:device_encodes_tags
Unexecuted instantiation: pdf_colour.c:device_encodes_tags
Unexecuted instantiation: pdf_pattern.c:device_encodes_tags
Unexecuted instantiation: pdf_gstate.c:device_encodes_tags
Unexecuted instantiation: pdf_stack.c:device_encodes_tags
Unexecuted instantiation: pdf_image.c:device_encodes_tags
Unexecuted instantiation: pdf_page.c:device_encodes_tags
Unexecuted instantiation: pdf_annot.c:device_encodes_tags
Unexecuted instantiation: pdf_mark.c:device_encodes_tags
Unexecuted instantiation: pdf_font.c:device_encodes_tags
Unexecuted instantiation: pdf_font0.c:device_encodes_tags
Unexecuted instantiation: pdf_ciddec.c:device_encodes_tags
Unexecuted instantiation: pdf_font1.c:device_encodes_tags
Unexecuted instantiation: pdf_font1C.c:device_encodes_tags
Unexecuted instantiation: pdf_fontps.c:device_encodes_tags
Unexecuted instantiation: pdf_font3.c:device_encodes_tags
Unexecuted instantiation: pdf_fontTT.c:device_encodes_tags
Unexecuted instantiation: pdf_font11.c:device_encodes_tags
Unexecuted instantiation: pdf_cmap.c:device_encodes_tags
Unexecuted instantiation: pdf_fmap.c:device_encodes_tags
Unexecuted instantiation: pdf_text.c:device_encodes_tags
Unexecuted instantiation: pdf_shading.c:device_encodes_tags
Unexecuted instantiation: pdf_func.c:device_encodes_tags
Unexecuted instantiation: pdf_trans.c:device_encodes_tags
Unexecuted instantiation: pdf_device.c:device_encodes_tags
Unexecuted instantiation: pdf_misc.c:device_encodes_tags
Unexecuted instantiation: pdf_optcontent.c:device_encodes_tags
Unexecuted instantiation: pdf_check.c:device_encodes_tags
Unexecuted instantiation: pdf_sec.c:device_encodes_tags
Unexecuted instantiation: pdf_utf8.c:device_encodes_tags
Unexecuted instantiation: pdf_deref.c:device_encodes_tags
Unexecuted instantiation: pdf_repair.c:device_encodes_tags
Unexecuted instantiation: pdf_obj.c:device_encodes_tags
Unexecuted instantiation: pdf_doc.c:device_encodes_tags
Unexecuted instantiation: zfjpx.c:device_encodes_tags
Unexecuted instantiation: imainarg.c:device_encodes_tags
Unexecuted instantiation: gsclipsr.c:device_encodes_tags
Unexecuted instantiation: gscdevn.c:device_encodes_tags
Unexecuted instantiation: gxdevndi.c:device_encodes_tags
Unexecuted instantiation: gxclipm.c:device_encodes_tags
gscolor3.c:device_encodes_tags
Line
Count
Source
1625
5.95k
{
1626
5.95k
    return (dev->graphics_type_tag & GS_DEVICE_ENCODES_TAGS) != 0;
1627
5.95k
}
Unexecuted instantiation: gsptype2.c:device_encodes_tags
Unexecuted instantiation: gsshade.c:device_encodes_tags
Unexecuted instantiation: gxshade1.c:device_encodes_tags
Unexecuted instantiation: gxshade4.c:device_encodes_tags
gxshade6.c:device_encodes_tags
Line
Count
Source
1625
850k
{
1626
850k
    return (dev->graphics_type_tag & GS_DEVICE_ENCODES_TAGS) != 0;
1627
850k
}
Unexecuted instantiation: gscolor1.c:device_encodes_tags
Unexecuted instantiation: gsht1.c:device_encodes_tags
Unexecuted instantiation: gscolor2.c:device_encodes_tags
Unexecuted instantiation: gspcolor.c:device_encodes_tags
Unexecuted instantiation: gxclip2.c:device_encodes_tags
Unexecuted instantiation: gspath1.c:device_encodes_tags
Unexecuted instantiation: gstype42.c:device_encodes_tags
Unexecuted instantiation: gxchrout.c:device_encodes_tags
Unexecuted instantiation: gxttfb.c:device_encodes_tags
Unexecuted instantiation: gzspotan.c:device_encodes_tags
Unexecuted instantiation: gscie.c:device_encodes_tags
Unexecuted instantiation: gscsepr.c:device_encodes_tags
Unexecuted instantiation: gxblend1.c:device_encodes_tags
Unexecuted instantiation: gdevepo.c:device_encodes_tags
Unexecuted instantiation: gxclbits.c:device_encodes_tags
Unexecuted instantiation: gxclrast.c:device_encodes_tags
Unexecuted instantiation: gschar0.c:device_encodes_tags
Unexecuted instantiation: gsfont0.c:device_encodes_tags
Unexecuted instantiation: gstype1.c:device_encodes_tags
Unexecuted instantiation: gxtype1.c:device_encodes_tags
Unexecuted instantiation: gstype2.c:device_encodes_tags
Unexecuted instantiation: gsicc_profilecache.c:device_encodes_tags
Unexecuted instantiation: gdeveprn.c:device_encodes_tags
Unexecuted instantiation: eprnparm.c:device_encodes_tags
Unexecuted instantiation: eprnrend.c:device_encodes_tags
Unexecuted instantiation: eprnfs.c:device_encodes_tags
Unexecuted instantiation: gscicach.c:device_encodes_tags
Unexecuted instantiation: gsdevmem.c:device_encodes_tags
Unexecuted instantiation: gsfont.c:device_encodes_tags
Unexecuted instantiation: gxacpath.c:device_encodes_tags
Unexecuted instantiation: gxccache.c:device_encodes_tags
Unexecuted instantiation: gxccman.c:device_encodes_tags
Unexecuted instantiation: gxidata.c:device_encodes_tags
Unexecuted instantiation: gxpdash.c:device_encodes_tags
Unexecuted instantiation: pdf_loop_detect.c:device_encodes_tags
Unexecuted instantiation: pdf_fapi.c:device_encodes_tags
Unexecuted instantiation: gxshade.c:device_encodes_tags
Unexecuted instantiation: gscscie.c:device_encodes_tags
Unexecuted instantiation: gschar.c:device_encodes_tags
1628
1629
static inline bool device_is_deep(const gx_device *dev)
1630
3.73M
{
1631
3.73M
    bool has_tags = device_encodes_tags(dev);
1632
3.73M
    int bits_per_comp = ((dev->color_info.depth - has_tags*8) /
1633
3.73M
                         dev->color_info.num_components);
1634
3.73M
    if (bits_per_comp > 16)
1635
0
        return 1;
1636
3.73M
    if (bits_per_comp == 16 && dev->color_info.num_components > 1)
1637
0
        return 1;
1638
3.73M
    if (bits_per_comp == 8)
1639
927k
        return 0;
1640
2.80M
    return (dev->color_info.max_color > 255 ||
1641
2.80M
            dev->color_info.max_gray > 255);
1642
3.73M
}
Unexecuted instantiation: imain.c:device_is_deep
Unexecuted instantiation: gconfig.c:device_is_deep
Unexecuted instantiation: gximage3.c:device_is_deep
Unexecuted instantiation: gximage4.c:device_is_deep
Unexecuted instantiation: gxmclip.c:device_is_deep
gsptype1.c:device_is_deep
Line
Count
Source
1630
367k
{
1631
367k
    bool has_tags = device_encodes_tags(dev);
1632
367k
    int bits_per_comp = ((dev->color_info.depth - has_tags*8) /
1633
367k
                         dev->color_info.num_components);
1634
367k
    if (bits_per_comp > 16)
1635
0
        return 1;
1636
367k
    if (bits_per_comp == 16 && dev->color_info.num_components > 1)
1637
0
        return 1;
1638
367k
    if (bits_per_comp == 8)
1639
367k
        return 0;
1640
512
    return (dev->color_info.max_color > 255 ||
1641
512
            dev->color_info.max_gray > 255);
1642
367k
}
Unexecuted instantiation: gxp1fill.c:device_is_deep
Unexecuted instantiation: gxpcmap.c:device_is_deep
Unexecuted instantiation: gxicolor.c:device_is_deep
Unexecuted instantiation: gsdps1.c:device_is_deep
Unexecuted instantiation: gsciemap.c:device_is_deep
gstrans.c:device_is_deep
Line
Count
Source
1630
3.80k
{
1631
3.80k
    bool has_tags = device_encodes_tags(dev);
1632
3.80k
    int bits_per_comp = ((dev->color_info.depth - has_tags*8) /
1633
3.80k
                         dev->color_info.num_components);
1634
3.80k
    if (bits_per_comp > 16)
1635
0
        return 1;
1636
3.80k
    if (bits_per_comp == 16 && dev->color_info.num_components > 1)
1637
0
        return 1;
1638
3.80k
    if (bits_per_comp == 8)
1639
3.80k
        return 0;
1640
0
    return (dev->color_info.max_color > 255 ||
1641
0
            dev->color_info.max_gray > 255);
1642
3.80k
}
Unexecuted instantiation: gximag3x.c:device_is_deep
Unexecuted instantiation: gxblend.c:device_is_deep
gdevp14.c:device_is_deep
Line
Count
Source
1630
702k
{
1631
702k
    bool has_tags = device_encodes_tags(dev);
1632
702k
    int bits_per_comp = ((dev->color_info.depth - has_tags*8) /
1633
702k
                         dev->color_info.num_components);
1634
702k
    if (bits_per_comp > 16)
1635
0
        return 1;
1636
702k
    if (bits_per_comp == 16 && dev->color_info.num_components > 1)
1637
0
        return 1;
1638
702k
    if (bits_per_comp == 8)
1639
556k
        return 0;
1640
145k
    return (dev->color_info.max_color > 255 ||
1641
145k
            dev->color_info.max_gray > 255);
1642
702k
}
Unexecuted instantiation: gdevdevn.c:device_is_deep
Unexecuted instantiation: gsequivc.c:device_is_deep
Unexecuted instantiation: gdevdcrd.c:device_is_deep
Unexecuted instantiation: gscpixel.c:device_is_deep
Unexecuted instantiation: gdevbbox.c:device_is_deep
gdevprn.c:device_is_deep
Line
Count
Source
1630
3.56k
{
1631
3.56k
    bool has_tags = device_encodes_tags(dev);
1632
3.56k
    int bits_per_comp = ((dev->color_info.depth - has_tags*8) /
1633
3.56k
                         dev->color_info.num_components);
1634
3.56k
    if (bits_per_comp > 16)
1635
0
        return 1;
1636
3.56k
    if (bits_per_comp == 16 && dev->color_info.num_components > 1)
1637
0
        return 1;
1638
3.56k
    if (bits_per_comp == 8)
1639
0
        return 0;
1640
3.56k
    return (dev->color_info.max_color > 255 ||
1641
3.56k
            dev->color_info.max_gray > 255);
1642
3.56k
}
Unexecuted instantiation: gdevppla.c:device_is_deep
Unexecuted instantiation: gdevflp.c:device_is_deep
Unexecuted instantiation: gdevoflt.c:device_is_deep
Unexecuted instantiation: gdevnup.c:device_is_deep
Unexecuted instantiation: gdevsclass.c:device_is_deep
Unexecuted instantiation: gxclist.c:device_is_deep
Unexecuted instantiation: gxclpage.c:device_is_deep
Unexecuted instantiation: gxclread.c:device_is_deep
Unexecuted instantiation: gxclrect.c:device_is_deep
Unexecuted instantiation: gxclutil.c:device_is_deep
Unexecuted instantiation: gxclimag.c:device_is_deep
Unexecuted instantiation: gxclpath.c:device_is_deep
Unexecuted instantiation: gxdhtserial.c:device_is_deep
Unexecuted instantiation: gxclthrd.c:device_is_deep
Unexecuted instantiation: gsicc.c:device_is_deep
Unexecuted instantiation: gsicc_manage.c:device_is_deep
Unexecuted instantiation: gsicc_cache.c:device_is_deep
Unexecuted instantiation: gsicc_lcms2mt.c:device_is_deep
Unexecuted instantiation: gsicc_create.c:device_is_deep
Unexecuted instantiation: gsicc_nocm.c:device_is_deep
Unexecuted instantiation: gsicc_replacecm.c:device_is_deep
Unexecuted instantiation: gsicc_monitorcm.c:device_is_deep
Unexecuted instantiation: gsicc_blacktext.c:device_is_deep
Unexecuted instantiation: gdevcups.c:device_is_deep
Unexecuted instantiation: gdevdjet.c:device_is_deep
Unexecuted instantiation: gdevdljm.c:device_is_deep
Unexecuted instantiation: gdevpcl.c:device_is_deep
Unexecuted instantiation: gdevpcl3.c:device_is_deep
Unexecuted instantiation: pclcap.c:device_is_deep
Unexecuted instantiation: gdevpx.c:device_is_deep
Unexecuted instantiation: gdevpxut.c:device_is_deep
Unexecuted instantiation: gdevvec.c:device_is_deep
Unexecuted instantiation: gdevupd.c:device_is_deep
Unexecuted instantiation: gdevkrnlsclass.c:device_is_deep
Unexecuted instantiation: gscolor.c:device_is_deep
Unexecuted instantiation: gscoord.c:device_is_deep
Unexecuted instantiation: gscspace.c:device_is_deep
Unexecuted instantiation: gsovrc.c:device_is_deep
Unexecuted instantiation: gxoprect.c:device_is_deep
Unexecuted instantiation: gsdevice.c:device_is_deep
Unexecuted instantiation: gsdparam.c:device_is_deep
Unexecuted instantiation: gsht.c:device_is_deep
Unexecuted instantiation: gshtscr.c:device_is_deep
Unexecuted instantiation: gsimage.c:device_is_deep
Unexecuted instantiation: gsgstate.c:device_is_deep
Unexecuted instantiation: gsline.c:device_is_deep
Unexecuted instantiation: gspaint.c:device_is_deep
Unexecuted instantiation: gspath.c:device_is_deep
Unexecuted instantiation: gsstate.c:device_is_deep
Unexecuted instantiation: gstext.c:device_is_deep
Unexecuted instantiation: gxfapi.c:device_is_deep
Unexecuted instantiation: write_t2.c:device_is_deep
Unexecuted instantiation: gxchar.c:device_is_deep
Unexecuted instantiation: gxcht.c:device_is_deep
Unexecuted instantiation: gxclip.c:device_is_deep
Unexecuted instantiation: gxcmap.c:device_is_deep
Unexecuted instantiation: gxcpath.c:device_is_deep
Unexecuted instantiation: gxdcconv.c:device_is_deep
Unexecuted instantiation: gxdcolor.c:device_is_deep
Unexecuted instantiation: gxhldevc.c:device_is_deep
Unexecuted instantiation: gxfill.c:device_is_deep
Unexecuted instantiation: gxht.c:device_is_deep
Unexecuted instantiation: gxht_thresh.c:device_is_deep
Unexecuted instantiation: gxifast.c:device_is_deep
Unexecuted instantiation: gximage.c:device_is_deep
Unexecuted instantiation: gximdecode.c:device_is_deep
Unexecuted instantiation: gximage1.c:device_is_deep
Unexecuted instantiation: gximono.c:device_is_deep
Unexecuted instantiation: gxipixel.c:device_is_deep
Unexecuted instantiation: gximask.c:device_is_deep
Unexecuted instantiation: gxi12bit.c:device_is_deep
Unexecuted instantiation: gxi16bit.c:device_is_deep
Unexecuted instantiation: gxiscale.c:device_is_deep
Unexecuted instantiation: gxpaint.c:device_is_deep
Unexecuted instantiation: gxpcopy.c:device_is_deep
Unexecuted instantiation: gxsample.c:device_is_deep
Unexecuted instantiation: gxstroke.c:device_is_deep
Unexecuted instantiation: gdevabuf.c:device_is_deep
Unexecuted instantiation: gdevdbit.c:device_is_deep
Unexecuted instantiation: gdevddrw.c:device_is_deep
gdevdflt.c:device_is_deep
Line
Count
Source
1630
2.64M
{
1631
2.64M
    bool has_tags = device_encodes_tags(dev);
1632
2.64M
    int bits_per_comp = ((dev->color_info.depth - has_tags*8) /
1633
2.64M
                         dev->color_info.num_components);
1634
2.64M
    if (bits_per_comp > 16)
1635
0
        return 1;
1636
2.64M
    if (bits_per_comp == 16 && dev->color_info.num_components > 1)
1637
0
        return 1;
1638
2.64M
    if (bits_per_comp == 8)
1639
0
        return 0;
1640
2.64M
    return (dev->color_info.max_color > 255 ||
1641
2.64M
            dev->color_info.max_gray > 255);
1642
2.64M
}
Unexecuted instantiation: gdevdgbr.c:device_is_deep
Unexecuted instantiation: gdevnfwd.c:device_is_deep
gdevmem.c:device_is_deep
Line
Count
Source
1630
14.7k
{
1631
14.7k
    bool has_tags = device_encodes_tags(dev);
1632
14.7k
    int bits_per_comp = ((dev->color_info.depth - has_tags*8) /
1633
14.7k
                         dev->color_info.num_components);
1634
14.7k
    if (bits_per_comp > 16)
1635
0
        return 1;
1636
14.7k
    if (bits_per_comp == 16 && dev->color_info.num_components > 1)
1637
0
        return 1;
1638
14.7k
    if (bits_per_comp == 8)
1639
0
        return 0;
1640
14.7k
    return (dev->color_info.max_color > 255 ||
1641
14.7k
            dev->color_info.max_gray > 255);
1642
14.7k
}
Unexecuted instantiation: gdevplnx.c:device_is_deep
Unexecuted instantiation: gdevm1.c:device_is_deep
Unexecuted instantiation: gdevm2.c:device_is_deep
Unexecuted instantiation: gdevm4.c:device_is_deep
Unexecuted instantiation: gdevm8.c:device_is_deep
Unexecuted instantiation: gdevm16.c:device_is_deep
Unexecuted instantiation: gdevm24.c:device_is_deep
Unexecuted instantiation: gdevm32.c:device_is_deep
Unexecuted instantiation: gdevmpla.c:device_is_deep
Unexecuted instantiation: gdevm40.c:device_is_deep
Unexecuted instantiation: gdevm48.c:device_is_deep
Unexecuted instantiation: gdevm56.c:device_is_deep
Unexecuted instantiation: gdevm64.c:device_is_deep
Unexecuted instantiation: gdevmx.c:device_is_deep
Unexecuted instantiation: gdevdsha.c:device_is_deep
Unexecuted instantiation: gxscanc.c:device_is_deep
Unexecuted instantiation: gdevdrop.c:device_is_deep
Unexecuted instantiation: gdevmr1.c:device_is_deep
Unexecuted instantiation: gdevmr2n.c:device_is_deep
Unexecuted instantiation: gdevmr8n.c:device_is_deep
Unexecuted instantiation: gdevrops.c:device_is_deep
Unexecuted instantiation: gsrop.c:device_is_deep
Unexecuted instantiation: zcolor1.c:device_is_deep
Unexecuted instantiation: zht1.c:device_is_deep
Unexecuted instantiation: zupath.c:device_is_deep
Unexecuted instantiation: gdevhit.c:device_is_deep
Unexecuted instantiation: zdps1.c:device_is_deep
Unexecuted instantiation: zchar1.c:device_is_deep
Unexecuted instantiation: zcharout.c:device_is_deep
Unexecuted instantiation: zfont1.c:device_is_deep
Unexecuted instantiation: zusparam.c:device_is_deep
Unexecuted instantiation: zchar42.c:device_is_deep
Unexecuted instantiation: zfont0.c:device_is_deep
Unexecuted instantiation: zfdctd.c:device_is_deep
Unexecuted instantiation: zdevice2.c:device_is_deep
Unexecuted instantiation: zpcolor.c:device_is_deep
Unexecuted instantiation: idisp.c:device_is_deep
Unexecuted instantiation: psapi.c:device_is_deep
Unexecuted instantiation: zfileio.c:device_is_deep
Unexecuted instantiation: zbfont.c:device_is_deep
Unexecuted instantiation: zchar.c:device_is_deep
Unexecuted instantiation: zcolor.c:device_is_deep
Unexecuted instantiation: zdevice.c:device_is_deep
Unexecuted instantiation: zfont.c:device_is_deep
Unexecuted instantiation: zht.c:device_is_deep
Unexecuted instantiation: zimage.c:device_is_deep
Unexecuted instantiation: zfapi.c:device_is_deep
Unexecuted instantiation: zcsindex.c:device_is_deep
Unexecuted instantiation: zht2.c:device_is_deep
Unexecuted instantiation: zcssepr.c:device_is_deep
Unexecuted instantiation: zfunc4.c:device_is_deep
Unexecuted instantiation: zform.c:device_is_deep
Unexecuted instantiation: zimage3.c:device_is_deep
Unexecuted instantiation: zicc.c:device_is_deep
Unexecuted instantiation: ztrans.c:device_is_deep
Unexecuted instantiation: zpdfops.c:device_is_deep
Unexecuted instantiation: ghostpdf.c:device_is_deep
Unexecuted instantiation: pdf_dict.c:device_is_deep
Unexecuted instantiation: pdf_array.c:device_is_deep
Unexecuted instantiation: pdf_xref.c:device_is_deep
Unexecuted instantiation: pdf_int.c:device_is_deep
Unexecuted instantiation: pdf_file.c:device_is_deep
Unexecuted instantiation: pdf_path.c:device_is_deep
Unexecuted instantiation: pdf_colour.c:device_is_deep
Unexecuted instantiation: pdf_pattern.c:device_is_deep
Unexecuted instantiation: pdf_gstate.c:device_is_deep
Unexecuted instantiation: pdf_stack.c:device_is_deep
Unexecuted instantiation: pdf_image.c:device_is_deep
Unexecuted instantiation: pdf_page.c:device_is_deep
Unexecuted instantiation: pdf_annot.c:device_is_deep
Unexecuted instantiation: pdf_mark.c:device_is_deep
Unexecuted instantiation: pdf_font.c:device_is_deep
Unexecuted instantiation: pdf_font0.c:device_is_deep
Unexecuted instantiation: pdf_ciddec.c:device_is_deep
Unexecuted instantiation: pdf_font1.c:device_is_deep
Unexecuted instantiation: pdf_font1C.c:device_is_deep
Unexecuted instantiation: pdf_fontps.c:device_is_deep
Unexecuted instantiation: pdf_font3.c:device_is_deep
Unexecuted instantiation: pdf_fontTT.c:device_is_deep
Unexecuted instantiation: pdf_font11.c:device_is_deep
Unexecuted instantiation: pdf_cmap.c:device_is_deep
Unexecuted instantiation: pdf_fmap.c:device_is_deep
Unexecuted instantiation: pdf_text.c:device_is_deep
Unexecuted instantiation: pdf_shading.c:device_is_deep
Unexecuted instantiation: pdf_func.c:device_is_deep
Unexecuted instantiation: pdf_trans.c:device_is_deep
Unexecuted instantiation: pdf_device.c:device_is_deep
Unexecuted instantiation: pdf_misc.c:device_is_deep
Unexecuted instantiation: pdf_optcontent.c:device_is_deep
Unexecuted instantiation: pdf_check.c:device_is_deep
Unexecuted instantiation: pdf_sec.c:device_is_deep
Unexecuted instantiation: pdf_utf8.c:device_is_deep
Unexecuted instantiation: pdf_deref.c:device_is_deep
Unexecuted instantiation: pdf_repair.c:device_is_deep
Unexecuted instantiation: pdf_obj.c:device_is_deep
Unexecuted instantiation: pdf_doc.c:device_is_deep
Unexecuted instantiation: zfjpx.c:device_is_deep
Unexecuted instantiation: imainarg.c:device_is_deep
Unexecuted instantiation: gsclipsr.c:device_is_deep
Unexecuted instantiation: gscdevn.c:device_is_deep
Unexecuted instantiation: gxdevndi.c:device_is_deep
Unexecuted instantiation: gxclipm.c:device_is_deep
Unexecuted instantiation: gscolor3.c:device_is_deep
Unexecuted instantiation: gsptype2.c:device_is_deep
Unexecuted instantiation: gsshade.c:device_is_deep
Unexecuted instantiation: gxshade1.c:device_is_deep
Unexecuted instantiation: gxshade4.c:device_is_deep
Unexecuted instantiation: gxshade6.c:device_is_deep
Unexecuted instantiation: gscolor1.c:device_is_deep
Unexecuted instantiation: gsht1.c:device_is_deep
Unexecuted instantiation: gscolor2.c:device_is_deep
Unexecuted instantiation: gspcolor.c:device_is_deep
Unexecuted instantiation: gxclip2.c:device_is_deep
Unexecuted instantiation: gspath1.c:device_is_deep
Unexecuted instantiation: gstype42.c:device_is_deep
Unexecuted instantiation: gxchrout.c:device_is_deep
Unexecuted instantiation: gxttfb.c:device_is_deep
Unexecuted instantiation: gzspotan.c:device_is_deep
Unexecuted instantiation: gscie.c:device_is_deep
Unexecuted instantiation: gscsepr.c:device_is_deep
Unexecuted instantiation: gxblend1.c:device_is_deep
Unexecuted instantiation: gdevepo.c:device_is_deep
Unexecuted instantiation: gxclbits.c:device_is_deep
Unexecuted instantiation: gxclrast.c:device_is_deep
Unexecuted instantiation: gschar0.c:device_is_deep
Unexecuted instantiation: gsfont0.c:device_is_deep
Unexecuted instantiation: gstype1.c:device_is_deep
Unexecuted instantiation: gxtype1.c:device_is_deep
Unexecuted instantiation: gstype2.c:device_is_deep
Unexecuted instantiation: gsicc_profilecache.c:device_is_deep
Unexecuted instantiation: gdeveprn.c:device_is_deep
Unexecuted instantiation: eprnparm.c:device_is_deep
Unexecuted instantiation: eprnrend.c:device_is_deep
Unexecuted instantiation: eprnfs.c:device_is_deep
Unexecuted instantiation: gscicach.c:device_is_deep
Unexecuted instantiation: gsdevmem.c:device_is_deep
Unexecuted instantiation: gsfont.c:device_is_deep
Unexecuted instantiation: gxacpath.c:device_is_deep
Unexecuted instantiation: gxccache.c:device_is_deep
Unexecuted instantiation: gxccman.c:device_is_deep
Unexecuted instantiation: gxidata.c:device_is_deep
Unexecuted instantiation: gxpdash.c:device_is_deep
Unexecuted instantiation: pdf_loop_detect.c:device_is_deep
Unexecuted instantiation: pdf_fapi.c:device_is_deep
Unexecuted instantiation: gxshade.c:device_is_deep
Unexecuted instantiation: gscscie.c:device_is_deep
Unexecuted instantiation: gschar.c:device_is_deep
1643
1644
/* A null device.  This is used to temporarily disable output. */
1645
struct gx_device_null_s {
1646
    gx_device_forward_common;
1647
};
1648
extern const gx_device_null gs_null_device;
1649
1650
#define gx_device_is_null(dev)\
1651
2.59k
  ((dev)->dname == gs_null_device.dname)
1652
extern_st(st_device_null);
1653
#define public_st_device_null() /* in gsdevice.c */\
1654
  gs_public_st_complex_only(st_device_null, gx_device_null,\
1655
    "gx_device_null", 0, device_forward_enum_ptrs,\
1656
    device_forward_reloc_ptrs, gx_device_finalize)
1657
#define st_device_null_max_ptrs st_device_forward_max_ptrs
1658
1659
/*
1660
 * Initialize a just-allocated device from a prototype.  If internal =
1661
 * false, the device is marked retained; if internal = true, the device is
1662
 * not marked retained.  See the beginning of this file for more information
1663
 * about what this means.  Normally, devices created for temporary use have
1664
 * internal = true (retained = false).
1665
 */
1666
int gx_device_init(gx_device * dev, const gx_device * proto,
1667
                   gs_memory_t * mem, bool internal);
1668
1669
/*
1670
 * Identical to gx_device_init, except that the reference counting is set
1671
 * up so that it doesn't attempt to free the device structure when the last
1672
 * instance is removed, and the device is always internal (never retained).
1673
 *
1674
 * If the device uses an initialize proc (and it should!) it can never
1675
 * fail.
1676
 */
1677
void gx_device_init_on_stack(gx_device * dev, const gx_device * proto,
1678
                             gs_memory_t * mem);
1679
1680
/* Make a null device. */
1681
/* The gs_memory_t argument is 0 if the device is temporary and local, */
1682
/* or the allocator that was used to allocate it if it is a real object. */
1683
void gs_make_null_device(gx_device_null *dev_null, gx_device *target,
1684
                         gs_memory_t *mem);
1685
/* Is a null device ? */
1686
bool gs_is_null_device(gx_device *dev);
1687
1688
/* Set the target of a (forwarding) device. */
1689
void gx_device_set_target(gx_device_forward *fdev, gx_device *target);
1690
1691
/* Mark a device as retained or not retained. */
1692
void gx_device_retain(gx_device *dev, bool retained);
1693
1694
/* Calculate the raster (number of bytes in a scan line), */
1695
/* with byte or device padding. */
1696
uint gx_device_raster(const gx_device * dev, bool pad_to_word);
1697
1698
/* Calculate the raster (number of bytes in a scan line), */
1699
/* with byte or device padding forcing chunky format. */
1700
uint gx_device_raster_chunky(const gx_device * dev, bool pad);
1701
1702
/* Calculate the raster (with device padding) optionally for a given
1703
 * render_plane (may be NULL). */
1704
uint gx_device_raster_plane(const gx_device * dev, const gx_render_plane_t *render_plane);
1705
1706
/* Adjust the resolution for devices that only have a fixed set of */
1707
/* geometries, so that the apparent size in inches remains constant. */
1708
/* If fit=1, the resolution is adjusted so that the entire image fits; */
1709
/* if fit=0, one dimension fits, but the other one is clipped. */
1710
int gx_device_adjust_resolution(gx_device * dev, int actual_width, int actual_height, int fit);
1711
1712
/* Set the HWMargins to values defined in inches. */
1713
/* If move_origin is true, also reset the Margins. */
1714
void gx_device_set_margins(gx_device * dev, const float *margins /*[4] */ ,
1715
                           bool move_origin);
1716
1717
/* Set the width and height (in pixels), updating MediaSize. */
1718
void gx_device_set_width_height(gx_device * dev, int width, int height);
1719
1720
/* Set the resolution (in pixels per inch), updating width and height. */
1721
void gx_device_set_resolution(gx_device * dev, double x_dpi, double y_dpi);
1722
1723
/* Set the MediaSize (in 1/72" units), updating width and height. */
1724
void gx_device_set_media_size(gx_device * dev, double media_width, double media_height);
1725
1726
/****** BACKWARD COMPATIBILITY ******/
1727
#define gx_device_set_page_size(dev, w, h)\
1728
1.01k
  gx_device_set_media_size(dev, w, h)
1729
1730
/*
1731
 * Temporarily install a null device, or a special device such as
1732
 * a clipping or cache device.
1733
 */
1734
void gx_set_device_only(gs_gstate *, gx_device *);
1735
1736
/* Close a device. */
1737
int gs_closedevice(gx_device *);
1738
1739
/* "Free" a device locally allocated on the stack, by finalizing it. */
1740
void gx_device_free_local(gx_device *);
1741
1742
/* ------ Device types (an unused concept right now) ------ */
1743
1744
#define dev_type_proc_initialize(proc)\
1745
  int proc(gx_device *)
1746
1747
typedef struct gx_device_type_s {
1748
    gs_memory_type_ptr_t stype;
1749
    dev_type_proc_initialize((*initialize));
1750
} gx_device_type;
1751
1752
#define device_type(dtname, stype, initproc)\
1753
static dev_type_proc_initialize(initproc);\
1754
const gx_device_type dtname = { &stype, initproc }
1755
1756
/*dev_type_proc_initialize(gdev_initialize); */
1757
1758
#ifdef DEBUG
1759
void gx_device_dump(gx_device *dev, const char *text);
1760
#endif
1761
1762
/* Compare color information structures */
1763
bool gx_color_info_equal(const gx_device_color_info *p1, const gx_device_color_info *p2);
1764
1765
/* Perform a callout to registered handlers from the device. */
1766
int gx_callout(gx_device *dev, int id, int size, void *data);
1767
1768
static inline
1769
gx_cm_opmsupported_t gx_get_opmsupported(gx_device *dev)
1770
82
{
1771
82
    if (dev->color_info.opmsupported != GX_CINFO_OPMSUPPORTED_UNKNOWN)
1772
69
        return dev->color_info.opmsupported;
1773
1774
13
    (void)check_cmyk_color_model_comps(dev);
1775
1776
13
    return dev->color_info.opmsupported;
1777
82
}
Unexecuted instantiation: imain.c:gx_get_opmsupported
Unexecuted instantiation: gconfig.c:gx_get_opmsupported
Unexecuted instantiation: gximage3.c:gx_get_opmsupported
Unexecuted instantiation: gximage4.c:gx_get_opmsupported
Unexecuted instantiation: gxmclip.c:gx_get_opmsupported
Unexecuted instantiation: gsptype1.c:gx_get_opmsupported
Unexecuted instantiation: gxp1fill.c:gx_get_opmsupported
Unexecuted instantiation: gxpcmap.c:gx_get_opmsupported
Unexecuted instantiation: gxicolor.c:gx_get_opmsupported
Unexecuted instantiation: gsdps1.c:gx_get_opmsupported
Unexecuted instantiation: gsciemap.c:gx_get_opmsupported
Unexecuted instantiation: gstrans.c:gx_get_opmsupported
Unexecuted instantiation: gximag3x.c:gx_get_opmsupported
Unexecuted instantiation: gxblend.c:gx_get_opmsupported
Unexecuted instantiation: gdevp14.c:gx_get_opmsupported
Unexecuted instantiation: gdevdevn.c:gx_get_opmsupported
Unexecuted instantiation: gsequivc.c:gx_get_opmsupported
Unexecuted instantiation: gdevdcrd.c:gx_get_opmsupported
Unexecuted instantiation: gscpixel.c:gx_get_opmsupported
Unexecuted instantiation: gdevbbox.c:gx_get_opmsupported
Unexecuted instantiation: gdevprn.c:gx_get_opmsupported
Unexecuted instantiation: gdevppla.c:gx_get_opmsupported
Unexecuted instantiation: gdevflp.c:gx_get_opmsupported
Unexecuted instantiation: gdevoflt.c:gx_get_opmsupported
Unexecuted instantiation: gdevnup.c:gx_get_opmsupported
Unexecuted instantiation: gdevsclass.c:gx_get_opmsupported
Unexecuted instantiation: gxclist.c:gx_get_opmsupported
Unexecuted instantiation: gxclpage.c:gx_get_opmsupported
Unexecuted instantiation: gxclread.c:gx_get_opmsupported
Unexecuted instantiation: gxclrect.c:gx_get_opmsupported
Unexecuted instantiation: gxclutil.c:gx_get_opmsupported
Unexecuted instantiation: gxclimag.c:gx_get_opmsupported
Unexecuted instantiation: gxclpath.c:gx_get_opmsupported
Unexecuted instantiation: gxdhtserial.c:gx_get_opmsupported
Unexecuted instantiation: gxclthrd.c:gx_get_opmsupported
gsicc.c:gx_get_opmsupported
Line
Count
Source
1770
82
{
1771
82
    if (dev->color_info.opmsupported != GX_CINFO_OPMSUPPORTED_UNKNOWN)
1772
69
        return dev->color_info.opmsupported;
1773
1774
13
    (void)check_cmyk_color_model_comps(dev);
1775
1776
13
    return dev->color_info.opmsupported;
1777
82
}
Unexecuted instantiation: gsicc_manage.c:gx_get_opmsupported
Unexecuted instantiation: gsicc_cache.c:gx_get_opmsupported
Unexecuted instantiation: gsicc_lcms2mt.c:gx_get_opmsupported
Unexecuted instantiation: gsicc_create.c:gx_get_opmsupported
Unexecuted instantiation: gsicc_nocm.c:gx_get_opmsupported
Unexecuted instantiation: gsicc_replacecm.c:gx_get_opmsupported
Unexecuted instantiation: gsicc_monitorcm.c:gx_get_opmsupported
Unexecuted instantiation: gsicc_blacktext.c:gx_get_opmsupported
Unexecuted instantiation: gdevcups.c:gx_get_opmsupported
Unexecuted instantiation: gdevdjet.c:gx_get_opmsupported
Unexecuted instantiation: gdevdljm.c:gx_get_opmsupported
Unexecuted instantiation: gdevpcl.c:gx_get_opmsupported
Unexecuted instantiation: gdevpcl3.c:gx_get_opmsupported
Unexecuted instantiation: pclcap.c:gx_get_opmsupported
Unexecuted instantiation: gdevpx.c:gx_get_opmsupported
Unexecuted instantiation: gdevpxut.c:gx_get_opmsupported
Unexecuted instantiation: gdevvec.c:gx_get_opmsupported
Unexecuted instantiation: gdevupd.c:gx_get_opmsupported
Unexecuted instantiation: gdevkrnlsclass.c:gx_get_opmsupported
Unexecuted instantiation: gscolor.c:gx_get_opmsupported
Unexecuted instantiation: gscoord.c:gx_get_opmsupported
Unexecuted instantiation: gscspace.c:gx_get_opmsupported
Unexecuted instantiation: gsovrc.c:gx_get_opmsupported
Unexecuted instantiation: gxoprect.c:gx_get_opmsupported
Unexecuted instantiation: gsdevice.c:gx_get_opmsupported
Unexecuted instantiation: gsdparam.c:gx_get_opmsupported
Unexecuted instantiation: gsht.c:gx_get_opmsupported
Unexecuted instantiation: gshtscr.c:gx_get_opmsupported
Unexecuted instantiation: gsimage.c:gx_get_opmsupported
Unexecuted instantiation: gsgstate.c:gx_get_opmsupported
Unexecuted instantiation: gsline.c:gx_get_opmsupported
Unexecuted instantiation: gspaint.c:gx_get_opmsupported
Unexecuted instantiation: gspath.c:gx_get_opmsupported
Unexecuted instantiation: gsstate.c:gx_get_opmsupported
Unexecuted instantiation: gstext.c:gx_get_opmsupported
Unexecuted instantiation: gxfapi.c:gx_get_opmsupported
Unexecuted instantiation: write_t2.c:gx_get_opmsupported
Unexecuted instantiation: gxchar.c:gx_get_opmsupported
Unexecuted instantiation: gxcht.c:gx_get_opmsupported
Unexecuted instantiation: gxclip.c:gx_get_opmsupported
Unexecuted instantiation: gxcmap.c:gx_get_opmsupported
Unexecuted instantiation: gxcpath.c:gx_get_opmsupported
Unexecuted instantiation: gxdcconv.c:gx_get_opmsupported
Unexecuted instantiation: gxdcolor.c:gx_get_opmsupported
Unexecuted instantiation: gxhldevc.c:gx_get_opmsupported
Unexecuted instantiation: gxfill.c:gx_get_opmsupported
Unexecuted instantiation: gxht.c:gx_get_opmsupported
Unexecuted instantiation: gxht_thresh.c:gx_get_opmsupported
Unexecuted instantiation: gxifast.c:gx_get_opmsupported
Unexecuted instantiation: gximage.c:gx_get_opmsupported
Unexecuted instantiation: gximdecode.c:gx_get_opmsupported
Unexecuted instantiation: gximage1.c:gx_get_opmsupported
Unexecuted instantiation: gximono.c:gx_get_opmsupported
Unexecuted instantiation: gxipixel.c:gx_get_opmsupported
Unexecuted instantiation: gximask.c:gx_get_opmsupported
Unexecuted instantiation: gxi12bit.c:gx_get_opmsupported
Unexecuted instantiation: gxi16bit.c:gx_get_opmsupported
Unexecuted instantiation: gxiscale.c:gx_get_opmsupported
Unexecuted instantiation: gxpaint.c:gx_get_opmsupported
Unexecuted instantiation: gxpcopy.c:gx_get_opmsupported
Unexecuted instantiation: gxsample.c:gx_get_opmsupported
Unexecuted instantiation: gxstroke.c:gx_get_opmsupported
Unexecuted instantiation: gdevabuf.c:gx_get_opmsupported
Unexecuted instantiation: gdevdbit.c:gx_get_opmsupported
Unexecuted instantiation: gdevddrw.c:gx_get_opmsupported
Unexecuted instantiation: gdevdflt.c:gx_get_opmsupported
Unexecuted instantiation: gdevdgbr.c:gx_get_opmsupported
Unexecuted instantiation: gdevnfwd.c:gx_get_opmsupported
Unexecuted instantiation: gdevmem.c:gx_get_opmsupported
Unexecuted instantiation: gdevplnx.c:gx_get_opmsupported
Unexecuted instantiation: gdevm1.c:gx_get_opmsupported
Unexecuted instantiation: gdevm2.c:gx_get_opmsupported
Unexecuted instantiation: gdevm4.c:gx_get_opmsupported
Unexecuted instantiation: gdevm8.c:gx_get_opmsupported
Unexecuted instantiation: gdevm16.c:gx_get_opmsupported
Unexecuted instantiation: gdevm24.c:gx_get_opmsupported
Unexecuted instantiation: gdevm32.c:gx_get_opmsupported
Unexecuted instantiation: gdevmpla.c:gx_get_opmsupported
Unexecuted instantiation: gdevm40.c:gx_get_opmsupported
Unexecuted instantiation: gdevm48.c:gx_get_opmsupported
Unexecuted instantiation: gdevm56.c:gx_get_opmsupported
Unexecuted instantiation: gdevm64.c:gx_get_opmsupported
Unexecuted instantiation: gdevmx.c:gx_get_opmsupported
Unexecuted instantiation: gdevdsha.c:gx_get_opmsupported
Unexecuted instantiation: gxscanc.c:gx_get_opmsupported
Unexecuted instantiation: gdevdrop.c:gx_get_opmsupported
Unexecuted instantiation: gdevmr1.c:gx_get_opmsupported
Unexecuted instantiation: gdevmr2n.c:gx_get_opmsupported
Unexecuted instantiation: gdevmr8n.c:gx_get_opmsupported
Unexecuted instantiation: gdevrops.c:gx_get_opmsupported
Unexecuted instantiation: gsrop.c:gx_get_opmsupported
Unexecuted instantiation: zcolor1.c:gx_get_opmsupported
Unexecuted instantiation: zht1.c:gx_get_opmsupported
Unexecuted instantiation: zupath.c:gx_get_opmsupported
Unexecuted instantiation: gdevhit.c:gx_get_opmsupported
Unexecuted instantiation: zdps1.c:gx_get_opmsupported
Unexecuted instantiation: zchar1.c:gx_get_opmsupported
Unexecuted instantiation: zcharout.c:gx_get_opmsupported
Unexecuted instantiation: zfont1.c:gx_get_opmsupported
Unexecuted instantiation: zusparam.c:gx_get_opmsupported
Unexecuted instantiation: zchar42.c:gx_get_opmsupported
Unexecuted instantiation: zfont0.c:gx_get_opmsupported
Unexecuted instantiation: zfdctd.c:gx_get_opmsupported
Unexecuted instantiation: zdevice2.c:gx_get_opmsupported
Unexecuted instantiation: zpcolor.c:gx_get_opmsupported
Unexecuted instantiation: idisp.c:gx_get_opmsupported
Unexecuted instantiation: psapi.c:gx_get_opmsupported
Unexecuted instantiation: zfileio.c:gx_get_opmsupported
Unexecuted instantiation: zbfont.c:gx_get_opmsupported
Unexecuted instantiation: zchar.c:gx_get_opmsupported
Unexecuted instantiation: zcolor.c:gx_get_opmsupported
Unexecuted instantiation: zdevice.c:gx_get_opmsupported
Unexecuted instantiation: zfont.c:gx_get_opmsupported
Unexecuted instantiation: zht.c:gx_get_opmsupported
Unexecuted instantiation: zimage.c:gx_get_opmsupported
Unexecuted instantiation: zfapi.c:gx_get_opmsupported
Unexecuted instantiation: zcsindex.c:gx_get_opmsupported
Unexecuted instantiation: zht2.c:gx_get_opmsupported
Unexecuted instantiation: zcssepr.c:gx_get_opmsupported
Unexecuted instantiation: zfunc4.c:gx_get_opmsupported
Unexecuted instantiation: zform.c:gx_get_opmsupported
Unexecuted instantiation: zimage3.c:gx_get_opmsupported
Unexecuted instantiation: zicc.c:gx_get_opmsupported
Unexecuted instantiation: ztrans.c:gx_get_opmsupported
Unexecuted instantiation: zpdfops.c:gx_get_opmsupported
Unexecuted instantiation: ghostpdf.c:gx_get_opmsupported
Unexecuted instantiation: pdf_dict.c:gx_get_opmsupported
Unexecuted instantiation: pdf_array.c:gx_get_opmsupported
Unexecuted instantiation: pdf_xref.c:gx_get_opmsupported
Unexecuted instantiation: pdf_int.c:gx_get_opmsupported
Unexecuted instantiation: pdf_file.c:gx_get_opmsupported
Unexecuted instantiation: pdf_path.c:gx_get_opmsupported
Unexecuted instantiation: pdf_colour.c:gx_get_opmsupported
Unexecuted instantiation: pdf_pattern.c:gx_get_opmsupported
Unexecuted instantiation: pdf_gstate.c:gx_get_opmsupported
Unexecuted instantiation: pdf_stack.c:gx_get_opmsupported
Unexecuted instantiation: pdf_image.c:gx_get_opmsupported
Unexecuted instantiation: pdf_page.c:gx_get_opmsupported
Unexecuted instantiation: pdf_annot.c:gx_get_opmsupported
Unexecuted instantiation: pdf_mark.c:gx_get_opmsupported
Unexecuted instantiation: pdf_font.c:gx_get_opmsupported
Unexecuted instantiation: pdf_font0.c:gx_get_opmsupported
Unexecuted instantiation: pdf_ciddec.c:gx_get_opmsupported
Unexecuted instantiation: pdf_font1.c:gx_get_opmsupported
Unexecuted instantiation: pdf_font1C.c:gx_get_opmsupported
Unexecuted instantiation: pdf_fontps.c:gx_get_opmsupported
Unexecuted instantiation: pdf_font3.c:gx_get_opmsupported
Unexecuted instantiation: pdf_fontTT.c:gx_get_opmsupported
Unexecuted instantiation: pdf_font11.c:gx_get_opmsupported
Unexecuted instantiation: pdf_cmap.c:gx_get_opmsupported
Unexecuted instantiation: pdf_fmap.c:gx_get_opmsupported
Unexecuted instantiation: pdf_text.c:gx_get_opmsupported
Unexecuted instantiation: pdf_shading.c:gx_get_opmsupported
Unexecuted instantiation: pdf_func.c:gx_get_opmsupported
Unexecuted instantiation: pdf_trans.c:gx_get_opmsupported
Unexecuted instantiation: pdf_device.c:gx_get_opmsupported
Unexecuted instantiation: pdf_misc.c:gx_get_opmsupported
Unexecuted instantiation: pdf_optcontent.c:gx_get_opmsupported
Unexecuted instantiation: pdf_check.c:gx_get_opmsupported
Unexecuted instantiation: pdf_sec.c:gx_get_opmsupported
Unexecuted instantiation: pdf_utf8.c:gx_get_opmsupported
Unexecuted instantiation: pdf_deref.c:gx_get_opmsupported
Unexecuted instantiation: pdf_repair.c:gx_get_opmsupported
Unexecuted instantiation: pdf_obj.c:gx_get_opmsupported
Unexecuted instantiation: pdf_doc.c:gx_get_opmsupported
Unexecuted instantiation: zfjpx.c:gx_get_opmsupported
Unexecuted instantiation: imainarg.c:gx_get_opmsupported
Unexecuted instantiation: gsclipsr.c:gx_get_opmsupported
Unexecuted instantiation: gscdevn.c:gx_get_opmsupported
Unexecuted instantiation: gxdevndi.c:gx_get_opmsupported
Unexecuted instantiation: gxclipm.c:gx_get_opmsupported
Unexecuted instantiation: gscolor3.c:gx_get_opmsupported
Unexecuted instantiation: gsptype2.c:gx_get_opmsupported
Unexecuted instantiation: gsshade.c:gx_get_opmsupported
Unexecuted instantiation: gxshade1.c:gx_get_opmsupported
Unexecuted instantiation: gxshade4.c:gx_get_opmsupported
Unexecuted instantiation: gxshade6.c:gx_get_opmsupported
Unexecuted instantiation: gscolor1.c:gx_get_opmsupported
Unexecuted instantiation: gsht1.c:gx_get_opmsupported
Unexecuted instantiation: gscolor2.c:gx_get_opmsupported
Unexecuted instantiation: gspcolor.c:gx_get_opmsupported
Unexecuted instantiation: gxclip2.c:gx_get_opmsupported
Unexecuted instantiation: gspath1.c:gx_get_opmsupported
Unexecuted instantiation: gstype42.c:gx_get_opmsupported
Unexecuted instantiation: gxchrout.c:gx_get_opmsupported
Unexecuted instantiation: gxttfb.c:gx_get_opmsupported
Unexecuted instantiation: gzspotan.c:gx_get_opmsupported
Unexecuted instantiation: gscie.c:gx_get_opmsupported
Unexecuted instantiation: gscsepr.c:gx_get_opmsupported
Unexecuted instantiation: gxblend1.c:gx_get_opmsupported
Unexecuted instantiation: gdevepo.c:gx_get_opmsupported
Unexecuted instantiation: gxclbits.c:gx_get_opmsupported
Unexecuted instantiation: gxclrast.c:gx_get_opmsupported
Unexecuted instantiation: gschar0.c:gx_get_opmsupported
Unexecuted instantiation: gsfont0.c:gx_get_opmsupported
Unexecuted instantiation: gstype1.c:gx_get_opmsupported
Unexecuted instantiation: gxtype1.c:gx_get_opmsupported
Unexecuted instantiation: gstype2.c:gx_get_opmsupported
Unexecuted instantiation: gsicc_profilecache.c:gx_get_opmsupported
Unexecuted instantiation: gdeveprn.c:gx_get_opmsupported
Unexecuted instantiation: eprnparm.c:gx_get_opmsupported
Unexecuted instantiation: eprnrend.c:gx_get_opmsupported
Unexecuted instantiation: eprnfs.c:gx_get_opmsupported
Unexecuted instantiation: gscicach.c:gx_get_opmsupported
Unexecuted instantiation: gsdevmem.c:gx_get_opmsupported
Unexecuted instantiation: gsfont.c:gx_get_opmsupported
Unexecuted instantiation: gxacpath.c:gx_get_opmsupported
Unexecuted instantiation: gxccache.c:gx_get_opmsupported
Unexecuted instantiation: gxccman.c:gx_get_opmsupported
Unexecuted instantiation: gxidata.c:gx_get_opmsupported
Unexecuted instantiation: gxpdash.c:gx_get_opmsupported
Unexecuted instantiation: pdf_loop_detect.c:gx_get_opmsupported
Unexecuted instantiation: pdf_fapi.c:gx_get_opmsupported
Unexecuted instantiation: gxshade.c:gx_get_opmsupported
Unexecuted instantiation: gscscie.c:gx_get_opmsupported
Unexecuted instantiation: gschar.c:gx_get_opmsupported
1778
1779
static inline
1780
gx_color_index gx_get_process_comps(gx_device *dev)
1781
0
{
1782
0
    if (dev->color_info.opmsupported != GX_CINFO_OPMSUPPORTED_UNKNOWN)
1783
0
        return dev->color_info.process_comps;
1784
1785
0
    return check_cmyk_color_model_comps(dev);
1786
0
}
Unexecuted instantiation: imain.c:gx_get_process_comps
Unexecuted instantiation: gconfig.c:gx_get_process_comps
Unexecuted instantiation: gximage3.c:gx_get_process_comps
Unexecuted instantiation: gximage4.c:gx_get_process_comps
Unexecuted instantiation: gxmclip.c:gx_get_process_comps
Unexecuted instantiation: gsptype1.c:gx_get_process_comps
Unexecuted instantiation: gxp1fill.c:gx_get_process_comps
Unexecuted instantiation: gxpcmap.c:gx_get_process_comps
Unexecuted instantiation: gxicolor.c:gx_get_process_comps
Unexecuted instantiation: gsdps1.c:gx_get_process_comps
Unexecuted instantiation: gsciemap.c:gx_get_process_comps
Unexecuted instantiation: gstrans.c:gx_get_process_comps
Unexecuted instantiation: gximag3x.c:gx_get_process_comps
Unexecuted instantiation: gxblend.c:gx_get_process_comps
Unexecuted instantiation: gdevp14.c:gx_get_process_comps
Unexecuted instantiation: gdevdevn.c:gx_get_process_comps
Unexecuted instantiation: gsequivc.c:gx_get_process_comps
Unexecuted instantiation: gdevdcrd.c:gx_get_process_comps
Unexecuted instantiation: gscpixel.c:gx_get_process_comps
Unexecuted instantiation: gdevbbox.c:gx_get_process_comps
Unexecuted instantiation: gdevprn.c:gx_get_process_comps
Unexecuted instantiation: gdevppla.c:gx_get_process_comps
Unexecuted instantiation: gdevflp.c:gx_get_process_comps
Unexecuted instantiation: gdevoflt.c:gx_get_process_comps
Unexecuted instantiation: gdevnup.c:gx_get_process_comps
Unexecuted instantiation: gdevsclass.c:gx_get_process_comps
Unexecuted instantiation: gxclist.c:gx_get_process_comps
Unexecuted instantiation: gxclpage.c:gx_get_process_comps
Unexecuted instantiation: gxclread.c:gx_get_process_comps
Unexecuted instantiation: gxclrect.c:gx_get_process_comps
Unexecuted instantiation: gxclutil.c:gx_get_process_comps
Unexecuted instantiation: gxclimag.c:gx_get_process_comps
Unexecuted instantiation: gxclpath.c:gx_get_process_comps
Unexecuted instantiation: gxdhtserial.c:gx_get_process_comps
Unexecuted instantiation: gxclthrd.c:gx_get_process_comps
Unexecuted instantiation: gsicc.c:gx_get_process_comps
Unexecuted instantiation: gsicc_manage.c:gx_get_process_comps
Unexecuted instantiation: gsicc_cache.c:gx_get_process_comps
Unexecuted instantiation: gsicc_lcms2mt.c:gx_get_process_comps
Unexecuted instantiation: gsicc_create.c:gx_get_process_comps
Unexecuted instantiation: gsicc_nocm.c:gx_get_process_comps
Unexecuted instantiation: gsicc_replacecm.c:gx_get_process_comps
Unexecuted instantiation: gsicc_monitorcm.c:gx_get_process_comps
Unexecuted instantiation: gsicc_blacktext.c:gx_get_process_comps
Unexecuted instantiation: gdevcups.c:gx_get_process_comps
Unexecuted instantiation: gdevdjet.c:gx_get_process_comps
Unexecuted instantiation: gdevdljm.c:gx_get_process_comps
Unexecuted instantiation: gdevpcl.c:gx_get_process_comps
Unexecuted instantiation: gdevpcl3.c:gx_get_process_comps
Unexecuted instantiation: pclcap.c:gx_get_process_comps
Unexecuted instantiation: gdevpx.c:gx_get_process_comps
Unexecuted instantiation: gdevpxut.c:gx_get_process_comps
Unexecuted instantiation: gdevvec.c:gx_get_process_comps
Unexecuted instantiation: gdevupd.c:gx_get_process_comps
Unexecuted instantiation: gdevkrnlsclass.c:gx_get_process_comps
Unexecuted instantiation: gscolor.c:gx_get_process_comps
Unexecuted instantiation: gscoord.c:gx_get_process_comps
Unexecuted instantiation: gscspace.c:gx_get_process_comps
Unexecuted instantiation: gsovrc.c:gx_get_process_comps
Unexecuted instantiation: gxoprect.c:gx_get_process_comps
Unexecuted instantiation: gsdevice.c:gx_get_process_comps
Unexecuted instantiation: gsdparam.c:gx_get_process_comps
Unexecuted instantiation: gsht.c:gx_get_process_comps
Unexecuted instantiation: gshtscr.c:gx_get_process_comps
Unexecuted instantiation: gsimage.c:gx_get_process_comps
Unexecuted instantiation: gsgstate.c:gx_get_process_comps
Unexecuted instantiation: gsline.c:gx_get_process_comps
Unexecuted instantiation: gspaint.c:gx_get_process_comps
Unexecuted instantiation: gspath.c:gx_get_process_comps
Unexecuted instantiation: gsstate.c:gx_get_process_comps
Unexecuted instantiation: gstext.c:gx_get_process_comps
Unexecuted instantiation: gxfapi.c:gx_get_process_comps
Unexecuted instantiation: write_t2.c:gx_get_process_comps
Unexecuted instantiation: gxchar.c:gx_get_process_comps
Unexecuted instantiation: gxcht.c:gx_get_process_comps
Unexecuted instantiation: gxclip.c:gx_get_process_comps
Unexecuted instantiation: gxcmap.c:gx_get_process_comps
Unexecuted instantiation: gxcpath.c:gx_get_process_comps
Unexecuted instantiation: gxdcconv.c:gx_get_process_comps
Unexecuted instantiation: gxdcolor.c:gx_get_process_comps
Unexecuted instantiation: gxhldevc.c:gx_get_process_comps
Unexecuted instantiation: gxfill.c:gx_get_process_comps
Unexecuted instantiation: gxht.c:gx_get_process_comps
Unexecuted instantiation: gxht_thresh.c:gx_get_process_comps
Unexecuted instantiation: gxifast.c:gx_get_process_comps
Unexecuted instantiation: gximage.c:gx_get_process_comps
Unexecuted instantiation: gximdecode.c:gx_get_process_comps
Unexecuted instantiation: gximage1.c:gx_get_process_comps
Unexecuted instantiation: gximono.c:gx_get_process_comps
Unexecuted instantiation: gxipixel.c:gx_get_process_comps
Unexecuted instantiation: gximask.c:gx_get_process_comps
Unexecuted instantiation: gxi12bit.c:gx_get_process_comps
Unexecuted instantiation: gxi16bit.c:gx_get_process_comps
Unexecuted instantiation: gxiscale.c:gx_get_process_comps
Unexecuted instantiation: gxpaint.c:gx_get_process_comps
Unexecuted instantiation: gxpcopy.c:gx_get_process_comps
Unexecuted instantiation: gxsample.c:gx_get_process_comps
Unexecuted instantiation: gxstroke.c:gx_get_process_comps
Unexecuted instantiation: gdevabuf.c:gx_get_process_comps
Unexecuted instantiation: gdevdbit.c:gx_get_process_comps
Unexecuted instantiation: gdevddrw.c:gx_get_process_comps
Unexecuted instantiation: gdevdflt.c:gx_get_process_comps
Unexecuted instantiation: gdevdgbr.c:gx_get_process_comps
Unexecuted instantiation: gdevnfwd.c:gx_get_process_comps
Unexecuted instantiation: gdevmem.c:gx_get_process_comps
Unexecuted instantiation: gdevplnx.c:gx_get_process_comps
Unexecuted instantiation: gdevm1.c:gx_get_process_comps
Unexecuted instantiation: gdevm2.c:gx_get_process_comps
Unexecuted instantiation: gdevm4.c:gx_get_process_comps
Unexecuted instantiation: gdevm8.c:gx_get_process_comps
Unexecuted instantiation: gdevm16.c:gx_get_process_comps
Unexecuted instantiation: gdevm24.c:gx_get_process_comps
Unexecuted instantiation: gdevm32.c:gx_get_process_comps
Unexecuted instantiation: gdevmpla.c:gx_get_process_comps
Unexecuted instantiation: gdevm40.c:gx_get_process_comps
Unexecuted instantiation: gdevm48.c:gx_get_process_comps
Unexecuted instantiation: gdevm56.c:gx_get_process_comps
Unexecuted instantiation: gdevm64.c:gx_get_process_comps
Unexecuted instantiation: gdevmx.c:gx_get_process_comps
Unexecuted instantiation: gdevdsha.c:gx_get_process_comps
Unexecuted instantiation: gxscanc.c:gx_get_process_comps
Unexecuted instantiation: gdevdrop.c:gx_get_process_comps
Unexecuted instantiation: gdevmr1.c:gx_get_process_comps
Unexecuted instantiation: gdevmr2n.c:gx_get_process_comps
Unexecuted instantiation: gdevmr8n.c:gx_get_process_comps
Unexecuted instantiation: gdevrops.c:gx_get_process_comps
Unexecuted instantiation: gsrop.c:gx_get_process_comps
Unexecuted instantiation: zcolor1.c:gx_get_process_comps
Unexecuted instantiation: zht1.c:gx_get_process_comps
Unexecuted instantiation: zupath.c:gx_get_process_comps
Unexecuted instantiation: gdevhit.c:gx_get_process_comps
Unexecuted instantiation: zdps1.c:gx_get_process_comps
Unexecuted instantiation: zchar1.c:gx_get_process_comps
Unexecuted instantiation: zcharout.c:gx_get_process_comps
Unexecuted instantiation: zfont1.c:gx_get_process_comps
Unexecuted instantiation: zusparam.c:gx_get_process_comps
Unexecuted instantiation: zchar42.c:gx_get_process_comps
Unexecuted instantiation: zfont0.c:gx_get_process_comps
Unexecuted instantiation: zfdctd.c:gx_get_process_comps
Unexecuted instantiation: zdevice2.c:gx_get_process_comps
Unexecuted instantiation: zpcolor.c:gx_get_process_comps
Unexecuted instantiation: idisp.c:gx_get_process_comps
Unexecuted instantiation: psapi.c:gx_get_process_comps
Unexecuted instantiation: zfileio.c:gx_get_process_comps
Unexecuted instantiation: zbfont.c:gx_get_process_comps
Unexecuted instantiation: zchar.c:gx_get_process_comps
Unexecuted instantiation: zcolor.c:gx_get_process_comps
Unexecuted instantiation: zdevice.c:gx_get_process_comps
Unexecuted instantiation: zfont.c:gx_get_process_comps
Unexecuted instantiation: zht.c:gx_get_process_comps
Unexecuted instantiation: zimage.c:gx_get_process_comps
Unexecuted instantiation: zfapi.c:gx_get_process_comps
Unexecuted instantiation: zcsindex.c:gx_get_process_comps
Unexecuted instantiation: zht2.c:gx_get_process_comps
Unexecuted instantiation: zcssepr.c:gx_get_process_comps
Unexecuted instantiation: zfunc4.c:gx_get_process_comps
Unexecuted instantiation: zform.c:gx_get_process_comps
Unexecuted instantiation: zimage3.c:gx_get_process_comps
Unexecuted instantiation: zicc.c:gx_get_process_comps
Unexecuted instantiation: ztrans.c:gx_get_process_comps
Unexecuted instantiation: zpdfops.c:gx_get_process_comps
Unexecuted instantiation: ghostpdf.c:gx_get_process_comps
Unexecuted instantiation: pdf_dict.c:gx_get_process_comps
Unexecuted instantiation: pdf_array.c:gx_get_process_comps
Unexecuted instantiation: pdf_xref.c:gx_get_process_comps
Unexecuted instantiation: pdf_int.c:gx_get_process_comps
Unexecuted instantiation: pdf_file.c:gx_get_process_comps
Unexecuted instantiation: pdf_path.c:gx_get_process_comps
Unexecuted instantiation: pdf_colour.c:gx_get_process_comps
Unexecuted instantiation: pdf_pattern.c:gx_get_process_comps
Unexecuted instantiation: pdf_gstate.c:gx_get_process_comps
Unexecuted instantiation: pdf_stack.c:gx_get_process_comps
Unexecuted instantiation: pdf_image.c:gx_get_process_comps
Unexecuted instantiation: pdf_page.c:gx_get_process_comps
Unexecuted instantiation: pdf_annot.c:gx_get_process_comps
Unexecuted instantiation: pdf_mark.c:gx_get_process_comps
Unexecuted instantiation: pdf_font.c:gx_get_process_comps
Unexecuted instantiation: pdf_font0.c:gx_get_process_comps
Unexecuted instantiation: pdf_ciddec.c:gx_get_process_comps
Unexecuted instantiation: pdf_font1.c:gx_get_process_comps
Unexecuted instantiation: pdf_font1C.c:gx_get_process_comps
Unexecuted instantiation: pdf_fontps.c:gx_get_process_comps
Unexecuted instantiation: pdf_font3.c:gx_get_process_comps
Unexecuted instantiation: pdf_fontTT.c:gx_get_process_comps
Unexecuted instantiation: pdf_font11.c:gx_get_process_comps
Unexecuted instantiation: pdf_cmap.c:gx_get_process_comps
Unexecuted instantiation: pdf_fmap.c:gx_get_process_comps
Unexecuted instantiation: pdf_text.c:gx_get_process_comps
Unexecuted instantiation: pdf_shading.c:gx_get_process_comps
Unexecuted instantiation: pdf_func.c:gx_get_process_comps
Unexecuted instantiation: pdf_trans.c:gx_get_process_comps
Unexecuted instantiation: pdf_device.c:gx_get_process_comps
Unexecuted instantiation: pdf_misc.c:gx_get_process_comps
Unexecuted instantiation: pdf_optcontent.c:gx_get_process_comps
Unexecuted instantiation: pdf_check.c:gx_get_process_comps
Unexecuted instantiation: pdf_sec.c:gx_get_process_comps
Unexecuted instantiation: pdf_utf8.c:gx_get_process_comps
Unexecuted instantiation: pdf_deref.c:gx_get_process_comps
Unexecuted instantiation: pdf_repair.c:gx_get_process_comps
Unexecuted instantiation: pdf_obj.c:gx_get_process_comps
Unexecuted instantiation: pdf_doc.c:gx_get_process_comps
Unexecuted instantiation: zfjpx.c:gx_get_process_comps
Unexecuted instantiation: imainarg.c:gx_get_process_comps
Unexecuted instantiation: gsclipsr.c:gx_get_process_comps
Unexecuted instantiation: gscdevn.c:gx_get_process_comps
Unexecuted instantiation: gxdevndi.c:gx_get_process_comps
Unexecuted instantiation: gxclipm.c:gx_get_process_comps
Unexecuted instantiation: gscolor3.c:gx_get_process_comps
Unexecuted instantiation: gsptype2.c:gx_get_process_comps
Unexecuted instantiation: gsshade.c:gx_get_process_comps
Unexecuted instantiation: gxshade1.c:gx_get_process_comps
Unexecuted instantiation: gxshade4.c:gx_get_process_comps
Unexecuted instantiation: gxshade6.c:gx_get_process_comps
Unexecuted instantiation: gscolor1.c:gx_get_process_comps
Unexecuted instantiation: gsht1.c:gx_get_process_comps
Unexecuted instantiation: gscolor2.c:gx_get_process_comps
Unexecuted instantiation: gspcolor.c:gx_get_process_comps
Unexecuted instantiation: gxclip2.c:gx_get_process_comps
Unexecuted instantiation: gspath1.c:gx_get_process_comps
Unexecuted instantiation: gstype42.c:gx_get_process_comps
Unexecuted instantiation: gxchrout.c:gx_get_process_comps
Unexecuted instantiation: gxttfb.c:gx_get_process_comps
Unexecuted instantiation: gzspotan.c:gx_get_process_comps
Unexecuted instantiation: gscie.c:gx_get_process_comps
Unexecuted instantiation: gscsepr.c:gx_get_process_comps
Unexecuted instantiation: gxblend1.c:gx_get_process_comps
Unexecuted instantiation: gdevepo.c:gx_get_process_comps
Unexecuted instantiation: gxclbits.c:gx_get_process_comps
Unexecuted instantiation: gxclrast.c:gx_get_process_comps
Unexecuted instantiation: gschar0.c:gx_get_process_comps
Unexecuted instantiation: gsfont0.c:gx_get_process_comps
Unexecuted instantiation: gstype1.c:gx_get_process_comps
Unexecuted instantiation: gxtype1.c:gx_get_process_comps
Unexecuted instantiation: gstype2.c:gx_get_process_comps
Unexecuted instantiation: gsicc_profilecache.c:gx_get_process_comps
Unexecuted instantiation: gdeveprn.c:gx_get_process_comps
Unexecuted instantiation: eprnparm.c:gx_get_process_comps
Unexecuted instantiation: eprnrend.c:gx_get_process_comps
Unexecuted instantiation: eprnfs.c:gx_get_process_comps
Unexecuted instantiation: gscicach.c:gx_get_process_comps
Unexecuted instantiation: gsdevmem.c:gx_get_process_comps
Unexecuted instantiation: gsfont.c:gx_get_process_comps
Unexecuted instantiation: gxacpath.c:gx_get_process_comps
Unexecuted instantiation: gxccache.c:gx_get_process_comps
Unexecuted instantiation: gxccman.c:gx_get_process_comps
Unexecuted instantiation: gxidata.c:gx_get_process_comps
Unexecuted instantiation: gxpdash.c:gx_get_process_comps
Unexecuted instantiation: pdf_loop_detect.c:gx_get_process_comps
Unexecuted instantiation: pdf_fapi.c:gx_get_process_comps
Unexecuted instantiation: gxshade.c:gx_get_process_comps
Unexecuted instantiation: gscscie.c:gx_get_process_comps
Unexecuted instantiation: gschar.c:gx_get_process_comps
1787
1788
1789
#endif /* gxdevcli_INCLUDED */