]> git.wh0rd.org Git - ICEs.git/blob - sh-ghostscript/gdevifno.i.2
more ices
[ICEs.git] / sh-ghostscript / gdevifno.i.2
1 typedef struct gs_memory_struct_type_s gs_memory_struct_type_t;
2 typedef struct gs_matrix_s gs_matrix;
3 typedef unsigned long long gx_color_index_data;
4 typedef gx_color_index_data gx_color_index;
5 typedef unsigned short gx_color_value;
6 typedef struct gx_device_s gx_device;
7 typedef struct gs_param_list_s gs_param_list;
8 typedef struct gx_device_anti_alias_info_s {
9         int text_bits;
10         int graphics_bits;
11 } gx_device_anti_alias_info;
12 typedef enum {
13         GX_CINFO_UNKNOWN_SEP_LIN = -1
14 } gx_color_enc_sep_lin_t;
15 typedef struct gx_device_color_info_s {
16         int max_components;
17         gx_device_anti_alias_info anti_alias;
18         gx_color_enc_sep_lin_t separable_and_linear;
19         unsigned char comp_shift[(8 * 8)];
20         unsigned char comp_bits[(8 * 8)];
21         int black_component;
22 } gx_device_color_info;
23 typedef struct gx_device_procs_s gx_device_procs;
24 typedef struct gs_devn_params_s gs_devn_params;
25 struct gx_device_procs_s {
26         int (*open_device) (gx_device * dev);
27         void (*get_initial_matrix) (gx_device * dev, gs_matrix * pmat);
28         int (*sync_output) (gx_device * dev);
29         int (*output_page) (gx_device * dev, int num_copies, int flush);
30         int (*close_device) (gx_device * dev);
31          gx_color_index(*map_rgb_color) (gx_device * dev,
32                                          const gx_color_value cv[]);
33         int (*map_color_rgb) (gx_device * dev, gx_color_index color,
34                               gx_color_value rgb[3]);
35         gs_devn_params *(*ret_devn_params) (gx_device * dev);
36 };
37 gx_device *gx_page_device_get_page_device(gx_device * dev);
38 typedef struct gx_device_printer_s gx_device_printer;
39 struct gx_device_printer_s {
40 };
41 extern const gs_memory_struct_type_t st_device_printer;
42 int gdev_prn_output_page(gx_device * dev, int num_copies, int flush);
43 int gdev_prn_get_params(gx_device * dev, gs_param_list * plist);
44 int gdev_prn_put_params(gx_device * dev, gs_param_list * plist);
45 static int inferno_cmap2rgb(gx_device * dev, gx_color_index color,
46                             gx_color_value rgb[3]);
47 static int inferno_open(gx_device * dev);
48 static int inferno_close(gx_device * dev);
49 typedef struct inferno_device_s {
50         int retained;
51         int is_open;
52         gx_device_color_info color_info;
53         gx_device_procs orig_procs;
54         int ldepth;
55         int cmapcall;
56 } inferno_device;
57 static gx_color_index inferno_rgb2cmap(void *dev)
58 {
59         inferno_device *bdev;
60         bdev = (inferno_device *) dev;
61         int mask;
62         gx_color_value red;
63         gx_color_value green;
64         gx_color_value blue;
65         if (red == mask)
66                 bdev->ldepth = 3;
67         bdev->cmapcall = 1;
68         return mask;
69 }
70 static const gx_device_procs inferno_procs = {
71 inferno_rgb2cmap
72 };
73 inferno_device gs_inferno_device = {
74 &inferno_procs
75 };